mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user