diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index 3fa82a26d84..83531c9b0b9 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -279,6 +279,9 @@ /datum/pm_tracker/proc/add_message(client/title, client/sender, message, mob/user) if(!pms[title.key]) pms[title.key] = new /datum/pm_convo(title) + else if(!pms[title.key].client) + // If they DCed earlier, we need to add the client reference back + pms[title.key].client = title pms[title.key].add(sender, message) if(!open) @@ -341,11 +344,18 @@ open = TRUE /datum/pm_tracker/proc/fancy_title(title) - var/client/C = pms[title].client + var/client/C = pms[title].client || update_client(title) if(!C) return "[title] (Disconnected)" return "[key_name(C, FALSE)] ([ADMIN_QUE(C.mob,"?")]) ([ADMIN_PP(C.mob,"PP")]) ([ADMIN_VV(C.mob,"VV")]) ([ADMIN_SM(C.mob,"SM")]) ([admin_jump_link(C.mob)]) (CA)" +/datum/pm_tracker/proc/update_client(title) + var/client/C = GLOB.directory[ckey(title)] + if(C) + pms[title].client = C + return C + return null + /datum/pm_tracker/Topic(href, href_list) if(href_list["archive"]) pms[href_list["archive"]].archived = !pms[href_list["archive"]].archived