/datum/admin_help var/handler var/list/_interactions_player //Let the initiator know their ahelp is being handled /datum/admin_help/proc/HandleIssue(key_name = key_name_admin(usr)) if(state != AHELP_ACTIVE) return //SKYRAT EDIT ADDITION BEGIN - ADMIN if(handler && handler != usr.ckey) var/response = alert(usr, "This ticket is already being handled by [handler]. Do you want to continue?", "Ticket already assigned", "Yes", "No") if(!response || response == "No") return //SKYRAT EDIT ADDITION END var/msg = "Your ticket is now being handled by [usr?.client?.holder?.fakekey? usr.client.holder.fakekey : "an administrator"]! Please wait while they type their response and/or gather relevant information." if(initiator) to_chat(initiator, msg) SSblackbox.record_feedback("tally", "ahelp_stats", 1, "handling") msg = "Ticket [TicketHref("#[id]")] is being handled by [key_name]" message_admins(msg) log_admin_private(msg) AddInteraction("Being handled by [key_name]") AddInteractionPlayer("Being handled by [key_name_admin(usr, FALSE)]") handler = "[usr.ckey]" /datum/admin_help/proc/PlayerTicketPanel() var/list/dat = list("Player Ticket") dat += "State: " switch(state) if(AHELP_ACTIVE) dat += "OPEN" if(AHELP_RESOLVED) dat += "RESOLVED" if(AHELP_CLOSED) dat += "CLOSED" else dat += "UNKNOWN" dat += "

Opened at: [gameTimestamp("hh:mm:ss", opened_at)] (Approx [DisplayTimeText(world.time - opened_at)] ago)" if(closed_at) dat += "
Closed at: [gameTimestamp("hh:mm:ss", closed_at)] (Approx [DisplayTimeText(world.time - closed_at)] ago)" dat += "

" dat += "
Log:

" for(var/I in _interactions_player) dat += "[I]
" usr << browse(dat.Join(), "window=ahelp[id];size=620x480") /datum/admin_help/proc/AddInteractionPlayer(formatted_message) _interactions_player += "[time_stamp()]: [formatted_message]"