Tickets System

This commit is contained in:
Selis
2023-06-21 13:51:32 +02:00
parent 831110b53e
commit 67ba4a2de5
23 changed files with 1862 additions and 660 deletions
+22 -15
View File
@@ -29,19 +29,22 @@
check_antagonists()
return
if(href_list["ahelp"])
// CHOMPedit Start - Tickets System
if(href_list["ticket"])
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
var/ahelp_ref = href_list["ahelp"]
var/datum/admin_help/AH = locate(ahelp_ref)
if(AH)
AH.Action(href_list["ahelp_action"])
var/ticket_ref = href_list["ticket"]
var/datum/ticket/T = locate(ticket_ref)
if(T)
T.Action(href_list["ticket_action"])
else
to_chat(usr, "Ticket [ahelp_ref] has been deleted!")
to_chat(usr, "Ticket [ticket_ref] has been deleted!")
else if(href_list["ahelp_tickets"])
GLOB.ahelp_tickets.BrowseTickets(text2num(href_list["ahelp_tickets"]))
else if(href_list["tickets"])
GLOB.tickets.BrowseTickets(text2num(href_list["tickets"]))
// CHOMPedit End
mentor_commands(href, href_list, src)
@@ -166,7 +169,7 @@
if(admin_ranks.len)
new_rank = tgui_input_list(usr, "Please select a rank", "New rank", (admin_ranks|"*New Rank*"))
else
new_rank = tgui_input_list(usr, "Please select a rank", "New rank", list("Game Master","Head Admin","Game Admin", "Trial Admin", "Admin Observer","Moderator","Mentor","Badmin","Retired Admin","Event Manager","Developer","DevMod","*New Rank*")) //CHOMP Edit bandaid fix to assigning titles because we're having some funky database issues, I think. Other option is to manually edit database entry for someone's title.
new_rank = tgui_input_list(usr, "Please select a rank", "New rank", list("Game Master","Head Admin","Game Admin", "Trial Admin", "Admin Observer","Moderator","Mentor","Badmin","Retired Admin","Event Manager","Developer","DevMod","*New Rank*")) //CHOMP Edit bandaid fix to assigning titles because we're having some funky database issues, I think. Other option is to manually edit database entry for someone's title.
var/rights = 0
if(D)
@@ -935,10 +938,12 @@
to_chat(M, "<span class='filter_system warning'>No ban appeals URL has been set.</span>")
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
message_admins("<font color='blue'>[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.</font>")
var/datum/admin_help/AH = M.client ? M.client.current_ticket : null
if(AH)
AH.Resolve()
// CHOMPedit Start - Tickets System
var/datum/ticket/T = M.client ? M.client.current_ticket : null
if(T)
T.Resolve()
qdel(M.client)
// CHOMPedit End
//qdel(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends.
if("No")
if(!check_rights(R_BAN)) return
@@ -963,9 +968,11 @@
message_admins("<font color='blue'>[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.</font>")
feedback_inc("ban_perma",1)
DB_ban_record(BANTYPE_PERMA, M, -1, reason)
var/datum/admin_help/AH = M.client ? M.client.current_ticket : null
if(AH)
AH.Resolve()
// CHOMPedit Start - Tickets System
var/datum/ticket/T = M.client ? M.client.current_ticket : null
if(T)
T.Resolve()
// CHOMPedit End
qdel(M.client)
//qdel(M)
if("Cancel")
+7
View File
@@ -1,3 +1,10 @@
/*
CHOMPedit - This file has been excluded from the compilation.
Reason: Replaced with "Tickets System". Main logic has been moved to: modular_chomp/modules/tickets/tickets.dm
*/
/client/var/datum/admin_help/current_ticket //the current ticket the (usually) not-admin client is dealing with
//CHOMPEdit Begin
+7
View File
@@ -1,3 +1,10 @@
/*
CHOMPedit - This file has been excluded from the compilation.
Reason: Replaced with "Tickets System"
*/
/datum/admin_help/proc/send2adminchat()
if(!config.chat_webhook_url)
return
+6 -6
View File
@@ -53,19 +53,19 @@
to_chat(src, "<span class='pm warning'>Error: Admin-PM: Client not found.</span>")
return
var/datum/admin_help/AH = C.current_ticket
var/datum/ticket/T = C.current_ticket // CHOMPedit - Ticket System
if(AH)
if(T) // CHOMPedit - Ticket System
message_admins("<span class='pm'>[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help.</span>")
var/msg = tgui_input_text(src,"Message:", "Private message to [key_name(C, 0, 0)]")
if (!msg)
message_admins("<span class='pm'>[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help.</span>")
return
cmd_admin_pm(whom, msg, AH)
cmd_admin_pm(whom, msg, T) // CHOMPedit - Ticket System
//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) // CHOMPedit - Ticket System
if(prefs.muted & MUTE_ADMINHELP)
to_chat(src, "<span class='pm warning'>Error: Admin-PM: You are unable to use admin PM-s (muted).</span>")
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, 0) // CHOMPedit - Ticket System
to_chat(recipient, "<span class='pm warning' size='4'><b>-- Administrator private message --</b></span>")
to_chat(recipient, "<span class='pm warning'>Admin PM from-<b>[key_name(src, recipient, 0)]</b>: [msg]</span>")
@@ -214,7 +214,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) // CHOMPedit - Ticket System
var/compliant_msg = trim(lowertext(msg))
var/irc_tagged = "[sender](IRC)"
var/list/splits = splittext(compliant_msg, " ")