/client/verb/who()
set name = "Who"
set category = "OOC"
var/msg = "Current Players:
"
var/total_num = 0
if(holder && (R_ADMIN & holder.rights || R_MOD & holder.rights))
for(var/client/C in clients)
msg += "\t[C.key]"
if(C.holder && C.holder.fakekey)
msg += " (as [C.holder.fakekey])"
msg += " - Playing as [C.mob.real_name]"
switch(C.mob.stat)
if(UNCONSCIOUS)
msg += " - Unconscious"
if(DEAD)
if(isobserver(C.mob))
var/mob/abstract/observer/O = C.mob
if(O.started_as_observer)
msg += " - Observing"
else
msg += " - DEAD"
else
msg += " - DEAD"
var/age
if(isnum(C.player_age))
age = C.player_age
else
age = 0
if(age <= 1)
age = "[age]"
else if(age < 10)
age = "[age]"
msg += " - [age]"
if(is_special_character(C.mob))
msg += " - Antagonist"
msg += " (?)"
msg += "
"
total_num++
else
for(var/client/C in clients)
if(C.holder && C.holder.fakekey)
msg += C.holder.fakekey
else
msg += C.key
total_num++
msg += "
"
msg += "Total Players: [total_num]"
var/datum/browser/who_win = new(usr, "who", "Who", 450, 500)
who_win.set_content(msg)
who_win.open()
/client/verb/staffwho()
set category = "Admin"
set name = "Staffwho"
var/msg = ""
var/modmsg = ""
var/cciaamsg = ""
var/devmsg = ""
var/num_mods_online = 0
var/num_admins_online = 0
var/num_cciaa_online = 0
var/num_devs_online = 0
if(holder)
for(var/s in staff)
var/client/C = s
if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights)) //Used to determine who shows up in admin rows
if(C.holder.fakekey && (!R_ADMIN & holder.rights && !R_MOD & holder.rights)) //Mentors can't see stealthmins
continue
msg += "\t[C.key] is a [C.holder.rank]"
if(C.holder.fakekey)
msg += " (as [C.holder.fakekey])"
if(isobserver(C.mob))
msg += " - Observing"
else if(istype(C.mob,/mob/abstract/new_player))
msg += " - Lobby"
else
msg += " - Playing"
if(C.is_afk())
msg += " (AFK)"
msg += "
"
num_admins_online++
else if(R_MOD & C.holder.rights) //Who shows up in mod/mentor rows.
modmsg += "\t[C.key] is a [C.holder.rank]"
if(isobserver(C.mob))
modmsg += " - Observing"
else if(istype(C.mob,/mob/abstract/new_player))
modmsg += " - Lobby"
else
modmsg += " - Playing"
if(C.is_afk())
modmsg += " (AFK)"
modmsg += "
"
num_mods_online++
else if (R_CCIAA & C.holder.rights)
cciaamsg += "\t[C.key]"
if (isobserver(C.mob))
cciaamsg += " - Observing"
else if (istype(C.mob, /mob/abstract/new_player))
cciaamsg += " - Lobby"
else
cciaamsg += " - Playing"
if (C.is_afk())
cciaamsg += " (AFK)"
cciaamsg += "
"
num_cciaa_online++
else if(C.holder.rights & R_DEV)
devmsg += "\t[C.key] is a [C.holder.rank]"
if(isobserver(C.mob))
devmsg += " - Observing"
else if(istype(C.mob,/mob/abstract/new_player))
devmsg += " - Lobby"
else
devmsg += " - Playing"
if(C.is_afk())
devmsg += " (AFK)"
devmsg += "
"
num_devs_online++
else
for(var/s in staff)
var/client/C = s
if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights))
if(!C.holder.fakekey)
if(C.is_afk())
msg += "\t[C.key] is a [C.holder.rank] (AFK)
"
else
msg += "\t[C.key] is a [C.holder.rank]
"
num_admins_online++
else if (R_MOD & C.holder.rights)
if(C.is_afk())
modmsg += "\t[C.key] is a [C.holder.rank] (AFK)
"
else
modmsg += "\t[C.key] is a [C.holder.rank]
"
num_mods_online++
else if(C.holder.rights & R_DEV)
if(C.is_afk())
devmsg += "\t[C.key] is a [C.holder.rank] (AFK)
"
else
devmsg += "\t[C.key] is a [C.holder.rank]
"
num_devs_online++
else if (R_CCIAA & C.holder.rights)
if(C.is_afk())
cciaamsg += "\t[C.key] is a [C.holder.rank] (AFK)
"
else
cciaamsg += "\t[C.key] is a [C.holder.rank]
"
num_cciaa_online++
if(discord_bot && discord_bot.active)
to_chat(src, "Adminhelps are also sent to Discord. If no admins are available in game try anyway and an admin on Discord may see it and respond.")
msg = "Current Admins ([num_admins_online]):
" + msg
if(config.show_mods)
msg += "
Current Moderators ([num_mods_online]):
" + modmsg
if (config.show_auxiliary_roles)
if (num_cciaa_online)
msg += "
Current CCIA Agents ([num_cciaa_online]):
" + cciaamsg
if(num_devs_online)
msg += "
Current Developers ([num_devs_online]):
" + devmsg
var/datum/browser/staff_win = new(usr, "staffwho", "Staff Who", 450, 500)
staff_win.set_content(msg)
staff_win.open()