/client/verb/who() set name = "Who" set category = "OOC" var/list/Lines = list() var/msg = "--------\n" if(length(admins) > 0) Lines += "Admins:" for(var/client/C in sortList(admins)) if(C.holder) if(!C.holder.fakekey) Lines += "[C.key][show_info(C)]" if(length(mentors) > 0) Lines += "Mentors:" for(var/client/C in sortList(clients)) var/mentor = mentor_datums[C.ckey] if(mentor) Lines += "[C.key][show_info(C)]" var/player_text = "" var/display_count = 0 //Used to detect as to whether or not we should display the players list for(var/client/C in sortList(clients)) if(C.holder) if(C.holder.fakekey) display_count++ player_text += "[C.holder.fakekey][show_info(C)]\n" else if(!check_mentor_other(C)) display_count++ player_text += "[C.key][show_info(C)]\n" if(display_count > 0) Lines += "Players:" Lines += player_text for(var/line in Lines) msg += "[line]\n" msg += "Total Players: [length(clients)]\n" msg += "--------" src << msg /client/proc/show_info(var/client/C) if(!C) return "" if(!src.holder) return "" var/entry = "\t[C.key]" if(C.holder && C.holder.fakekey) entry += " (as [C.holder.fakekey])" if (isnewplayer(C.mob)) entry += " - In Lobby" else 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 += " (?)" entry += " ([round(C.avgping, 1)]ms)" return entry /client/verb/adminwho() set category = "Admin" set name = "Adminwho" var/msg = "Current Admins:\n" if(holder) for(var/client/C in admins) 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" else for(var/client/C in admins) if(!C.holder.fakekey) msg += "\t[C] is a [C.holder.rank]\n" src << msg /client/verb/mentorwho() set category = "Mentor" set name = "Mentorwho" var/msg = "Current Mentors:\n" for(var/client/C in mentors) var/suffix = "" if(holder) if(isobserver(C.mob)) suffix += " - Observing" else if(istype(C.mob,/mob/new_player)) suffix += " - Lobby" else suffix += " - Playing" if(C.is_afk()) suffix += " (AFK)" msg += "\t[C][suffix]\n" src << msg