mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 04:30:44 +01:00
Admins now get a little notice if they start responding to a ticket someone else is already responding to (#62025)
This commit is contained in:
@@ -177,11 +177,13 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
/// If any admins were online when the ticket was initialized
|
||||
var/heard_by_no_admins = FALSE
|
||||
/// The collection of interactions with this ticket. Use AddInteraction() or, preferably, admin_ticket_log()
|
||||
var/list/_interactions
|
||||
var/list/ticket_interactions
|
||||
/// Statclick holder for the ticket
|
||||
var/obj/effect/statclick/ahelp/statclick
|
||||
/// Static counter used for generating each ticket ID
|
||||
var/static/ticket_counter = 0
|
||||
/// The list of clients currently responding to the opening ticket before it gets a response
|
||||
var/list/opening_responders
|
||||
|
||||
/**
|
||||
* Call this on its own to create a ticket, don't manually assign current_ticket
|
||||
@@ -214,7 +216,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
TimeoutVerb()
|
||||
|
||||
statclick = new(null, src)
|
||||
_interactions = list()
|
||||
ticket_interactions = list()
|
||||
|
||||
if(is_bwoink)
|
||||
AddInteraction("<font color='blue'>[key_name_admin(usr)] PM'd [LinkedReplyName()]</font>")
|
||||
@@ -240,7 +242,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
if(heard_by_no_admins && usr && usr.ckey != initiator_ckey)
|
||||
heard_by_no_admins = FALSE
|
||||
send2adminchat(initiator_ckey, "Ticket #[id]: Answered by [key_name(usr)]")
|
||||
_interactions += "[time_stamp()]: [formatted_message]"
|
||||
ticket_interactions += "[time_stamp()]: [formatted_message]"
|
||||
|
||||
//Removes the ahelp verb and returns it after 2 minutes
|
||||
/datum/admin_help/proc/TimeoutVerb()
|
||||
@@ -443,7 +445,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
else
|
||||
dat += "<b>DISCONNECTED</b>[FOURSPACES][ClosureLinks(ref_src)]<br>"
|
||||
dat += "<br><b>Log:</b><br><br>"
|
||||
for(var/I in _interactions)
|
||||
for(var/I in ticket_interactions)
|
||||
dat += "[I]<br>"
|
||||
|
||||
// Append any tickets also opened by this user if relevant
|
||||
|
||||
@@ -64,9 +64,19 @@
|
||||
|
||||
var/datum/admin_help/AH = C.current_ticket
|
||||
|
||||
var/message_prompt = "Message:"
|
||||
|
||||
if(AH?.opening_responders && length(AH.ticket_interactions) == 1)
|
||||
SEND_SOUND(src, sound('sound/machines/buzz-sigh.ogg', volume=30))
|
||||
message_prompt += "\n\n**This ticket is already being responded to by: [english_list(AH.opening_responders)]**"
|
||||
|
||||
if(AH)
|
||||
message_admins("[key_name_admin(src)] has started replying to [key_name_admin(C, 0, 0)]'s admin help.")
|
||||
var/msg = input(src,"Message:", "Private message to [C.holder?.fakekey ? "an Administrator" : key_name(C, 0, 0)].") as message|null
|
||||
if(length(AH.ticket_interactions) == 1) // add the admin who is currently responding to the list of people responding
|
||||
LAZYADD(AH.opening_responders, src)
|
||||
|
||||
var/msg = input(src, message_prompt, "Private message to [C.holder?.fakekey ? "an Administrator" : key_name(C, 0, 0)].") as message|null
|
||||
LAZYREMOVE(AH.opening_responders, src)
|
||||
if (!msg)
|
||||
message_admins("[key_name_admin(src)] has cancelled their reply to [key_name_admin(C, 0, 0)]'s admin help.")
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user