diff --git a/code/__DEFINES/chat_box_defines.dm b/code/__DEFINES/chat_box_defines.dm
index 40a1c491cf3..35d4d879018 100644
--- a/code/__DEFINES/chat_box_defines.dm
+++ b/code/__DEFINES/chat_box_defines.dm
@@ -6,3 +6,5 @@
#define chat_box_notice(str) ("
" + str + "
")
#define chat_box_healthscan(str) ("" + str + "
")
#define chat_box_notice_thick(str) ("" + str + "
")
+#define chat_box_ahelp(str) ("" + str + "
")
+#define chat_box_mhelp(str) ("" + str + "
")
diff --git a/code/controllers/subsystem/tickets/mentor_tickets.dm b/code/controllers/subsystem/tickets/mentor_tickets.dm
index b2db4ed044f..10f87fe836c 100644
--- a/code/controllers/subsystem/tickets/mentor_tickets.dm
+++ b/code/controllers/subsystem/tickets/mentor_tickets.dm
@@ -44,7 +44,7 @@ GLOBAL_REAL(SSmentor_tickets, /datum/controller/subsystem/tickets/mentor_tickets
/datum/controller/subsystem/tickets/mentor_tickets/message_staff(msg, prefix_type = NONE, important = FALSE)
- message_mentorTicket(msg, important)
+ message_mentorTicket(chat_box_mhelp(msg), important)
/datum/controller/subsystem/tickets/mentor_tickets/create_other_system_ticket(datum/ticket/T)
SStickets.newTicket(get_client_by_ckey(T.client_ckey), T.first_raw_response, T.title)
diff --git a/code/controllers/subsystem/tickets/tickets.dm b/code/controllers/subsystem/tickets/tickets.dm
index 88959e5f3b7..bb6c762cf0e 100644
--- a/code/controllers/subsystem/tickets/tickets.dm
+++ b/code/controllers/subsystem/tickets/tickets.dm
@@ -139,7 +139,7 @@ SUBSYSTEM_DEF(tickets)
* msg - The raw message
* ticketNum - Which ticket number the ticket has
*/
-/datum/controller/subsystem/tickets/proc/makeUrlMessage(target, msg, ticketNum)
+/datum/controller/subsystem/tickets/proc/makeUrlMessage(target, msg, ticketNum, one_line = FALSE)
var/mob/M
var/key_and_name
if(istype(target, /datum/ticket))
@@ -154,13 +154,13 @@ SUBSYSTEM_DEF(tickets)
key_and_name = key_name(M, TRUE, ticket_help_type, ticket_id = ticketNum)
var/list/L = list()
- L += "[ticket_help_type]: [key_and_name] "
+ L += "[ticket_help_type]: [key_and_name][one_line ? " " : "
"]"
if(M)
L += "([ADMIN_QUE(M,"?")]) ([ADMIN_PP(M,"PP")]) ([ADMIN_VV(M,"VV")]) ([ADMIN_TP(M,"TP")]) ([ADMIN_SM(M,"SM")]) ([admin_jump_link(M)])"
L += "(TICKET) "
L += "[isAI(M) ? "(CL)" : ""] (TAKE) "
L += "(RESOLVE) (AUTO) "
- L += "(CONVERT) : [msg]"
+ L += "(CONVERT) : [one_line ? " " : "
"][msg]"
return L.Join()
//Open a new ticket and populate details then add to the list of open tickets
@@ -500,7 +500,7 @@ UI STUFF
for(var/T in allTickets)
ticket = T
if(ticket.ticketState == TICKET_OPEN || ticket.ticketState == TICKET_STALE)
- dat += "ResolveDetails #[ticket.ticketNum] ([ticket.ingame_time_opened]) [ticket.ticketState == TICKET_STALE ? "STALE" : ""] | [makeUrlMessage(ticket)] |
"
+ dat += "ResolveDetails #[ticket.ticketNum] ([ticket.ingame_time_opened]) [ticket.ticketState == TICKET_STALE ? "STALE" : ""] | [makeUrlMessage(ticket, one_line = TRUE)] |
"
else
continue
else if(tab == TICKET_RESOLVED)
@@ -508,7 +508,7 @@ UI STUFF
for(var/T in allTickets)
ticket = T
if(ticket.ticketState == TICKET_RESOLVED)
- dat += "ResolveDetails #[ticket.ticketNum] ([ticket.ingame_time_opened]) | [makeUrlMessage(ticket)] |
"
+ dat += "ResolveDetails #[ticket.ticketNum] ([ticket.ingame_time_opened]) | [makeUrlMessage(ticket, one_line = TRUE)] |
"
else
continue
else if(tab == TICKET_CLOSED)
@@ -516,7 +516,7 @@ UI STUFF
for(var/T in allTickets)
ticket = T
if(ticket.ticketState == TICKET_CLOSED)
- dat += "ResolveDetails #[ticket.ticketNum] ([ticket.ingame_time_opened]) | [makeUrlMessage(ticket)] |
"
+ dat += "ResolveDetails #[ticket.ticketNum] ([ticket.ingame_time_opened]) | [makeUrlMessage(ticket, one_line = TRUE)] |
"
else
continue
@@ -549,7 +549,7 @@ UI STUFF
dat += "[T.client_ckey] / [T.mobControlled] opened this [ticket_name] at [T.ingame_time_opened] at location [T.locationSent]
"
dat += "Ticket Status: [status]"
dat += "
"
- dat += "| [makeUrlMessage(T)] |
"
+ dat += "| [makeUrlMessage(T, one_line = TRUE)] |
"
if(length(T.ticket_responses) > 1)
for(var/i in 2 to length(T.ticket_responses))
@@ -620,7 +620,7 @@ UI STUFF
msg = "ADMIN TICKET: [msg]"
if(TICKET_STAFF_MESSAGE_PREFIX)
msg = "ADMIN TICKET: [msg]"
- message_adminTicket(msg, important)
+ message_adminTicket(chat_box_ahelp(msg), important)
/datum/controller/subsystem/tickets/Topic(href, href_list)
diff --git a/code/modules/admin/misc_admin_procs.dm b/code/modules/admin/misc_admin_procs.dm
index 4d7805a8bca..8995343bbca 100644
--- a/code/modules/admin/misc_admin_procs.dm
+++ b/code/modules/admin/misc_admin_procs.dm
@@ -47,7 +47,7 @@ GLOBAL_VAR_INIT(nologevent, 0)
to_chat(C, msg, MESSAGE_TYPE_MENTORPM, confidential = TRUE)
if(important)
if(C.prefs?.sound & SOUND_MENTORHELP)
- SEND_SOUND(C, sound('sound/effects/adminhelp.ogg'))
+ SEND_SOUND(C, sound('sound/machines/notif1.ogg'))
window_flash(C)
/proc/admin_ban_mobsearch(mob/M, ckey_to_find, mob/admin_to_notify)
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index 78febb17ac3..e8de49e3c02 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -32,13 +32,15 @@
T = SSmentor_tickets.newHelpRequest(src, msg) // Mhelp
span_type = "mentorhelp"
message_type = MESSAGE_TYPE_MENTORPM
+ //show it to the person mentorhelping too
+ to_chat(src, chat_box_mhelp("[selected_type]
[msg]"), message_type, confidential = TRUE)
else
T = SStickets.newHelpRequest(src, msg) // Ahelp
span_type = "adminhelp"
message_type = MESSAGE_TYPE_ADMINPM
+ //show it to the person adminhelping too
+ to_chat(src, chat_box_ahelp("[selected_type]
[msg]"), message_type, confidential = TRUE)
- //show it to the person adminhelping too
- to_chat(src, "[selected_type]: [msg]", message_type, confidential = TRUE)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Adminhelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
switch(selected_type)
diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm
index 5132c5a99f5..cf562a6c90b 100644
--- a/code/modules/admin/verbs/adminpm.dm
+++ b/code/modules/admin/verbs/adminpm.dm
@@ -166,23 +166,42 @@
adminhelp(reply) //sender has left, adminhelp instead
return
-
- var/emoji_msg = "[msg]"
- recieve_message = chat_box_red("[type] from-[recieve_pm_type] [C.holder ? key_name(src, TRUE, type, ticket_id = ticket_id) : key_name_hidden(src, TRUE, type, ticket_id = ticket_id)]:
[emoji_msg]")
- to_chat(C, recieve_message)
var/ping_link = check_rights(R_ADMIN, 0, mob) ? "(PING)" : ""
var/window_link = "(WINDOW)"
- var/alert_link = check_rights(R_ADMIN, FALSE, mob) ? " (ALERT)" : ""
- to_chat(src, "[send_pm_type][type] to-[holder ? key_name(C, TRUE, type, ticket_id = ticket_id) : key_name_hidden(C, TRUE, type, ticket_id = ticket_id)]: [emoji_msg] [ping_link] [window_link][alert_link]", message_type)
+ var/alert_link = check_rights(R_ADMIN, FALSE, mob) ? "(ALERT)" : ""
+ if(ticket_id != -1)
+ if(message_type == MESSAGE_TYPE_MENTORPM)
+ window_link = "(TICKET)"
+ else
+ window_link = "(TICKET)"
- /*if(holder && !C.holder)
- C.last_pm_recieved = world.time
- C.ckey_last_pm = ckey*/
+ var/emoji_msg = "[msg]"
+ recieve_message = "[type] from-[recieve_pm_type] [C.holder ? key_name(src, TRUE, type, ticket_id = ticket_id) : key_name_hidden(src, TRUE, type, ticket_id = ticket_id)]:
[emoji_msg][C.holder ? "
[ping_link] [window_link] [alert_link]" : ""]"
+ if(message_type == MESSAGE_TYPE_MENTORPM)
+ recieve_message = chat_box_mhelp(recieve_message)
+ else
+ recieve_message = chat_box_ahelp(recieve_message)
+ to_chat(C, recieve_message)
+ var/send_message = "[send_pm_type][type] to-[holder ? key_name(C, TRUE, type, ticket_id = ticket_id) : key_name_hidden(C, TRUE, type, ticket_id = ticket_id)]:
[emoji_msg]
[ping_link] [window_link] [alert_link]"
+ if(message_type == MESSAGE_TYPE_MENTORPM)
+ send_message = chat_box_mhelp(send_message)
+ else
+ send_message = chat_box_ahelp(send_message)
+ to_chat(src, send_message)
+
+ var/third_party_message
+ if(message_type == MESSAGE_TYPE_MENTORPM)
+ third_party_message = chat_box_mhelp("[type]: [key_name(src, TRUE, type, ticket_id = ticket_id)]->[key_name(C, TRUE, type, ticket_id = ticket_id)]:
[emoji_msg]
[ping_link] [window_link] [alert_link]")
+ else
+ third_party_message = chat_box_ahelp("[type]: [key_name(src, TRUE, type, ticket_id = ticket_id)]->[key_name(C, TRUE, type, ticket_id = ticket_id)]:
[emoji_msg]
[ping_link] [window_link] [alert_link]")
//play the recieving admin the adminhelp sound (if they have them enabled)
//non-admins always hear the sound, as they cannot toggle it
if((!C.holder) || (C.prefs.sound & SOUND_ADMINHELP))
- SEND_SOUND(C, sound('sound/effects/adminhelp.ogg'))
+ if(message_type == MESSAGE_TYPE_MENTORPM)
+ SEND_SOUND(C, sound('sound/machines/notif1.ogg'))
+ else
+ SEND_SOUND(C, sound('sound/effects/adminhelp.ogg'))
log_admin("PM: [key_name(src)]->[key_name(C)]: [msg]")
//we don't use message_admins here because the sender/receiver might get it too
@@ -193,10 +212,10 @@
if(X.key != key && X.key != C.key)
if(message_type == MESSAGE_TYPE_MENTORPM)
if(check_rights(R_ADMIN|R_MOD|R_MENTOR, 0, X.mob))
- to_chat(X, "[type]: [key_name(src, TRUE, type, ticket_id = ticket_id)]->[key_name(C, TRUE, type, ticket_id = ticket_id)]: [emoji_msg]", type = message_type)
+ to_chat(X, third_party_message)
else
if(check_rights(R_ADMIN|R_MOD, 0, X.mob))
- to_chat(X, "[type]: [key_name(src, TRUE, type, ticket_id = ticket_id)]->[key_name(C, TRUE, type, ticket_id = ticket_id)]: [emoji_msg]", type = message_type)
+ to_chat(X, third_party_message)
//Check if the mob being PM'd has any open tickets.
var/list/tickets = tickets_system.checkForTicket(C, ticket_id)