diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index a7aa84a2..a9caf0a3 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -648,8 +648,16 @@ if(!check_rights(R_SERVER|R_STEALTH)) return + var/override + + switch (alert(usr, "Do you want this to only affect the current round, or do you want the server to stay [world.visibility ? "hidden" : "public"] until toggled again?",,"Only affect this round.", "Stay as chosen until toggled again.")) + if ("Only affect this round.") + override = 0 + if ("Stay as chosen until toggled again.") + override = 1 + world.visibility = !world.visibility message_admins("[src] has toggled the hub [world.visibility ? "public" : "hidden"]") - world.save_visibility(world.visibility) + world.save_visibility(world.visibility, override) return diff --git a/code/world.dm b/code/world.dm index 790f6774..e0a54dc7 100644 --- a/code/world.dm +++ b/code/world.dm @@ -256,17 +256,23 @@ var/master_server_password /world/proc/load_visibility() var/list/Lines = file2list("data/hubsetting.txt") - if(Lines.len) - if(Lines[1]) - if(istext(Lines[1])) - Lines[1] = text2num(Lines[1]) - visibility = Lines[1] - log_misc("Are we visible '[Lines[1]]'") + if (Lines.len) + if (Lines[1] && Lines[2]) + log_misc("Saved visibility is: [Lines[1]]; saved override is: [Lines[2]].") + if (text2num(Lines[2]) == 1) + visibility = text2num(Lines[1]) + else + if (time2text(realtime, "Day") == ("Saturday" || "Sunday")) + visibility = 0 + else + visibility = 1 + save_visibility(visibility, 0) -/world/proc/save_visibility(var/the_visibility) +/world/proc/save_visibility(var/the_visibility, var/override = 0) var/F = file("data/hubsetting.txt") fdel(F) F << the_visibility + F << override /hook/startup/proc/loadMOTD() world.load_motd()