Add: Transfer ticket & Priority change (DM) logs
This commit is contained in:
@@ -121,6 +121,22 @@ export async function registerActions(){
|
||||
}),
|
||||
new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,origin,cancel) => {
|
||||
const {guild,channel,user,ticket,newCreator,reason} = params
|
||||
|
||||
const lastCreatorId = ticket.get("opendiscord:previous-creators").value.at(-1)
|
||||
if (!lastCreatorId) return
|
||||
const lastCreator = await opendiscord.client.fetchUser(lastCreatorId)
|
||||
if (!lastCreator) return
|
||||
|
||||
//to logs
|
||||
if (generalConfig.data.logs.enabled && generalConfig.data.logs.logMessages.transferring.logs){
|
||||
const logChannel = opendiscord.posts.get("opendiscord:logs")
|
||||
if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(origin,{guild,channel,user,ticket,mode:"transfer",reason,additionalData:lastCreator,additionalData2:newCreator}))
|
||||
}
|
||||
|
||||
//to dm
|
||||
const creator = await opendiscord.tickets.getTicketUser(ticket,"creator")
|
||||
if (creator && generalConfig.data.logs.logMessages.transferring.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(origin,{guild,channel,user,ticket,mode:"transfer",reason,additionalData:lastCreator,additionalData2:newCreator}))
|
||||
|
||||
}),
|
||||
new api.ODWorker("opendiscord:logs",0,(instance,params,origin,cancel) => {
|
||||
const {guild,channel,user,ticket,newCreator} = params
|
||||
|
||||
@@ -51,7 +51,19 @@ export async function registerActions(){
|
||||
openticketUtils.updateTicketMessage(guild,channel,user,ticket)
|
||||
}),
|
||||
new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,origin,cancel) => {
|
||||
const {guild,channel,user,ticket} = params
|
||||
const {guild,channel,user,ticket,reason,newPriority} = params
|
||||
|
||||
const renderedPriority = newPriority.renderDisplayName()
|
||||
|
||||
//to logs
|
||||
if (generalConfig.data.logs.enabled && generalConfig.data.logs.logMessages.priorityChange.logs){
|
||||
const logChannel = opendiscord.posts.get("opendiscord:logs")
|
||||
if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(origin,{guild,channel,user,ticket,mode:"priority",reason,additionalData:renderedPriority}))
|
||||
}
|
||||
|
||||
//to dm
|
||||
const creator = await opendiscord.tickets.getTicketUser(ticket,"creator")
|
||||
if (creator && generalConfig.data.logs.logMessages.priorityChange.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(origin,{guild,channel,user,ticket,mode:"priority",reason,additionalData:renderedPriority}))
|
||||
}),
|
||||
new api.ODWorker("opendiscord:logs",0,(instance,params,origin,cancel) => {
|
||||
const {guild,channel,user,ticket,newPriority} = params
|
||||
|
||||
+14
-2
@@ -812,7 +812,7 @@ const ticketEmbeds = () => {
|
||||
embeds.add(new api.ODEmbed("opendiscord:ticket-action-dm"))
|
||||
embeds.get("opendiscord:ticket-action-dm").workers.add(
|
||||
new api.ODWorker("opendiscord:ticket-action-dm",0,async (instance,params,origin) => {
|
||||
const {user,mode,ticket,reason,additionalData} = params
|
||||
const {user,mode,ticket,reason,additionalData,additionalData2} = params
|
||||
const channel = await opendiscord.tickets.getTicketChannel(ticket)
|
||||
|
||||
instance.setColor(generalConfig.data.mainColor)
|
||||
@@ -853,6 +853,12 @@ const ticketEmbeds = () => {
|
||||
}else if (mode == "remove"){
|
||||
instance.setTitle(utilities.emojiTitle("👤",lang.getTranslation("actions.titles.remove")))
|
||||
instance.setDescription(lang.getTranslationWithParams("actions.logs.removeDm",[(additionalData instanceof discord.User ? discord.userMention(additionalData.id) : "<unknown>")]))
|
||||
}else if (mode == "priority"){
|
||||
instance.setTitle(utilities.emojiTitle("🚨",lang.getTranslation("actions.titles.prioritySet")))
|
||||
instance.setDescription(lang.getTranslationWithParams("actions.logs.prioritySetDm",[(typeof additionalData === "string" ? "**"+additionalData+"**" : "**<unknown>**")]))
|
||||
}else if (mode == "transfer"){
|
||||
instance.setTitle(utilities.emojiTitle("🚨",lang.getTranslation("actions.titles.transfer")))
|
||||
instance.setDescription(lang.getTranslationWithParams("actions.logs.transferDm",[(additionalData instanceof discord.User ? discord.userMention(additionalData.id) : "<unknown>"),(additionalData2 instanceof discord.User ? discord.userMention(additionalData2.id) : "<unknown>")]))
|
||||
}
|
||||
})
|
||||
)
|
||||
@@ -861,7 +867,7 @@ const ticketEmbeds = () => {
|
||||
embeds.add(new api.ODEmbed("opendiscord:ticket-action-logs"))
|
||||
embeds.get("opendiscord:ticket-action-logs").workers.add(
|
||||
new api.ODWorker("opendiscord:ticket-action-logs",0,async (instance,params,origin) => {
|
||||
const {user,mode,ticket,reason,additionalData} = params
|
||||
const {user,mode,ticket,reason,additionalData,additionalData2} = params
|
||||
const channel = await opendiscord.tickets.getTicketChannel(ticket)
|
||||
|
||||
instance.setColor(generalConfig.data.mainColor)
|
||||
@@ -907,6 +913,12 @@ const ticketEmbeds = () => {
|
||||
}else if (mode == "remove"){
|
||||
instance.setTitle(utilities.emojiTitle("👤",lang.getTranslation("actions.titles.remove")))
|
||||
instance.setDescription(lang.getTranslationWithParams("actions.logs.removeLog",[(additionalData instanceof discord.User ? discord.userMention(additionalData.id) : "<unknown>"),discord.userMention(user.id)]))
|
||||
}else if (mode == "priority"){
|
||||
instance.setTitle(utilities.emojiTitle("🚨",lang.getTranslation("actions.titles.prioritySet")))
|
||||
instance.setDescription(lang.getTranslationWithParams("actions.logs.prioritySetLog",[(typeof additionalData === "string" ? "**"+additionalData+"**" : "**<unknown>**"),discord.userMention(user.id)]))
|
||||
}else if (mode == "transfer"){
|
||||
instance.setTitle(utilities.emojiTitle("🚨",lang.getTranslation("actions.titles.transfer")))
|
||||
instance.setDescription(lang.getTranslationWithParams("actions.logs.transferLog",[(additionalData instanceof discord.User ? discord.userMention(additionalData.id) : "<unknown>"),(additionalData2 instanceof discord.User ? discord.userMention(additionalData2.id) : "<unknown>"),discord.userMention(user.id)]))
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
@@ -566,8 +566,8 @@ const ticketMessages = () => {
|
||||
messages.add(new api.ODMessage("opendiscord:ticket-action-dm"))
|
||||
messages.get("opendiscord:ticket-action-dm").workers.add(
|
||||
new api.ODWorker("opendiscord:ticket-action-dm",0,async (instance,params,origin) => {
|
||||
const {guild,channel,user,mode,ticket,reason,additionalData} = params
|
||||
instance.addEmbed(await embeds.getSafe("opendiscord:ticket-action-dm").build(origin,{guild,channel,user,mode,ticket,reason,additionalData}))
|
||||
const {guild,channel,user,mode,ticket,reason,additionalData,additionalData2} = params
|
||||
instance.addEmbed(await embeds.getSafe("opendiscord:ticket-action-dm").build(origin,{guild,channel,user,mode,ticket,reason,additionalData,additionalData2}))
|
||||
})
|
||||
)
|
||||
|
||||
@@ -575,8 +575,8 @@ const ticketMessages = () => {
|
||||
messages.add(new api.ODMessage("opendiscord:ticket-action-logs"))
|
||||
messages.get("opendiscord:ticket-action-logs").workers.add(
|
||||
new api.ODWorker("opendiscord:ticket-action-logs",0,async (instance,params,origin) => {
|
||||
const {guild,channel,user,mode,ticket,reason,additionalData} = params
|
||||
instance.addEmbed(await embeds.getSafe("opendiscord:ticket-action-logs").build(origin,{guild,channel,user,mode,ticket,reason,additionalData}))
|
||||
const {guild,channel,user,mode,ticket,reason,additionalData,additionalData2} = params
|
||||
instance.addEmbed(await embeds.getSafe("opendiscord:ticket-action-logs").build(origin,{guild,channel,user,mode,ticket,reason,additionalData,additionalData2}))
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
+8
-1
@@ -1,6 +1,8 @@
|
||||
///////////////////////////////////////
|
||||
//OPEN TICKET MAIN MODULE
|
||||
///////////////////////////////////////
|
||||
import fs from "fs"
|
||||
import path from "path"
|
||||
import * as api from "./api.js"
|
||||
import * as utilities from "@open-discord-bots/framework/utilities"
|
||||
|
||||
@@ -108,7 +110,7 @@ export class ODOpenTicketMain extends api.ODMain {
|
||||
},"openticket")
|
||||
|
||||
this.livestatus.useMain(this)
|
||||
this.versions.add(api.ODVersion.fromString("opendiscord:version","v4.2.0"))
|
||||
this.versions.add(api.ODVersion.fromString("opendiscord:version",this.readVersionFromPackage()))
|
||||
this.versions.add(api.ODVersion.fromString("opendiscord:transcripts","v2.1.0"))
|
||||
|
||||
//OPEN TICKET
|
||||
@@ -134,4 +136,9 @@ export class ODOpenTicketMain extends api.ODMain {
|
||||
this.roles = new api.ODRoleManager(debug)
|
||||
this.priorities = new api.ODMappedPriorityManager(debug)
|
||||
}
|
||||
|
||||
private readVersionFromPackage(): string {
|
||||
const packageJson: {version:string} = JSON.parse(fs.readFileSync(path.join(process.cwd(),"./package.json")).toString())
|
||||
return "v"+packageJson.version
|
||||
}
|
||||
}
|
||||
@@ -111,8 +111,8 @@ export interface ODEmbedManagerIdMappings extends api.ODEmbedManagerIdConstraint
|
||||
"opendiscord:move-message":{origin:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:ODTicketOption},workers:"opendiscord:move-message"},
|
||||
"opendiscord:add-message":{origin:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:discord.User},workers:"opendiscord:add-message"},
|
||||
"opendiscord:remove-message":{origin:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:discord.User},workers:"opendiscord:remove-message"},
|
||||
"opendiscord:ticket-action-dm":{origin:"slash"|"text"|"ticket-message"|"close-message"|"reopen-message"|"delete-message"|"claim-message"|"unclaim-message"|"pin-message"|"unpin-message"|"autoclose-message"|"autoclose"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"close"|"reopen"|"delete"|"claim"|"unclaim"|"pin"|"unpin"|"rename"|"move"|"add"|"remove",ticket:ODTicket,reason:string|null,additionalData:null|string|discord.User|ODTicketOption},workers:"opendiscord:ticket-action-dm"},
|
||||
"opendiscord:ticket-action-logs":{origin:"slash"|"text"|"ticket-message"|"close-message"|"reopen-message"|"delete-message"|"claim-message"|"unclaim-message"|"pin-message"|"unpin-message"|"autoclose-message"|"autoclose"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"close"|"reopen"|"delete"|"claim"|"unclaim"|"pin"|"unpin"|"rename"|"move"|"add"|"remove",ticket:ODTicket,reason:string|null,additionalData:null|string|discord.User|ODTicketOption},workers:"opendiscord:ticket-action-logs"},
|
||||
"opendiscord:ticket-action-dm":{origin:"slash"|"text"|"ticket-message"|"close-message"|"reopen-message"|"delete-message"|"claim-message"|"unclaim-message"|"pin-message"|"unpin-message"|"autoclose-message"|"priority-message"|"topic-message"|"transfer-message"|"autoclose"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"close"|"reopen"|"delete"|"claim"|"unclaim"|"pin"|"unpin"|"rename"|"move"|"add"|"remove"|"priority"|"transfer"|"topic",ticket:ODTicket,reason:string|null,additionalData:null|string|discord.User|ODTicketOption,additionalData2?:discord.User},workers:"opendiscord:ticket-action-dm"},
|
||||
"opendiscord:ticket-action-logs":{origin:"slash"|"text"|"ticket-message"|"close-message"|"reopen-message"|"delete-message"|"claim-message"|"unclaim-message"|"pin-message"|"unpin-message"|"autoclose-message"|"priority-message"|"topic-message"|"transfer-message"|"autoclose"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"close"|"reopen"|"delete"|"claim"|"unclaim"|"pin"|"unpin"|"rename"|"move"|"add"|"remove"|"priority"|"transfer"|"topic",ticket:ODTicket,reason:string|null,additionalData:null|string|discord.User|ODTicketOption,additionalData2?:discord.User},workers:"opendiscord:ticket-action-logs"},
|
||||
|
||||
"opendiscord:blacklist-view":{origin:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:blacklist-view"},
|
||||
"opendiscord:blacklist-get":{origin:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,data:discord.User},workers:"opendiscord:blacklist-get"},
|
||||
@@ -196,8 +196,8 @@ export interface ODMessageManagerIdMappings extends api.ODMessageManagerIdConstr
|
||||
"opendiscord:move-message":{origin:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:ODTicketOption},workers:"opendiscord:move-message"},
|
||||
"opendiscord:add-message":{origin:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:discord.User},workers:"opendiscord:add-message"},
|
||||
"opendiscord:remove-message":{origin:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:discord.User},workers:"opendiscord:remove-message"},
|
||||
"opendiscord:ticket-action-dm":{origin:"slash"|"text"|"ticket-message"|"close-message"|"reopen-message"|"delete-message"|"claim-message"|"unclaim-message"|"pin-message"|"unpin-message"|"autoclose-message"|"autoclose"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"close"|"reopen"|"delete"|"claim"|"unclaim"|"pin"|"unpin"|"rename"|"move"|"add"|"remove",ticket:ODTicket,reason:string|null,additionalData:null|string|discord.User|ODTicketOption},workers:"opendiscord:ticket-action-dm"},
|
||||
"opendiscord:ticket-action-logs":{origin:"slash"|"text"|"ticket-message"|"close-message"|"reopen-message"|"delete-message"|"claim-message"|"unclaim-message"|"pin-message"|"unpin-message"|"autoclose-message"|"autoclose"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"close"|"reopen"|"delete"|"claim"|"unclaim"|"pin"|"unpin"|"rename"|"move"|"add"|"remove",ticket:ODTicket,reason:string|null,additionalData:null|string|discord.User|ODTicketOption},workers:"opendiscord:ticket-action-logs"},
|
||||
"opendiscord:ticket-action-dm":{origin:"slash"|"text"|"ticket-message"|"close-message"|"reopen-message"|"delete-message"|"claim-message"|"unclaim-message"|"pin-message"|"unpin-message"|"autoclose-message"|"priority-message"|"topic-message"|"transfer-message"|"autoclose"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"close"|"reopen"|"delete"|"claim"|"unclaim"|"pin"|"unpin"|"rename"|"move"|"add"|"remove"|"priority"|"transfer"|"topic",ticket:ODTicket,reason:string|null,additionalData:null|string|discord.User|ODTicketOption,additionalData2?:discord.User},workers:"opendiscord:ticket-action-dm"},
|
||||
"opendiscord:ticket-action-logs":{origin:"slash"|"text"|"ticket-message"|"close-message"|"reopen-message"|"delete-message"|"claim-message"|"unclaim-message"|"pin-message"|"unpin-message"|"autoclose-message"|"priority-message"|"topic-message"|"transfer-message"|"autoclose"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"close"|"reopen"|"delete"|"claim"|"unclaim"|"pin"|"unpin"|"rename"|"move"|"add"|"remove"|"priority"|"transfer"|"topic",ticket:ODTicket,reason:string|null,additionalData:null|string|discord.User|ODTicketOption,additionalData2?:discord.User},workers:"opendiscord:ticket-action-logs"},
|
||||
|
||||
"opendiscord:blacklist-view":{origin:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:blacklist-view"},
|
||||
"opendiscord:blacklist-get":{origin:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,data:discord.User},workers:"opendiscord:blacklist-get"},
|
||||
|
||||
Reference in New Issue
Block a user