From 8bf640ab2b96810fb99144806ab65ee91605479e Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 13 May 2020 15:48:35 -0400 Subject: [PATCH] Rearrange staffwho bot command output --- code/game/verbs/who.dm | 35 -------------------- code/modules/tgs/v5/chat_commands.dm | 48 ++++++++++++++++++++++++---- 2 files changed, 41 insertions(+), 42 deletions(-) diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 342ded7a8e..3cb25b702e 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -70,41 +70,6 @@ var/message = get_staffwho_message(holder) to_chat(src, message) -/proc/get_staffwho_numbers() - var/admin_count = 0 - var/mod_count = 0 - var/dev_count = 0 - var/other_count = 0 - var/list/keys = list() - - for(var/client/C in GLOB.admins) - var/keymsg = "[C.key]" - if(C.is_afk()) - keymsg += " *(AFK)*" - else if(C.holder.fakekey) - keymsg += " *(Stealth)*" - else if(isobserver(C.mob)) - keymsg += " *(Ghost)*" - else if(isnewplayer(C.mob)) - keymsg += " *(Lobby)*" - else - keymsg += " *(Ingame)*" - keys += keymsg - - if(R_ADMIN & C.holder.rights && R_BAN & C.holder.rights) // R_ADMIN and R_BAN apparently an admin makes - admin_count++ - - else if(R_ADMIN & C.holder.rights && !(R_SERVER & C.holder.rights)) // R_ADMIN but not R_SERVER makes a moderator - mod_count++ - - else if(R_SERVER & C.holder.rights) // R_SERVER makes a dev - dev_count++ - - else // No R_ADMIN&&R_BAN, R_ADMIN!R_BAN, R_SERVER, must be a GM or something - other_count++ - - return list("Admins" = admin_count, "Mods" = mod_count, "Devs" = dev_count, "Other" = other_count, "keys" = keys) - // VOREStation Edit - This whole proc has various vorestation edits throughout. Practically every other line. /proc/get_staffwho_message(datum/admins/holder) var/msg = "" diff --git a/code/modules/tgs/v5/chat_commands.dm b/code/modules/tgs/v5/chat_commands.dm index ff91a39271..441c68d2db 100644 --- a/code/modules/tgs/v5/chat_commands.dm +++ b/code/modules/tgs/v5/chat_commands.dm @@ -21,10 +21,44 @@ /datum/tgs_chat_command/staffwho/Run(datum/tgs_chat_user/sender, params) var/message = "Current online staff:\n" - var/list/counts = get_staffwho_numbers() - var/list/keys = counts["keys"] - counts -= "keys" // Remove the 'keys' list as we don't want to iterate onto it here. We can hold the list. - for(var/key in counts) - message += "**[key]:** [counts[key]]\n" - message += "**Online:** [english_list(keys, "***!!Nobody!!***")]" - return message + + var/list/admin_keys = list() + var/list/mod_keys = list() + var/list/dev_keys = list() + var/list/other_keys = list() + + var/count = 0 + + for(var/client/C in GLOB.admins) + count++ + var/keymsg = "[C.key]" + if(C.is_afk()) + keymsg += " (AFK)" + else if(C.holder.fakekey) + keymsg += " (Stealth)" + else if(isobserver(C.mob)) + keymsg += " (Ghost)" + else if(isnewplayer(C.mob)) + keymsg += " (Lobby)" + else + keymsg += " (Ingame)" + + if(R_ADMIN & C.holder.rights && R_BAN & C.holder.rights) // R_ADMIN and R_BAN apparently an admin makes + admin_keys += keymsg + + else if(R_ADMIN & C.holder.rights && !(R_SERVER & C.holder.rights)) // R_ADMIN but not R_SERVER makes a moderator + mod_keys += keymsg + + else if(R_SERVER & C.holder.rights) // R_SERVER makes a dev + dev_keys += keymsg + + else // No R_ADMIN&&R_BAN, R_ADMIN!R_BAN, R_SERVER, must be a GM or something + other_keys += keymsg + + var/admin_msg = english_list(admin_keys, "-None-") + var/mod_msg = english_list(mod_keys, "-None-") + var/dev_msg = english_list(dev_keys, "-None-") + var/other_msg = english_list(other_keys, "-None-") + + message += "**Admins:** [admin_msg]\n**Mods/GMs:** [mod_msg]\n **Devs:** [dev_msg]\n**Other:** [other_msg]\n**Total:** [count] online" + return message \ No newline at end of file