/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()