From 324f54bb494dc6be1172cf38a2cddf020180aef1 Mon Sep 17 00:00:00 2001 From: Fikou <23585223+Fikou@users.noreply.github.com> Date: Tue, 7 Sep 2021 19:40:35 +0200 Subject: [PATCH] individual logging is now visible even with client logged out (#61269) individual logging now relies on the global list of player details, instead of checking that client's player details which doesnt work if client is logged off --- code/__DEFINES/logging.dm | 2 +- code/modules/admin/verbs/admingame.dm | 4 +-- .../modules/admin/verbs/individual_logging.dm | 28 ++++++++++--------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm index fda10bc6034..0fb2ca83db6 100644 --- a/code/__DEFINES/logging.dm +++ b/code/__DEFINES/logging.dm @@ -50,5 +50,5 @@ #define INDIVIDUAL_OWNERSHIP_LOG (LOG_OWNERSHIP) #define INDIVIDUAL_SHOW_ALL_LOG (LOG_ATTACK | LOG_SAY | LOG_WHISPER | LOG_EMOTE | LOG_DSAY | LOG_PDA | LOG_CHAT | LOG_COMMENT | LOG_TELECOMMS | LOG_OOC | LOG_ADMIN | LOG_OWNERSHIP | LOG_GAME | LOG_ADMIN_PRIVATE | LOG_ASAY | LOG_MECHA | LOG_VIRUS | LOG_CLONING | LOG_SHUTTLE | LOG_ECON | LOG_VICTIM) -#define LOGSRC_CLIENT "Client" +#define LOGSRC_CKEY "Ckey" #define LOGSRC_MOB "Mob" diff --git a/code/modules/admin/verbs/admingame.dm b/code/modules/admin/verbs/admingame.dm index b2856939f29..1b136d4ef68 100644 --- a/code/modules/admin/verbs/admingame.dm +++ b/code/modules/admin/verbs/admingame.dm @@ -59,8 +59,8 @@ body += "FLW - " //Default to client logs if available var/source = LOGSRC_MOB - if(M.client) - source = LOGSRC_CLIENT + if(M.ckey) + source = LOGSRC_CKEY body += "LOGS\]
" body += "Mob type = [M.type]

" diff --git a/code/modules/admin/verbs/individual_logging.dm b/code/modules/admin/verbs/individual_logging.dm index 9ad07ac1b25..2b0942c95be 100644 --- a/code/modules/admin/verbs/individual_logging.dm +++ b/code/modules/admin/verbs/individual_logging.dm @@ -1,4 +1,4 @@ -/proc/show_individual_logging_panel(mob/M, source = LOGSRC_CLIENT, type = INDIVIDUAL_ATTACK_LOG) +/proc/show_individual_logging_panel(mob/M, source = LOGSRC_CKEY, type = INDIVIDUAL_ATTACK_LOG) if(!M || !ismob(M)) return @@ -6,23 +6,23 @@ //Add client links var/list/dat = list() - if(M.client) - dat += "

Client

" + if(M.ckey) + dat += "

Ckey

" dat += "
" - dat += individual_logging_panel_link(M, INDIVIDUAL_ATTACK_LOG, LOGSRC_CLIENT, "Attack Log", source, ntype) + dat += individual_logging_panel_link(M, INDIVIDUAL_ATTACK_LOG, LOGSRC_CKEY, "Attack Log", source, ntype) dat += " | " - dat += individual_logging_panel_link(M, INDIVIDUAL_SAY_LOG, LOGSRC_CLIENT, "Say Log", source, ntype) + dat += individual_logging_panel_link(M, INDIVIDUAL_SAY_LOG, LOGSRC_CKEY, "Say Log", source, ntype) dat += " | " - dat += individual_logging_panel_link(M, INDIVIDUAL_EMOTE_LOG, LOGSRC_CLIENT, "Emote Log", source, ntype) + dat += individual_logging_panel_link(M, INDIVIDUAL_EMOTE_LOG, LOGSRC_CKEY, "Emote Log", source, ntype) dat += " | " - dat += individual_logging_panel_link(M, INDIVIDUAL_COMMS_LOG, LOGSRC_CLIENT, "Comms Log", source, ntype) + dat += individual_logging_panel_link(M, INDIVIDUAL_COMMS_LOG, LOGSRC_CKEY, "Comms Log", source, ntype) dat += " | " - dat += individual_logging_panel_link(M, INDIVIDUAL_OOC_LOG, LOGSRC_CLIENT, "OOC Log", source, ntype) + dat += individual_logging_panel_link(M, INDIVIDUAL_OOC_LOG, LOGSRC_CKEY, "OOC Log", source, ntype) dat += " | " - dat += individual_logging_panel_link(M, INDIVIDUAL_SHOW_ALL_LOG, LOGSRC_CLIENT, "Show All", source, ntype) + dat += individual_logging_panel_link(M, INDIVIDUAL_SHOW_ALL_LOG, LOGSRC_CKEY, "Show All", source, ntype) dat += "
" else - dat += "

No client attached to mob

" + dat += "

No ckey attached to mob

" dat += "
" dat += "

Mob

" @@ -43,9 +43,11 @@ dat += "
" - var/log_source = M.logging; - if(source == LOGSRC_CLIENT && M.client) //if client doesn't exist just fall back to the mob log - log_source = M.client.player_details.logging //should exist, if it doesn't that's a bug, don't check for it not existing + var/log_source = M.logging + if(source == LOGSRC_CKEY && M.ckey) + var/datum/player_details/details = GLOB.player_details[M.ckey] + if(details) //we dont want to runtime if an admin aghosted + log_source = details.logging var/list/concatenated_logs = list() for(var/log_type in log_source) var/nlog_type = text2num(log_type)