diff --git a/modular_citadel/code/modules/client/verbs/who.dm b/modular_citadel/code/modules/client/verbs/who.dm index 091dd7bf79..8000e80f84 100644 --- a/modular_citadel/code/modules/client/verbs/who.dm +++ b/modular_citadel/code/modules/client/verbs/who.dm @@ -28,28 +28,37 @@ var/msg = "" var/list/Lines = list() + var/list/assembled = list() + var/admin_mode = check_rights_for(src, R_ADMIN) && isobserver(mob) + if(admin_mode) + log_admin("[key_name(usr)] checked advanced who in-round") if(length(GLOB.admins)) Lines += "Admins:" for(var/X in GLOB.admins) var/client/C = X if(C && C.holder && !C.holder.fakekey) - Lines += "\t [C.key][show_admin_info(C)] ([round(C.avgping, 1)]ms)" + assembled += "\t [C.key][admin_mode? "[show_admin_info(C)]":""] ([round(C.avgping, 1)]ms)" + Lines += sortList(assembled) + assembled.len = 0 if(length(GLOB.mentors)) - Lines += "Mentors:" + Lines += "Mentors:"https://github.com/Citadel-Station-13/Citadel-Station-13 for(var/X in GLOB.mentors) var/client/C = X - if(C) - Lines += "\t [C.key][show_admin_info(C)] ([round(C.avgping, 1)]ms)" - + if(C && (!C.holder || (C.holder && !C.holder.fakekey))) //>using stuff this complex instead of just using if/else lmao + assembled += "\t [C.key][admin_mode? "[show_admin_info(C)]":""] ([round(C.avgping, 1)]ms)" + Lines += sortList(assembled) + assembled.len = 0 Lines += "Players:" for(var/X in sortList(GLOB.clients)) var/client/C = X - if(!C) continue + if(!C) + continue var/key = C.key if(C.holder && C.holder.fakekey) key = C.holder.fakekey - Lines += "\t [key][show_admin_info(C)] ([round(C.avgping, 1)]ms)" - + assembled += "\t [key][admin_mode? "[show_admin_info(C)]":""] ([round(C.avgping, 1)]ms)" + Lines += sortList(assembled) + for(var/line in Lines) msg += "[line]\n" @@ -60,9 +69,6 @@ if(!C) return "" - if(!check_rights_for(src, R_ADMIN)) - return "" - var/entry = "" if(C.holder && C.holder.fakekey) entry += " (as [C.holder.fakekey])"