diff --git a/code/modules/client/verbs/who.dm b/code/modules/client/verbs/who.dm index f038cb081b..08854d0eee 100644 --- a/code/modules/client/verbs/who.dm +++ b/code/modules/client/verbs/who.dm @@ -66,41 +66,48 @@ var/num_admins_online = 0 var/num_devs_online = 0 var/num_event_managers_online = 0 - if(holder) - for(var/client/C in admins) - var/msg_to_use = msg - if(check_rights(R_ADMIN, FALSE, C)) // admins - if(C.holder.fakekey && check_rights(R_ADMIN|R_MOD, FALSE, src)) // Only admins and mods can see stealthmins - continue - num_admins_online++ - else if(check_rights(R_MOD, FALSE, C)) // mods - msg_to_use = modmsg - num_mods_online++ - else if(check_rights(R_SERVER, FALSE, C)) // developers - msg_to_use = devmsg - num_devs_online++ - else if(check_rights(R_EVENT, FALSE, C)) // event managers - msg_to_use = eventMmsg - num_event_managers_online++ - - msg_to_use += "\t[C] is a [C.holder.rank]" - if(holder) - if(C.holder.fakekey) - msg_to_use += " (as [C.holder.fakekey])" + for(var/client/C in admins) + var/temp = "" + var/category = R_ADMIN + if(check_rights(R_ADMIN, FALSE, C)) // admins + if(C.holder.fakekey && check_rights(R_ADMIN|R_MOD, FALSE, src)) // Only admins and mods can see stealthmins + continue + num_admins_online++ + else if(check_rights(R_MOD, FALSE, C)) // mods + category = R_MOD + num_mods_online++ + else if(check_rights(R_SERVER, FALSE, C)) // developers + category = R_SERVER + num_devs_online++ + else if(check_rights(R_EVENT, FALSE, C)) // event managers + category = R_EVENT + num_event_managers_online++ + + temp += "\t[C] is a [C.holder.rank]" + if(holder) + if(C.holder.fakekey) + temp += " (as [C.holder.fakekey])" - if(isobserver(C.mob)) - msg_to_use += " - Observing" - else if(istype(C.mob,/mob/new_player)) - msg_to_use += " - Lobby" - else - msg_to_use += " - Playing" + if(isobserver(C.mob)) + temp += " - Observing" + else if(istype(C.mob,/mob/new_player)) + temp += " - Lobby" + else + temp += " - Playing" - if(C.is_afk()) - var/seconds = C.last_activity_seconds() - msg_to_use += " (AFK - " - msg_to_use += "[round(seconds / 60)] minutes, " - msg_to_use += "[seconds % 60] seconds)" - msg_to_use += "\n" + if(C.is_afk()) + var/seconds = C.last_activity_seconds() + temp += " (AFK - [round(seconds / 60)] minutes, [seconds % 60] seconds)" + temp += "\n" + switch(category) + if(R_ADMIN) + msg += temp + if(R_MOD) + modmsg += temp + if(R_SERVER) + devmsg += temp + if(R_EVENT) + eventMmsg += temp if(config.admin_irc) to_chat(src, "Adminhelps are also sent to IRC. If no admins are available in game try anyway and an admin on IRC may see it and respond.")