mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-10 22:54:32 +01:00
Adds a list SSD players verb for admins
This commit is contained in:
@@ -77,6 +77,7 @@ var/list/admin_verbs_admin = list(
|
||||
/client/proc/toggle_mentor_chat,
|
||||
/client/proc/toggle_advanced_interaction, /*toggle admin ability to interact with not only machines, but also atoms such as buttons and doors*/
|
||||
/client/proc/list_ssds,
|
||||
/client/proc/list_afks,
|
||||
/client/proc/cmd_admin_headset_message,
|
||||
/client/proc/spawn_floor_cluwne,
|
||||
/client/proc/show_discord_duplicates,
|
||||
|
||||
@@ -1993,7 +1993,7 @@
|
||||
if(!istype(H))
|
||||
to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human")
|
||||
return
|
||||
if(!isLivingSSD(H))
|
||||
if(!href_list["cryoafk"] && !isLivingSSD(H))
|
||||
to_chat(usr, "This can only be used on living, SSD players.")
|
||||
return
|
||||
if(istype(H.loc, /obj/machinery/cryopod))
|
||||
@@ -2001,6 +2001,11 @@
|
||||
P.despawn_occupant()
|
||||
log_admin("[key_name(usr)] despawned [H.job] [H] in cryo.")
|
||||
message_admins("[key_name_admin(usr)] despawned [H.job] [H] in cryo.")
|
||||
if(href_list["cryoafk"]) // Warn them if they are send to storage and are AFK
|
||||
to_chat(H, "<span class='danger'>The admins have moved you to cryo storage for being AFK. Please move out of cryostorage if you want to avoid being despawned.</span>")
|
||||
H << 'sound/effects/adminhelp.ogg'
|
||||
if(H.client)
|
||||
window_flash(H.client)
|
||||
else if(cryo_ssd(H))
|
||||
log_admin("[key_name(usr)] sent [H.job] [H] to cryo.")
|
||||
message_admins("[key_name_admin(usr)] sent [H.job] [H] to cryo.")
|
||||
|
||||
@@ -1001,6 +1001,57 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
msg += "</TABLE></BODY></HTML>"
|
||||
src << browse(msg, "window=Player_ssd_check")
|
||||
|
||||
/client/proc/list_afks()
|
||||
set category = "Admin"
|
||||
set name = "List AFKs"
|
||||
set desc = "Lists AFK players"
|
||||
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
var/msg = "<html><head><title>AFK Report</title></head><body>"
|
||||
msg += "AFK Players:<BR><TABLE border='1'>"
|
||||
msg += "<TR><TD><B>Key</B></TD><TD><B>Real Name</B></TD><TD><B>Job</B></TD><TD><B>Mins AFK</B></TD><TD><B>Special Role</B></TD><TD><B>Area</B></TD><TD><B>PPN</B></TD><TD><B>Cryo</B></TD></TR>"
|
||||
var/mins_afk
|
||||
var/job_string
|
||||
var/key_string
|
||||
var/role_string
|
||||
for(var/mob/living/carbon/human/H in GLOB.living_mob_list)
|
||||
if(H.client == null || H.stat == DEAD) // No clientless or dead
|
||||
continue
|
||||
mins_afk = round(H.client.inactivity / 600)
|
||||
if(mins_afk < config.list_afk_minimum)
|
||||
continue
|
||||
if(H.job)
|
||||
job_string = H.job
|
||||
else
|
||||
job_string = "-"
|
||||
key_string = H.key
|
||||
if(job_string in command_positions)
|
||||
job_string = "<U>" + job_string + "</U>"
|
||||
role_string = "-"
|
||||
var/obj_count = 0
|
||||
var/obj_string = ""
|
||||
if(H.mind)
|
||||
if(H.mind.special_role)
|
||||
role_string = "<U>[H.mind.special_role]</U>"
|
||||
if(!H.key && H.mind.key)
|
||||
key_string = H.mind.key
|
||||
for(var/datum/objective/O in all_objectives)
|
||||
if(O.target == H.mind)
|
||||
obj_count++
|
||||
if(obj_count > 0)
|
||||
obj_string = "<BR><U>Obj Target</U>"
|
||||
msg += "<TR><TD>[key_string]</TD><TD>[H.real_name]</TD><TD>[job_string]</TD><TD>[mins_afk]</TD><TD>[role_string][obj_string]</TD>"
|
||||
msg += "<TD>[get_area(H)]</TD><TD>[ADMIN_PP(H,"PP")]</TD>"
|
||||
if(istype(H.loc, /obj/machinery/cryopod))
|
||||
msg += "<TD><A href='?_src_=holder;cryossd=[H.UID()];cryoafk=1'>De-Spawn</A></TD>"
|
||||
else
|
||||
msg += "<TD><A href='?_src_=holder;cryossd=[H.UID()];cryoafk=1'>Cryo</A></TD>"
|
||||
msg += "</TR>"
|
||||
msg += "</TABLE></BODY></HTML>"
|
||||
src << browse(msg, "window=Player_afk_check")
|
||||
|
||||
/client/proc/toggle_ert_calling()
|
||||
set category = "Event"
|
||||
set name = "Toggle ERT"
|
||||
|
||||
Reference in New Issue
Block a user