diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index ccad4aacc19..17de12bc171 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -122,6 +122,7 @@ GLOBAL_PROTECT(admin_verbs_server) /datum/admins/proc/restart, /datum/admins/proc/end_round, /datum/admins/proc/delay, + /datum/admins/proc/delay_round_end, /datum/admins/proc/toggleaban, /client/proc/everyone_random, /datum/admins/proc/toggleAI, @@ -211,75 +212,6 @@ GLOBAL_PROTECT(admin_verbs_permissions) GLOBAL_LIST_INIT(admin_verbs_poll, list(/client/proc/poll_panel)) GLOBAL_PROTECT(admin_verbs_poll) -//verbs which can be hidden - needs work -GLOBAL_LIST_INIT(admin_verbs_hideable, list( - /client/proc/set_ooc, - /client/proc/reset_ooc, - /client/proc/deadmin, - /datum/admins/proc/show_traitor_panel, - /datum/admins/proc/show_skill_panel, - /datum/admins/proc/toggleenter, - /datum/admins/proc/toggleguests, - /datum/admins/proc/announce, - /datum/admins/proc/set_admin_notice, - /client/proc/admin_ghost, - /client/proc/toggle_view_range, - /client/proc/cmd_admin_subtle_message, - /client/proc/cmd_admin_headset_message, - /client/proc/cmd_admin_check_contents, - /datum/admins/proc/access_news_network, - /client/proc/admin_call_shuttle, - /client/proc/admin_cancel_shuttle, - /client/proc/cmd_admin_direct_narrate, - /client/proc/cmd_admin_world_narrate, - /client/proc/cmd_admin_local_narrate, - /client/proc/play_local_sound, - /client/proc/play_sound, - /client/proc/set_round_end_sound, - /client/proc/cmd_select_equipment, - /client/proc/cmd_admin_gib_self, - /client/proc/drop_bomb, - /client/proc/drop_dynex_bomb, - /client/proc/get_dynex_range, - /client/proc/get_dynex_power, - /client/proc/set_dynex_scale, - /client/proc/cinematic, - /client/proc/cmd_admin_add_freeform_ai_law, - /client/proc/cmd_admin_create_centcom_report, - /client/proc/cmd_change_command_name, - /client/proc/object_say, - /client/proc/toggle_random_events, - /datum/admins/proc/startnow, - /datum/admins/proc/restart, - /datum/admins/proc/delay, - /datum/admins/proc/toggleaban, - /client/proc/everyone_random, - /datum/admins/proc/toggleAI, - /client/proc/restart_controller, - /client/proc/cmd_admin_list_open_jobs, - /client/proc/callproc, - /client/proc/callproc_datum, - /client/proc/Debug2, - /client/proc/reload_admins, - /client/proc/cmd_debug_make_powernets, - /client/proc/cmd_debug_mob_lists, - /client/proc/cmd_debug_del_all, - /client/proc/cmd_debug_force_del_all, - /client/proc/cmd_debug_hard_del_all, - /client/proc/enable_mapping_verbs, - /proc/possess, - /proc/release, - /client/proc/reload_admins, - /client/proc/panicbunker, - /client/proc/toggle_interviews, - /client/proc/admin_change_sec_level, - /client/proc/toggle_nuke, - /client/proc/cmd_display_del_log, - /client/proc/toggle_combo_hud, - /client/proc/debug_huds - )) -GLOBAL_PROTECT(admin_verbs_hideable) - /client/proc/add_admin_verbs() if(holder) control_freak = CONTROL_FREAK_SKIN | CONTROL_FREAK_MACROS diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index e66576cb0bb..4d78a84a361 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -158,28 +158,11 @@ return shuttle_console.admin_controlled = !shuttle_console.admin_controlled to_chat(usr, "[shuttle_console] was [shuttle_console.admin_controlled ? "locked" : "unlocked"].", confidential = TRUE) + else if(href_list["delay_round_end"]) - if(!check_rights(R_SERVER)) - return + // Permissions are checked in delay_round_end + delay_round_end() - if(SSticker.delay_end) - tgui_alert(usr, "The round end is already delayed. The reason for the current delay is: \"[SSticker.admin_delay_notice]\"", "Alert", list("Ok")) - return - - var/delay_reason = input(usr, "Enter a reason for delaying the round end", "Round Delay Reason") as null|text - - if(isnull(delay_reason)) - return - - if(SSticker.delay_end) - tgui_alert(usr, "The round end is already delayed. The reason for the current delay is: \"[SSticker.admin_delay_notice]\"", "Alert", list("Ok")) - return - - SSticker.delay_end = TRUE - SSticker.admin_delay_notice = delay_reason - - log_admin("[key_name(usr)] delayed the round end for reason: [SSticker.admin_delay_notice]") - message_admins("[key_name_admin(usr)] delayed the round end for reason: [SSticker.admin_delay_notice]") else if(href_list["undelay_round_end"]) if(!check_rights(R_SERVER)) return diff --git a/code/modules/admin/verbs/server.dm b/code/modules/admin/verbs/server.dm index 9fbcae8512c..310f1c83f73 100644 --- a/code/modules/admin/verbs/server.dm +++ b/code/modules/admin/verbs/server.dm @@ -25,7 +25,7 @@ /datum/admins/proc/restart() set category = "Server" set name = "Reboot World" - set desc="Restarts the world immediately" + set desc = "Restarts the world immediately" if (!usr.client.holder) return @@ -82,8 +82,8 @@ /datum/admins/proc/toggleooc() set category = "Server" - set desc="Toggle dis bitch" - set name="Toggle OOC" + set desc = "Toggle dis bitch" + set name = "Toggle OOC" toggle_ooc() log_admin("[key_name(usr)] toggled OOC.") message_admins("[key_name_admin(usr)] toggled OOC.") @@ -91,8 +91,8 @@ /datum/admins/proc/toggleoocdead() set category = "Server" - set desc="Toggle dis bitch" - set name="Toggle Dead OOC" + set desc = "Toggle dis bitch" + set name = "Toggle Dead OOC" toggle_dooc() log_admin("[key_name(usr)] toggled OOC.") @@ -101,8 +101,8 @@ /datum/admins/proc/startnow() set category = "Server" - set desc="Start the round RIGHT NOW" - set name="Start Now" + set desc = "Start the round RIGHT NOW" + set name = "Start Now" if(SSticker.current_state == GAME_STATE_PREGAME || SSticker.current_state == GAME_STATE_STARTUP) if(!SSticker.start_immediately) var/localhost_addresses = list("127.0.0.1", "::1") @@ -128,10 +128,38 @@ to_chat(usr, "Error: Start Now: Game has already started.") return FALSE +/datum/admins/proc/delay_round_end() + set category = "Server" + set desc = "Prevent the server from restarting" + set name = "Delay Round End" + + if(!check_rights(R_SERVER)) + return + + if(SSticker.delay_end) + tgui_alert(usr, "The round end is already delayed. The reason for the current delay is: \"[SSticker.admin_delay_notice]\"", "Alert", list("Ok")) + return + + var/delay_reason = input(usr, "Enter a reason for delaying the round end", "Round Delay Reason") as null|text + + if(isnull(delay_reason)) + return + + if(SSticker.delay_end) + tgui_alert(usr, "The round end is already delayed. The reason for the current delay is: \"[SSticker.admin_delay_notice]\"", "Alert", list("Ok")) + return + + SSticker.delay_end = TRUE + SSticker.admin_delay_notice = delay_reason + + log_admin("[key_name(usr)] delayed the round end for reason: [SSticker.admin_delay_notice]") + message_admins("[key_name_admin(usr)] delayed the round end for reason: [SSticker.admin_delay_notice]") + SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Delay Round End", "Reason: [delay_reason]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + /datum/admins/proc/toggleenter() set category = "Server" - set desc="People can't enter" - set name="Toggle Entering" + set desc = "People can't enter" + set name = "Toggle Entering" if(!SSlag_switch.initialized) return SSlag_switch.set_measure(DISABLE_NON_OBSJOBS, !SSlag_switch.measures[DISABLE_NON_OBSJOBS]) @@ -141,8 +169,8 @@ /datum/admins/proc/toggleAI() set category = "Server" - set desc="People can't be AI" - set name="Toggle AI" + set desc = "People can't be AI" + set name = "Toggle AI" var/alai = CONFIG_GET(flag/allow_ai) CONFIG_SET(flag/allow_ai, !alai) if (alai) @@ -155,8 +183,8 @@ /datum/admins/proc/toggleaban() set category = "Server" - set desc="Respawn basically" - set name="Toggle Respawn" + set desc = "Respawn basically" + set name = "Toggle Respawn" var/new_nores = !CONFIG_GET(flag/norespawn) CONFIG_SET(flag/norespawn, new_nores) if (!new_nores) @@ -170,8 +198,8 @@ /datum/admins/proc/delay() set category = "Server" - set desc="Delay the game start" - set name="Delay Pre-Game" + set desc = "Delay the game start" + set name = "Delay Pre-Game" var/newtime = input("Set a new time in seconds. Set -1 for indefinite delay.","Set Delay",round(SSticker.GetTimeLeft()/10)) as num|null if(SSticker.current_state > GAME_STATE_PREGAME) @@ -214,8 +242,8 @@ /datum/admins/proc/toggleguests() set category = "Server" - set desc="Guests can't enter" - set name="Toggle guests" + set desc = "Guests can't enter" + set name = "Toggle guests" var/new_guest_ban = !CONFIG_GET(flag/guest_ban) CONFIG_SET(flag/guest_ban, new_guest_ban) if (new_guest_ban)