Finished Message States & Overhauled Verifybars
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
///////////////////////////////////////
|
||||
//VERIFYBAR MESSAGE MODIFIERS
|
||||
///////////////////////////////////////
|
||||
import {opendiscord, api, utilities} from "../index.js"
|
||||
import * as discord from "discord.js"
|
||||
|
||||
const modifiers = opendiscord.components.modifiers
|
||||
const lang = opendiscord.languages
|
||||
const generalConfig = opendiscord.configs.get("opendiscord:general")
|
||||
|
||||
export async function addVerifyButton(instance:api.ODMessageInstance|api.ODComponentFactoryInstance<api.ODMessageComponent>,params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:api.ODVerifyBar<string>},buttonStyle:"✅"|"❌",verifyButtonId:string,customLabel?:string,customColor?:api.ODValidButtonColor,customEmoji?:string){
|
||||
const {guild,channel,user,verifybar} = params
|
||||
if (instance instanceof api.ODMessageInstance){
|
||||
//message builders
|
||||
instance.addComponent(await opendiscord.builders.buttons.getSafe("opendiscord:verifybar-button").build("verifybar",{
|
||||
guild,channel,user,verifybar,
|
||||
buttonStyle,customColor,customEmoji,customLabel,
|
||||
verifyButtonId
|
||||
}))
|
||||
}else{
|
||||
//message components
|
||||
throw new api.ODSystemError("registerAllVerifyBarModifiers addVerifyButton() => verifybar doesn't support ODComponents v2 yet!")
|
||||
//const message = instance.getComponent()
|
||||
//if (!message) return
|
||||
//const actionRow: api.ODActionRowComponent|null = message.getComponentsOfType("action-row")[0]
|
||||
//if (actionRow) actionRow.addComponent(new api.ODButtonComponent("opendiscord:verifybar-button",{
|
||||
// //TODO
|
||||
//}),"end")
|
||||
}
|
||||
}
|
||||
|
||||
export async function registerAllVerifyBarModifiers(){
|
||||
//CLOSE TICKET VERIFYBAR
|
||||
modifiers.add(new api.ODMessageComponentModifier("opendiscord:close-ticket-verifybar"))
|
||||
modifiers.get("opendiscord:close-ticket-verifybar").workers.add(new api.ODWorker("opendiscord:close-ticket-verifybar",100,async (instance,params,origin,cancel) => {
|
||||
if (instance instanceof api.ODMessageInstance){
|
||||
instance.data.components = [] //clear actionrow
|
||||
}else{
|
||||
throw new api.ODSystemError("registerAllVerifyBarModifiers()... => verifybars don't support ODComponents v2 yet!")
|
||||
}
|
||||
|
||||
//cancel, accept or close with reason
|
||||
await addVerifyButton(instance,params,"❌",api.ODVerifyButtonId.Cancel)
|
||||
await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.Accept)
|
||||
if (generalConfig.data.system.enableTicketActionWithReason) await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.AcceptWithReason,lang.getTranslation("actions.buttons.withReason"),"blue","✏️")
|
||||
}))
|
||||
|
||||
//REOPEN TICKET VERIFYBAR
|
||||
modifiers.add(new api.ODMessageComponentModifier("opendiscord:reopen-ticket-verifybar"))
|
||||
modifiers.get("opendiscord:reopen-ticket-verifybar").workers.add(new api.ODWorker("opendiscord:reopen-ticket-verifybar",100,async (instance,params,origin,cancel) => {
|
||||
if (instance instanceof api.ODMessageInstance){
|
||||
instance.data.components = [] //clear actionrow
|
||||
}else{
|
||||
throw new api.ODSystemError("registerAllVerifyBarModifiers()... => verifybars don't support ODComponents v2 yet!")
|
||||
}
|
||||
|
||||
//cancel, accept or reopen with reason
|
||||
await addVerifyButton(instance,params,"❌",api.ODVerifyButtonId.Cancel)
|
||||
await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.Accept)
|
||||
if (generalConfig.data.system.enableTicketActionWithReason) await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.AcceptWithReason,lang.getTranslation("actions.buttons.withReason"),"blue","✏️")
|
||||
}))
|
||||
|
||||
//DELETE TICKET VERIFYBAR
|
||||
modifiers.add(new api.ODMessageComponentModifier("opendiscord:delete-ticket-verifybar"))
|
||||
modifiers.get("opendiscord:delete-ticket-verifybar").workers.add(new api.ODWorker("opendiscord:delete-ticket-verifybar",100,async (instance,params,origin,cancel) => {
|
||||
if (instance instanceof api.ODMessageInstance){
|
||||
instance.data.components = [] //clear actionrow
|
||||
}else{
|
||||
throw new api.ODSystemError("registerAllVerifyBarModifiers()... => verifybars don't support ODComponents v2 yet!")
|
||||
}
|
||||
|
||||
//cancel, accept or delete with reason or without transcript
|
||||
await addVerifyButton(instance,params,"❌",api.ODVerifyButtonId.Cancel)
|
||||
await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.Accept)
|
||||
if (generalConfig.data.system.enableTicketActionWithReason) await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.AcceptWithReason,lang.getTranslation("actions.buttons.withReason"),"blue","✏️")
|
||||
if (generalConfig.data.system.enableDeleteWithoutTranscript) await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.AcceptWithoutTranscript,lang.getTranslation("actions.buttons.withoutTranscript"),"red","📄")
|
||||
}))
|
||||
|
||||
//CLAIM TICKET VERIFYBAR
|
||||
modifiers.add(new api.ODMessageComponentModifier("opendiscord:claim-ticket-verifybar"))
|
||||
modifiers.get("opendiscord:claim-ticket-verifybar").workers.add(new api.ODWorker("opendiscord:claim-ticket-verifybar",100,async (instance,params,origin,cancel) => {
|
||||
if (instance instanceof api.ODMessageInstance){
|
||||
instance.data.components = [] //clear actionrow
|
||||
}else{
|
||||
throw new api.ODSystemError("registerAllVerifyBarModifiers()... => verifybars don't support ODComponents v2 yet!")
|
||||
}
|
||||
|
||||
//cancel, accept or claim with reason
|
||||
await addVerifyButton(instance,params,"❌",api.ODVerifyButtonId.Cancel)
|
||||
await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.Accept)
|
||||
if (generalConfig.data.system.enableTicketActionWithReason) await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.AcceptWithReason,lang.getTranslation("actions.buttons.withReason"),"blue","✏️")
|
||||
}))
|
||||
|
||||
//UNCLAIM TICKET VERIFYBAR
|
||||
modifiers.add(new api.ODMessageComponentModifier("opendiscord:unclaim-ticket-verifybar"))
|
||||
modifiers.get("opendiscord:unclaim-ticket-verifybar").workers.add(new api.ODWorker("opendiscord:unclaim-ticket-verifybar",100,async (instance,params,origin,cancel) => {
|
||||
if (instance instanceof api.ODMessageInstance){
|
||||
instance.data.components = [] //clear actionrow
|
||||
}else{
|
||||
throw new api.ODSystemError("registerAllVerifyBarModifiers()... => verifybars don't support ODComponents v2 yet!")
|
||||
}
|
||||
|
||||
//cancel, accept or unclaim with reason
|
||||
await addVerifyButton(instance,params,"❌",api.ODVerifyButtonId.Cancel)
|
||||
await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.Accept)
|
||||
if (generalConfig.data.system.enableTicketActionWithReason) await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.AcceptWithReason,lang.getTranslation("actions.buttons.withReason"),"blue","✏️")
|
||||
}))
|
||||
|
||||
//PIN TICKET VERIFYBAR
|
||||
modifiers.add(new api.ODMessageComponentModifier("opendiscord:pin-ticket-verifybar"))
|
||||
modifiers.get("opendiscord:pin-ticket-verifybar").workers.add(new api.ODWorker("opendiscord:pin-ticket-verifybar",100,async (instance,params,origin,cancel) => {
|
||||
if (instance instanceof api.ODMessageInstance){
|
||||
instance.data.components = [] //clear actionrow
|
||||
}else{
|
||||
throw new api.ODSystemError("registerAllVerifyBarModifiers()... => verifybars don't support ODComponents v2 yet!")
|
||||
}
|
||||
|
||||
//cancel, accept or pin with reason
|
||||
await addVerifyButton(instance,params,"❌",api.ODVerifyButtonId.Cancel)
|
||||
await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.Accept)
|
||||
if (generalConfig.data.system.enableTicketActionWithReason) await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.AcceptWithReason,lang.getTranslation("actions.buttons.withReason"),"blue","✏️")
|
||||
}))
|
||||
|
||||
//UNPIN TICKET VERIFYBAR
|
||||
modifiers.add(new api.ODMessageComponentModifier("opendiscord:unpin-ticket-verifybar"))
|
||||
modifiers.get("opendiscord:unpin-ticket-verifybar").workers.add(new api.ODWorker("opendiscord:unpin-ticket-verifybar",100,async (instance,params,origin,cancel) => {
|
||||
if (instance instanceof api.ODMessageInstance){
|
||||
instance.data.components = [] //clear actionrow
|
||||
}else{
|
||||
throw new api.ODSystemError("registerAllVerifyBarModifiers()... => verifybars don't support ODComponents v2 yet!")
|
||||
}
|
||||
|
||||
//cancel, accept or unpin with reason
|
||||
await addVerifyButton(instance,params,"❌",api.ODVerifyButtonId.Cancel)
|
||||
await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.Accept)
|
||||
if (generalConfig.data.system.enableTicketActionWithReason) await addVerifyButton(instance,params,"✅",api.ODVerifyButtonId.AcceptWithReason,lang.getTranslation("actions.buttons.withReason"),"blue","✏️")
|
||||
}))
|
||||
}
|
||||
Reference in New Issue
Block a user