Files
open-ticket/src/actions/calculateTicketName.ts
T

31 lines
1.9 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 closeEmoji = (ticket && ticket.get("opendiscord:closed").value) ? generalConfig.data.ticketSystem.closeEmoji : ""
const priorityEmoji = (ticket) ? (opendiscord.priorities.getFromPriorityLevel(ticket.get("opendiscord:priority").value).channelEmoji ?? "") : ""
instance.newChannelName = pinEmoji+closeEmoji+priorityEmoji+baseChannelName
instance.newChannelSuffix = channelSuffix
instance.shouldChangeName = (instance.newChannelName !== currentChannelName)
})
])
}