30 lines
1.8 KiB
TypeScript
30 lines
1.8 KiB
TypeScript
///////////////////////////////////////
|
|
//CALCULATE TICKET NAME SYSTEM
|
|
///////////////////////////////////////
|
|
import {opendiscord, api, utilities, openticketUtils} from "../index.js"
|
|
import * as discord from "discord.js"
|
|
|
|
const generalConfig = opendiscord.configs.get("opendiscord:general")
|
|
|
|
export async function registerActions(){
|
|
opendiscord.actions.add(new api.ODAction("opendiscord:calculate-ticket-name"))
|
|
opendiscord.actions.get("opendiscord:calculate-ticket-name").workers.add([
|
|
new api.ODWorker("opendiscord:calculate-ticket-name",0,async (instance,params,origin,cancel) => {
|
|
const {guild,user,channel,option,ticket,currentChannelName} = params
|
|
|
|
//calculate base channel name
|
|
const channelPrefix = option.get("opendiscord:channel-prefix").value
|
|
const channelSuffix = (ticket) ? ticket.get("opendiscord:channel-suffix").value : (await opendiscord.options.suffix.getSuffixFromOption(option,user,guild) ?? "unknown")
|
|
const channelRenamed = (ticket && ticket.exists("opendiscord:channel-renamed")) ? ticket.get("opendiscord:channel-renamed").value : null
|
|
const baseChannelName = (channelRenamed) ? channelRenamed : channelPrefix+channelSuffix
|
|
|
|
//calculate status emojis
|
|
const pinEmoji = (ticket && ticket.get("opendiscord:pinned").value) ? generalConfig.data.ticketSystem.pinEmoji : ""
|
|
const priorityEmoji = (ticket) ? (opendiscord.priorities.getFromPriorityLevel(ticket.get("opendiscord:priority").value).channelEmoji ?? "") : ""
|
|
|
|
instance.newChannelName = pinEmoji+priorityEmoji+baseChannelName
|
|
instance.newChannelSuffix = channelSuffix
|
|
instance.shouldChangeName = (instance.newChannelName !== currentChannelName)
|
|
})
|
|
])
|
|
} |