From ec94beed6b42c236b2f58e7f1695c3176201af82 Mon Sep 17 00:00:00 2001 From: Schnayy Date: Fri, 26 Feb 2021 08:58:53 -0600 Subject: [PATCH 1/4] Removes ping subsystem that was breaking chat --- code/__defines/subsystems.dm | 3 + code/game/verbs/advanced_who.dm | 4 + code/game/verbs/who.dm | 191 ++++++++++++++++++++++++++++++ code/modules/client/verbs/ping.dm | 12 ++ 4 files changed, 210 insertions(+) create mode 100644 code/modules/client/verbs/ping.dm diff --git a/code/__defines/subsystems.dm b/code/__defines/subsystems.dm index d0a5d72c86f..0f927bb4946 100644 --- a/code/__defines/subsystems.dm +++ b/code/__defines/subsystems.dm @@ -57,7 +57,10 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G #define INIT_ORDER_SKYBOX 30 #define INIT_ORDER_MAPPING 25 #define INIT_ORDER_DECALS 20 +<<<<<<< HEAD #define INIT_ORDER_PLANTS 18 // Must initialize before atoms. +======= +>>>>>>> ebc5263... Merge pull request #7920 from Atermonera/ping_verb_fix #define INIT_ORDER_JOB 17 #define INIT_ORDER_ALARM 16 // Must initialize before atoms. #define INIT_ORDER_ATOMS 15 diff --git a/code/game/verbs/advanced_who.dm b/code/game/verbs/advanced_who.dm index 4498136b2b3..221939cd50c 100644 --- a/code/game/verbs/advanced_who.dm +++ b/code/game/verbs/advanced_who.dm @@ -85,6 +85,10 @@ entry += " - In Lobby
" else entry += " - Playing
" +<<<<<<< HEAD:code/game/verbs/advanced_who.dm +======= + +>>>>>>> ebc5263... Merge pull request #7920 from Atermonera/ping_verb_fix:code/modules/client/verbs/advanced_who.dm Lines += entry msg += "" diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 3cb25b702e4..5c6f1e15452 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD:code/game/verbs/who.dm /client/verb/who() set name = "Who" @@ -206,3 +207,193 @@ msg += "\nAdminhelps are also sent to Discord. If no admins are available in game try anyway and an admin on Discord may see it and respond." return msg +======= + +/client/verb/who() + set name = "Who" + set category = "OOC" + + var/msg = "Current Players:\n" + + var/list/Lines = list() + + if(holder && (R_ADMIN & holder.rights || R_MOD & holder.rights)) + for(var/client/C in GLOB.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/observer/dead/O = C.mob + if(O.started_as_observer) + entry += " - Observing" + else + entry += " - DEAD" + else + entry += " - DEAD" + + var/age + if(isnum(C.player_age)) + age = C.player_age + else + age = 0 + + if(age <= 1) + age = "[age]" + else if(age < 10) + age = "[age]" + + entry += " - [age]" + + if(is_special_character(C.mob)) + entry += " - Antagonist" + + if(C.is_afk()) + var/seconds = C.last_activity_seconds() + entry += " (AFK - " + entry += "[round(seconds / 60)] minutes, " + entry += "[seconds % 60] seconds)" + + entry += " (?)" + Lines += entry + else + for(var/client/C in GLOB.clients) + var/entry + if(C.holder && C.holder.fakekey) + entry = C.holder.fakekey + else + entry = C.key + Lines += entry + + for(var/line in sortList(Lines)) + msg += "[line]\n" + + msg += "Total Players: [length(Lines)]" + to_chat(src,msg) + +/client/verb/staffwho() + set category = "Admin" + set name = "Staffwho" + + var/msg = "" + var/modmsg = "" + var/devmsg = "" + var/eventMmsg = "" + var/num_mods_online = 0 + var/num_admins_online = 0 + var/num_devs_online = 0 + var/num_event_managers_online = 0 + if(holder) + for(var/client/C in admins) + if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights && !R_EVENT & C.holder.rights)) //Used to determine who shows up in admin rows + + if(C.holder.fakekey && (!R_ADMIN & holder.rights && !R_MOD & holder.rights)) //Event Managerss can't see stealthmins + continue + + 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()) + var/seconds = C.last_activity_seconds() + msg += " (AFK - " + msg += "[round(seconds / 60)] minutes, " + msg += "[seconds % 60] seconds)" + msg += "\n" + + num_admins_online++ + else if(R_MOD & C.holder.rights) //Who shows up in mod rows. + modmsg += "\t[C] is a [C.holder.rank]" + + if(isobserver(C.mob)) + modmsg += " - Observing" + else if(istype(C.mob,/mob/new_player)) + modmsg += " - Lobby" + else + modmsg += " - Playing" + + if(C.is_afk()) + var/seconds = C.last_activity_seconds() + modmsg += " (AFK - " + modmsg += "[round(seconds / 60)] minutes, " + modmsg += "[seconds % 60] seconds)" + modmsg += "\n" + num_mods_online++ + + else if(R_SERVER & C.holder.rights) + devmsg += "\t[C] is a [C.holder.rank]" + if(isobserver(C.mob)) + devmsg += " - Observing" + else if(istype(C.mob,/mob/new_player)) + devmsg += " - Lobby" + else + devmsg += " - Playing" + + if(C.is_afk()) + var/seconds = C.last_activity_seconds() + devmsg += "(AFK - " + devmsg += "[round(seconds / 60)] minutes, " + devmsg += "[seconds % 60] seconds)" + devmsg += "\n" + num_devs_online++ + + else if(R_EVENT & C.holder.rights) + eventMmsg += "\t[C] is a [C.holder.rank]" + if(isobserver(C.mob)) + eventMmsg += " - Observing" + else if(istype(C.mob,/mob/new_player)) + eventMmsg += " - Lobby" + else + eventMmsg += " - Playing" + + if(C.is_afk()) + var/seconds = C.last_activity_seconds() + eventMmsg += " (AFK - " + eventMmsg += "[round(seconds / 60)] minutes, " + eventMmsg += "[seconds % 60] seconds)" + eventMmsg += "\n" + num_event_managers_online++ + + else + for(var/client/C in admins) + if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights && !R_EVENT & C.holder.rights)) + if(!C.holder.fakekey) + msg += "\t[C] is a [C.holder.rank]\n" + num_admins_online++ + else if (R_MOD & C.holder.rights) + modmsg += "\t[C] is a [C.holder.rank]\n" + num_mods_online++ + else if (R_SERVER & C.holder.rights) + devmsg += "\t[C] is a [C.holder.rank]\n" + num_devs_online++ + else if (R_EVENT & C.holder.rights) + eventMmsg += "\t[C] is a [C.holder.rank]\n" + num_event_managers_online++ + + 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.") + msg = "Current Admins ([num_admins_online]):\n" + msg + + if(config.show_mods) + msg += "\n Current Moderators ([num_mods_online]):\n" + modmsg + + if(config.show_devs) + msg += "\n Current Developers ([num_devs_online]):\n" + devmsg + + if(config.show_event_managers) + msg += "\n Current Event Managers ([num_event_managers_online]):\n" + eventMmsg + + to_chat(src,msg) +>>>>>>> ebc5263... Merge pull request #7920 from Atermonera/ping_verb_fix:code/modules/client/verbs/who.dm diff --git a/code/modules/client/verbs/ping.dm b/code/modules/client/verbs/ping.dm new file mode 100644 index 00000000000..8213daa7505 --- /dev/null +++ b/code/modules/client/verbs/ping.dm @@ -0,0 +1,12 @@ +/client/proc/pingfromtime(time) + return ((world.time+world.tick_lag*world.tick_usage/100)-time)*100 + +/client/verb/display_ping(time as num) + set instant = TRUE + set name = ".display_ping" + to_chat(src, "Round trip ping took [round(pingfromtime(time),1)]ms") + +/client/verb/ping() + set name = "Ping" + set category = "OOC" + winset(src, null, "command=.display_ping+[world.time+world.tick_lag*world.tick_usage/100]") \ No newline at end of file From 4ac86b68c9a2648a14c8577dbf9e2370ecae7d50 Mon Sep 17 00:00:00 2001 From: Novacat <35587478+Novacat@users.noreply.github.com> Date: Fri, 26 Feb 2021 10:16:41 -0500 Subject: [PATCH 2/4] Update subsystems.dm --- code/__defines/subsystems.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/__defines/subsystems.dm b/code/__defines/subsystems.dm index 0f927bb4946..d0a5d72c86f 100644 --- a/code/__defines/subsystems.dm +++ b/code/__defines/subsystems.dm @@ -57,10 +57,7 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G #define INIT_ORDER_SKYBOX 30 #define INIT_ORDER_MAPPING 25 #define INIT_ORDER_DECALS 20 -<<<<<<< HEAD #define INIT_ORDER_PLANTS 18 // Must initialize before atoms. -======= ->>>>>>> ebc5263... Merge pull request #7920 from Atermonera/ping_verb_fix #define INIT_ORDER_JOB 17 #define INIT_ORDER_ALARM 16 // Must initialize before atoms. #define INIT_ORDER_ATOMS 15 From a454e11d25188956a10ace4a3ae8e9e64e13ad33 Mon Sep 17 00:00:00 2001 From: Novacat <35587478+Novacat@users.noreply.github.com> Date: Fri, 26 Feb 2021 10:17:31 -0500 Subject: [PATCH 3/4] Update advanced_who.dm --- code/game/verbs/advanced_who.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/game/verbs/advanced_who.dm b/code/game/verbs/advanced_who.dm index 221939cd50c..8cbf3b638e5 100644 --- a/code/game/verbs/advanced_who.dm +++ b/code/game/verbs/advanced_who.dm @@ -85,10 +85,7 @@ entry += " - In Lobby
" else entry += " - Playing
" -<<<<<<< HEAD:code/game/verbs/advanced_who.dm -======= ->>>>>>> ebc5263... Merge pull request #7920 from Atermonera/ping_verb_fix:code/modules/client/verbs/advanced_who.dm Lines += entry msg += "
" @@ -97,4 +94,4 @@ msg += "
" msg += "Total Players: [length(Lines)]" msg = "" + msg + "" - to_chat(src, msg) \ No newline at end of file + to_chat(src, msg) From edf7931df1046174e14748c37345468f6050746e Mon Sep 17 00:00:00 2001 From: Novacat <35587478+Novacat@users.noreply.github.com> Date: Sun, 28 Feb 2021 17:50:11 -0500 Subject: [PATCH 4/4] Update who.dm --- code/game/verbs/who.dm | 193 +---------------------------------------- 1 file changed, 1 insertion(+), 192 deletions(-) diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 5c6f1e15452..385a3230200 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -1,5 +1,3 @@ -<<<<<<< HEAD:code/game/verbs/who.dm - /client/verb/who() set name = "Who" set category = "OOC" @@ -207,193 +205,4 @@ msg += "\nAdminhelps are also sent to Discord. If no admins are available in game try anyway and an admin on Discord may see it and respond." return msg -======= - -/client/verb/who() - set name = "Who" - set category = "OOC" - - var/msg = "Current Players:\n" - - var/list/Lines = list() - - if(holder && (R_ADMIN & holder.rights || R_MOD & holder.rights)) - for(var/client/C in GLOB.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/observer/dead/O = C.mob - if(O.started_as_observer) - entry += " - Observing" - else - entry += " - DEAD" - else - entry += " - DEAD" - - var/age - if(isnum(C.player_age)) - age = C.player_age - else - age = 0 - - if(age <= 1) - age = "[age]" - else if(age < 10) - age = "[age]" - - entry += " - [age]" - - if(is_special_character(C.mob)) - entry += " - Antagonist" - - if(C.is_afk()) - var/seconds = C.last_activity_seconds() - entry += " (AFK - " - entry += "[round(seconds / 60)] minutes, " - entry += "[seconds % 60] seconds)" - - entry += " (?)" - Lines += entry - else - for(var/client/C in GLOB.clients) - var/entry - if(C.holder && C.holder.fakekey) - entry = C.holder.fakekey - else - entry = C.key - Lines += entry - - for(var/line in sortList(Lines)) - msg += "[line]\n" - - msg += "Total Players: [length(Lines)]" - to_chat(src,msg) - -/client/verb/staffwho() - set category = "Admin" - set name = "Staffwho" - - var/msg = "" - var/modmsg = "" - var/devmsg = "" - var/eventMmsg = "" - var/num_mods_online = 0 - var/num_admins_online = 0 - var/num_devs_online = 0 - var/num_event_managers_online = 0 - if(holder) - for(var/client/C in admins) - if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights && !R_EVENT & C.holder.rights)) //Used to determine who shows up in admin rows - - if(C.holder.fakekey && (!R_ADMIN & holder.rights && !R_MOD & holder.rights)) //Event Managerss can't see stealthmins - continue - - 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()) - var/seconds = C.last_activity_seconds() - msg += " (AFK - " - msg += "[round(seconds / 60)] minutes, " - msg += "[seconds % 60] seconds)" - msg += "\n" - - num_admins_online++ - else if(R_MOD & C.holder.rights) //Who shows up in mod rows. - modmsg += "\t[C] is a [C.holder.rank]" - - if(isobserver(C.mob)) - modmsg += " - Observing" - else if(istype(C.mob,/mob/new_player)) - modmsg += " - Lobby" - else - modmsg += " - Playing" - - if(C.is_afk()) - var/seconds = C.last_activity_seconds() - modmsg += " (AFK - " - modmsg += "[round(seconds / 60)] minutes, " - modmsg += "[seconds % 60] seconds)" - modmsg += "\n" - num_mods_online++ - - else if(R_SERVER & C.holder.rights) - devmsg += "\t[C] is a [C.holder.rank]" - if(isobserver(C.mob)) - devmsg += " - Observing" - else if(istype(C.mob,/mob/new_player)) - devmsg += " - Lobby" - else - devmsg += " - Playing" - - if(C.is_afk()) - var/seconds = C.last_activity_seconds() - devmsg += "(AFK - " - devmsg += "[round(seconds / 60)] minutes, " - devmsg += "[seconds % 60] seconds)" - devmsg += "\n" - num_devs_online++ - - else if(R_EVENT & C.holder.rights) - eventMmsg += "\t[C] is a [C.holder.rank]" - if(isobserver(C.mob)) - eventMmsg += " - Observing" - else if(istype(C.mob,/mob/new_player)) - eventMmsg += " - Lobby" - else - eventMmsg += " - Playing" - - if(C.is_afk()) - var/seconds = C.last_activity_seconds() - eventMmsg += " (AFK - " - eventMmsg += "[round(seconds / 60)] minutes, " - eventMmsg += "[seconds % 60] seconds)" - eventMmsg += "\n" - num_event_managers_online++ - - else - for(var/client/C in admins) - if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights && !R_EVENT & C.holder.rights)) - if(!C.holder.fakekey) - msg += "\t[C] is a [C.holder.rank]\n" - num_admins_online++ - else if (R_MOD & C.holder.rights) - modmsg += "\t[C] is a [C.holder.rank]\n" - num_mods_online++ - else if (R_SERVER & C.holder.rights) - devmsg += "\t[C] is a [C.holder.rank]\n" - num_devs_online++ - else if (R_EVENT & C.holder.rights) - eventMmsg += "\t[C] is a [C.holder.rank]\n" - num_event_managers_online++ - - 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.") - msg = "Current Admins ([num_admins_online]):\n" + msg - - if(config.show_mods) - msg += "\n Current Moderators ([num_mods_online]):\n" + modmsg - - if(config.show_devs) - msg += "\n Current Developers ([num_devs_online]):\n" + devmsg - - if(config.show_event_managers) - msg += "\n Current Event Managers ([num_event_managers_online]):\n" + eventMmsg - - to_chat(src,msg) ->>>>>>> ebc5263... Merge pull request #7920 from Atermonera/ping_verb_fix:code/modules/client/verbs/who.dm +