/client/verb/who() set name = "Who" set category = "OOC" var/header = "Current Players:
" var/count var/msg var/total_num = 0 if(holder && (R_ADMIN & holder.rights || R_MOD & holder.rights || R_DEV & holder.rights)) msg += "" // table header msg += "" msg += "" msg += "" msg += "" msg += "" msg += "" msg += "" msg += "" msg += "" for(var/client/client in sortKey(GLOB.clients)) msg += "" // client key msg += "" // character msg += "" // status msg += "" // account age var/age if(isnum(client.player_age)) age = client.player_age else age = 0 if(age <= 1) age = "[age]" else if(age < 10) age = "[age]" msg += "" // ping if((R_ADMIN & holder.rights) || (R_DEV & holder.rights)) msg += "" else msg += "" // antag if(is_special_character(client.mob)) msg += "" else msg += "" // more info button msg += "" total_num++ msg += "" msg += "
Client KeyCharacterStatusAge
[client.key]" if(client.holder && client.holder.fakekey) msg += " (as [client.holder.fakekey])" msg += "[client.mob.real_name]" switch(client.mob.stat) if(UNCONSCIOUS) msg += "Unconscious" if(DEAD) if(isobserver(client.mob)) var/mob/abstract/ghost/observer/O = client.mob if(O.started_as_observer) msg += "Observing" else msg += "DEAD" else if(isstoryteller(client.mob)) msg += "STORYTELLING" else msg += "DEAD" msg += "[age][round(client.avgping, 1)]msAntagonist?
" else for(var/client/client in sortKey(GLOB.clients)) if(client.holder && client.holder.fakekey) msg += client.holder.fakekey else msg += client.key total_num++ msg += "
" count = "Total Players: [total_num]
" msg = header + count + msg 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 GLOB.staff) var/client/client = s if(R_ADMIN & client.holder.rights) //Used to determine who shows up in admin rows if(client.holder.fakekey && !(R_ADMIN & holder.rights || R_MOD & holder.rights)) //Mentors can't see stealthmins continue msg += "\t[client.key] is a [client.holder.rank]" if(client.holder.fakekey) msg += " (as [client.holder.fakekey])" if(isobserver(client.mob)) msg += " - Observing" else if(isnewplayer(client.mob)) msg += " - Lobby" else if(isstoryteller(client.mob)) msg += "- Storytelling" else msg += " - Playing" if(client.is_afk()) msg += " (AFK)" msg += "
" num_admins_online++ else if(R_MOD & client.holder.rights) //Who shows up in mod/mentor rows. modmsg += "\t[client.key] is a [client.holder.rank]" if(isobserver(client.mob)) modmsg += " - Observing" else if(isnewplayer(client.mob)) modmsg += " - Lobby" else if(isstoryteller(client.mob)) modmsg += "- Storytelling" else modmsg += " - Playing" if(client.is_afk()) modmsg += " (AFK)" modmsg += "
" num_mods_online++ else if (R_CCIAA & client.holder.rights) cciaamsg += "\t[client.key]" if(isobserver(client.mob)) cciaamsg += " - Observing" else if(isnewplayer(client.mob)) cciaamsg += " - Lobby" else if(isstoryteller(client.mob)) cciaamsg += "- Storytelling" else cciaamsg += " - Playing" if (client.is_afk()) cciaamsg += " (AFK)" cciaamsg += "
" num_cciaa_online++ else if(client.holder.rights & R_DEV) devmsg += "\t[client.key] is a [client.holder.rank]" if(isobserver(client.mob)) devmsg += " - Observing" else if(isnewplayer(client.mob)) devmsg += " - Lobby" else if(isstoryteller(client.mob)) devmsg += "- Storytelling" else devmsg += " - Playing" if(client.is_afk()) devmsg += " (AFK)" devmsg += "
" num_devs_online++ else for(var/s in GLOB.staff) var/client/client = s if(R_ADMIN & client.holder.rights) if(!client.holder.fakekey) if(client.is_afk()) msg += "\t[client.key] is a [client.holder.rank] (AFK)
" else msg += "\t[client.key] is a [client.holder.rank]
" num_admins_online++ else if (R_MOD & client.holder.rights) if(client.is_afk()) modmsg += "\t[client.key] is a [client.holder.rank] (AFK)
" else modmsg += "\t[client.key] is a [client.holder.rank]
" num_mods_online++ else if(client.holder.rights & R_DEV) if(client.is_afk()) devmsg += "\t[client.key] is a [client.holder.rank] (AFK)
" else devmsg += "\t[client.key] is a [client.holder.rank]
" num_devs_online++ else if (R_CCIAA & client.holder.rights) if(client.is_afk()) cciaamsg += "\t[client.key] is a [client.holder.rank] (AFK)
" else cciaamsg += "\t[client.key] is a [client.holder.rank]
" num_cciaa_online++ if(SSdiscord && SSdiscord.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(GLOB.config.show_mods) msg += "
Current Moderators ([num_mods_online]):
" + modmsg if (GLOB.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()