mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-17 16:37:00 +01:00
this is admittedly not a usual use of stealth mode but it's nice to not pop on/off the list when deadminned (this is nice for event rounds since you're supposed to deadmin if in a conflict role)
44 lines
2.2 KiB
Plaintext
44 lines
2.2 KiB
Plaintext
/datum/admins/proc/restart()
|
|
set category = "Server"
|
|
set name = "Reboot World"
|
|
set desc = "Restarts the world immediately"
|
|
if (!usr.client.holder)
|
|
return
|
|
|
|
var/localhost_addresses = list("127.0.0.1", "::1")
|
|
var/list/options = list("Regular Restart", "Regular Restart (with delay)", "Hard Restart (No Delay/Feeback Reason)", "Hardest Restart (No actions, just reboot)")
|
|
if(world.TgsAvailable())
|
|
options += "Server Restart (Kill and restart DD)";
|
|
|
|
if(SSticker.admin_delay_notice)
|
|
if(alert(usr, "Are you sure? An admin has already delayed the round end for the following reason: [SSticker.admin_delay_notice]", "Confirmation", "Yes", "No") != "Yes")
|
|
return FALSE
|
|
|
|
var/result = input(usr, "Select reboot method", "World Reboot", options[1]) as null|anything in options
|
|
if(result)
|
|
// SSblackbox.record_feedback("tally", "admin_verb", 1, "Reboot World") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
|
var/init_by = "Initiated by [usr.key]."
|
|
switch(result)
|
|
if("Regular Restart")
|
|
if(!(isnull(usr.client.address) || (usr.client.address in localhost_addresses)))
|
|
if(alert(usr, "Are you sure you want to restart the server?","This server is live", "Restart", "Cancel") != "Restart")
|
|
return FALSE
|
|
SSticker.Reboot(init_by, "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", 1 SECOND)
|
|
if("Regular Restart (with delay)")
|
|
var/delay = input("What delay should the restart have (in seconds)?", "Restart Delay", 5) as num|null
|
|
if(!delay)
|
|
return FALSE
|
|
if(!(isnull(usr.client.address) || (usr.client.address in localhost_addresses)))
|
|
if(alert(usr,"Are you sure you want to restart the server?","This server is live", "Restart", "Cancel") != "Restart")
|
|
return FALSE
|
|
SSticker.Reboot(init_by, "admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]", delay * 10)
|
|
if("Hard Restart (No Delay, No Feeback Reason)")
|
|
to_chat(world, "World reboot - [init_by]")
|
|
world.Reboot()
|
|
if("Hardest Restart (No actions, just reboot)")
|
|
to_chat(world, "Hard world reboot - [init_by]")
|
|
world.Reboot(fast_track = TRUE)
|
|
if("Server Restart (Kill and restart DD)")
|
|
to_chat(world, "Server restart - [init_by]")
|
|
world.TgsEndProcess()
|