/client/verb/who() set name = "Who" set category = "OOC" var/msg = "Current Players:\n" var/list/Lines = list() if(holder) for(var/client/C in clients) var/entry = "\t[C.key]" if(C.holder && C.holder.fakekey) entry += " (as [C.holder.fakekey])" entry += " - Playing as [C.mob.real_name]" switch(C.mob.stat) if(UNCONSCIOUS) entry += " - Unconscious" if(DEAD) if(isobserver(C.mob)) var/mob/dead/observer/O = C.mob if(O.started_as_observer) entry += " - Observing" else entry += " - DEAD" else entry += " - DEAD" if(is_special_character(C.mob)) entry += " - Antagonist" entry += " (?)" Lines += entry else for(var/client/C in clients) if(C.holder && C.holder.fakekey) Lines += C.holder.fakekey else Lines += C.key for(var/line in sortList(Lines)) msg += "[line]\n" msg += "Total Players: [length(Lines)]" src << msg /client/verb/adminwho() set category = "Admin" set name = "Adminwho" var/msg = "" var/num_mods_online = 0 var/num_admins_online = 0 if(holder) for(var/client/C in admins) if(R_ADMIN & C.holder.rights || !(R_MOD & C.holder.rights)) msg += "\t[C] 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/new_player)) msg += " - Lobby" else msg += " - Playing" if(C.is_afk()) msg += " (AFK)" msg += "\n" num_admins_online++ else num_mods_online++ else for(var/client/C in admins) if(R_ADMIN & C.holder.rights || !(R_MOD & C.holder.rights)) if(!C.holder.fakekey) msg += "\t[C] is a [C.holder.rank]\n" num_admins_online++ else num_mods_online++ msg = "Current Admins ([num_admins_online]):\n" + msg msg += "There are also [num_mods_online] moderators online. To view online moderators, type 'modwho'\n" src << msg /client/verb/modwho() set category = "Admin" set name = "Modwho" var/msg = "" var/num_admins_online = 0 var/num_mods_online = 0 if(holder) for(var/client/C in admins) if(R_ADMIN & C.holder.rights || !(R_MOD & C.holder.rights)) num_admins_online++ else msg += "\t[C] is a [C.holder.rank]" if(isobserver(C.mob)) msg += " - Observing" else if(istype(C.mob,/mob/new_player)) msg += " - Lobby" else msg += " - Playing" if(C.is_afk()) msg += " (AFK)" msg += "\n" num_mods_online++ else for(var/client/C in admins) if(R_ADMIN & C.holder.rights || !(R_MOD & C.holder.rights)) num_admins_online++ else msg += "\t[C] is a [C.holder.rank]\n" msg = "Current Moderators ([num_mods_online]):\n" + msg msg += "There are also [num_admins_online] admins online. To view online admins, type 'adminwho'\n" src << msg