Ports ticket system overhaul from downstream (#17063)

* Ports ticket system overhaul from downstream

* Various fixes

* fixes

* Update tickets.dm

* Update tickets.dm

* Update ticket.dm

* Refactor

---------

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
Selis
2025-06-28 02:28:15 +02:00
committed by GitHub
co-authored by Kashargul
parent a294b8c549
commit f2b86cb5e3
46 changed files with 1983 additions and 1765 deletions
+6 -6
View File
@@ -53,19 +53,19 @@
to_chat(src, span_admin_pm_warning("Error: Admin-PM: Client not found."))
return
var/datum/admin_help/AH = C.current_ticket
var/datum/ticket/T = C.current_ticket
if(AH)
if(T)
message_admins(span_pm("[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help."))
var/msg = tgui_input_text(src,"Message:", "Private message to [key_name(C, 0, 0)]", multiline = TRUE)
if (!msg)
message_admins(span_pm("[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help."))
return
cmd_admin_pm(whom, msg, AH)
cmd_admin_pm(whom, msg, T)
//takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM.
//Fetching a message if needed. src is the sender and C is the target client
/client/proc/cmd_admin_pm(whom, msg, datum/admin_help/AH)
/client/proc/cmd_admin_pm(whom, msg, datum/ticket/T)
if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, span_admin_pm_warning("Error: Admin-PM: You are unable to use admin PM-s (muted)."))
return
@@ -171,7 +171,7 @@
else
if(holder) //sender is an admin but recipient is not. Do BIG RED TEXT
if(!recipient.current_ticket)
new /datum/admin_help(msg, recipient, TRUE)
new /datum/ticket(msg, recipient, TRUE, 1)
to_chat(recipient, span_admin_pm_warning(span_huge(span_bold("-- Administrator private message --"))))
to_chat(recipient, span_admin_pm_warning("Admin PM from-<b>[key_name(src, recipient, 0)]</b>: [msg]"))
@@ -218,7 +218,7 @@
/proc/IrcPm(target,msg,sender)
var/client/C = GLOB.directory[target]
var/datum/admin_help/ticket = C ? C.current_ticket : GLOB.ahelp_tickets.CKey2ActiveTicket(target)
var/datum/ticket/ticket = C ? C.current_ticket : GLOB.tickets.CKey2ActiveTicket(target)
var/compliant_msg = trim(lowertext(msg))
var/irc_tagged = "[sender](IRC)"
var/list/splits = splittext(compliant_msg, " ")