mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-29 03:32:28 +00:00
* Bound ahelp/mhelp replies more tightly to their ticket. * Hardened PMs further against missing data. * Support expanding Discord notifications for ahelp/mhelp. Functionality changes: * Informs the user when their ticket is reopened. * Informs other mentors/admins when tickets are converted. * Discord messages now get a "Ticket 3, " or similar prefix. Not useful by itself, but will be with the following PR. Code changes: * When you create a ticket, you get the ticket object back. * checkForTicket now allows you to fetch a ticket by number, and falls back to searching for open tickets if the ticket isn't found. * Corrected and simplified the logic for adding PMs to tickets. * Responses are now added through the ticket system, not the tickets directly.
59 lines
2.1 KiB
Plaintext
59 lines
2.1 KiB
Plaintext
/client/verb/adminhelp()
|
|
set category = "Admin"
|
|
set name = "Adminhelp"
|
|
|
|
//handle muting and automuting
|
|
if(check_mute(ckey, MUTE_ADMINHELP))
|
|
to_chat(src, "<font color='red'>Error: Admin-PM: You cannot send adminhelps (Muted).</font>", MESSAGE_TYPE_ADMINPM, confidential = TRUE)
|
|
return
|
|
|
|
adminhelped = TRUE //Determines if they get the message to reply by clicking the name.
|
|
|
|
var/msg
|
|
var/list/type = list("Mentorhelp", "Adminhelp")
|
|
var/selected_type = input("Pick a category.", "Admin Help") as null|anything in type
|
|
if(selected_type)
|
|
msg = clean_input("Please enter your message.", selected_type)
|
|
|
|
if(!msg)
|
|
return
|
|
|
|
if(handle_spam_prevention(msg, MUTE_ADMINHELP, OOC_COOLDOWN))
|
|
return
|
|
|
|
msg = sanitize_simple(copytext_char(msg, 1, MAX_MESSAGE_LEN))
|
|
if(!msg) // No message after sanitisation
|
|
return
|
|
|
|
var/span_type
|
|
var/message_type
|
|
var/datum/ticket/T
|
|
if(selected_type == "Mentorhelp")
|
|
T = SSmentor_tickets.newHelpRequest(src, msg) // Mhelp
|
|
span_type = "mentorhelp"
|
|
message_type = MESSAGE_TYPE_MENTORPM
|
|
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, "<span class='[span_type]'>[selected_type]</b>: [msg]</span>", 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)
|
|
if("Adminhelp")
|
|
//See how many staff are on
|
|
var/list/admincount = staff_countup(R_BAN)
|
|
var/active_admins = admincount[1]
|
|
|
|
log_admin("[selected_type]: [key_name(src)]: [msg] - heard by [active_admins] non-AFK admins.")
|
|
GLOB.discord_manager.send2discord_simple_noadmins("**\[Adminhelp]** Ticket [T.ticketNum], [key_name(src)]: [msg]", check_send_always = TRUE)
|
|
|
|
if("Mentorhelp")
|
|
var/list/mentorcount = staff_countup(R_MENTOR)
|
|
var/active_mentors = mentorcount[1]
|
|
|
|
log_admin("[selected_type]: [key_name(src)]: [msg] - heard by [active_mentors] non-AFK mentors.")
|
|
GLOB.discord_manager.send2discord_simple_mentor("Ticket [T.ticketNum], [key_name(src)]: [msg]")
|