Allow mods to soft reboot the server, also allows admins to reboot the server ignoring tickets (#12299)

Co-authored-by: Jamie D <993128+JamieD1@users.noreply.github.com>
This commit is contained in:
adamsong
2021-09-17 07:14:12 -05:00
committed by GitHub
parent 2d0816be7b
commit 3c4e6488cc
2 changed files with 8 additions and 6 deletions

View File

@@ -649,7 +649,7 @@ SUBSYSTEM_DEF(ticker)
/datum/controller/subsystem/ticker/proc/Reboot(reason, end_string, delay, force = FALSE)
set waitfor = FALSE
if(usr && !force)
if(!check_rights(R_SERVER, TRUE))
if(!check_rights(R_ADMIN, TRUE))
return
// yogs end
if(!delay)
@@ -663,7 +663,7 @@ SUBSYSTEM_DEF(ticker)
if(GLOB.ahelp_tickets && GLOB.ahelp_tickets.ticketAmount)
var/list/adm = get_admin_counts(R_BAN)
var/list/activemins = adm["present"]
if(activemins.len > 0)
if(activemins.len > 0 && !force) // Ignore tickets if forced
to_chat(world, span_boldannounce("Not all tickets have been resolved. Server restart delayed."))
return
else

View File

@@ -476,9 +476,11 @@
if (!usr.client.holder)
return
var/list/options = list("Regular Restart", "Hard Restart (No Delay/Feeback Reason)", "Hardest Restart (No actions, just reboot)")
if(world.TgsAvailable())
options += "Server Restart (Kill and restart DD)";
var/list/options = list("Regular Restart")
if(check_rights(R_SERVER, FALSE))
options += list("Hard Restart (No Delay/Feeback Reason)", "Hardest Restart (No actions, just reboot)")
if(world.TgsAvailable())
options += "Server Restart (Kill and restart DD)";
var/rebootconfirm
if(SSticker.admin_delay_notice)
@@ -493,7 +495,7 @@
var/init_by = "Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]."
switch(result)
if("Regular Restart")
SSticker.Reboot(init_by, "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10)
SSticker.Reboot(init_by, "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 10 SECONDS, check_rights(R_SERVER, FALSE)) // Force if they have +SERVER
if("Hard Restart (No Delay, No Feeback Reason)")
to_chat(world, "World reboot - [init_by]")
world.Reboot()