From 5ed5efd336ea23e38ac4630aabd1392c00a91b8d Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Fri, 28 Dec 2018 16:25:51 +0100 Subject: [PATCH] Added the safe message proc --- code/controllers/subsystem/tickets.dm | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/code/controllers/subsystem/tickets.dm b/code/controllers/subsystem/tickets.dm index 41eef735cda..b8b1f8410a0 100644 --- a/code/controllers/subsystem/tickets.dm +++ b/code/controllers/subsystem/tickets.dm @@ -315,6 +315,17 @@ UI STUFF popup.set_content(dat) popup.open() +//Sends a message to the target safely. If the target left the server it won't throw a runtime. Also accepts lists of text +/datum/controller/subsystem/tickets/proc/to_chat_safe(target, text) + if(!target) + return FALSE + if(istype(text, /list)) + for(var/T in text) + to_chat(target, T) + else + to_chat(target, text) + return TRUE + /datum/controller/subsystem/tickets/Topic(href, href_list) if(href_list["refresh"]) @@ -345,14 +356,14 @@ UI STUFF var/indexNum = text2num(href_list["resolve"]) if(SStickets.resolveTicket(indexNum)) message_adminTicket("[usr.client] / ([usr]) resolved admin ticket number [indexNum]") - to_chat(returnClient(indexNum), "Your admin ticket has now been resolved.") + to_chat_safe(returnClient(indexNum), "Your admin ticket has now been resolved.") showUI(usr) if(href_list["detailresolve"]) var/indexNum = text2num(href_list["detailresolve"]) if(SStickets.resolveTicket(indexNum)) message_adminTicket("[usr.client] / ([usr]) resolved admin ticket number [indexNum]") - to_chat(returnClient(indexNum), "Your admin ticket has now been resolved.") + to_chat_safe(returnClient(indexNum), "Your admin ticket has now been resolved.") showDetailUI(usr, indexNum) if(href_list["detailclose"]) @@ -361,9 +372,11 @@ UI STUFF return if(SStickets.closeTicket(indexNum)) message_adminTicket("[usr.client] / ([usr]) closed admin ticket number [indexNum]") - to_chat(returnClient(indexNum), "- AdminHelp Rejected! -") - to_chat(returnClient(indexNum), "Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting. If you asked a question, please ensure it was clear what you were asking.") - to_chat(returnClient(indexNum), "Your ticket has now been closed.") + to_chat_safe(returnClient(indexNum), list( + "- AdminHelp Rejected! -", + "Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting. If you asked a question, please ensure it was clear what you were asking.", + "Your ticket has now been closed." + )) showDetailUI(usr, indexNum) if(href_list["detailreopen"]) @@ -376,5 +389,5 @@ UI STUFF var/indexNum = text2num(href_list["assignadmin"]) if(SStickets.assignAdminToTicket(usr.client, indexNum)) message_adminTicket("[usr.client] / ([usr]) has taken ticket number [indexNum]") - to_chat(returnClient(indexNum), "Your ticket is being handled by [usr.client].") + to_chat_safe(returnClient(indexNum), "Your ticket is being handled by [usr.client].") showDetailUI(usr, indexNum)