From 43d71282e072ddd2960a3037de279abaff08865f Mon Sep 17 00:00:00 2001 From: Head Date: Tue, 29 Nov 2011 15:45:01 +0100 Subject: [PATCH] Added back json support / restart notice should fix unnecessary restart after gamemode change before round start --- baystation12.dme | 1 + code/game/cellautomata.dm | 4 +- code/game/gamemodes/gameticker.dm | 1 + code/game/json.dm | 102 ++++++++++++++++++++++++++++++ code/game/vote.dm | 2 +- code/modules/admin/admin.dm | 2 +- 6 files changed, 108 insertions(+), 4 deletions(-) create mode 100644 code/game/json.dm diff --git a/baystation12.dme b/baystation12.dme index 1e8635b68d0..97a7443639e 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -338,6 +338,7 @@ #include "code\game\dna.dm" #include "code\game\dna_mutations.dm" #include "code\game\hud.dm" +#include "code\game\json.dm" #include "code\game\landmarks.dm" #include "code\game\master_controller.dm" #include "code\game\prisonshuttle.dm" diff --git a/code/game/cellautomata.dm b/code/game/cellautomata.dm index 9f2043ac5c9..a61ed7262b7 100644 --- a/code/game/cellautomata.dm +++ b/code/game/cellautomata.dm @@ -123,7 +123,7 @@ //Crispy fullban /world/Reboot(var/reason) spawn(0) - //world << sound(pick('newroundsexy.ogg','apcdestroyed.ogg','bangindonk.ogg')) // random end sounds!! - LastyBatsy No, no random end sounds. - Miniature + //world << sound(pick('newroundsexy.ogg','apcdestroyed.ogg','bangindonk.ogg')) // random end sounds!! - LastyBatsy No, no random end sounds. - Miniature //if(prob(40)) // for(var/mob/M in world) // if(M.client) @@ -132,7 +132,7 @@ // for(var/mob/M in world) // if(M.client) // M << sound('apcdestroyed.ogg') - + send2irc(world.url,"Server Rebooting!") for(var/client/C) if (config.server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite C << link("byond://[config.server]") diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 2cad4558abf..f18f35a30bc 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -173,6 +173,7 @@ var/global/datum/controller/gameticker/ticker else feedback_set_details("end_proper","proper completion") world << "\blue Restarting in [restart_timeout/10] seconds" + // send2irc(world.url,"Server Rebooting!") feedback_set_details("round_end","[time2text(world.realtime)]") if(blackbox) diff --git a/code/game/json.dm b/code/game/json.dm new file mode 100644 index 00000000000..65a29172197 --- /dev/null +++ b/code/game/json.dm @@ -0,0 +1,102 @@ + +var/jsonpath = "/home/bay12/public_html" +var/dmepath = "/home/bay12/git/baystation12.dme" +var/makejson = 1 //temp +world/proc/makejson() + + if(!makejson) + return + fdel("[jsonpath]/info.json") + //usr << "Error cant delete json" + //else + //usr << "Deleted json in public html" + fdel("info.json") + //usr << "error cant delete local json" + //else + //usr << "Deleted local json" + var/F = file("info.json") + if(!isfile(F)) + return + var/mode + if(ticker) + if(ticker.current_state == 1) + mode = "Round Setup" + else if(ticker.hide_mode) + mode = "SECRET" + else + mode = master_mode + var/playerscount = 0 + var/players = "" + var/admins = "no" + for(var/client/C) + playerscount++ + if(C.holder) + if(!C.stealth) + admins = "yes" + players += "[C.key];" + else + players += "[C.fakekey];" + else + players += "[C.key];" + F << "{\"mode\":\"[mode]\",\"players\" : \"[players]\",\"playercount\" : \"[playerscount]\",\"admin\" : \"[admins]\",\"time\" : \"[time2text(world.realtime,"MM/DD - hh:mm")]\"}" + fcopy("info.json","[jsonpath]/info.json") + +/proc/switchmap(newmap,newpath) + var/oldmap + var/obj/mapinfo/M = locate() + + if(M) + oldmap = M.mapname + + else + message_admins("Did not locate mapinfo object. Go bug the mapper to add a /obj/mapinfo to their map!\n For now, you can probably spawn one manually. If you do, be sure to set it's mapname var correctly, or else you'll just get an error again.") + return + + message_admins("Current map: [oldmap]") + var/text = file2text(dmepath) + var/path = "#include \"maps/[oldmap].dmm\"" + var/xpath = "#include \"maps/[newpath].dmm\"" + var/loc = findtext(text,path,1,0) + if(!loc) + path = "#include \"maps\\[oldmap].dmm\"" + xpath = "#include \"maps\\[newpath].dmm\"" + loc = findtext(text,path,1,0) + if(!loc) + message_admins("Could not find '#include \"maps\\[oldmap].dmm\"' or '\"maps/[oldmap].dmm\"' in the bs12.dme. The mapinfo probably has an incorrect mapname var. Alternatively, could not find the .dme itself, at [dmepath].") + return + + var/rest = copytext(text, loc + length(path)) + text = copytext(text,1,loc) + text += "\n[xpath]" + text += rest +/* for(var/A in lines) + if(findtext(A,path,1,0)) + lineloc = lines.Find(A,1,0) + lines[lineloc] = xpath + world << "FOUND"*/ + fdel(dmepath) + var/file = file(dmepath) + file << text + message_admins("Compiling...") + shell("./recompile") + message_admins("Done") + world.Reboot("Switching to [newmap]") + +obj/mapinfo + invisibility = 101 + var/mapname = "thismap" + var/decks = 4 +proc/GetMapInfo() + var/obj/mapinfo/M = locate() + world << M.name + world << M.mapname +client/proc/ChangeMap(var/X as text) + set name = "Change Map" + set category = "Admin" + switchmap(X,X) +proc/send2irc(msg,msg2) + shell("python26 nudge.py [msg] [msg2]") +proc/send2adminirc(channel,msg) + world << channel << " "<< msg + shell("python26 nudge.py '[channel]' [msg]") +p //test \ No newline at end of file diff --git a/code/game/vote.dm b/code/game/vote.dm index 7dbe6c6cce9..93155476e47 100644 --- a/code/game/vote.dm +++ b/code/game/vote.dm @@ -74,7 +74,7 @@ world << "Result is change to \red [wintext]" world.save_mode(winner) - if(ticker) + if(ticker.current_state != 1) world <<"\red World will reboot in 10 seconds" feedback_set_details("end_error","mode vote - [winner]") diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 89684bc2d47..47cc72bc567 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -2152,7 +2152,7 @@ feedback_set_details("round_end","[time2text(world.realtime)]") if(blackbox) blackbox.save_all_data_to_sql() - + //send2irc(world.url,"Server Rebooting!") sleep(50) world.Reboot()