From 6acbf74846d144a3d09f1a8085771ca6a49faed1 Mon Sep 17 00:00:00 2001 From: DJj123dj <80536295+DJj123dj@users.noreply.github.com> Date: Sat, 1 Feb 2025 10:29:35 +0100 Subject: [PATCH] BREAKING: changed all ids to "opendiscord:" --- src/actions/addTicketUser.ts | 34 +- src/actions/claimTicket.ts | 138 ++-- src/actions/clearTickets.ts | 18 +- src/actions/closeTicket.ts | 150 ++--- src/actions/createTicket.ts | 98 +-- src/actions/createTicketPermissions.ts | 30 +- src/actions/createTranscript.ts | 28 +- src/actions/deleteTicket.ts | 222 +++---- src/actions/handleTranscriptErrors.ts | 70 +- src/actions/handleVerifyBar.ts | 12 +- src/actions/moveTicket.ts | 66 +- src/actions/pinTicket.ts | 134 ++-- src/actions/reactionRole.ts | 14 +- src/actions/removeTicketUser.ts | 36 +- src/actions/renameTicket.ts | 30 +- src/actions/reopenTicket.ts | 206 +++--- src/actions/unclaimTicket.ts | 144 ++-- src/actions/unpinTicket.ts | 130 ++-- src/builders/buttons.ts | 164 ++--- src/builders/dropdowns.ts | 14 +- src/builders/embeds.ts | 438 ++++++------ src/builders/files.ts | 12 +- src/builders/messages.ts | 842 ++++++++++++------------ src/builders/modals.ts | 72 +- src/commands/add.ts | 36 +- src/commands/autoclose.ts | 48 +- src/commands/autodelete.ts | 44 +- src/commands/blacklist.ts | 44 +- src/commands/claim.ts | 68 +- src/commands/clear.ts | 64 +- src/commands/close.ts | 68 +- src/commands/delete.ts | 78 +-- src/commands/help.ts | 48 +- src/commands/move.ts | 38 +- src/commands/panel.ts | 34 +- src/commands/pin.ts | 68 +- src/commands/remove.ts | 36 +- src/commands/rename.ts | 34 +- src/commands/reopen.ts | 74 +-- src/commands/role.ts | 18 +- src/commands/stats.ts | 36 +- src/commands/ticket.ts | 146 ++-- src/commands/unclaim.ts | 68 +- src/commands/unpin.ts | 68 +- src/core/api/defaults/action.ts | 64 +- src/core/api/defaults/base.ts | 10 +- src/core/api/defaults/builder.ts | 322 ++++----- src/core/api/defaults/checker.ts | 190 +++--- src/core/api/defaults/client.ts | 92 +-- src/core/api/defaults/code.ts | 32 +- src/core/api/defaults/config.ts | 12 +- src/core/api/defaults/console.ts | 2 +- src/core/api/defaults/database.ts | 24 +- src/core/api/defaults/flag.ts | 28 +- src/core/api/defaults/helpmenu.ts | 76 +-- src/core/api/defaults/language.ts | 46 +- src/core/api/defaults/permission.ts | 2 +- src/core/api/defaults/post.ts | 4 +- src/core/api/defaults/progressbar.ts | 18 +- src/core/api/defaults/responder.ts | 90 +-- src/core/api/defaults/startscreen.ts | 14 +- src/core/api/defaults/stat.ts | 82 +-- src/core/api/defaults/verifybar.ts | 34 +- src/core/api/main.ts | 10 +- src/core/api/modules/base.ts | 3 - src/core/api/modules/builder.ts | 14 +- src/core/api/modules/checker.ts | 130 ++-- src/core/api/modules/console.ts | 4 +- src/core/api/modules/defaults.ts | 2 +- src/core/api/openticket/option.ts | 140 ++-- src/core/api/openticket/panel.ts | 26 +- src/core/api/openticket/question.ts | 34 +- src/core/api/openticket/role.ts | 8 +- src/core/api/openticket/ticket.ts | 66 +- src/core/api/openticket/transcript.ts | 6 +- src/core/startup/dump.ts | 2 +- src/core/startup/manageMigration.ts | 22 +- src/core/startup/migration.ts | 2 +- src/data/framework/checkerLoader.ts | 658 +++++++++--------- src/data/framework/codeLoader.ts | 192 +++--- src/data/framework/commandLoader.ts | 104 +-- src/data/framework/configLoader.ts | 12 +- src/data/framework/cooldownLoader.ts | 6 +- src/data/framework/databaseLoader.ts | 12 +- src/data/framework/flagLoader.ts | 28 +- src/data/framework/helpMenuLoader.ts | 82 +-- src/data/framework/languageLoader.ts | 46 +- src/data/framework/liveStatusLoader.ts | 2 +- src/data/framework/permissionLoader.ts | 34 +- src/data/framework/postLoader.ts | 8 +- src/data/framework/progressBarLoader.ts | 20 +- src/data/framework/startScreenLoader.ts | 20 +- src/data/framework/statLoader.ts | 98 +-- src/data/openticket/blacklistLoader.ts | 4 +- src/data/openticket/optionLoader.ts | 106 +-- src/data/openticket/panelLoader.ts | 100 +-- src/data/openticket/questionLoader.ts | 26 +- src/data/openticket/roleLoader.ts | 8 +- src/data/openticket/ticketLoader.ts | 10 +- src/data/openticket/transcriptLoader.ts | 40 +- src/index.ts | 28 +- 101 files changed, 3736 insertions(+), 3739 deletions(-) diff --git a/src/actions/addTicketUser.ts b/src/actions/addTicketUser.ts index 1ed7118..cf3cf0f 100644 --- a/src/actions/addTicketUser.ts +++ b/src/actions/addTicketUser.ts @@ -4,21 +4,21 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:add-ticket-user")) - opendiscord.actions.get("openticket:add-ticket-user").workers.add([ - new api.ODWorker("openticket:add-ticket-user",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:add-ticket-user")) + opendiscord.actions.get("opendiscord:add-ticket-user").workers.add([ + new api.ODWorker("opendiscord:add-ticket-user",2,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason,data} = params if (channel.isThread()) throw new api.ODSystemError("Unable to add user to ticket! Open Ticket doesn't support threads!") await opendiscord.events.get("onTicketUserAdd").emit([ticket,user,data,channel,reason]) //update ticket - ticket.get("openticket:participants").value.push({type:"user",id:data.id}) - ticket.get("openticket:participants").refreshDatabase() - ticket.get("openticket:busy").value = true + ticket.get("opendiscord:participants").value.push({type:"user",id:data.id}) + ticket.get("opendiscord:participants").refreshDatabase() + ticket.get("opendiscord:busy").value = true //update channel permissions try{ @@ -38,7 +38,7 @@ export const registerActions = async () => { const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket user adding!","error",[ {key:"channel",value:"#"+channel.name}, @@ -51,24 +51,24 @@ export const registerActions = async () => { } //reply with new message - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:add-message").build(source,{guild,channel,user,ticket,reason,data})).message) - ticket.get("openticket:busy").value = false + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:add-message").build(source,{guild,channel,user,ticket,reason,data})).message) + ticket.get("opendiscord:busy").value = false await opendiscord.events.get("afterTicketUserAdded").emit([ticket,user,data,channel,reason]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason,data} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.adding.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"add",reason,additionalData:data})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"add",reason,additionalData:data})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.adding.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"add",reason,additionalData:data})) + if (creator && generalConfig.data.system.messages.adding.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"add",reason,additionalData:data})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket,data} = params opendiscord.log(user.displayName+" added "+data.displayName+" to a ticket!","info",[ @@ -81,8 +81,8 @@ export const registerActions = async () => { ]) }) ]) - opendiscord.actions.get("openticket:add-ticket-user").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:add-ticket-user").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false + params.ticket.get("opendiscord:busy").value = false }) } \ No newline at end of file diff --git a/src/actions/claimTicket.ts b/src/actions/claimTicket.ts index a70c28e..8900296 100644 --- a/src/actions/claimTicket.ts +++ b/src/actions/claimTicket.ts @@ -4,35 +4,35 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:claim-ticket")) - opendiscord.actions.get("openticket:claim-ticket").workers.add([ - new api.ODWorker("openticket:claim-ticket",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:claim-ticket")) + opendiscord.actions.get("opendiscord:claim-ticket").workers.add([ + new api.ODWorker("opendiscord:claim-ticket",2,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params if (channel.isThread()) throw new api.ODSystemError("Unable to claim ticket! Open Ticket doesn't support threads!") await opendiscord.events.get("onTicketClaim").emit([ticket,user,channel,reason]) //update ticket - ticket.get("openticket:claimed").value = true - ticket.get("openticket:claimed-by").value = user.id - ticket.get("openticket:claimed-on").value = new Date().getTime() - ticket.get("openticket:busy").value = true + ticket.get("opendiscord:claimed").value = true + ticket.get("opendiscord:claimed-by").value = user.id + ticket.get("opendiscord:claimed-on").value = new Date().getTime() + ticket.get("opendiscord:busy").value = true //update stats - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-claimed",1,"increase") - await opendiscord.stats.get("openticket:user").setStat("openticket:tickets-claimed",user.id,1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-claimed",1,"increase") + await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-claimed",user.id,1,"increase") //update category - const rawClaimCategory = ticket.option.get("openticket:channel-categories-claimed").value.find((c) => c.user == user.id) + const rawClaimCategory = ticket.option.get("opendiscord:channel-categories-claimed").value.find((c) => c.user == user.id) const claimCategory = (rawClaimCategory) ? rawClaimCategory.category : null if (claimCategory){ try { channel.setParent(claimCategory,{lockPermissions:false}) - ticket.get("openticket:category-mode").value = "claimed" - ticket.get("openticket:category").value = claimCategory + ticket.get("opendiscord:category-mode").value = "claimed" + ticket.get("opendiscord:category").value = claimCategory }catch(e){ opendiscord.log("Unable to move ticket to 'claimed category'!","error",[ {key:"channel",value:"#"+channel.name}, @@ -47,7 +47,7 @@ export const registerActions = async () => { const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket claiming!","error",[ {key:"channel",value:"#"+channel.name}, @@ -60,24 +60,24 @@ export const registerActions = async () => { } //reply with new message - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:claim-message").build(source,{guild,channel,user,ticket,reason})).message) - ticket.get("openticket:busy").value = false + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:claim-message").build(source,{guild,channel,user,ticket,reason})).message) + ticket.get("opendiscord:busy").value = false await opendiscord.events.get("afterTicketClaimed").emit([ticket,user,channel,reason]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.claiming.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"claim",reason,additionalData:null})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"claim",reason,additionalData:null})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.claiming.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"claim",reason,additionalData:null})) + if (creator && generalConfig.data.system.messages.claiming.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"claim",reason,additionalData:null})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params opendiscord.log(user.displayName+" claimed a ticket!","info",[ @@ -90,188 +90,188 @@ export const registerActions = async () => { ]) }) ]) - opendiscord.actions.get("openticket:claim-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:claim-ticket").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false + params.ticket.get("opendiscord:busy").value = false }) } export const registerVerifyBars = async () => { //CLAIM TICKET TICKET MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:claim-ticket-ticket-message",opendiscord.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:claim-ticket-ticket-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:claim-ticket-ticket-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:claim-ticket-ticket-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.claim if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:claim-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:claim-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already claimed - if (ticket.get("openticket:claimed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.claim"),layout:"simple"})) + if (ticket.get("opendiscord:claimed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.claim"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start claiming ticket if (params.data == "reason"){ //claim with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:claim-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:claim-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //claim without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:claim-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:claim-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) } }) ]) - opendiscord.verifybars.get("openticket:claim-ticket-ticket-message").failure.add([ - new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:claim-ticket-ticket-message").failure.add([ + new api.ODWorker("opendiscord:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //CLAIM TICKET UNCLAIM MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:claim-ticket-unclaim-message",opendiscord.builders.messages.getSafe("openticket:verifybar-unclaim-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:claim-ticket-unclaim-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:claim-ticket-unclaim-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-unclaim-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:claim-ticket-unclaim-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.claim if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:claim-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:claim-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already claimed - if (ticket.get("openticket:claimed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.claim"),layout:"simple"})) + if (ticket.get("opendiscord:claimed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.claim"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start claiming ticket if (params.data == "reason"){ //claim with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:claim-ticket-reason").build("unclaim-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:claim-ticket-reason").build("unclaim-message",{guild,channel,user,ticket})) }else{ //claim without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:claim-ticket").run("unclaim-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:claim-message").build("unclaim-message",{guild,channel,user,ticket,reason:null})) + await opendiscord.actions.get("opendiscord:claim-ticket").run("unclaim-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:claim-message").build("unclaim-message",{guild,channel,user,ticket,reason:null})) } }) ]) - opendiscord.verifybars.get("openticket:claim-ticket-unclaim-message").failure.add([ - new api.ODWorker("openticket:back-to-unclaim-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:claim-ticket-unclaim-message").failure.add([ + new api.ODWorker("opendiscord:back-to-unclaim-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } const rawReason = (verifybarMessage && verifybarMessage.embeds[0] && verifybarMessage.embeds[0].fields[0]) ? verifybarMessage.embeds[0].fields[0].value : null const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:unclaim-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:unclaim-message").build("other",{guild,channel,user,ticket,reason})) }) ]) } \ No newline at end of file diff --git a/src/actions/clearTickets.ts b/src/actions/clearTickets.ts index 03a5ff2..c654557 100644 --- a/src/actions/clearTickets.ts +++ b/src/actions/clearTickets.ts @@ -4,12 +4,12 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:clear-tickets")) - opendiscord.actions.get("openticket:clear-tickets").workers.add([ - new api.ODWorker("openticket:clear-tickets",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:clear-tickets")) + opendiscord.actions.get("opendiscord:clear-tickets").workers.add([ + new api.ODWorker("opendiscord:clear-tickets",2,async (instance,params,source,cancel) => { const {guild,channel,user,filter,list} = params await opendiscord.events.get("onTicketsClear").emit([list,user,channel,filter]) @@ -18,21 +18,21 @@ export const registerActions = async () => { const ticketChannel = await opendiscord.tickets.getTicketChannel(ticket) if (!ticketChannel) return nameList.push("#"+ticketChannel.name) - await opendiscord.actions.get("openticket:delete-ticket").run("clear",{guild,channel:ticketChannel,user,ticket,reason:"Cleared Ticket",sendMessage:true,withoutTranscript:false}) + await opendiscord.actions.get("opendiscord:delete-ticket").run("clear",{guild,channel:ticketChannel,user,ticket,reason:"Cleared Ticket",sendMessage:true,withoutTranscript:false}) } instance.list = nameList await opendiscord.events.get("afterTicketsCleared").emit([list,user,channel,filter]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,filter,list} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.deleting.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:clear-logs").build(source,{guild,channel,user,filter,list:instance.list ?? []})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:clear-logs").build(source,{guild,channel,user,filter,list:instance.list ?? []})) } }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,user,filter,list} = params opendiscord.log(user.displayName+" cleared "+list.length+" tickets!","info",[ {key:"user",value:user.username}, diff --git a/src/actions/closeTicket.ts b/src/actions/closeTicket.ts index b093b63..5481fb7 100644 --- a/src/actions/closeTicket.ts +++ b/src/actions/closeTicket.ts @@ -4,36 +4,36 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:close-ticket")) - opendiscord.actions.get("openticket:close-ticket").workers.add([ - new api.ODWorker("openticket:close-ticket",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:close-ticket")) + opendiscord.actions.get("opendiscord:close-ticket").workers.add([ + new api.ODWorker("opendiscord:close-ticket",2,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params if (channel.isThread()) throw new api.ODSystemError("Unable to close ticket! Open Ticket doesn't support threads!") await opendiscord.events.get("onTicketClose").emit([ticket,user,channel,reason]) //update ticket - ticket.get("openticket:closed").value = true - if (source == "autoclose") ticket.get("openticket:autoclosed").value = true - ticket.get("openticket:open").value = false - ticket.get("openticket:closed-by").value = user.id - ticket.get("openticket:closed-on").value = new Date().getTime() - ticket.get("openticket:busy").value = true + ticket.get("opendiscord:closed").value = true + if (source == "autoclose") ticket.get("opendiscord:autoclosed").value = true + ticket.get("opendiscord:open").value = false + ticket.get("opendiscord:closed-by").value = user.id + ticket.get("opendiscord:closed-on").value = new Date().getTime() + ticket.get("opendiscord:busy").value = true //update stats - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-closed",1,"increase") - await opendiscord.stats.get("openticket:user").setStat("openticket:tickets-closed",user.id,1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-closed",1,"increase") + await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-closed",user.id,1,"increase") //update category - const closeCategory = ticket.option.get("openticket:channel-category-closed").value + const closeCategory = ticket.option.get("opendiscord:channel-category-closed").value if (closeCategory !== ""){ try { channel.setParent(closeCategory,{lockPermissions:false}) - ticket.get("openticket:category-mode").value = "closed" - ticket.get("openticket:category").value = closeCategory + ticket.get("opendiscord:category-mode").value = "closed" + ticket.get("opendiscord:category").value = closeCategory }catch(e){ opendiscord.log("Unable to move ticket to 'closed category'!","error",[ {key:"channel",value:"#"+channel.name}, @@ -51,9 +51,9 @@ export const registerActions = async () => { allow:[], deny:["ViewChannel","SendMessages","ReadMessageHistory"] }] - const globalAdmins = opendiscord.configs.get("openticket:general").data.globalAdmins - const optionAdmins = ticket.option.get("openticket:admins").value - const readonlyAdmins = ticket.option.get("openticket:admins-readonly").value + const globalAdmins = opendiscord.configs.get("opendiscord:general").data.globalAdmins + const optionAdmins = ticket.option.get("opendiscord:admins").value + const readonlyAdmins = ticket.option.get("opendiscord:admins-readonly").value globalAdmins.forEach((admin) => { permissions.push({ @@ -82,7 +82,7 @@ export const registerActions = async () => { deny:["SendMessages","AddReactions","AttachFiles","SendPolls"] }) }) - ticket.get("openticket:participants").value.forEach((participant) => { + ticket.get("opendiscord:participants").value.forEach((participant) => { //all participants that aren't roles/admins => readonly (OR non-viewable when enabled) if (participant.type == "user"){ if (generalConfig.data.system.removeParticipantsOnClose) permissions.push({ @@ -105,7 +105,7 @@ export const registerActions = async () => { const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket closing!","error",[ {key:"channel",value:"#"+channel.name}, @@ -118,24 +118,24 @@ export const registerActions = async () => { } //reply with new message - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:close-message").build(source,{guild,channel,user,ticket,reason})).message) - ticket.get("openticket:busy").value = false + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:close-message").build(source,{guild,channel,user,ticket,reason})).message) + ticket.get("opendiscord:busy").value = false await opendiscord.events.get("afterTicketClosed").emit([ticket,user,channel,reason]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.closing.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"close",reason,additionalData:null})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"close",reason,additionalData:null})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.closing.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"close",reason,additionalData:null})) + if (creator && generalConfig.data.system.messages.closing.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"close",reason,additionalData:null})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params opendiscord.log(user.displayName+" closed a ticket!","info",[ @@ -148,188 +148,188 @@ export const registerActions = async () => { ]) }) ]) - opendiscord.actions.get("openticket:close-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:close-ticket").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false + params.ticket.get("opendiscord:busy").value = false }) } export const registerVerifyBars = async () => { //CLOSE TICKET TICKET MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:close-ticket-ticket-message",opendiscord.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:close-ticket-ticket-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:close-ticket-ticket-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:close-ticket-ticket-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.close if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:close-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:close-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already closed - if (ticket.get("openticket:closed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) + if (ticket.get("opendiscord:closed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start closing ticket if (params.data == "reason"){ //close with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:close-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:close-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //close without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:close-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:close-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) } }) ]) - opendiscord.verifybars.get("openticket:close-ticket-ticket-message").failure.add([ - new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:close-ticket-ticket-message").failure.add([ + new api.ODWorker("opendiscord:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //CLOSE TICKET REOPEN MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:close-ticket-reopen-message",opendiscord.builders.messages.getSafe("openticket:verifybar-reopen-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:close-ticket-reopen-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:close-ticket-reopen-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-reopen-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:close-ticket-reopen-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.close if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:close-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:close-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already closed - if (ticket.get("openticket:closed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) + if (ticket.get("opendiscord:closed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start closing ticket if (params.data == "reason"){ //close with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:close-ticket-reason").build("reopen-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:close-ticket-reason").build("reopen-message",{guild,channel,user,ticket})) }else{ //close without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:close-ticket").run("reopen-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:close-message").build("reopen-message",{guild,channel,user,ticket,reason:null})) + await opendiscord.actions.get("opendiscord:close-ticket").run("reopen-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:close-message").build("reopen-message",{guild,channel,user,ticket,reason:null})) } }) ]) - opendiscord.verifybars.get("openticket:close-ticket-reopen-message").failure.add([ - new api.ODWorker("openticket:back-to-reopen-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:close-ticket-reopen-message").failure.add([ + new api.ODWorker("opendiscord:back-to-reopen-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } const rawReason = (verifybarMessage && verifybarMessage.embeds[0] && verifybarMessage.embeds[0].fields[0]) ? verifybarMessage.embeds[0].fields[0].value : null const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:reopen-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:reopen-message").build("other",{guild,channel,user,ticket,reason})) }) ]) } \ No newline at end of file diff --git a/src/actions/createTicket.ts b/src/actions/createTicket.ts index 0815fd3..6c2cfab 100644 --- a/src/actions/createTicket.ts +++ b/src/actions/createTicket.ts @@ -4,22 +4,22 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:create-ticket")) - opendiscord.actions.get("openticket:create-ticket").workers.add([ - new api.ODWorker("openticket:create-ticket",3,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:create-ticket")) + opendiscord.actions.get("opendiscord:create-ticket").workers.add([ + new api.ODWorker("opendiscord:create-ticket",3,async (instance,params,source,cancel) => { const {guild,user,answers,option} = params await opendiscord.events.get("onTicketCreate").emit([user]) await opendiscord.events.get("onTicketChannelCreation").emit([option,user]) //get channel properties - const channelPrefix = option.get("openticket:channel-prefix").value - const channelCategory = option.get("openticket:channel-category").value - const channelBackupCategory = option.get("openticket:channel-category-backup").value - const channelDescription = option.get("openticket:channel-description").value + const channelPrefix = option.get("opendiscord:channel-prefix").value + const channelCategory = option.get("opendiscord:channel-category").value + const channelBackupCategory = option.get("opendiscord:channel-category-backup").value + const channelDescription = option.get("opendiscord:channel-description").value const channelSuffix = opendiscord.options.suffix.getSuffixFromOption(option,user) const channelName = channelPrefix+channelSuffix @@ -65,9 +65,9 @@ export const registerActions = async () => { allow:[], deny:["ViewChannel","SendMessages","ReadMessageHistory"] }] - const globalAdmins = opendiscord.configs.get("openticket:general").data.globalAdmins - const optionAdmins = option.get("openticket:admins").value - const readonlyAdmins = option.get("openticket:admins-readonly").value + const globalAdmins = opendiscord.configs.get("opendiscord:general").data.globalAdmins + const optionAdmins = option.get("opendiscord:admins").value + const readonlyAdmins = option.get("opendiscord:admins-readonly").value globalAdmins.forEach((admin) => { permissions.push({ @@ -127,40 +127,40 @@ export const registerActions = async () => { //create ticket const ticket = new api.ODTicket(channel.id,option,[ - new api.ODTicketData("openticket:busy",false), - new api.ODTicketData("openticket:ticket-message",null), - new api.ODTicketData("openticket:participants",participants), - new api.ODTicketData("openticket:channel-suffix",channelSuffix), + new api.ODTicketData("opendiscord:busy",false), + new api.ODTicketData("opendiscord:ticket-message",null), + new api.ODTicketData("opendiscord:participants",participants), + new api.ODTicketData("opendiscord:channel-suffix",channelSuffix), - new api.ODTicketData("openticket:open",true), - new api.ODTicketData("openticket:opened-by",user.id), - new api.ODTicketData("openticket:opened-on",new Date().getTime()), - new api.ODTicketData("openticket:closed",false), - new api.ODTicketData("openticket:closed-by",null), - new api.ODTicketData("openticket:closed-on",null), - new api.ODTicketData("openticket:claimed",false), - new api.ODTicketData("openticket:claimed-by",null), - new api.ODTicketData("openticket:claimed-on",null), - new api.ODTicketData("openticket:pinned",false), - new api.ODTicketData("openticket:pinned-by",null), - new api.ODTicketData("openticket:pinned-on",null), - new api.ODTicketData("openticket:for-deletion",false), + new api.ODTicketData("opendiscord:open",true), + new api.ODTicketData("opendiscord:opened-by",user.id), + new api.ODTicketData("opendiscord:opened-on",new Date().getTime()), + new api.ODTicketData("opendiscord:closed",false), + new api.ODTicketData("opendiscord:closed-by",null), + new api.ODTicketData("opendiscord:closed-on",null), + new api.ODTicketData("opendiscord:claimed",false), + new api.ODTicketData("opendiscord:claimed-by",null), + new api.ODTicketData("opendiscord:claimed-on",null), + new api.ODTicketData("opendiscord:pinned",false), + new api.ODTicketData("opendiscord:pinned-by",null), + new api.ODTicketData("opendiscord:pinned-on",null), + new api.ODTicketData("opendiscord:for-deletion",false), - new api.ODTicketData("openticket:category",category), - new api.ODTicketData("openticket:category-mode",categoryMode), + new api.ODTicketData("opendiscord:category",category), + new api.ODTicketData("opendiscord:category-mode",categoryMode), - new api.ODTicketData("openticket:autoclose-enabled",option.get("openticket:autoclose-enable-hours").value), - new api.ODTicketData("openticket:autoclose-hours",(option.get("openticket:autoclose-enable-hours").value ? option.get("openticket:autoclose-hours").value : 0)), - new api.ODTicketData("openticket:autoclosed",false), - new api.ODTicketData("openticket:autodelete-enabled",option.get("openticket:autodelete-enable-days").value), - new api.ODTicketData("openticket:autodelete-days",(option.get("openticket:autodelete-enable-days").value ? option.get("openticket:autodelete-days").value : 0)), + new api.ODTicketData("opendiscord:autoclose-enabled",option.get("opendiscord:autoclose-enable-hours").value), + new api.ODTicketData("opendiscord:autoclose-hours",(option.get("opendiscord:autoclose-enable-hours").value ? option.get("opendiscord:autoclose-hours").value : 0)), + new api.ODTicketData("opendiscord:autoclosed",false), + new api.ODTicketData("opendiscord:autodelete-enabled",option.get("opendiscord:autodelete-enable-days").value), + new api.ODTicketData("opendiscord:autodelete-days",(option.get("opendiscord:autodelete-enable-days").value ? option.get("opendiscord:autodelete-days").value : 0)), - new api.ODTicketData("openticket:answers",answers) + new api.ODTicketData("opendiscord:answers",answers) ]) //manage stats - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-created",1,"increase") - await opendiscord.stats.get("openticket:user").setStat("openticket:tickets-created",user.id,1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-created",1,"increase") + await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-created",user.id,1,"increase") //manage bot permissions await opendiscord.events.get("onTicketPermissionsCreated").emit([option,opendiscord.permissions,channel,user]) @@ -172,7 +172,7 @@ export const registerActions = async () => { instance.ticket = ticket opendiscord.tickets.add(ticket) }), - new api.ODWorker("openticket:send-ticket-message",2,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:send-ticket-message",2,async (instance,params,source,cancel) => { const {guild,user,answers,option} = params const {ticket,channel} = instance @@ -180,37 +180,37 @@ export const registerActions = async () => { await opendiscord.events.get("onTicketMainMessageCreated").emit([ticket,channel,user]) //check if ticket message is enabled - if (!option.get("openticket:ticket-message-enabled").value) return + if (!option.get("opendiscord:ticket-message-enabled").value) return try { - const msg = await channel.send((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build(source,{guild,channel,user,ticket})).message) + const msg = await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build(source,{guild,channel,user,ticket})).message) - ticket.get("openticket:ticket-message").value = msg.id + ticket.get("opendiscord:ticket-message").value = msg.id //manage stats - await opendiscord.stats.get("openticket:ticket").setStat("openticket:messages-sent",ticket.id.value,1,"increase") + await opendiscord.stats.get("opendiscord:ticket").setStat("opendiscord:messages-sent",ticket.id.value,1,"increase") await opendiscord.events.get("afterTicketMainMessageCreated").emit([ticket,msg,channel,user]) }catch(err){ process.emit("uncaughtException",err) //something went wrong while sending the ticket message - channel.send((await opendiscord.builders.messages.getSafe("openticket:error").build("other",{guild,channel,user,error:"Ticket Message: Creation Error!\n=> Ticket Is Still Created Succesfully",layout:"advanced"})).message) + channel.send((await opendiscord.builders.messages.getSafe("opendiscord:error").build("other",{guild,channel,user,error:"Ticket Message: Creation Error!\n=> Ticket Is Still Created Succesfully",layout:"advanced"})).message) } await opendiscord.events.get("afterTicketCreated").emit([ticket,user,channel]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,user,answers,option} = params const {ticket,channel} = instance //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.creation.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-created-logs").build(source,{guild,channel,user,ticket})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-created-logs").build(source,{guild,channel,user,ticket})) } //to dm - if (generalConfig.data.system.messages.creation.dm) await opendiscord.client.sendUserDm(user,await opendiscord.builders.messages.getSafe("openticket:ticket-created-dm").build(source,{guild,channel,user,ticket})) + if (generalConfig.data.system.messages.creation.dm) await opendiscord.client.sendUserDm(user,await opendiscord.builders.messages.getSafe("opendiscord:ticket-created-dm").build(source,{guild,channel,user,ticket})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,user,answers,option} = params const {ticket,channel} = instance diff --git a/src/actions/createTicketPermissions.ts b/src/actions/createTicketPermissions.ts index c5b4c33..2c1bb06 100644 --- a/src/actions/createTicketPermissions.ts +++ b/src/actions/createTicketPermissions.ts @@ -5,10 +5,10 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:create-ticket-permissions")) - opendiscord.actions.get("openticket:create-ticket-permissions").workers.add([ - new api.ODWorker("openticket:check-blacklist",4,(instance,params,source,cancel) => { - if (!params.option.get("openticket:allow-blacklisted-users").value && opendiscord.blacklist.exists(params.user.id)){ + opendiscord.actions.add(new api.ODAction("opendiscord:create-ticket-permissions")) + opendiscord.actions.get("opendiscord:create-ticket-permissions").workers.add([ + new api.ODWorker("opendiscord:check-blacklist",4,(instance,params,source,cancel) => { + if (!params.option.get("opendiscord:allow-blacklisted-users").value && opendiscord.blacklist.exists(params.user.id)){ instance.valid = false instance.reason = "blacklist" opendiscord.log(params.user.displayName+" tried to create a ticket but is blacklisted!","info",[ @@ -19,8 +19,8 @@ export const registerActions = async () => { return cancel() } }), - new api.ODWorker("openticket:check-cooldown",3,(instance,params,source,cancel) => { - const cooldown = opendiscord.cooldowns.get("openticket:option-cooldown_"+params.option.id.value) + new api.ODWorker("opendiscord:check-cooldown",3,(instance,params,source,cancel) => { + const cooldown = opendiscord.cooldowns.get("opendiscord:option-cooldown_"+params.option.id.value) if (cooldown && cooldown instanceof api.ODTimeoutCooldown && cooldown.use(params.user.id)){ instance.valid = false instance.reason = "cooldown" @@ -36,13 +36,13 @@ export const registerActions = async () => { return cancel() } }), - new api.ODWorker("openticket:check-global-limits",2,(instance,params,source,cancel) => { - const generalConfig = opendiscord.configs.get("openticket:general") + new api.ODWorker("opendiscord:check-global-limits",2,(instance,params,source,cancel) => { + const generalConfig = opendiscord.configs.get("opendiscord:general") if (!generalConfig.data.system.limits.enabled) return const allTickets = opendiscord.tickets.getAll() const globalTicketCount = allTickets.length - const userTickets = opendiscord.tickets.getFiltered((ticket) => ticket.exists("openticket:opened-by") && (ticket.get("openticket:opened-by").value == params.user.id)) + const userTickets = opendiscord.tickets.getFiltered((ticket) => ticket.exists("opendiscord:opened-by") && (ticket.get("opendiscord:opened-by").value == params.user.id)) const userTicketCount = userTickets.length if (globalTicketCount >= generalConfig.data.system.limits.globalMaximum){ @@ -67,15 +67,15 @@ export const registerActions = async () => { return cancel() } }), - new api.ODWorker("openticket:check-option-limits",1,(instance,params,source,cancel) => { - if (!params.option.exists("openticket:limits-enabled") || !params.option.get("openticket:limits-enabled").value) return + new api.ODWorker("opendiscord:check-option-limits",1,(instance,params,source,cancel) => { + if (!params.option.exists("opendiscord:limits-enabled") || !params.option.get("opendiscord:limits-enabled").value) return const allTickets = opendiscord.tickets.getFiltered((ticket) => ticket.option.id.value == params.option.id.value) const globalTicketCount = allTickets.length - const userTickets = opendiscord.tickets.getFiltered((ticket) => ticket.option.id.value == params.option.id.value && ticket.exists("openticket:opened-by") && (ticket.get("openticket:opened-by").value == params.user.id)) + const userTickets = opendiscord.tickets.getFiltered((ticket) => ticket.option.id.value == params.option.id.value && ticket.exists("opendiscord:opened-by") && (ticket.get("opendiscord:opened-by").value == params.user.id)) const userTicketCount = userTickets.length - if (globalTicketCount >= params.option.get("openticket:limits-maximum-global").value){ + if (globalTicketCount >= params.option.get("opendiscord:limits-maximum-global").value){ instance.valid = false instance.reason = "option-limit" opendiscord.log(params.user.displayName+" tried to create a ticket, but reached the limit!","info",[ @@ -85,7 +85,7 @@ export const registerActions = async () => { {key:"limit",value:"option"} ]) return cancel() - }else if (userTicketCount >= params.option.get("openticket:limits-maximum-user").value){ + }else if (userTicketCount >= params.option.get("opendiscord:limits-maximum-user").value){ instance.valid = false instance.reason = "option-user-limit" opendiscord.log(params.user.displayName+" tried to create a ticket, but reached the limit!","info",[ @@ -97,7 +97,7 @@ export const registerActions = async () => { return cancel() } }), - new api.ODWorker("openticket:valid",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:valid",0,(instance,params,source,cancel) => { instance.valid = true instance.reason = null cancel() diff --git a/src/actions/createTranscript.ts b/src/actions/createTranscript.ts index 90e2d1f..07894b8 100644 --- a/src/actions/createTranscript.ts +++ b/src/actions/createTranscript.ts @@ -4,12 +4,12 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const transcriptConfig = opendiscord.configs.get("openticket:transcripts") +const transcriptConfig = opendiscord.configs.get("opendiscord:transcripts") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:create-transcript")) - opendiscord.actions.get("openticket:create-transcript").workers.add([ - new api.ODWorker("openticket:select-compiler",4,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:create-transcript")) + opendiscord.actions.get("opendiscord:create-transcript").workers.add([ + new api.ODWorker("opendiscord:select-compiler",4,async (instance,params,source,cancel) => { const {channel,user,ticket} = params if (channel.type != discord.ChannelType.GuildText) return cancel() if (!transcriptConfig.data.general.enabled) return cancel() @@ -26,10 +26,10 @@ export const registerActions = async () => { instance.participants = participants //select transcript compiler - if (transcriptConfig.data.general.mode == "text") instance.compiler = opendiscord.transcripts.get("openticket:text-compiler") - else if (transcriptConfig.data.general.mode == "html") instance.compiler = opendiscord.transcripts.get("openticket:html-compiler") + if (transcriptConfig.data.general.mode == "text") instance.compiler = opendiscord.transcripts.get("opendiscord:text-compiler") + else if (transcriptConfig.data.general.mode == "html") instance.compiler = opendiscord.transcripts.get("opendiscord:html-compiler") }), - new api.ODWorker("openticket:init-transcript",3,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:init-transcript",3,async (instance,params,source,cancel) => { const {channel,user,ticket} = params if (channel.type != discord.ChannelType.GuildText) return cancel() if (!transcriptConfig.data.general.enabled) return cancel() @@ -41,7 +41,7 @@ export const registerActions = async () => { const result = await instance.compiler.init(ticket,channel,user) if (result.success && result.pendingMessage && transcriptConfig.data.general.enableChannel){ //send init message to channel - const post = opendiscord.posts.get("openticket:transcripts") + const post = opendiscord.posts.get("opendiscord:transcripts") if (post){ instance.pendingMessage = await post.send(result.pendingMessage) } @@ -59,7 +59,7 @@ export const registerActions = async () => { } await opendiscord.events.get("afterTranscriptInitiated").emit([opendiscord.transcripts,ticket,channel,user]) }), - new api.ODWorker("openticket:compile-transcript",2,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:compile-transcript",2,async (instance,params,source,cancel) => { const {channel,user,ticket} = params if (channel.type != discord.ChannelType.GuildText) return cancel() if (!instance.compiler){ @@ -89,7 +89,7 @@ export const registerActions = async () => { } await opendiscord.events.get("afterTranscriptCompiled").emit([opendiscord.transcripts,ticket,channel,user]) }), - new api.ODWorker("openticket:ready-transcript",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:ready-transcript",1,async (instance,params,source,cancel) => { if (!instance.result){ instance.success = false cancel() @@ -110,7 +110,7 @@ export const registerActions = async () => { instance.pendingMessage.message.edit(channelMessage.message) }else{ //send ready message to channel - const post = opendiscord.posts.get("openticket:transcripts") + const post = opendiscord.posts.get("opendiscord:transcripts") if (post) await post.send(channelMessage) } } @@ -145,11 +145,11 @@ export const registerActions = async () => { }) //update stats - await opendiscord.stats.get("openticket:global").setStat("openticket:transcripts-created",1,"increase") - await opendiscord.stats.get("openticket:user").setStat("openticket:transcripts-created",params.user.id,1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:transcripts-created",1,"increase") + await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:transcripts-created",params.user.id,1,"increase") await opendiscord.events.get("afterTranscriptCreated").emit([opendiscord.transcripts,instance.result.ticket,instance.result.channel,instance.result.user]) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {user,channel,ticket} = params opendiscord.log(user.displayName+" created a transcript!","info",[ {key:"user",value:user.username}, diff --git a/src/actions/deleteTicket.ts b/src/actions/deleteTicket.ts index 72234bd..4c368b7 100644 --- a/src/actions/deleteTicket.ts +++ b/src/actions/deleteTicket.ts @@ -4,26 +4,26 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:delete-ticket")) - opendiscord.actions.get("openticket:delete-ticket").workers.add([ - new api.ODWorker("openticket:delete-ticket",3,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:delete-ticket")) + opendiscord.actions.get("opendiscord:delete-ticket").workers.add([ + new api.ODWorker("opendiscord:delete-ticket",3,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params if (channel.isThread()) throw new api.ODSystemError("Unable to delete ticket! Open Ticket doesn't support threads!") await opendiscord.events.get("onTicketDelete").emit([ticket,user,channel,reason]) //update ticket - ticket.get("openticket:for-deletion").value = true - ticket.get("openticket:busy").value = true + ticket.get("opendiscord:for-deletion").value = true + ticket.get("opendiscord:busy").value = true //update ticket message const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket deletion!","error",[ {key:"channel",value:"#"+channel.name}, @@ -35,20 +35,20 @@ export const registerActions = async () => { } } - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:delete-message").build(source,{guild,channel,user,ticket,reason})).message) + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:delete-message").build(source,{guild,channel,user,ticket,reason})).message) //create transcript if (!params.withoutTranscript){ - const transcriptRes = await opendiscord.actions.get("openticket:create-transcript").run(source,{guild,channel,user,ticket}) + const transcriptRes = await opendiscord.actions.get("opendiscord:create-transcript").run(source,{guild,channel,user,ticket}) //transcript failure if (typeof transcriptRes.success == "boolean" && !transcriptRes.success && transcriptRes.compiler){ const {compiler} = transcriptRes - await channel.send((await opendiscord.builders.messages.getSafe("openticket:transcript-error").build(source,{guild,channel,user,ticket,compiler,reason:transcriptRes.errorReason ?? null})).message) + await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:transcript-error").build(source,{guild,channel,user,ticket,compiler,reason:transcriptRes.errorReason ?? null})).message) .catch((reason) => opendiscord.log("Unable to send transcript failure to ticket channel!","error",[{key:"id",value:channel.id}])) //undo deletion - ticket.get("openticket:for-deletion").value = false - ticket.get("openticket:busy").value = false + ticket.get("opendiscord:for-deletion").value = false + ticket.get("opendiscord:busy").value = false opendiscord.log("Canceled ticket deletion because of transcript system malfunction!","warning",[ {key:"compiler",value:compiler.id.value}, {key:"reason",value:transcriptRes.errorReason ?? "/"}, @@ -58,8 +58,8 @@ export const registerActions = async () => { } //update stats - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-deleted",1,"increase") - await opendiscord.stats.get("openticket:user").setStat("openticket:tickets-deleted",user.id,1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-deleted",1,"increase") + await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-deleted",user.id,1,"increase") //delete ticket from manager opendiscord.tickets.remove(ticket.id) @@ -67,21 +67,21 @@ export const registerActions = async () => { //delete permissions from manager await (await import("../data/framework/permissionLoader.js")).removeTicketPermissions(ticket) }), - new api.ODWorker("openticket:discord-logs",2,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",2,async (instance,params,source,cancel) => { //logs before channel deletion => channel might still be used in log embeds const {guild,channel,user,ticket,reason} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.deleting.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"delete",reason,additionalData:null})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"delete",reason,additionalData:null})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.deleting.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"delete",reason,additionalData:null})) + if (creator && generalConfig.data.system.messages.deleting.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"delete",reason,additionalData:null})) }), - new api.ODWorker("openticket:delete-channel",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:delete-channel",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params //delete channel & events await opendiscord.events.get("onTicketChannelDeletion").emit([ticket,channel,user]) @@ -93,7 +93,7 @@ export const registerActions = async () => { await opendiscord.events.get("afterTicketDeleted").emit([ticket,user,reason]) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params opendiscord.log(user.displayName+" deleted a ticket!","info",[ @@ -107,360 +107,360 @@ export const registerActions = async () => { ]) }) ]) - opendiscord.actions.get("openticket:delete-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:delete-ticket").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false - params.ticket.get("openticket:for-deletion").value = false + params.ticket.get("opendiscord:busy").value = false + params.ticket.get("opendiscord:for-deletion").value = false }) } export const registerVerifyBars = async () => { //DELETE TICKET TICKET MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:delete-ticket-ticket-message",opendiscord.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:delete-ticket-ticket-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:delete-ticket-ticket-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:delete-ticket-ticket-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:delete-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start deleting ticket if (params.data == "reason"){ //delete with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:delete-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:delete-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //delete without reason await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true,withoutTranscript:(params.data == "no-transcript")}) + opendiscord.actions.get("opendiscord:delete-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true,withoutTranscript:(params.data == "no-transcript")}) //update ticket (for ticket message) => no-await doesn't wait for the action to set this variable - ticket.get("openticket:for-deletion").value = true - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + ticket.get("opendiscord:for-deletion").value = true + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) } }) ]) - opendiscord.verifybars.get("openticket:delete-ticket-ticket-message").failure.add([ - new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:delete-ticket-ticket-message").failure.add([ + new api.ODWorker("opendiscord:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //DELETE TICKET CLOSE MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:delete-ticket-close-message",opendiscord.builders.messages.getSafe("openticket:verifybar-close-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:delete-ticket-close-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:delete-ticket-close-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-close-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:delete-ticket-close-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:delete-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start deleting ticket if (params.data == "reason"){ //delete with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:delete-ticket-reason").build("close-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:delete-ticket-reason").build("close-message",{guild,channel,user,ticket})) }else{ //delete without reason await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run("close-message",{guild,channel,user,ticket,reason:null,sendMessage:false,withoutTranscript:(params.data == "no-transcript")}) + opendiscord.actions.get("opendiscord:delete-ticket").run("close-message",{guild,channel,user,ticket,reason:null,sendMessage:false,withoutTranscript:(params.data == "no-transcript")}) //update ticket (for ticket message) => no-await doesn't wait for the action to set this variable - ticket.get("openticket:for-deletion").value = true - await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("close-message",{guild,channel,user,ticket,reason:null})) + ticket.get("opendiscord:for-deletion").value = true + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:delete-message").build("close-message",{guild,channel,user,ticket,reason:null})) } }) ]) - opendiscord.verifybars.get("openticket:delete-ticket-close-message").failure.add([ - new api.ODWorker("openticket:back-to-close-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:delete-ticket-close-message").failure.add([ + new api.ODWorker("opendiscord:back-to-close-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } const rawReason = (verifybarMessage && verifybarMessage.embeds[0] && verifybarMessage.embeds[0].fields[0]) ? verifybarMessage.embeds[0].fields[0].value : null const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:close-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:close-message").build("other",{guild,channel,user,ticket,reason})) }) ]) //DELETE TICKET REOPEN MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:delete-ticket-reopen-message",opendiscord.builders.messages.getSafe("openticket:verifybar-reopen-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:delete-ticket-reopen-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:delete-ticket-reopen-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-reopen-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:delete-ticket-reopen-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:delete-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start deleting ticket if (params.data == "reason"){ //delete with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:delete-ticket-reason").build("reopen-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:delete-ticket-reason").build("reopen-message",{guild,channel,user,ticket})) }else{ //delete without reason await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run("reopen-message",{guild,channel,user,ticket,reason:null,sendMessage:false,withoutTranscript:(params.data == "no-transcript")}) + opendiscord.actions.get("opendiscord:delete-ticket").run("reopen-message",{guild,channel,user,ticket,reason:null,sendMessage:false,withoutTranscript:(params.data == "no-transcript")}) //update ticket (for ticket message) => no-await doesn't wait for the action to set this variable - ticket.get("openticket:for-deletion").value = true - await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("reopen-message",{guild,channel,user,ticket,reason:null})) + ticket.get("opendiscord:for-deletion").value = true + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:delete-message").build("reopen-message",{guild,channel,user,ticket,reason:null})) } }) ]) - opendiscord.verifybars.get("openticket:delete-ticket-reopen-message").failure.add([ - new api.ODWorker("openticket:back-to-reopen-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:delete-ticket-reopen-message").failure.add([ + new api.ODWorker("opendiscord:back-to-reopen-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } const rawReason = (verifybarMessage && verifybarMessage.embeds[0] && verifybarMessage.embeds[0].fields[0]) ? verifybarMessage.embeds[0].fields[0].value : null const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:reopen-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:reopen-message").build("other",{guild,channel,user,ticket,reason})) }) ]) //DELETE TICKET AUTOCLOSE MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:delete-ticket-autoclose-message",opendiscord.builders.messages.getSafe("openticket:verifybar-autoclose-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:delete-ticket-autoclose-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:delete-ticket-autoclose-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-autoclose-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:delete-ticket-autoclose-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:delete-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start deleting ticket if (params.data == "reason"){ //delete with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:delete-ticket-reason").build("autoclose-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:delete-ticket-reason").build("autoclose-message",{guild,channel,user,ticket})) }else{ //delete without reason await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run("autoclose-message",{guild,channel,user,ticket,reason:null,sendMessage:false,withoutTranscript:(params.data == "no-transcript")}) + opendiscord.actions.get("opendiscord:delete-ticket").run("autoclose-message",{guild,channel,user,ticket,reason:null,sendMessage:false,withoutTranscript:(params.data == "no-transcript")}) //update ticket (for ticket message) => no-await doesn't wait for the action to set this variable - ticket.get("openticket:for-deletion").value = true - await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("autoclose-message",{guild,channel,user,ticket,reason:null})) + ticket.get("opendiscord:for-deletion").value = true + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:delete-message").build("autoclose-message",{guild,channel,user,ticket,reason:null})) } }) ]) - opendiscord.verifybars.get("openticket:delete-ticket-autoclose-message").failure.add([ - new api.ODWorker("openticket:back-to-autoclose-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:delete-ticket-autoclose-message").failure.add([ + new api.ODWorker("opendiscord:back-to-autoclose-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await opendiscord.builders.messages.getSafe("openticket:autoclose-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:autoclose-message").build("other",{guild,channel,user,ticket})) }) ]) } \ No newline at end of file diff --git a/src/actions/handleTranscriptErrors.ts b/src/actions/handleTranscriptErrors.ts index 2249e81..5c83ab1 100644 --- a/src/actions/handleTranscriptErrors.ts +++ b/src/actions/handleTranscriptErrors.ts @@ -3,75 +3,75 @@ /////////////////////////////////////// import {opendiscord, api, utilities} from "../index" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerButtonResponders = async () => { //TRANSCRIPT ERROR RETRY - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:transcript-error-retry",/^od:transcript-error-retry_([^_]+)/)) - opendiscord.responders.buttons.get("openticket:transcript-error-retry").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:transcript-error-retry",/^od:transcript-error-retry_([^_]+)/)) + opendiscord.responders.buttons.get("opendiscord:transcript-error-retry").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:delete-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "slash" && originalSource != "text" && originalSource != "ticket-message" && originalSource != "reopen-message" && originalSource != "close-message" && originalSource != "other") return if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start deleting ticket (without reason) await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason:"Transcript Error (Retried)",sendMessage:false,withoutTranscript:false}) + opendiscord.actions.get("opendiscord:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason:"Transcript Error (Retried)",sendMessage:false,withoutTranscript:false}) //update ticket (for ticket message) => no-await doesn't wait for the action to set this variable - ticket.get("openticket:for-deletion").value = true - await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason:"Transcript Error (Retried)"})) + ticket.get("opendiscord:for-deletion").value = true + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:delete-message").build("other",{guild,channel,user,ticket,reason:"Transcript Error (Retried)"})) }), - new api.ODWorker("openticket:logs",-1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,async (instance,params,source,cancel) => { const {user,channel} = instance if (channel.isDMBased()) return opendiscord.log(user.displayName+" retried deleting a ticket with transcript!","info",[ @@ -85,71 +85,71 @@ export const registerButtonResponders = async () => { ]) //TRANSCRIPT ERROR CONTINUE - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:transcript-error-continue",/^od:transcript-error-continue_([^_]+)/)) - opendiscord.responders.buttons.get("openticket:transcript-error-continue").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:transcript-error-continue",/^od:transcript-error-continue_([^_]+)/)) + opendiscord.responders.buttons.get("opendiscord:transcript-error-continue").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:delete-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "slash" && originalSource != "text" && originalSource != "ticket-message" && originalSource != "reopen-message" && originalSource != "close-message" && originalSource != "other") return if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start deleting ticket (without reason) await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason:"Transcript Error (Continued)",sendMessage:false,withoutTranscript:true}) + opendiscord.actions.get("opendiscord:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason:"Transcript Error (Continued)",sendMessage:false,withoutTranscript:true}) //update ticket (for ticket message) => no-await doesn't wait for the action to set this variable - ticket.get("openticket:for-deletion").value = true - await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason:"Transcript Error (Continued)"})) + ticket.get("opendiscord:for-deletion").value = true + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:delete-message").build("other",{guild,channel,user,ticket,reason:"Transcript Error (Continued)"})) }), - new api.ODWorker("openticket:logs",-1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,async (instance,params,source,cancel) => { const {user,channel} = instance if (channel.isDMBased()) return opendiscord.log(user.displayName+" continued deleting a ticket without transcript!","info",[ diff --git a/src/actions/handleVerifyBar.ts b/src/actions/handleVerifyBar.ts index c222db7..2794d71 100644 --- a/src/actions/handleVerifyBar.ts +++ b/src/actions/handleVerifyBar.ts @@ -5,9 +5,9 @@ import {opendiscord, api, utilities} from "../index" export const registerButtonResponders = async () => { //VERIFYBAR SUCCESS - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:verifybar-success",/^od:verifybar-success_([^_]+)/)) - opendiscord.responders.buttons.get("openticket:verifybar-success").workers.add( - new api.ODWorker("openticket:handle-verifybar",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:verifybar-success",/^od:verifybar-success_([^_]+)/)) + opendiscord.responders.buttons.get("opendiscord:verifybar-success").workers.add( + new api.ODWorker("opendiscord:handle-verifybar",0,async (instance,params,source,cancel) => { const id = instance.interaction.customId.split("_")[1] const customData = instance.interaction.customId.split("_")[2] as string|undefined @@ -18,9 +18,9 @@ export const registerButtonResponders = async () => { ) //VERIFYBAR FAILURE - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:verifybar-failure",/^od:verifybar-failure_([^_]+)/)) - opendiscord.responders.buttons.get("openticket:verifybar-failure").workers.add( - new api.ODWorker("openticket:handle-verifybar",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:verifybar-failure",/^od:verifybar-failure_([^_]+)/)) + opendiscord.responders.buttons.get("opendiscord:verifybar-failure").workers.add( + new api.ODWorker("opendiscord:handle-verifybar",0,async (instance,params,source,cancel) => { const id = instance.interaction.customId.split("_")[1] const customData = instance.interaction.customId.split("_")[2] as string|undefined diff --git a/src/actions/moveTicket.ts b/src/actions/moveTicket.ts index da4cbcd..11c21e3 100644 --- a/src/actions/moveTicket.ts +++ b/src/actions/moveTicket.ts @@ -4,12 +4,12 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:move-ticket")) - opendiscord.actions.get("openticket:move-ticket").workers.add([ - new api.ODWorker("openticket:move-ticket",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:move-ticket")) + opendiscord.actions.get("opendiscord:move-ticket").workers.add([ + new api.ODWorker("opendiscord:move-ticket",2,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason,data} = params if (channel.isThread()) throw new api.ODSystemError("Unable to move ticket! Open Ticket doesn't support threads!") @@ -17,18 +17,18 @@ export const registerActions = async () => { ticket.option = data //update stats - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-moved",1,"increase") - await opendiscord.stats.get("openticket:user").setStat("openticket:tickets-moved",user.id,1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-moved",1,"increase") + await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-moved",user.id,1,"increase") //get new channel properties - const channelPrefix = ticket.option.get("openticket:channel-prefix").value - const channelSuffix = ticket.get("openticket:channel-suffix").value - const channelCategory = ticket.option.get("openticket:channel-category").value - const channelBackupCategory = ticket.option.get("openticket:channel-category-backup").value - const rawClaimCategory = ticket.option.get("openticket:channel-categories-claimed").value.find((c) => c.user == user.id) + const channelPrefix = ticket.option.get("opendiscord:channel-prefix").value + const channelSuffix = ticket.get("opendiscord:channel-suffix").value + const channelCategory = ticket.option.get("opendiscord:channel-category").value + const channelBackupCategory = ticket.option.get("opendiscord:channel-category-backup").value + const rawClaimCategory = ticket.option.get("opendiscord:channel-categories-claimed").value.find((c) => c.user == user.id) const claimCategory = (rawClaimCategory) ? rawClaimCategory.category : null - const closeCategory = ticket.option.get("openticket:channel-category-closed").value - const channelDescription = ticket.option.get("openticket:channel-description").value + const closeCategory = ticket.option.get("opendiscord:channel-category-closed").value + const channelDescription = ticket.option.get("opendiscord:channel-description").value const channelName = channelPrefix+channelSuffix //handle category @@ -38,7 +38,7 @@ export const registerActions = async () => { //use claim category category = claimCategory categoryMode = "claimed" - }else if (closeCategory != "" && ticket.get("openticket:closed").value){ + }else if (closeCategory != "" && ticket.get("opendiscord:closed").value){ //use close category category = closeCategory categoryMode = "closed" @@ -79,8 +79,8 @@ export const registerActions = async () => { if (channel.parentId != category) await utilities.timedAwait(channel.setParent(category,{lockPermissions:false}),2500,(err) => { opendiscord.log("Failed to change channel category on ticket move","error") }) - ticket.get("openticket:category-mode").value = categoryMode - ticket.get("openticket:category").value = category + ticket.get("opendiscord:category-mode").value = categoryMode + ticket.get("opendiscord:category").value = category }catch(e){ opendiscord.log("Unable to move ticket to 'moved category'!","error",[ {key:"channel",value:"#"+channel.name}, @@ -97,9 +97,9 @@ export const registerActions = async () => { allow:[], deny:["ViewChannel","SendMessages","ReadMessageHistory"] }] - const globalAdmins = opendiscord.configs.get("openticket:general").data.globalAdmins - const optionAdmins = ticket.option.get("openticket:admins").value - const readonlyAdmins = ticket.option.get("openticket:admins-readonly").value + const globalAdmins = opendiscord.configs.get("opendiscord:general").data.globalAdmins + const optionAdmins = ticket.option.get("opendiscord:admins").value + const readonlyAdmins = ticket.option.get("opendiscord:admins-readonly").value globalAdmins.forEach((admin) => { permissions.push({ @@ -129,7 +129,7 @@ export const registerActions = async () => { }) }) //transfer all old user-participants over to the new ticket (creator & participants) - ticket.get("openticket:participants").value.forEach((p) => { + ticket.get("opendiscord:participants").value.forEach((p) => { if (p.type == "user") permissions.push({ type:discord.OverwriteType.Member, id:p.id, @@ -151,8 +151,8 @@ export const registerActions = async () => { const id = permission.id as string participants.push({type,id}) }) - ticket.get("openticket:participants").value = participants - ticket.get("openticket:participants").refreshDatabase() + ticket.get("opendiscord:participants").value = participants + ticket.get("opendiscord:participants").refreshDatabase() //rename channel (and give error when crashed) const originalName = channel.name @@ -161,7 +161,7 @@ export const registerActions = async () => { opendiscord.log("Failed to rename channel on ticket move","error") }) }catch(err){ - await channel.send((await opendiscord.builders.messages.getSafe("openticket:error-channel-rename").build("ticket-move",{guild,channel,user,originalName,newName:channelName})).message) + await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:error-channel-rename").build("ticket-move",{guild,channel,user,originalName,newName:channelName})).message) } try{ if (channel.type == discord.ChannelType.GuildText) channel.setTopic(channelDescription) @@ -171,7 +171,7 @@ export const registerActions = async () => { const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket renaming!","error",[ {key:"channel",value:"#"+channel.name}, @@ -184,24 +184,24 @@ export const registerActions = async () => { } //reply with new message - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:move-message").build(source,{guild,channel,user,ticket,reason,data})).message) - ticket.get("openticket:busy").value = false + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:move-message").build(source,{guild,channel,user,ticket,reason,data})).message) + ticket.get("opendiscord:busy").value = false await opendiscord.events.get("afterTicketMoved").emit([ticket,user,channel,reason]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason,data} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.moving.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"move",reason,additionalData:data})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"move",reason,additionalData:data})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.moving.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"move",reason,additionalData:data})) + if (creator && generalConfig.data.system.messages.moving.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"move",reason,additionalData:data})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params opendiscord.log(user.displayName+" moved a ticket!","info",[ @@ -214,8 +214,8 @@ export const registerActions = async () => { ]) }) ]) - opendiscord.actions.get("openticket:move-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:move-ticket").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false + params.ticket.get("opendiscord:busy").value = false }) } \ No newline at end of file diff --git a/src/actions/pinTicket.ts b/src/actions/pinTicket.ts index dafc6fe..0ac9446 100644 --- a/src/actions/pinTicket.ts +++ b/src/actions/pinTicket.ts @@ -4,26 +4,26 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:pin-ticket")) - opendiscord.actions.get("openticket:pin-ticket").workers.add([ - new api.ODWorker("openticket:pin-ticket",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:pin-ticket")) + opendiscord.actions.get("opendiscord:pin-ticket").workers.add([ + new api.ODWorker("opendiscord:pin-ticket",2,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params if (channel.isThread()) throw new api.ODSystemError("Unable to pin ticket! Open Ticket doesn't support threads!") await opendiscord.events.get("onTicketPin").emit([ticket,user,channel,reason]) //update ticket - ticket.get("openticket:pinned").value = true - ticket.get("openticket:pinned-by").value = user.id - ticket.get("openticket:pinned-on").value = new Date().getTime() - ticket.get("openticket:busy").value = true + ticket.get("opendiscord:pinned").value = true + ticket.get("opendiscord:pinned-by").value = user.id + ticket.get("opendiscord:pinned-on").value = new Date().getTime() + ticket.get("opendiscord:busy").value = true //update stats - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-pinned",1,"increase") - await opendiscord.stats.get("openticket:user").setStat("openticket:tickets-pinned",user.id,1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-pinned",1,"increase") + await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-pinned",user.id,1,"increase") //move to top of category if (channel.parent){ @@ -38,14 +38,14 @@ export const registerActions = async () => { opendiscord.log("Failed to rename channel on ticket pin","error") }) }catch(err){ - await channel.send((await opendiscord.builders.messages.getSafe("openticket:error-channel-rename").build("ticket-pin",{guild,channel,user,originalName,newName})).message) + await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:error-channel-rename").build("ticket-pin",{guild,channel,user,originalName,newName})).message) } //update ticket message const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket pinning!","error",[ {key:"channel",value:"#"+channel.name}, @@ -58,24 +58,24 @@ export const registerActions = async () => { } //reply with new message - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:pin-message").build(source,{guild,channel,user,ticket,reason})).message) - ticket.get("openticket:busy").value = false + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:pin-message").build(source,{guild,channel,user,ticket,reason})).message) + ticket.get("opendiscord:busy").value = false await opendiscord.events.get("afterTicketPinned").emit([ticket,user,channel,reason]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.pinning.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"pin",reason,additionalData:null})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"pin",reason,additionalData:null})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.pinning.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"pin",reason,additionalData:null})) + if (creator && generalConfig.data.system.messages.pinning.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"pin",reason,additionalData:null})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params opendiscord.log(user.displayName+" pinned a ticket!","info",[ @@ -92,184 +92,184 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //PIN TICKET TICKET MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:pin-ticket-ticket-message",opendiscord.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:pin-ticket-ticket-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:pin-ticket-ticket-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:pin-ticket-ticket-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.pin if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:pin-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:pin-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already pinned - if (ticket.get("openticket:pinned").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.pin"),layout:"simple"})) + if (ticket.get("opendiscord:pinned").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.pin"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start pinning ticket if (params.data == "reason"){ //pin with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:pin-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:pin-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //pin without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:pin-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:pin-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) } }) ]) - opendiscord.verifybars.get("openticket:pin-ticket-ticket-message").failure.add([ - new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:pin-ticket-ticket-message").failure.add([ + new api.ODWorker("opendiscord:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //PIN TICKET UNPIN MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:pin-ticket-unpin-message",opendiscord.builders.messages.getSafe("openticket:verifybar-unpin-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:pin-ticket-unpin-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:pin-ticket-unpin-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-unpin-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:pin-ticket-unpin-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.pin if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:pin-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:pin-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already pinned - if (ticket.get("openticket:pinned").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.pin"),layout:"simple"})) + if (ticket.get("opendiscord:pinned").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.pin"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start pinning ticket if (params.data == "reason"){ //pin with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:pin-ticket-reason").build("unpin-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:pin-ticket-reason").build("unpin-message",{guild,channel,user,ticket})) }else{ //pin without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:pin-ticket").run("unpin-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:pin-message").build("unpin-message",{guild,channel,user,ticket,reason:null})) + await opendiscord.actions.get("opendiscord:pin-ticket").run("unpin-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:pin-message").build("unpin-message",{guild,channel,user,ticket,reason:null})) } }) ]) - opendiscord.verifybars.get("openticket:pin-ticket-unpin-message").failure.add([ - new api.ODWorker("openticket:back-to-unpin-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:pin-ticket-unpin-message").failure.add([ + new api.ODWorker("opendiscord:back-to-unpin-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } const rawReason = (verifybarMessage && verifybarMessage.embeds[0] && verifybarMessage.embeds[0].fields[0]) ? verifybarMessage.embeds[0].fields[0].value : null const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:unpin-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:unpin-message").build("other",{guild,channel,user,ticket,reason})) }) ]) - opendiscord.actions.get("openticket:pin-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:pin-ticket").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false + params.ticket.get("opendiscord:busy").value = false }) } \ No newline at end of file diff --git a/src/actions/reactionRole.ts b/src/actions/reactionRole.ts index 2400c85..80daaad 100644 --- a/src/actions/reactionRole.ts +++ b/src/actions/reactionRole.ts @@ -5,14 +5,14 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:reaction-role")) - opendiscord.actions.get("openticket:reaction-role").workers.add([ - new api.ODWorker("openticket:reaction-role",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:reaction-role")) + opendiscord.actions.get("opendiscord:reaction-role").workers.add([ + new api.ODWorker("opendiscord:reaction-role",2,async (instance,params,source,cancel) => { const {guild,user,option,overwriteMode} = params const role = opendiscord.roles.get(option.id) if (!role) throw new api.ODSystemError("ODAction(ot:reaction-role) => Unknown reaction role (ODRole)") instance.role = role - const mode = (overwriteMode) ? overwriteMode : role.get("openticket:mode").value + const mode = (overwriteMode) ? overwriteMode : role.get("opendiscord:mode").value await opendiscord.events.get("onRoleUpdate").emit([user,role]) @@ -21,7 +21,7 @@ export const registerActions = async () => { if (!member) throw new api.ODSystemError("ODAction(ot:reaction-role) => User isn't a member of the server!") //get all roles - const roleIds = role.get("openticket:roles").value + const roleIds = role.get("opendiscord:roles").value const roles: discord.Role[] = [] for (const id of roleIds){ const r = await opendiscord.client.fetchGuildRole(guild,id) @@ -55,7 +55,7 @@ export const registerActions = async () => { //get roles to remove on add if (result.find((r) => r.action == "added")){ //get all remove roles - const removeRoleIds = role.get("openticket:remove-roles-on-add").value + const removeRoleIds = role.get("opendiscord:remove-roles-on-add").value const removeRoles: discord.Role[] = [] for (const id of removeRoleIds){ const r = await opendiscord.client.fetchGuildRole(guild,id) @@ -81,7 +81,7 @@ export const registerActions = async () => { instance.result = result await opendiscord.events.get("afterRolesUpdated").emit([user,role]) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,user,option} = params opendiscord.log(user.displayName+" updated his roles!","info",[ {key:"user",value:user.username}, diff --git a/src/actions/removeTicketUser.ts b/src/actions/removeTicketUser.ts index d7908d1..489ec8b 100644 --- a/src/actions/removeTicketUser.ts +++ b/src/actions/removeTicketUser.ts @@ -4,23 +4,23 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:remove-ticket-user")) - opendiscord.actions.get("openticket:remove-ticket-user").workers.add([ - new api.ODWorker("openticket:remove-ticket-user",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:remove-ticket-user")) + opendiscord.actions.get("opendiscord:remove-ticket-user").workers.add([ + new api.ODWorker("opendiscord:remove-ticket-user",2,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason,data} = params if (channel.isThread()) throw new api.ODSystemError("Unable to remove user from ticket! Open Ticket doesn't support threads!") await opendiscord.events.get("onTicketUserRemove").emit([ticket,user,data,channel,reason]) //update ticket - const index = ticket.get("openticket:participants").value.findIndex((p) => p.type == "user" && p.id == data.id) + const index = ticket.get("opendiscord:participants").value.findIndex((p) => p.type == "user" && p.id == data.id) if (index < 0) return cancel() - ticket.get("openticket:participants").value.splice(index,1) - ticket.get("openticket:participants").refreshDatabase() - ticket.get("openticket:busy").value = true + ticket.get("opendiscord:participants").value.splice(index,1) + ticket.get("opendiscord:participants").refreshDatabase() + ticket.get("opendiscord:busy").value = true //update channel permissions try{ @@ -33,7 +33,7 @@ export const registerActions = async () => { const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket user removal!","error",[ {key:"channel",value:channel.id}, @@ -45,24 +45,24 @@ export const registerActions = async () => { } //reply with new message - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:remove-message").build(source,{guild,channel,user,ticket,reason,data})).message) - ticket.get("openticket:busy").value = false + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:remove-message").build(source,{guild,channel,user,ticket,reason,data})).message) + ticket.get("opendiscord:busy").value = false await opendiscord.events.get("afterTicketUserRemoved").emit([ticket,user,data,channel,reason]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason,data} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.removing.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"remove",reason,additionalData:data})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"remove",reason,additionalData:data})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.removing.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"remove",reason,additionalData:data})) + if (creator && generalConfig.data.system.messages.removing.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"remove",reason,additionalData:data})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket,data} = params opendiscord.log(user.displayName+" removed "+data.displayName+" from a ticket!","info",[ @@ -75,8 +75,8 @@ export const registerActions = async () => { ]) }) ]) - opendiscord.actions.get("openticket:remove-ticket-user").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:remove-ticket-user").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false + params.ticket.get("opendiscord:busy").value = false }) } \ No newline at end of file diff --git a/src/actions/renameTicket.ts b/src/actions/renameTicket.ts index 331ad32..ee0a722 100644 --- a/src/actions/renameTicket.ts +++ b/src/actions/renameTicket.ts @@ -4,12 +4,12 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:rename-ticket")) - opendiscord.actions.get("openticket:rename-ticket").workers.add([ - new api.ODWorker("openticket:rename-ticket",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:rename-ticket")) + opendiscord.actions.get("opendiscord:rename-ticket").workers.add([ + new api.ODWorker("opendiscord:rename-ticket",2,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason,data} = params if (channel.isThread()) throw new api.ODSystemError("Unable to rename ticket! Open Ticket doesn't support threads!") @@ -22,14 +22,14 @@ export const registerActions = async () => { opendiscord.log("Failed to rename channel on ticket rename","error") }) }catch(err){ - await channel.send((await opendiscord.builders.messages.getSafe("openticket:error-channel-rename").build("ticket-rename",{guild,channel,user,originalName,newName:data})).message) + await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:error-channel-rename").build("ticket-rename",{guild,channel,user,originalName,newName:data})).message) } //update ticket message const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket renaming!","error",[ {key:"channel",value:"#"+channel.name}, @@ -42,24 +42,24 @@ export const registerActions = async () => { } //reply with new message - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:rename-message").build(source,{guild,channel,user,ticket,reason,data})).message) - ticket.get("openticket:busy").value = false + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:rename-message").build(source,{guild,channel,user,ticket,reason,data})).message) + ticket.get("opendiscord:busy").value = false await opendiscord.events.get("afterTicketRenamed").emit([ticket,user,channel,reason]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason,data} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.renaming.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"rename",reason,additionalData:data})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"rename",reason,additionalData:data})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.renaming.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"rename",reason,additionalData:data})) + if (creator && generalConfig.data.system.messages.renaming.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"rename",reason,additionalData:data})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params opendiscord.log(user.displayName+" renamed a ticket!","info",[ @@ -72,8 +72,8 @@ export const registerActions = async () => { ]) }) ]) - opendiscord.actions.get("openticket:rename-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:rename-ticket").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false + params.ticket.get("opendiscord:busy").value = false }) } \ No newline at end of file diff --git a/src/actions/reopenTicket.ts b/src/actions/reopenTicket.ts index bf7dc70..70d3c36 100644 --- a/src/actions/reopenTicket.ts +++ b/src/actions/reopenTicket.ts @@ -4,32 +4,32 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:reopen-ticket")) - opendiscord.actions.get("openticket:reopen-ticket").workers.add([ - new api.ODWorker("openticket:reopen-ticket",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:reopen-ticket")) + opendiscord.actions.get("opendiscord:reopen-ticket").workers.add([ + new api.ODWorker("opendiscord:reopen-ticket",2,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params if (channel.isThread()) throw new api.ODSystemError("Unable to reopen ticket! Open Ticket doesn't support threads!") await opendiscord.events.get("onTicketReopen").emit([ticket,user,channel,reason]) //update ticket - ticket.get("openticket:closed").value = false - ticket.get("openticket:open").value = true - ticket.get("openticket:autoclosed").value = false - ticket.get("openticket:closed-by").value = null - ticket.get("openticket:closed-on").value = null - ticket.get("openticket:busy").value = true + ticket.get("opendiscord:closed").value = false + ticket.get("opendiscord:open").value = true + ticket.get("opendiscord:autoclosed").value = false + ticket.get("opendiscord:closed-by").value = null + ticket.get("opendiscord:closed-on").value = null + ticket.get("opendiscord:busy").value = true //update stats - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-reopened",1,"increase") - await opendiscord.stats.get("openticket:user").setStat("openticket:tickets-reopened",user.id,1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-reopened",1,"increase") + await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:tickets-reopened",user.id,1,"increase") //update category - const channelCategory = ticket.option.get("openticket:channel-category").value - const channelBackupCategory = ticket.option.get("openticket:channel-category-backup").value + const channelCategory = ticket.option.get("opendiscord:channel-category").value + const channelBackupCategory = ticket.option.get("opendiscord:channel-category-backup").value if (channelCategory !== ""){ //category enabled try { @@ -54,14 +54,14 @@ export const registerActions = async () => { }else{ //use backup category channel.setParent(backupCategory,{lockPermissions:false}) - ticket.get("openticket:category-mode").value = "backup" - ticket.get("openticket:category").value = backupCategory.id + ticket.get("opendiscord:category-mode").value = "backup" + ticket.get("opendiscord:category").value = backupCategory.id } }else{ //use default category channel.setParent(normalCategory,{lockPermissions:false}) - ticket.get("openticket:category-mode").value = "normal" - ticket.get("openticket:category").value = normalCategory.id + ticket.get("opendiscord:category-mode").value = "normal" + ticket.get("opendiscord:category").value = normalCategory.id } } }catch(e){ @@ -73,8 +73,8 @@ export const registerActions = async () => { } }else{ channel.setParent(null,{lockPermissions:false}) - ticket.get("openticket:category-mode").value = null - ticket.get("openticket:category").value = null + ticket.get("opendiscord:category-mode").value = null + ticket.get("opendiscord:category").value = null } //update permissions @@ -84,9 +84,9 @@ export const registerActions = async () => { allow:[], deny:["ViewChannel","SendMessages","ReadMessageHistory"] }] - const globalAdmins = opendiscord.configs.get("openticket:general").data.globalAdmins - const optionAdmins = ticket.option.get("openticket:admins").value - const readonlyAdmins = ticket.option.get("openticket:admins-readonly").value + const globalAdmins = opendiscord.configs.get("opendiscord:general").data.globalAdmins + const optionAdmins = ticket.option.get("opendiscord:admins").value + const readonlyAdmins = ticket.option.get("opendiscord:admins-readonly").value globalAdmins.forEach((admin) => { permissions.push({ @@ -115,7 +115,7 @@ export const registerActions = async () => { deny:["SendMessages","AddReactions","AttachFiles","SendPolls"] }) }) - ticket.get("openticket:participants").value.forEach((participant) => { + ticket.get("opendiscord:participants").value.forEach((participant) => { //all participants that aren't roles/admins if (participant.type == "user"){ permissions.push({ @@ -132,7 +132,7 @@ export const registerActions = async () => { const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket reopening!","error",[ {key:"channel",value:"#"+channel.name}, @@ -144,24 +144,24 @@ export const registerActions = async () => { } } - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:reopen-message").build(source,{guild,channel,user,ticket,reason})).message) - ticket.get("openticket:busy").value = false + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:reopen-message").build(source,{guild,channel,user,ticket,reason})).message) + ticket.get("opendiscord:busy").value = false await opendiscord.events.get("afterTicketReopened").emit([ticket,user,channel,reason]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.reopening.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"reopen",reason,additionalData:null})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"reopen",reason,additionalData:null})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.reopening.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"reopen",reason,additionalData:null})) + if (creator && generalConfig.data.system.messages.reopening.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"reopen",reason,additionalData:null})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params opendiscord.log(user.displayName+" reopened a ticket!","info",[ @@ -178,272 +178,272 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //REOPEN TICKET TICKET MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:reopen-ticket-ticket-message",opendiscord.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:reopen-ticket-ticket-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:reopen-ticket-ticket-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:reopen-ticket-ticket-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.reopen if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:reopen-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:reopen-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not closed - if (!ticket.get("openticket:closed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) + if (!ticket.get("opendiscord:closed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start reopening ticket if (params.data == "reason"){ //reopen with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:reopen-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:reopen-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //reopen without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:reopen-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:reopen-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) } }) ]) - opendiscord.verifybars.get("openticket:reopen-ticket-ticket-message").failure.add([ - new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:reopen-ticket-ticket-message").failure.add([ + new api.ODWorker("opendiscord:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //REOPEN TICKET CLOSE MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:reopen-ticket-close-message",opendiscord.builders.messages.getSafe("openticket:verifybar-close-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:reopen-ticket-close-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:reopen-ticket-close-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-close-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:reopen-ticket-close-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.reopen if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:reopen-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:reopen-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not closed - if (!ticket.get("openticket:closed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) + if (!ticket.get("opendiscord:closed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start reopening ticket if (params.data == "reason"){ //reopen with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:reopen-ticket-reason").build("close-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:reopen-ticket-reason").build("close-message",{guild,channel,user,ticket})) }else{ //reopen without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:reopen-ticket").run("close-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:reopen-message").build("close-message",{guild,channel,user,ticket,reason:null})) + await opendiscord.actions.get("opendiscord:reopen-ticket").run("close-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:reopen-message").build("close-message",{guild,channel,user,ticket,reason:null})) } }) ]) - opendiscord.verifybars.get("openticket:reopen-ticket-close-message").failure.add([ - new api.ODWorker("openticket:back-to-close-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:reopen-ticket-close-message").failure.add([ + new api.ODWorker("opendiscord:back-to-close-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } const rawReason = (verifybarMessage && verifybarMessage.embeds[0] && verifybarMessage.embeds[0].fields[0]) ? verifybarMessage.embeds[0].fields[0].value : null const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:close-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:close-message").build("other",{guild,channel,user,ticket,reason})) }) ]) //REOPEN TICKET AUTOCLOSE MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:reopen-ticket-autoclose-message",opendiscord.builders.messages.getSafe("openticket:verifybar-autoclose-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:reopen-ticket-autoclose-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:reopen-ticket-autoclose-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-autoclose-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:reopen-ticket-autoclose-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.reopen if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:reopen-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:reopen-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not closed - if (!ticket.get("openticket:closed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) + if (!ticket.get("opendiscord:closed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start reopening ticket if (params.data == "reason"){ //reopen with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:reopen-ticket-reason").build("autoclose-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:reopen-ticket-reason").build("autoclose-message",{guild,channel,user,ticket})) }else{ //reopen without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:reopen-ticket").run("autoclose-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:reopen-message").build("autoclose-message",{guild,channel,user,ticket,reason:null})) + await opendiscord.actions.get("opendiscord:reopen-ticket").run("autoclose-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:reopen-message").build("autoclose-message",{guild,channel,user,ticket,reason:null})) } }) ]) - opendiscord.verifybars.get("openticket:reopen-ticket-autoclose-message").failure.add([ - new api.ODWorker("openticket:back-to-autoclose-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:reopen-ticket-autoclose-message").failure.add([ + new api.ODWorker("opendiscord:back-to-autoclose-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await opendiscord.builders.messages.getSafe("openticket:autoclose-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:autoclose-message").build("other",{guild,channel,user,ticket})) }) ]) - opendiscord.actions.get("openticket:reopen-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:reopen-ticket").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false + params.ticket.get("opendiscord:busy").value = false }) } \ No newline at end of file diff --git a/src/actions/unclaimTicket.ts b/src/actions/unclaimTicket.ts index 9186427..8972228 100644 --- a/src/actions/unclaimTicket.ts +++ b/src/actions/unclaimTicket.ts @@ -4,26 +4,26 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:unclaim-ticket")) - opendiscord.actions.get("openticket:unclaim-ticket").workers.add([ - new api.ODWorker("openticket:unclaim-ticket",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:unclaim-ticket")) + opendiscord.actions.get("opendiscord:unclaim-ticket").workers.add([ + new api.ODWorker("opendiscord:unclaim-ticket",2,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params if (channel.isThread()) throw new api.ODSystemError("Unable to unclaim ticket! Open Ticket doesn't support threads!") await opendiscord.events.get("onTicketUnclaim").emit([ticket,user,channel,reason]) //update ticket - ticket.get("openticket:claimed").value = false - ticket.get("openticket:claimed-by").value = null - ticket.get("openticket:claimed-on").value = null - ticket.get("openticket:busy").value = true + ticket.get("opendiscord:claimed").value = false + ticket.get("opendiscord:claimed-by").value = null + ticket.get("opendiscord:claimed-on").value = null + ticket.get("opendiscord:busy").value = true //update category - const channelCategory = ticket.option.get("openticket:channel-category").value - const channelBackupCategory = ticket.option.get("openticket:channel-category-backup").value + const channelCategory = ticket.option.get("opendiscord:channel-category").value + const channelBackupCategory = ticket.option.get("opendiscord:channel-category-backup").value if (channelCategory !== ""){ //category enabled try { @@ -48,14 +48,14 @@ export const registerActions = async () => { }else{ //use backup category channel.setParent(backupCategory,{lockPermissions:false}) - ticket.get("openticket:category-mode").value = "backup" - ticket.get("openticket:category").value = backupCategory.id + ticket.get("opendiscord:category-mode").value = "backup" + ticket.get("opendiscord:category").value = backupCategory.id } }else{ //use default category channel.setParent(normalCategory,{lockPermissions:false}) - ticket.get("openticket:category-mode").value = "normal" - ticket.get("openticket:category").value = normalCategory.id + ticket.get("opendiscord:category-mode").value = "normal" + ticket.get("opendiscord:category").value = normalCategory.id } } @@ -68,15 +68,15 @@ export const registerActions = async () => { } }else{ channel.setParent(null,{lockPermissions:false}) - ticket.get("openticket:category-mode").value = null - ticket.get("openticket:category").value = null + ticket.get("opendiscord:category-mode").value = null + ticket.get("opendiscord:category").value = null } //update ticket message const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket unclaiming!","error",[ {key:"channel",value:"#"+channel.name}, @@ -89,24 +89,24 @@ export const registerActions = async () => { } //reply with new message - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:unclaim-message").build(source,{guild,channel,user,ticket,reason})).message) - ticket.get("openticket:busy").value = false + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:unclaim-message").build(source,{guild,channel,user,ticket,reason})).message) + ticket.get("opendiscord:busy").value = false await opendiscord.events.get("afterTicketUnclaimed").emit([ticket,user,channel,reason]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.claiming.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"unclaim",reason,additionalData:null})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"unclaim",reason,additionalData:null})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.claiming.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"unclaim",reason,additionalData:null})) + if (creator && generalConfig.data.system.messages.claiming.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"unclaim",reason,additionalData:null})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params opendiscord.log(user.displayName+" unclaimed a ticket!","info",[ @@ -123,184 +123,184 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //UNCLAIM TICKET TICKET MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:unclaim-ticket-ticket-message",opendiscord.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:unclaim-ticket-ticket-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:unclaim-ticket-ticket-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:unclaim-ticket-ticket-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.unclaim if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:unclaim-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:unclaim-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not claimed - if (!ticket.get("openticket:claimed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unclaim"),layout:"simple"})) + if (!ticket.get("opendiscord:claimed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unclaim"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start unclaiming ticket if (params.data == "reason"){ //unclaim with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:unclaim-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:unclaim-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //unclaim without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:unclaim-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:unclaim-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) } }) ]) - opendiscord.verifybars.get("openticket:unclaim-ticket-ticket-message").failure.add([ - new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:unclaim-ticket-ticket-message").failure.add([ + new api.ODWorker("opendiscord:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //UNCLAIM TICKET CLAIM MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:unclaim-ticket-claim-message",opendiscord.builders.messages.getSafe("openticket:verifybar-claim-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:unclaim-ticket-claim-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:unclaim-ticket-claim-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-claim-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:unclaim-ticket-claim-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.unclaim if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:unclaim-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:unclaim-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not claimed - if (!ticket.get("openticket:claimed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unclaim"),layout:"simple"})) + if (!ticket.get("opendiscord:claimed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unclaim"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start unclaiming ticket if (params.data == "reason"){ //unclaim with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:unclaim-ticket-reason").build("claim-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:unclaim-ticket-reason").build("claim-message",{guild,channel,user,ticket})) }else{ //unclaim without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:unclaim-ticket").run("claim-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:unclaim-message").build("claim-message",{guild,channel,user,ticket,reason:null})) + await opendiscord.actions.get("opendiscord:unclaim-ticket").run("claim-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:unclaim-message").build("claim-message",{guild,channel,user,ticket,reason:null})) } }) ]) - opendiscord.verifybars.get("openticket:unclaim-ticket-claim-message").failure.add([ - new api.ODWorker("openticket:back-to-claim-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:unclaim-ticket-claim-message").failure.add([ + new api.ODWorker("opendiscord:back-to-claim-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } const rawReason = (verifybarMessage && verifybarMessage.embeds[0] && verifybarMessage.embeds[0].fields[0]) ? verifybarMessage.embeds[0].fields[0].value : null const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:claim-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:claim-message").build("other",{guild,channel,user,ticket,reason})) }) ]) - opendiscord.actions.get("openticket:unclaim-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:unclaim-ticket").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false + params.ticket.get("opendiscord:busy").value = false }) } \ No newline at end of file diff --git a/src/actions/unpinTicket.ts b/src/actions/unpinTicket.ts index 47c3793..4274e05 100644 --- a/src/actions/unpinTicket.ts +++ b/src/actions/unpinTicket.ts @@ -4,22 +4,22 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerActions = async () => { - opendiscord.actions.add(new api.ODAction("openticket:unpin-ticket")) - opendiscord.actions.get("openticket:unpin-ticket").workers.add([ - new api.ODWorker("openticket:unpin-ticket",2,async (instance,params,source,cancel) => { + opendiscord.actions.add(new api.ODAction("opendiscord:unpin-ticket")) + opendiscord.actions.get("opendiscord:unpin-ticket").workers.add([ + new api.ODWorker("opendiscord:unpin-ticket",2,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params if (channel.isThread()) throw new api.ODSystemError("Unable to unpin ticket! Open Ticket doesn't support threads!") await opendiscord.events.get("onTicketUnpin").emit([ticket,user,channel,reason]) //update ticket - ticket.get("openticket:pinned").value = false - ticket.get("openticket:pinned-by").value = null - ticket.get("openticket:pinned-on").value = null - ticket.get("openticket:busy").value = true + ticket.get("opendiscord:pinned").value = false + ticket.get("opendiscord:pinned-by").value = null + ticket.get("opendiscord:pinned-on").value = null + ticket.get("opendiscord:busy").value = true //rename channel (and give error when crashed) const originalName = channel.name @@ -30,7 +30,7 @@ export const registerActions = async () => { opendiscord.log("Failed to rename channel on ticket unpin","error") }) }catch(err){ - await channel.send((await opendiscord.builders.messages.getSafe("openticket:error-channel-rename").build("ticket-unpin",{guild,channel,user,originalName,newName})).message) + await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:error-channel-rename").build("ticket-unpin",{guild,channel,user,originalName,newName})).message) } } @@ -38,7 +38,7 @@ export const registerActions = async () => { const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on ticket unpinning!","error",[ {key:"channel",value:"#"+channel.name}, @@ -51,24 +51,24 @@ export const registerActions = async () => { } //reply with new message - if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("openticket:unpin-message").build(source,{guild,channel,user,ticket,reason})).message) - ticket.get("openticket:busy").value = false + if (params.sendMessage) await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:unpin-message").build(source,{guild,channel,user,ticket,reason})).message) + ticket.get("opendiscord:busy").value = false await opendiscord.events.get("afterTicketUnpinned").emit([ticket,user,channel,reason]) }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.pinning.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"unpin",reason,additionalData:null})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"unpin",reason,additionalData:null})) } //to dm const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.pinning.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"unpin",reason,additionalData:null})) + if (creator && generalConfig.data.system.messages.pinning.dm) await opendiscord.client.sendUserDm(creator,await opendiscord.builders.messages.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"unpin",reason,additionalData:null})) }), - new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params opendiscord.log(user.displayName+" unpinned a ticket!","info",[ @@ -85,184 +85,184 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //UNPIN TICKET TICKET MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:unpin-ticket-ticket-message",opendiscord.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:unpin-ticket-ticket-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:unpin-ticket-ticket-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:unpin-ticket-ticket-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.unpin if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:unpin-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:unpin-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not pinned - if (!ticket.get("openticket:pinned").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unpin"),layout:"simple"})) + if (!ticket.get("opendiscord:pinned").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unpin"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start unpining ticket if (params.data == "reason"){ //unpin with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:unpin-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:unpin-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //unpin without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:unpin-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:unpin-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) } }) ]) - opendiscord.verifybars.get("openticket:unpin-ticket-ticket-message").failure.add([ - new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:unpin-ticket-ticket-message").failure.add([ + new api.ODWorker("opendiscord:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //UNPIN TICKET PIN MESSAGE - opendiscord.verifybars.add(new api.ODVerifyBar("openticket:unpin-ticket-pin-message",opendiscord.builders.messages.getSafe("openticket:verifybar-pin-message"),!generalConfig.data.system.disableVerifyBars)) - opendiscord.verifybars.get("openticket:unpin-ticket-pin-message").success.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.verifybars.add(new api.ODVerifyBar("opendiscord:unpin-ticket-pin-message",opendiscord.builders.messages.getSafe("opendiscord:verifybar-pin-message"),!generalConfig.data.system.disableVerifyBars)) + opendiscord.verifybars.get("opendiscord:unpin-ticket-pin-message").success.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.unpin if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:unpin-ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:unpin-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not pinned - if (!ticket.get("openticket:pinned").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unpin"),layout:"simple"})) + if (!ticket.get("opendiscord:pinned").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unpin"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start unpinning ticket if (params.data == "reason"){ //unpin with reason - instance.modal(await opendiscord.builders.modals.getSafe("openticket:unpin-ticket-reason").build("pin-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:unpin-ticket-reason").build("pin-message",{guild,channel,user,ticket})) }else{ //unpin without reason await instance.defer("update",false) - await opendiscord.actions.get("openticket:unpin-ticket").run("pin-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:unpin-message").build("pin-message",{guild,channel,user,ticket,reason:null})) + await opendiscord.actions.get("opendiscord:unpin-ticket").run("pin-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:unpin-message").build("pin-message",{guild,channel,user,ticket,reason:null})) } }) ]) - opendiscord.verifybars.get("openticket:unpin-ticket-pin-message").failure.add([ - new api.ODWorker("openticket:back-to-pin-message",0,async (instance,params,source,cancel) => { + opendiscord.verifybars.get("opendiscord:unpin-ticket-pin-message").failure.add([ + new api.ODWorker("opendiscord:back-to-pin-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } const rawReason = (verifybarMessage && verifybarMessage.embeds[0] && verifybarMessage.embeds[0].fields[0]) ? verifybarMessage.embeds[0].fields[0].value : null const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:pin-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:pin-message").build("other",{guild,channel,user,ticket,reason})) }) ]) - opendiscord.actions.get("openticket:unpin-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("opendiscord:unpin-ticket").workers.backupWorker = new api.ODWorker("opendiscord:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel - params.ticket.get("openticket:busy").value = false + params.ticket.get("opendiscord:busy").value = false }) } \ No newline at end of file diff --git a/src/builders/buttons.ts b/src/builders/buttons.ts index b4ee648..fcdc172 100644 --- a/src/builders/buttons.ts +++ b/src/builders/buttons.ts @@ -6,7 +6,7 @@ import * as discord from "discord.js" const buttons = opendiscord.builders.buttons const lang = opendiscord.languages -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerAllButtons = async () => { verifybarButtons() @@ -20,12 +20,12 @@ export const registerAllButtons = async () => { const verifybarButtons = () => { //VERIFYBAR SUCCESS - buttons.add(new api.ODButton("openticket:verifybar-success")) - buttons.get("openticket:verifybar-success").workers.add( - new api.ODWorker("openticket:verifybar-success",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:verifybar-success")) + buttons.get("opendiscord:verifybar-success").workers.add( + new api.ODWorker("opendiscord:verifybar-success",0,async (instance,params) => { const {verifybar,customData,customColor,customLabel,customEmoji} = params - if (customData && customData.length > 40) throw new api.ODSystemError("ODButton:openticket:verifybar-success => customData exceeds 40 characters limit!") + if (customData && customData.length > 40) throw new api.ODSystemError("ODButton:opendiscord:verifybar-success => customData exceeds 40 characters limit!") const newData = (customData) ? "_"+customData : "" const newColor = customColor ?? "gray" @@ -41,12 +41,12 @@ const verifybarButtons = () => { ) //VERIFYBAR FAILURE - buttons.add(new api.ODButton("openticket:verifybar-failure")) - buttons.get("openticket:verifybar-failure").workers.add( - new api.ODWorker("openticket:verifybar-failure",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:verifybar-failure")) + buttons.get("opendiscord:verifybar-failure").workers.add( + new api.ODWorker("opendiscord:verifybar-failure",0,async (instance,params) => { const {verifybar,customData,customColor,customLabel,customEmoji} = params - if (customData && customData.length > 40) throw new api.ODSystemError("ODButton:openticket:verifybar-success => customData exceeds 40 characters limit!") + if (customData && customData.length > 40) throw new api.ODSystemError("ODButton:opendiscord:verifybar-success => customData exceeds 40 characters limit!") const newData = (customData) ? "_"+customData : "" const newColor = customColor ?? "gray" @@ -64,9 +64,9 @@ const verifybarButtons = () => { const errorButtons = () => { //ERROR TICKET DEPRECATED TRANSCRIPT - buttons.add(new api.ODButton("openticket:error-ticket-deprecated-transcript")) - buttons.get("openticket:error-ticket-deprecated-transcript").workers.add( - new api.ODWorker("openticket:error-ticket-deprecated-transcript",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:error-ticket-deprecated-transcript")) + buttons.get("opendiscord:error-ticket-deprecated-transcript").workers.add( + new api.ODWorker("opendiscord:error-ticket-deprecated-transcript",0,async (instance,params) => { instance.setCustomId("od:error-ticket-deprecated-transcript") instance.setMode("button") @@ -79,9 +79,9 @@ const errorButtons = () => { const helpMenuButtons = () => { //HELP MENU PAGE - buttons.add(new api.ODButton("openticket:help-menu-page")) - buttons.get("openticket:help-menu-page").workers.add( - new api.ODWorker("openticket:help-menu-page",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:help-menu-page")) + buttons.get("opendiscord:help-menu-page").workers.add( + new api.ODWorker("opendiscord:help-menu-page",0,async (instance,params) => { const {mode,page} = params const totalPages = (await opendiscord.helpmenu.render(mode)).length const pageText = (page+1).toString()+"/"+totalPages.toString() @@ -95,9 +95,9 @@ const helpMenuButtons = () => { ) //HELP MENU SWITCH - buttons.add(new api.ODButton("openticket:help-menu-switch")) - buttons.get("openticket:help-menu-switch").workers.add( - new api.ODWorker("openticket:help-menu-switch",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:help-menu-switch")) + buttons.get("opendiscord:help-menu-switch").workers.add( + new api.ODWorker("opendiscord:help-menu-switch",0,async (instance,params) => { const {mode} = params instance.setCustomId("od:help-menu-switch_"+mode) @@ -109,9 +109,9 @@ const helpMenuButtons = () => { ) //HELP MENU PREVIOUS - buttons.add(new api.ODButton("openticket:help-menu-previous")) - buttons.get("openticket:help-menu-previous").workers.add( - new api.ODWorker("openticket:help-menu-previous",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:help-menu-previous")) + buttons.get("opendiscord:help-menu-previous").workers.add( + new api.ODWorker("opendiscord:help-menu-previous",0,async (instance,params) => { const {page} = params instance.setCustomId("od:help-menu-previous") @@ -123,9 +123,9 @@ const helpMenuButtons = () => { ) //HELP MENU NEXT - buttons.add(new api.ODButton("openticket:help-menu-next")) - buttons.get("openticket:help-menu-next").workers.add( - new api.ODWorker("openticket:help-menu-next",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:help-menu-next")) + buttons.get("opendiscord:help-menu-next").workers.add( + new api.ODWorker("opendiscord:help-menu-next",0,async (instance,params) => { const {mode,page} = params const totalPages = (await opendiscord.helpmenu.render(mode)).length @@ -140,55 +140,55 @@ const helpMenuButtons = () => { const panelButtons = () => { //TICKET OPTION - buttons.add(new api.ODButton("openticket:ticket-option")) - buttons.get("openticket:ticket-option").workers.add( - new api.ODWorker("openticket:ticket-option",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:ticket-option")) + buttons.get("opendiscord:ticket-option").workers.add( + new api.ODWorker("opendiscord:ticket-option",0,async (instance,params) => { const {panel,option} = params instance.setCustomId("od:ticket-option_"+panel.id.value+"_"+option.id.value) instance.setMode("button") - instance.setColor(option.get("openticket:button-color").value) - if (option.get("openticket:button-emoji").value) instance.setEmoji(option.get("openticket:button-emoji").value) - if (option.get("openticket:button-label").value) instance.setLabel(option.get("openticket:button-label").value) - if (!option.get("openticket:button-emoji").value && !option.get("openticket:button-label").value) instance.setLabel("<"+option.id.value+">") + instance.setColor(option.get("opendiscord:button-color").value) + if (option.get("opendiscord:button-emoji").value) instance.setEmoji(option.get("opendiscord:button-emoji").value) + if (option.get("opendiscord:button-label").value) instance.setLabel(option.get("opendiscord:button-label").value) + if (!option.get("opendiscord:button-emoji").value && !option.get("opendiscord:button-label").value) instance.setLabel("<"+option.id.value+">") }) ) //WEBSITE OPTION - buttons.add(new api.ODButton("openticket:website-option")) - buttons.get("openticket:website-option").workers.add( - new api.ODWorker("openticket:website-option",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:website-option")) + buttons.get("opendiscord:website-option").workers.add( + new api.ODWorker("opendiscord:website-option",0,async (instance,params) => { const {panel,option} = params instance.setMode("url") - instance.setUrl(option.get("openticket:url").value) - if (option.get("openticket:button-emoji").value) instance.setEmoji(option.get("openticket:button-emoji").value) - if (option.get("openticket:button-label").value) instance.setLabel(option.get("openticket:button-label").value) - if (!option.get("openticket:button-emoji").value && !option.get("openticket:button-label").value) instance.setLabel("<"+option.id.value+">") + instance.setUrl(option.get("opendiscord:url").value) + if (option.get("opendiscord:button-emoji").value) instance.setEmoji(option.get("opendiscord:button-emoji").value) + if (option.get("opendiscord:button-label").value) instance.setLabel(option.get("opendiscord:button-label").value) + if (!option.get("opendiscord:button-emoji").value && !option.get("opendiscord:button-label").value) instance.setLabel("<"+option.id.value+">") }) ) //ROLE OPTION - buttons.add(new api.ODButton("openticket:role-option")) - buttons.get("openticket:role-option").workers.add( - new api.ODWorker("openticket:role-option",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:role-option")) + buttons.get("opendiscord:role-option").workers.add( + new api.ODWorker("opendiscord:role-option",0,async (instance,params) => { const {panel,option} = params instance.setCustomId("od:role-option_"+panel.id.value+"_"+option.id.value) instance.setMode("button") - instance.setColor(option.get("openticket:button-color").value) - if (option.get("openticket:button-emoji").value) instance.setEmoji(option.get("openticket:button-emoji").value) - if (option.get("openticket:button-label").value) instance.setLabel(option.get("openticket:button-label").value) - if (!option.get("openticket:button-emoji").value && !option.get("openticket:button-label").value) instance.setLabel("<"+option.id.value+">") + instance.setColor(option.get("opendiscord:button-color").value) + if (option.get("opendiscord:button-emoji").value) instance.setEmoji(option.get("opendiscord:button-emoji").value) + if (option.get("opendiscord:button-label").value) instance.setLabel(option.get("opendiscord:button-label").value) + if (!option.get("opendiscord:button-emoji").value && !option.get("opendiscord:button-label").value) instance.setLabel("<"+option.id.value+">") }) ) } const ticketButtons = () => { //VISIT TICKET - buttons.add(new api.ODButton("openticket:visit-ticket")) - buttons.get("openticket:visit-ticket").workers.add( - new api.ODWorker("openticket:visit-ticket",0,async (instance,params) => { + buttons.add(new api.ODButton("opendiscord:visit-ticket")) + buttons.get("opendiscord:visit-ticket").workers.add( + new api.ODWorker("opendiscord:visit-ticket",0,async (instance,params) => { const {guild,channel,ticket} = params instance.setMode("url") @@ -199,9 +199,9 @@ const ticketButtons = () => { ) //CLOSE TICKET - buttons.add(new api.ODButton("openticket:close-ticket")) - buttons.get("openticket:close-ticket").workers.add( - new api.ODWorker("openticket:close-ticket",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:close-ticket")) + buttons.get("opendiscord:close-ticket").workers.add( + new api.ODWorker("opendiscord:close-ticket",0,async (instance,params,source) => { const {guild,channel,ticket} = params instance.setMode("button") @@ -213,9 +213,9 @@ const ticketButtons = () => { ) //DELETE TICKET - buttons.add(new api.ODButton("openticket:delete-ticket")) - buttons.get("openticket:delete-ticket").workers.add( - new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:delete-ticket")) + buttons.get("opendiscord:delete-ticket").workers.add( + new api.ODWorker("opendiscord:delete-ticket",0,async (instance,params,source) => { const {guild,channel,ticket} = params instance.setMode("button") @@ -227,9 +227,9 @@ const ticketButtons = () => { ) //REOPEN TICKET - buttons.add(new api.ODButton("openticket:reopen-ticket")) - buttons.get("openticket:reopen-ticket").workers.add( - new api.ODWorker("openticket:reopen-ticket",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:reopen-ticket")) + buttons.get("opendiscord:reopen-ticket").workers.add( + new api.ODWorker("opendiscord:reopen-ticket",0,async (instance,params,source) => { const {guild,channel,ticket} = params instance.setMode("button") @@ -241,9 +241,9 @@ const ticketButtons = () => { ) //CLAIM TICKET - buttons.add(new api.ODButton("openticket:claim-ticket")) - buttons.get("openticket:claim-ticket").workers.add( - new api.ODWorker("openticket:claim-ticket",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:claim-ticket")) + buttons.get("opendiscord:claim-ticket").workers.add( + new api.ODWorker("opendiscord:claim-ticket",0,async (instance,params,source) => { const {guild,channel,ticket} = params instance.setMode("button") @@ -255,9 +255,9 @@ const ticketButtons = () => { ) //UNCLAIM TICKET - buttons.add(new api.ODButton("openticket:unclaim-ticket")) - buttons.get("openticket:unclaim-ticket").workers.add( - new api.ODWorker("openticket:unclaim-ticket",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:unclaim-ticket")) + buttons.get("opendiscord:unclaim-ticket").workers.add( + new api.ODWorker("opendiscord:unclaim-ticket",0,async (instance,params,source) => { const {guild,channel,ticket} = params instance.setMode("button") @@ -269,9 +269,9 @@ const ticketButtons = () => { ) //PIN TICKET - buttons.add(new api.ODButton("openticket:pin-ticket")) - buttons.get("openticket:pin-ticket").workers.add( - new api.ODWorker("openticket:pin-ticket",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:pin-ticket")) + buttons.get("opendiscord:pin-ticket").workers.add( + new api.ODWorker("opendiscord:pin-ticket",0,async (instance,params,source) => { const {guild,channel,ticket} = params instance.setMode("button") @@ -283,9 +283,9 @@ const ticketButtons = () => { ) //UNPIN TICKET - buttons.add(new api.ODButton("openticket:unpin-ticket")) - buttons.get("openticket:unpin-ticket").workers.add( - new api.ODWorker("openticket:unpin-ticket",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:unpin-ticket")) + buttons.get("opendiscord:unpin-ticket").workers.add( + new api.ODWorker("opendiscord:unpin-ticket",0,async (instance,params,source) => { const {guild,channel,ticket} = params instance.setMode("button") @@ -299,22 +299,22 @@ const ticketButtons = () => { const transcriptButtons = () => { //TRANSCRIPT HTML VISIT - buttons.add(new api.ODButton("openticket:transcript-html-visit")) - buttons.get("openticket:transcript-html-visit").workers.add( - new api.ODWorker("openticket:transcript-html-visit",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:transcript-html-visit")) + buttons.get("opendiscord:transcript-html-visit").workers.add( + new api.ODWorker("opendiscord:transcript-html-visit",0,async (instance,params,source) => { const {result} = params instance.setMode("url") if (result.data) instance.setUrl(result.data.url) - else throw new api.ODSystemError("ODButton:openticket:transcript-html-visit => Missing Transcript Result Data!") + else throw new api.ODSystemError("ODButton:opendiscord:transcript-html-visit => Missing Transcript Result Data!") instance.setEmoji("📄") instance.setLabel(lang.getTranslation("transcripts.success.visit")) }) ) //TRANSCRIPT ERROR RETRY - buttons.add(new api.ODButton("openticket:transcript-error-retry")) - buttons.get("openticket:transcript-error-retry").workers.add( - new api.ODWorker("openticket:transcript-error-retry",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:transcript-error-retry")) + buttons.get("opendiscord:transcript-error-retry").workers.add( + new api.ODWorker("opendiscord:transcript-error-retry",0,async (instance,params,source) => { instance.setMode("button") instance.setCustomId("od:transcript-error-retry_"+source) instance.setColor("gray") @@ -324,9 +324,9 @@ const transcriptButtons = () => { ) //TRANSCRIPT ERROR CONTINUE - buttons.add(new api.ODButton("openticket:transcript-error-continue")) - buttons.get("openticket:transcript-error-continue").workers.add( - new api.ODWorker("openticket:transcript-error-continue",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:transcript-error-continue")) + buttons.get("opendiscord:transcript-error-continue").workers.add( + new api.ODWorker("opendiscord:transcript-error-continue",0,async (instance,params,source) => { instance.setMode("button") instance.setCustomId("od:transcript-error-continue_"+source) instance.setColor("red") @@ -338,9 +338,9 @@ const transcriptButtons = () => { const clearButtons = () => { //CLEAR CONTINUE - buttons.add(new api.ODButton("openticket:clear-continue")) - buttons.get("openticket:clear-continue").workers.add( - new api.ODWorker("openticket:clear-continue",0,async (instance,params,source) => { + buttons.add(new api.ODButton("opendiscord:clear-continue")) + buttons.get("opendiscord:clear-continue").workers.add( + new api.ODWorker("opendiscord:clear-continue",0,async (instance,params,source) => { instance.setMode("button") instance.setCustomId("od:clear-continue_"+source+"_"+params.filter) instance.setColor("red") diff --git a/src/builders/dropdowns.ts b/src/builders/dropdowns.ts index 76c94d8..e23da85 100644 --- a/src/builders/dropdowns.ts +++ b/src/builders/dropdowns.ts @@ -12,16 +12,16 @@ export const registerAllDropdowns = async () => { const panelDropdowns = () => { //TICKET OPTION - dropdowns.add(new api.ODDropdown("openticket:panel-dropdown-tickets")) - dropdowns.get("openticket:panel-dropdown-tickets").workers.add( - new api.ODWorker("openticket:panel-dropdown-tickets",0,async (instance,params) => { + dropdowns.add(new api.ODDropdown("opendiscord:panel-dropdown-tickets")) + dropdowns.get("opendiscord:panel-dropdown-tickets").workers.add( + new api.ODWorker("opendiscord:panel-dropdown-tickets",0,async (instance,params) => { const {panel,options} = params const parsedOptions: api.ODDropdownData["options"] = options.map((option) => { - const desc = option.get("openticket:description").value.substring(0,100) - const emoji = option.get("openticket:button-emoji").value + const desc = option.get("opendiscord:description").value.substring(0,100) + const emoji = option.get("opendiscord:button-emoji").value return { - label:option.get("openticket:button-label").value.substring(0,100), + label:option.get("opendiscord:button-label").value.substring(0,100), value:"od:ticket-option_"+panel.id.value+"_"+option.id.value, emoji:(emoji.length > 0) ? emoji : undefined, description:(desc.length > 0) ? desc : undefined, @@ -33,7 +33,7 @@ const panelDropdowns = () => { instance.setType("string") instance.setMaxValues(1) instance.setMinValues(0) - instance.setPlaceholder(panel.get("openticket:dropdown-placeholder").value) + instance.setPlaceholder(panel.get("opendiscord:dropdown-placeholder").value) instance.setOptions(parsedOptions) }) ) diff --git a/src/builders/embeds.ts b/src/builders/embeds.ts index 4e9ea38..67d4373 100644 --- a/src/builders/embeds.ts +++ b/src/builders/embeds.ts @@ -7,7 +7,7 @@ import nodepath from "path" const embeds = opendiscord.builders.embeds const lang = opendiscord.languages -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerAllEmbeds = async () => { errorEmbeds() @@ -34,9 +34,9 @@ const getMethodFromSource = (source:"slash"|"text"|"button"|"dropdown"|"modal"|" const errorEmbeds = () => { //ERROR - embeds.add(new api.ODEmbed("openticket:error")) - embeds.get("openticket:error").workers.add( - new api.ODWorker("openticket:error",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error")) + embeds.get("opendiscord:error").workers.add( + new api.ODWorker("opendiscord:error",0,async (instance,params,source) => { const {user,error,layout} = params const method = getMethodFromSource(source) @@ -51,9 +51,9 @@ const errorEmbeds = () => { ) //ERROR OPTION MISSING - embeds.add(new api.ODEmbed("openticket:error-option-missing")) - embeds.get("openticket:error-option-missing").workers.add( - new api.ODWorker("openticket:error-option-missing",0,async (instance,params) => { + embeds.add(new api.ODEmbed("opendiscord:error-option-missing")) + embeds.get("opendiscord:error-option-missing").workers.add( + new api.ODWorker("opendiscord:error-option-missing",0,async (instance,params) => { const {user,error} = params const options = error.command.builder.options ?? [] @@ -83,9 +83,9 @@ const errorEmbeds = () => { ) //ERROR OPTION INVALID - embeds.add(new api.ODEmbed("openticket:error-option-invalid")) - embeds.get("openticket:error-option-invalid").workers.add( - new api.ODWorker("openticket:error-option-invalid",0,async (instance,params) => { + embeds.add(new api.ODEmbed("opendiscord:error-option-invalid")) + embeds.get("opendiscord:error-option-invalid").workers.add( + new api.ODWorker("opendiscord:error-option-invalid",0,async (instance,params) => { const {user,error} = params const options = error.command.builder.options ?? [] @@ -138,9 +138,9 @@ const errorEmbeds = () => { ) //ERROR UNKNOWN COMMAND - embeds.add(new api.ODEmbed("openticket:error-unknown-command")) - embeds.get("openticket:error-unknown-command").workers.add( - new api.ODWorker("openticket:error-unknown-command",0,async (instance,params) => { + embeds.add(new api.ODEmbed("opendiscord:error-unknown-command")) + embeds.get("opendiscord:error-unknown-command").workers.add( + new api.ODWorker("opendiscord:error-unknown-command",0,async (instance,params) => { const {user} = params instance.setColor(generalConfig.data.system.useRedErrorEmbeds ? "Red" : generalConfig.data.mainColor) @@ -151,9 +151,9 @@ const errorEmbeds = () => { ) //ERROR NO PERMISSIONS - embeds.add(new api.ODEmbed("openticket:error-no-permissions")) - embeds.get("openticket:error-no-permissions").workers.add( - new api.ODWorker("openticket:error-no-permissions",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-no-permissions")) + embeds.get("opendiscord:error-no-permissions").workers.add( + new api.ODWorker("opendiscord:error-no-permissions",0,async (instance,params,source) => { const {user,permissions} = params const method = getMethodFromSource(source) @@ -177,9 +177,9 @@ const errorEmbeds = () => { ) //ERROR NO PERMISSIONS COOLDOWN - embeds.add(new api.ODEmbed("openticket:error-no-permissions-cooldown")) - embeds.get("openticket:error-no-permissions-cooldown").workers.add( - new api.ODWorker("openticket:error-no-permissions-cooldown",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-no-permissions-cooldown")) + embeds.get("opendiscord:error-no-permissions-cooldown").workers.add( + new api.ODWorker("opendiscord:error-no-permissions-cooldown",0,async (instance,params,source) => { const {user} = params const method = getMethodFromSource(source) @@ -193,9 +193,9 @@ const errorEmbeds = () => { ) //ERROR NO PERMISSIONS BLACKLISTED - embeds.add(new api.ODEmbed("openticket:error-no-permissions-blacklisted")) - embeds.get("openticket:error-no-permissions-blacklisted").workers.add( - new api.ODWorker("openticket:error-no-permissions-blacklisted",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-no-permissions-blacklisted")) + embeds.get("opendiscord:error-no-permissions-blacklisted").workers.add( + new api.ODWorker("opendiscord:error-no-permissions-blacklisted",0,async (instance,params,source) => { const {user} = params const method = getMethodFromSource(source) @@ -208,9 +208,9 @@ const errorEmbeds = () => { ) //ERROR NO PERMISSIONS LIMITS - embeds.add(new api.ODEmbed("openticket:error-no-permissions-limits")) - embeds.get("openticket:error-no-permissions-limits").workers.add( - new api.ODWorker("openticket:error-no-permissions-limits",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-no-permissions-limits")) + embeds.get("opendiscord:error-no-permissions-limits").workers.add( + new api.ODWorker("opendiscord:error-no-permissions-limits",0,async (instance,params,source) => { const {user,limit} = params instance.setColor(generalConfig.data.system.useRedErrorEmbeds ? "Red" : generalConfig.data.mainColor) @@ -224,9 +224,9 @@ const errorEmbeds = () => { ) //ERROR RESPONDER TIMEOUT - embeds.add(new api.ODEmbed("openticket:error-responder-timeout")) - embeds.get("openticket:error-responder-timeout").workers.add( - new api.ODWorker("openticket:error-responder-timeout",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-responder-timeout")) + embeds.get("opendiscord:error-responder-timeout").workers.add( + new api.ODWorker("opendiscord:error-responder-timeout",0,async (instance,params,source) => { const {user} = params const method = getMethodFromSource(source) @@ -241,9 +241,9 @@ const errorEmbeds = () => { ) //ERROR TICKET UNKNOWN - embeds.add(new api.ODEmbed("openticket:error-ticket-unknown")) - embeds.get("openticket:error-ticket-unknown").workers.add( - new api.ODWorker("openticket:error-ticket-unknown",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-ticket-unknown")) + embeds.get("opendiscord:error-ticket-unknown").workers.add( + new api.ODWorker("opendiscord:error-ticket-unknown",0,async (instance,params,source) => { const {user} = params instance.setColor(generalConfig.data.system.useRedErrorEmbeds ? "Red" : generalConfig.data.mainColor) @@ -255,9 +255,9 @@ const errorEmbeds = () => { ) //ERROR TICKET DEPRECATED - embeds.add(new api.ODEmbed("openticket:error-ticket-deprecated")) - embeds.get("openticket:error-ticket-deprecated").workers.add( - new api.ODWorker("openticket:error-ticket-deprecated",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-ticket-deprecated")) + embeds.get("opendiscord:error-ticket-deprecated").workers.add( + new api.ODWorker("opendiscord:error-ticket-deprecated",0,async (instance,params,source) => { const {user} = params instance.setColor(generalConfig.data.system.useRedErrorEmbeds ? "Red" : generalConfig.data.mainColor) @@ -269,14 +269,14 @@ const errorEmbeds = () => { ) //ERROR OPTION UNKNOWN - embeds.add(new api.ODEmbed("openticket:error-option-unknown")) - embeds.get("openticket:error-option-unknown").workers.add( - new api.ODWorker("openticket:error-option-unknown",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-option-unknown")) + embeds.get("opendiscord:error-option-unknown").workers.add( + new api.ODWorker("opendiscord:error-option-unknown",0,async (instance,params,source) => { const {user} = params const renderedTicketOptions = opendiscord.options.getAll().map((option) => { - if (option instanceof api.ODTicketOption && option.exists("openticket:name")){ - return "- **"+option.get("openticket:name").value+":** `"+option.id.value+"`" + if (option instanceof api.ODTicketOption && option.exists("opendiscord:name")){ + return "- **"+option.get("opendiscord:name").value+":** `"+option.id.value+"`" }else return "- `"+option.id.value+"`" }).join("\n") @@ -289,14 +289,14 @@ const errorEmbeds = () => { ) //ERROR PANEL UNKNOWN - embeds.add(new api.ODEmbed("openticket:error-panel-unknown")) - embeds.get("openticket:error-panel-unknown").workers.add( - new api.ODWorker("openticket:error-panel-unknown",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-panel-unknown")) + embeds.get("opendiscord:error-panel-unknown").workers.add( + new api.ODWorker("opendiscord:error-panel-unknown",0,async (instance,params,source) => { const {user} = params const renderedPanels = opendiscord.panels.getAll().map((panel) => { - if (panel.exists("openticket:name")){ - return "- **"+panel.get("openticket:name").value+":** `"+panel.id.value+"`" + if (panel.exists("opendiscord:name")){ + return "- **"+panel.get("opendiscord:name").value+":** `"+panel.id.value+"`" }else return "- `"+panel.id.value+"`" }).join("\n") @@ -309,9 +309,9 @@ const errorEmbeds = () => { ) //ERROR NOT IN GUILD - embeds.add(new api.ODEmbed("openticket:error-not-in-guild")) - embeds.get("openticket:error-not-in-guild").workers.add( - new api.ODWorker("openticket:error-not-in-guild",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-not-in-guild")) + embeds.get("opendiscord:error-not-in-guild").workers.add( + new api.ODWorker("opendiscord:error-not-in-guild",0,async (instance,params,source) => { const {user} = params const method = getMethodFromSource(source) @@ -324,9 +324,9 @@ const errorEmbeds = () => { ) //ERROR CHANNEL RENAME - embeds.add(new api.ODEmbed("openticket:error-channel-rename")) - embeds.get("openticket:error-channel-rename").workers.add( - new api.ODWorker("openticket:error-channel-rename",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-channel-rename")) + embeds.get("opendiscord:error-channel-rename").workers.add( + new api.ODWorker("opendiscord:error-channel-rename",0,async (instance,params,source) => { const {channel,user,originalName,newName} = params const method = (source == "ticket-move" || source == "ticket-pin" || source == "ticket-rename" || source == "ticket-unpin") ? source : getMethodFromSource(source) @@ -344,9 +344,9 @@ const errorEmbeds = () => { ) //ERROR TICKET BUSY - embeds.add(new api.ODEmbed("openticket:error-ticket-busy")) - embeds.get("openticket:error-ticket-busy").workers.add( - new api.ODWorker("openticket:error-ticket-busy",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:error-ticket-busy")) + embeds.get("opendiscord:error-ticket-busy").workers.add( + new api.ODWorker("opendiscord:error-ticket-busy",0,async (instance,params,source) => { const {user} = params const method = getMethodFromSource(source) @@ -362,9 +362,9 @@ const errorEmbeds = () => { const helpMenuEmbeds = () => { //HELP MENU - embeds.add(new api.ODEmbed("openticket:help-menu")) - embeds.get("openticket:help-menu").workers.add( - new api.ODWorker("openticket:help-menu",0,async (instance,params) => { + embeds.add(new api.ODEmbed("opendiscord:help-menu")) + embeds.get("opendiscord:help-menu").workers.add( + new api.ODWorker("opendiscord:help-menu",0,async (instance,params) => { const {mode,page} = params instance.setColor(generalConfig.data.mainColor) @@ -381,12 +381,12 @@ const helpMenuEmbeds = () => { const statsEmbeds = () => { //STATS GLOBAL - embeds.add(new api.ODEmbed("openticket:stats-global")) - embeds.get("openticket:stats-global").workers.add( - new api.ODWorker("openticket:stats-global",0,async (instance,params) => { + embeds.add(new api.ODEmbed("opendiscord:stats-global")) + embeds.get("opendiscord:stats-global").workers.add( + new api.ODWorker("opendiscord:stats-global",0,async (instance,params) => { const {guild,channel,user} = params - const scope = opendiscord.stats.get("openticket:global") + const scope = opendiscord.stats.get("opendiscord:global") if (!scope) return const data = await scope.render("GLOBAL",guild,channel,user) @@ -396,7 +396,7 @@ const statsEmbeds = () => { if (opendiscord.permissions.hasPermissions("owner",await opendiscord.permissions.getPermissions(user,channel,guild))){ //show system data when owner or developer - const systemScope = opendiscord.stats.get("openticket:system") + const systemScope = opendiscord.stats.get("opendiscord:system") if (!systemScope) return const systemData = await systemScope.render("GLOBAL",guild,channel,user) instance.addFields({name:systemScope.name,value:systemData,inline:false}) @@ -405,13 +405,13 @@ const statsEmbeds = () => { ) //STATS TICKET - embeds.add(new api.ODEmbed("openticket:stats-ticket")) - embeds.get("openticket:stats-ticket").workers.add( - new api.ODWorker("openticket:stats-ticket",0,async (instance,params) => { + embeds.add(new api.ODEmbed("opendiscord:stats-ticket")) + embeds.get("opendiscord:stats-ticket").workers.add( + new api.ODWorker("opendiscord:stats-ticket",0,async (instance,params) => { const {guild,channel,user,scopeData} = params - const scope = opendiscord.stats.get("openticket:ticket") - const participantsScope = opendiscord.stats.get("openticket:participants") + const scope = opendiscord.stats.get("opendiscord:ticket") + const participantsScope = opendiscord.stats.get("opendiscord:participants") if (!scope || !participantsScope) return const data = await scope.render(scopeData.id.value,guild,channel,user) const participantsData = await participantsScope.render(scopeData.id.value,guild,channel,user) @@ -424,12 +424,12 @@ const statsEmbeds = () => { ) //STATS USER - embeds.add(new api.ODEmbed("openticket:stats-user")) - embeds.get("openticket:stats-user").workers.add([ - new api.ODWorker("openticket:stats-user",0,async (instance,params) => { + embeds.add(new api.ODEmbed("opendiscord:stats-user")) + embeds.get("opendiscord:stats-user").workers.add([ + new api.ODWorker("opendiscord:stats-user",0,async (instance,params) => { const {guild,channel,user,scopeData} = params - const scope = opendiscord.stats.get("openticket:user") + const scope = opendiscord.stats.get("opendiscord:user") if (!scope) return const data = await scope.render(scopeData.id,guild,channel,user) @@ -438,9 +438,9 @@ const statsEmbeds = () => { instance.setDescription(data) instance.setThumbnail(scopeData.displayAvatarURL()) }), - new api.ODWorker("openticket:easter-egg",-1,async (instance,params) => { - if (!opendiscord.flags.exists("openticket:no-easter")) return - const easterFlag = opendiscord.flags.get("openticket:no-easter") + new api.ODWorker("opendiscord:easter-egg",-1,async (instance,params) => { + if (!opendiscord.flags.exists("opendiscord:no-easter")) return + const easterFlag = opendiscord.flags.get("opendiscord:no-easter") if (!easterFlag.value){ //🥚 add easter egg 🥚 const {user} = params @@ -454,9 +454,9 @@ const statsEmbeds = () => { ]) //STATS RESET - embeds.add(new api.ODEmbed("openticket:stats-reset")) - embeds.get("openticket:stats-reset").workers.add( - new api.ODWorker("openticket:stats-reset",0,async (instance,params) => { + embeds.add(new api.ODEmbed("opendiscord:stats-reset")) + embeds.get("opendiscord:stats-reset").workers.add( + new api.ODWorker("opendiscord:stats-reset",0,async (instance,params) => { const {user,reason} = params instance.setColor(generalConfig.data.mainColor) @@ -468,9 +468,9 @@ const statsEmbeds = () => { ) //STATS TICKET UNKNOWN - embeds.add(new api.ODEmbed("openticket:stats-ticket-unknown")) - embeds.get("openticket:stats-ticket-unknown").workers.add( - new api.ODWorker("openticket:stats-ticket-unknown",0,async (instance,params) => { + embeds.add(new api.ODEmbed("opendiscord:stats-ticket-unknown")) + embeds.get("opendiscord:stats-ticket-unknown").workers.add( + new api.ODWorker("opendiscord:stats-ticket-unknown",0,async (instance,params) => { const {user,id} = params instance.setColor(generalConfig.data.system.useRedErrorEmbeds ? "Red" : generalConfig.data.mainColor) @@ -483,12 +483,12 @@ const statsEmbeds = () => { const panelEmbeds = () => { //PANEL - embeds.add(new api.ODEmbed("openticket:panel")) - embeds.get("openticket:panel").workers.add( - new api.ODWorker("openticket:panel",0,async (instance,params) => { + embeds.add(new api.ODEmbed("opendiscord:panel")) + embeds.get("opendiscord:panel").workers.add( + new api.ODWorker("opendiscord:panel",0,async (instance,params) => { const {panel} = params - if (!panel.exists("openticket:embed")) return - const embedOptions = panel.get("openticket:embed").value + if (!panel.exists("opendiscord:embed")) return + const embedOptions = panel.get("opendiscord:embed").value instance.setColor(embedOptions.customColor ? embedOptions.customColor : generalConfig.data.mainColor) instance.setTitle(embedOptions.title) @@ -498,7 +498,7 @@ const panelEmbeds = () => { if (embedOptions.footer) instance.setFooter(embedOptions.footer) if (embedOptions.timestamp) instance.setTimestamp(new Date()) - if (panel.get("openticket:describe-options-in-embed-description").value){ + if (panel.get("opendiscord:describe-options-in-embed-description").value){ //describe options in description const text = (await import("../data/openticket/panelLoader.js")).describePanelOptions("text",panel) instance.setDescription(embedOptions.description+"\n\n"+text) @@ -506,11 +506,11 @@ const panelEmbeds = () => { instance.setDescription(embedOptions.description) } - if (panel.get("openticket:enable-max-tickets-warning-embed").value && generalConfig.data.system.limits.enabled){ + if (panel.get("opendiscord:enable-max-tickets-warning-embed").value && generalConfig.data.system.limits.enabled){ instance.setDescription(instance.data.description+"\n\n*"+lang.getTranslationWithParams("actions.descriptions.ticketMessageLimit",[generalConfig.data.system.limits.userMaximum.toString()])+"*") } - if (panel.get("openticket:describe-options-in-embed-fields").value){ + if (panel.get("opendiscord:describe-options-in-embed-fields").value){ //describe options in fields const fields = (await import("../data/openticket/panelLoader.js")).describePanelOptions("fields",panel) instance.setFields(fields) @@ -523,9 +523,9 @@ const panelEmbeds = () => { const ticketEmbeds = () => { //TICKET CREATED - embeds.add(new api.ODEmbed("openticket:ticket-created")) - embeds.get("openticket:ticket-created").workers.add( - new api.ODWorker("openticket:ticket-created",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:ticket-created")) + embeds.get("opendiscord:ticket-created").workers.add( + new api.ODWorker("opendiscord:ticket-created",0,async (instance,params,source) => { const {user} = params instance.setColor(generalConfig.data.mainColor) @@ -537,11 +537,11 @@ const ticketEmbeds = () => { ) //TICKET CREATED DM - embeds.add(new api.ODEmbed("openticket:ticket-created-dm")) - embeds.get("openticket:ticket-created-dm").workers.add( - new api.ODWorker("openticket:ticket-created-dm",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:ticket-created-dm")) + embeds.get("opendiscord:ticket-created-dm").workers.add( + new api.ODWorker("opendiscord:ticket-created-dm",0,async (instance,params,source) => { const {user,ticket} = params - const embedOptions = ticket.option.get("openticket:dm-message-embed").value + const embedOptions = ticket.option.get("opendiscord:dm-message-embed").value instance.setColor(embedOptions.customColor ? (embedOptions.customColor as discord.ColorResolvable) : generalConfig.data.mainColor) instance.setTitle(embedOptions.title) @@ -551,15 +551,15 @@ const ticketEmbeds = () => { if (embedOptions.description) instance.setDescription(embedOptions.description) if (embedOptions.fields) instance.setFields(embedOptions.fields) - if (ticket.get("openticket:closed").value && ticket.get("openticket:autodelete-enabled").value) instance.setFooter("⏱️ "+lang.getTranslationWithParams("actions.descriptions.ticketMessageAutodelete",[ticket.option.get("openticket:autodelete-days").value.toString()])) - else if (!ticket.get("openticket:closed").value && ticket.get("openticket:autoclose-enabled").value) instance.setFooter("⏱️ "+lang.getTranslationWithParams("actions.descriptions.ticketMessageAutoclose",[ticket.option.get("openticket:autoclose-hours").value.toString()])) + if (ticket.get("opendiscord:closed").value && ticket.get("opendiscord:autodelete-enabled").value) instance.setFooter("⏱️ "+lang.getTranslationWithParams("actions.descriptions.ticketMessageAutodelete",[ticket.option.get("opendiscord:autodelete-days").value.toString()])) + else if (!ticket.get("opendiscord:closed").value && ticket.get("opendiscord:autoclose-enabled").value) instance.setFooter("⏱️ "+lang.getTranslationWithParams("actions.descriptions.ticketMessageAutoclose",[ticket.option.get("opendiscord:autoclose-hours").value.toString()])) }) ) //TICKET CREATED LOGS - embeds.add(new api.ODEmbed("openticket:ticket-created-logs")) - embeds.get("openticket:ticket-created-logs").workers.add( - new api.ODWorker("openticket:ticket-created-logs",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:ticket-created-logs")) + embeds.get("opendiscord:ticket-created-logs").workers.add( + new api.ODWorker("opendiscord:ticket-created-logs",0,async (instance,params,source) => { const {user,ticket} = params const method = (source == "panel-button" || source == "panel-dropdown") ? lang.getTranslation("params.uppercase.panel") : (source == "slash" || source == "text") ? lang.getTranslation("params.uppercase.command") : lang.getTranslation("params.uppercase.system") @@ -572,7 +572,7 @@ const ticketEmbeds = () => { instance.setTimestamp(new Date()) instance.setDescription(lang.getTranslationWithParams("actions.logs.createLog",[discord.userMention(user.id)])) instance.addFields( - {name:lang.getTranslation("params.uppercase.type")+":",value:"```"+ticket.option.get("openticket:name").value+"```",inline:false}, + {name:lang.getTranslation("params.uppercase.type")+":",value:"```"+ticket.option.get("opendiscord:name").value+"```",inline:false}, {name:lang.getTranslation("params.uppercase.method")+":",value:"```"+method+"```",inline:true}, {name:lang.getTranslation("params.uppercase.blacklisted")+":",value:"```"+blacklisted+"```", inline:true} ) @@ -580,11 +580,11 @@ const ticketEmbeds = () => { ) //TICKET MESSAGE - embeds.add(new api.ODEmbed("openticket:ticket-message")) - embeds.get("openticket:ticket-message").workers.add( - new api.ODWorker("openticket:ticket-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:ticket-message")) + embeds.get("opendiscord:ticket-message").workers.add( + new api.ODWorker("opendiscord:ticket-message",0,async (instance,params,source) => { const {user,ticket} = params - const embedOptions = ticket.option.get("openticket:ticket-message-embed").value + const embedOptions = ticket.option.get("opendiscord:ticket-message-embed").value instance.setColor(embedOptions.customColor ? embedOptions.customColor : generalConfig.data.mainColor) if (embedOptions.title) instance.setTitle(embedOptions.title) @@ -593,8 +593,8 @@ const ticketEmbeds = () => { if (embedOptions.timestamp) instance.setTimestamp(new Date()) if (embedOptions.description) instance.setDescription(embedOptions.description) - if (ticket.option.get("openticket:questions").value.length > 0){ - const answers = ticket.get("openticket:answers").value + if (ticket.option.get("opendiscord:questions").value.length > 0){ + const answers = ticket.get("opendiscord:answers").value answers.forEach((answer) => { if (!answer.value || answer.value.length == 0) return if (generalConfig.data.system.questionFieldsInCodeBlock) instance.addFields({name:answer.name,value:"```"+answer.value+"```",inline:false}) @@ -604,10 +604,10 @@ const ticketEmbeds = () => { instance.setFields(embedOptions.fields) } - if (ticket.get("openticket:closed").value && ticket.get("openticket:autodelete-enabled").value) instance.setFooter("⏱️ "+lang.getTranslationWithParams("actions.descriptions.ticketMessageAutodelete",[ticket.option.get("openticket:autodelete-days").value.toString()])) - else if (!ticket.get("openticket:closed").value && ticket.get("openticket:autoclose-enabled").value) instance.setFooter("⏱️ "+lang.getTranslationWithParams("actions.descriptions.ticketMessageAutoclose",[ticket.option.get("openticket:autoclose-hours").value.toString()])) + if (ticket.get("opendiscord:closed").value && ticket.get("opendiscord:autodelete-enabled").value) instance.setFooter("⏱️ "+lang.getTranslationWithParams("actions.descriptions.ticketMessageAutodelete",[ticket.option.get("opendiscord:autodelete-days").value.toString()])) + else if (!ticket.get("opendiscord:closed").value && ticket.get("opendiscord:autoclose-enabled").value) instance.setFooter("⏱️ "+lang.getTranslationWithParams("actions.descriptions.ticketMessageAutoclose",[ticket.option.get("opendiscord:autoclose-hours").value.toString()])) - if (ticket.get("openticket:claimed").value){ + if (ticket.get("opendiscord:claimed").value){ const claimUser = await opendiscord.tickets.getTicketUser(ticket,"claimer") if (!claimUser) return instance.setAuthor(lang.getTranslationWithParams("params.uppercase.claimedBy",[claimUser.displayName]),claimUser.displayAvatarURL()) @@ -616,9 +616,9 @@ const ticketEmbeds = () => { ) //TICKET CLOSED - embeds.add(new api.ODEmbed("openticket:close-message")) - embeds.get("openticket:close-message").workers.add( - new api.ODWorker("openticket:close-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:close-message")) + embeds.get("opendiscord:close-message").workers.add( + new api.ODWorker("opendiscord:close-message",0,async (instance,params,source) => { const {user,ticket,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -630,9 +630,9 @@ const ticketEmbeds = () => { ) //TICKET REOPENED - embeds.add(new api.ODEmbed("openticket:reopen-message")) - embeds.get("openticket:reopen-message").workers.add( - new api.ODWorker("openticket:reopen-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:reopen-message")) + embeds.get("opendiscord:reopen-message").workers.add( + new api.ODWorker("opendiscord:reopen-message",0,async (instance,params,source) => { const {user,ticket,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -644,9 +644,9 @@ const ticketEmbeds = () => { ) //TICKET DELETED - embeds.add(new api.ODEmbed("openticket:delete-message")) - embeds.get("openticket:delete-message").workers.add( - new api.ODWorker("openticket:delete-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:delete-message")) + embeds.get("opendiscord:delete-message").workers.add( + new api.ODWorker("opendiscord:delete-message",0,async (instance,params,source) => { const {user,ticket,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -658,9 +658,9 @@ const ticketEmbeds = () => { ) //TICKET CLAIMED - embeds.add(new api.ODEmbed("openticket:claim-message")) - embeds.get("openticket:claim-message").workers.add( - new api.ODWorker("openticket:claim-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:claim-message")) + embeds.get("opendiscord:claim-message").workers.add( + new api.ODWorker("opendiscord:claim-message",0,async (instance,params,source) => { const {user,ticket,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -672,9 +672,9 @@ const ticketEmbeds = () => { ) //TICKET UNCLAIMED - embeds.add(new api.ODEmbed("openticket:unclaim-message")) - embeds.get("openticket:unclaim-message").workers.add( - new api.ODWorker("openticket:unclaim-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:unclaim-message")) + embeds.get("opendiscord:unclaim-message").workers.add( + new api.ODWorker("opendiscord:unclaim-message",0,async (instance,params,source) => { const {user,ticket,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -686,9 +686,9 @@ const ticketEmbeds = () => { ) //TICKET PINNED - embeds.add(new api.ODEmbed("openticket:pin-message")) - embeds.get("openticket:pin-message").workers.add( - new api.ODWorker("openticket:pin-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:pin-message")) + embeds.get("opendiscord:pin-message").workers.add( + new api.ODWorker("opendiscord:pin-message",0,async (instance,params,source) => { const {user,ticket,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -700,9 +700,9 @@ const ticketEmbeds = () => { ) //TICKET UNPINNED - embeds.add(new api.ODEmbed("openticket:unpin-message")) - embeds.get("openticket:unpin-message").workers.add( - new api.ODWorker("openticket:unpin-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:unpin-message")) + embeds.get("opendiscord:unpin-message").workers.add( + new api.ODWorker("opendiscord:unpin-message",0,async (instance,params,source) => { const {user,ticket,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -714,9 +714,9 @@ const ticketEmbeds = () => { ) //TICKET RENAMED - embeds.add(new api.ODEmbed("openticket:rename-message")) - embeds.get("openticket:rename-message").workers.add( - new api.ODWorker("openticket:rename-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:rename-message")) + embeds.get("opendiscord:rename-message").workers.add( + new api.ODWorker("opendiscord:rename-message",0,async (instance,params,source) => { const {user,ticket,reason,data} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -728,23 +728,23 @@ const ticketEmbeds = () => { ) //TICKET MOVED - embeds.add(new api.ODEmbed("openticket:move-message")) - embeds.get("openticket:move-message").workers.add( - new api.ODWorker("openticket:move-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:move-message")) + embeds.get("opendiscord:move-message").workers.add( + new api.ODWorker("opendiscord:move-message",0,async (instance,params,source) => { const {user,ticket,reason,data} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) instance.setColor(generalConfig.data.mainColor) instance.setTitle(utilities.emojiTitle("🔀",lang.getTranslation("actions.titles.move"))) - instance.setDescription(lang.getTranslationWithParams("actions.descriptions.move",["`"+data.get("openticket:name").value+"`"])) + instance.setDescription(lang.getTranslationWithParams("actions.descriptions.move",["`"+data.get("opendiscord:name").value+"`"])) if (reason) instance.addFields({name:lang.getTranslation("params.uppercase.reason")+":",value:"```"+reason+"```"}) }) ) //TICKET USER ADDED - embeds.add(new api.ODEmbed("openticket:add-message")) - embeds.get("openticket:add-message").workers.add( - new api.ODWorker("openticket:add-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:add-message")) + embeds.get("opendiscord:add-message").workers.add( + new api.ODWorker("opendiscord:add-message",0,async (instance,params,source) => { const {user,ticket,reason,data} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -756,9 +756,9 @@ const ticketEmbeds = () => { ) //TICKET USER REMOVED - embeds.add(new api.ODEmbed("openticket:remove-message")) - embeds.get("openticket:remove-message").workers.add( - new api.ODWorker("openticket:remove-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:remove-message")) + embeds.get("opendiscord:remove-message").workers.add( + new api.ODWorker("opendiscord:remove-message",0,async (instance,params,source) => { const {user,ticket,reason,data} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -770,9 +770,9 @@ const ticketEmbeds = () => { ) //TICKET ACTION DM - embeds.add(new api.ODEmbed("openticket:ticket-action-dm")) - embeds.get("openticket:ticket-action-dm").workers.add( - new api.ODWorker("openticket:ticket-action-dm",0,async (instance,params,source) => { + 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,source) => { const {user,mode,ticket,reason,additionalData} = params const channel = await opendiscord.tickets.getTicketChannel(ticket) @@ -807,7 +807,7 @@ const ticketEmbeds = () => { instance.setDescription(lang.getTranslationWithParams("actions.logs.renameDm",["`#"+(typeof additionalData == "string" ? additionalData : "")+"`"])) }else if (mode == "move"){ instance.setTitle(utilities.emojiTitle("🔀",lang.getTranslation("actions.titles.move"))) - instance.setDescription(lang.getTranslationWithParams("actions.logs.moveDm",["`"+(additionalData instanceof api.ODTicketOption ? additionalData.get("openticket:name").value : "")+"`"])) + instance.setDescription(lang.getTranslationWithParams("actions.logs.moveDm",["`"+(additionalData instanceof api.ODTicketOption ? additionalData.get("opendiscord:name").value : "")+"`"])) }else if (mode == "add"){ instance.setTitle(utilities.emojiTitle("👤",lang.getTranslation("actions.titles.add"))) instance.setDescription(lang.getTranslationWithParams("actions.logs.addDm",[(additionalData instanceof discord.User ? discord.userMention(additionalData.id) : "")])) @@ -819,9 +819,9 @@ const ticketEmbeds = () => { ) //TICKET ACTION LOGS - embeds.add(new api.ODEmbed("openticket:ticket-action-logs")) - embeds.get("openticket:ticket-action-logs").workers.add( - new api.ODWorker("openticket:ticket-action-logs",0,async (instance,params,source) => { + 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,source) => { const {user,mode,ticket,reason,additionalData} = params const channel = await opendiscord.tickets.getTicketChannel(ticket) @@ -832,7 +832,7 @@ const ticketEmbeds = () => { instance.addFields( {name:lang.getTranslation("params.uppercase.ticket")+":",value:"```#"+(channel ? channel.name : "")+"```",inline:false}, //TODO TRANSLATION!!! - {name:"Option"+":",value:"```"+(ticket.option.get("openticket:name").value)+"```",inline:false}, + {name:"Option"+":",value:"```"+(ticket.option.get("opendiscord:name").value)+"```",inline:false}, ) if (reason) instance.addFields({name:lang.getTranslation("params.uppercase.reason")+":",value:"```"+reason+"```",inline:false}) @@ -862,7 +862,7 @@ const ticketEmbeds = () => { instance.setDescription(lang.getTranslationWithParams("actions.logs.renameLog",["`#"+(typeof additionalData == "string" ? additionalData : "")+"`",discord.userMention(user.id)])) }else if (mode == "move"){ instance.setTitle(utilities.emojiTitle("🔀",lang.getTranslation("actions.titles.move"))) - instance.setDescription(lang.getTranslationWithParams("actions.logs.moveLog",["`"+(additionalData instanceof api.ODTicketOption ? additionalData.get("openticket:name").value : "")+"`",discord.userMention(user.id)])) + instance.setDescription(lang.getTranslationWithParams("actions.logs.moveLog",["`"+(additionalData instanceof api.ODTicketOption ? additionalData.get("opendiscord:name").value : "")+"`",discord.userMention(user.id)])) }else if (mode == "add"){ instance.setTitle(utilities.emojiTitle("👤",lang.getTranslation("actions.titles.add"))) instance.setDescription(lang.getTranslationWithParams("actions.logs.addLog",[(additionalData instanceof discord.User ? discord.userMention(additionalData.id) : ""),discord.userMention(user.id)])) @@ -876,9 +876,9 @@ const ticketEmbeds = () => { const blacklistEmbeds = () => { //BLACKLIST VIEW - embeds.add(new api.ODEmbed("openticket:blacklist-view")) - embeds.get("openticket:blacklist-view").workers.add( - new api.ODWorker("openticket:blacklist-view",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:blacklist-view")) + embeds.get("opendiscord:blacklist-view").workers.add( + new api.ODWorker("opendiscord:blacklist-view",0,async (instance,params,source) => { const {user} = params const renderedUsers: string[] = [] @@ -896,9 +896,9 @@ const blacklistEmbeds = () => { }) ) //BLACKLIST GET - embeds.add(new api.ODEmbed("openticket:blacklist-get")) - embeds.get("openticket:blacklist-get").workers.add( - new api.ODWorker("openticket:blacklist-get",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:blacklist-get")) + embeds.get("opendiscord:blacklist-get").workers.add( + new api.ODWorker("opendiscord:blacklist-get",0,async (instance,params,source) => { const {user,data} = params const blacklist = opendiscord.blacklist.get(data.id) @@ -915,9 +915,9 @@ const blacklistEmbeds = () => { ) //BLACKLIST ADD - embeds.add(new api.ODEmbed("openticket:blacklist-add")) - embeds.get("openticket:blacklist-add").workers.add( - new api.ODWorker("openticket:blacklist-add",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:blacklist-add")) + embeds.get("opendiscord:blacklist-add").workers.add( + new api.ODWorker("opendiscord:blacklist-add",0,async (instance,params,source) => { const {user,data,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -929,9 +929,9 @@ const blacklistEmbeds = () => { ) //BLACKLIST REMOVE - embeds.add(new api.ODEmbed("openticket:blacklist-remove")) - embeds.get("openticket:blacklist-remove").workers.add( - new api.ODWorker("openticket:blacklist-remove",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:blacklist-remove")) + embeds.get("opendiscord:blacklist-remove").workers.add( + new api.ODWorker("opendiscord:blacklist-remove",0,async (instance,params,source) => { const {user,data,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -943,9 +943,9 @@ const blacklistEmbeds = () => { ) //BLACKLIST DM - embeds.add(new api.ODEmbed("openticket:blacklist-dm")) - embeds.get("openticket:blacklist-dm").workers.add( - new api.ODWorker("openticket:blacklist-dm",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:blacklist-dm")) + embeds.get("opendiscord:blacklist-dm").workers.add( + new api.ODWorker("opendiscord:blacklist-dm",0,async (instance,params,source) => { const {user,mode,data,reason} = params const title = (mode == "add") ? lang.getTranslation("actions.titles.blacklistAddDm") : lang.getTranslation("actions.titles.blacklistRemoveDm") @@ -960,9 +960,9 @@ const blacklistEmbeds = () => { ) //BLACKLIST LOGS - embeds.add(new api.ODEmbed("openticket:blacklist-logs")) - embeds.get("openticket:blacklist-logs").workers.add( - new api.ODWorker("openticket:blacklist-logs",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:blacklist-logs")) + embeds.get("opendiscord:blacklist-logs").workers.add( + new api.ODWorker("opendiscord:blacklist-logs",0,async (instance,params,source) => { const {user,mode,data,reason} = params const title = (mode == "add") ? lang.getTranslation("actions.titles.blacklistAdd") : lang.getTranslation("actions.titles.blacklistRemove") @@ -981,18 +981,18 @@ const blacklistEmbeds = () => { const transcriptEmbeds = () => { //TRANSCRIPT TEXT READY - embeds.add(new api.ODEmbed("openticket:transcript-text-ready")) - embeds.get("openticket:transcript-text-ready").workers.add( - new api.ODWorker("openticket:transcript-text-ready",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:transcript-text-ready")) + embeds.get("opendiscord:transcript-text-ready").workers.add( + new api.ODWorker("opendiscord:transcript-text-ready",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler} = params - const transcriptConfig = opendiscord.configs.get("openticket:transcripts") + const transcriptConfig = opendiscord.configs.get("opendiscord:transcripts") instance.setColor(transcriptConfig.data.embedSettings.customColor ? transcriptConfig.data.embedSettings.customColor : generalConfig.data.mainColor) instance.setTitle(utilities.emojiTitle("📄",lang.getTranslation("transcripts.success.ready"))) instance.setTimestamp(new Date()) instance.addFields({name:lang.getTranslation("params.uppercase.ticket")+":",value:"#"+channel.name,inline:false}) - const creatorId = ticket.get("openticket:opened-by").value + const creatorId = ticket.get("opendiscord:opened-by").value if (creatorId){ try{ const creator = await channel.client.users.fetch(creatorId) @@ -1011,11 +1011,11 @@ const transcriptEmbeds = () => { ) //TRANSCRIPT HTML READY - embeds.add(new api.ODEmbed("openticket:transcript-html-ready")) - embeds.get("openticket:transcript-html-ready").workers.add( - new api.ODWorker("openticket:transcript-html-ready",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:transcript-html-ready")) + embeds.get("opendiscord:transcript-html-ready").workers.add( + new api.ODWorker("opendiscord:transcript-html-ready",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler,result} = params - const transcriptConfig = opendiscord.configs.get("openticket:transcripts") + const transcriptConfig = opendiscord.configs.get("opendiscord:transcripts") instance.setColor(transcriptConfig.data.embedSettings.customColor ? transcriptConfig.data.embedSettings.customColor : generalConfig.data.mainColor) instance.setTitle(utilities.emojiTitle("📄",lang.getTranslation("transcripts.success.ready"))) @@ -1023,7 +1023,7 @@ const transcriptEmbeds = () => { instance.addFields({name:lang.getTranslation("params.uppercase.ticket")+":",value:"#"+channel.name,inline:false}) if (result.data) instance.setUrl(result.data.url) - const creatorId = ticket.get("openticket:opened-by").value + const creatorId = ticket.get("opendiscord:opened-by").value if (creatorId){ try{ const creator = await channel.client.users.fetch(creatorId) @@ -1042,9 +1042,9 @@ const transcriptEmbeds = () => { ) //TRANSCRIPT HTML PROGRESS - embeds.add(new api.ODEmbed("openticket:transcript-html-progress")) - embeds.get("openticket:transcript-html-progress").workers.add( - new api.ODWorker("openticket:transcript-html-progress",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:transcript-html-progress")) + embeds.get("opendiscord:transcript-html-progress").workers.add( + new api.ODWorker("opendiscord:transcript-html-progress",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler,remaining} = params const remainingDate = new Date(new Date().getTime()+remaining) @@ -1056,7 +1056,7 @@ const transcriptEmbeds = () => { instance.addFields({name:lang.getTranslation("params.uppercase.remaining")+":",value:discord.time(remainingDate,"R"),inline:false}) instance.addFields({name:lang.getTranslation("params.uppercase.ticket")+":",value:"#"+channel.name,inline:false}) - const creatorId = ticket.get("openticket:opened-by").value + const creatorId = ticket.get("opendiscord:opened-by").value if (creatorId){ try{ const creator = await channel.client.users.fetch(creatorId) @@ -1068,9 +1068,9 @@ const transcriptEmbeds = () => { ) //TRANSCRIPT ERROR - embeds.add(new api.ODEmbed("openticket:transcript-error")) - embeds.get("openticket:transcript-error").workers.add( - new api.ODWorker("openticket:transcript-error",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:transcript-error")) + embeds.get("opendiscord:transcript-error").workers.add( + new api.ODWorker("opendiscord:transcript-error",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler,reason} = params instance.setColor(generalConfig.data.system.useRedErrorEmbeds ? "Red" : generalConfig.data.mainColor) @@ -1085,9 +1085,9 @@ const transcriptEmbeds = () => { const roleEmbeds = () => { //REACTION ROLE - embeds.add(new api.ODEmbed("openticket:reaction-role")) - embeds.get("openticket:reaction-role").workers.add( - new api.ODWorker("openticket:reaction-role",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:reaction-role")) + embeds.get("opendiscord:reaction-role").workers.add( + new api.ODWorker("opendiscord:reaction-role",0,async (instance,params,source) => { const {guild,user,role,result} = params instance.setColor(generalConfig.data.mainColor) @@ -1111,9 +1111,9 @@ const roleEmbeds = () => { const clearEmbeds = () => { //CLEAR VERIFY MESSAGE - embeds.add(new api.ODEmbed("openticket:clear-verify-message")) - embeds.get("openticket:clear-verify-message").workers.add( - new api.ODWorker("openticket:clear-verify-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:clear-verify-message")) + embeds.get("opendiscord:clear-verify-message").workers.add( + new api.ODWorker("opendiscord:clear-verify-message",0,async (instance,params,source) => { const {guild,channel,user,filter,list} = params instance.setColor(generalConfig.data.mainColor) @@ -1129,9 +1129,9 @@ const clearEmbeds = () => { ) //CLEAR MESSAGE - embeds.add(new api.ODEmbed("openticket:clear-message")) - embeds.get("openticket:clear-message").workers.add( - new api.ODWorker("openticket:clear-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:clear-message")) + embeds.get("opendiscord:clear-message").workers.add( + new api.ODWorker("opendiscord:clear-message",0,async (instance,params,source) => { const {guild,channel,user,filter,list} = params instance.setColor(generalConfig.data.mainColor) @@ -1146,9 +1146,9 @@ const clearEmbeds = () => { ) //CLEAR LOGS - embeds.add(new api.ODEmbed("openticket:clear-logs")) - embeds.get("openticket:clear-logs").workers.add( - new api.ODWorker("openticket:clear-logs",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:clear-logs")) + embeds.get("opendiscord:clear-logs").workers.add( + new api.ODWorker("opendiscord:clear-logs",0,async (instance,params,source) => { const {guild,channel,user,filter,list} = params instance.setColor(generalConfig.data.mainColor) @@ -1166,11 +1166,11 @@ const clearEmbeds = () => { const autoEmbeds = () => { //AUTOCLOSE MESSAGE - embeds.add(new api.ODEmbed("openticket:autoclose-message")) - embeds.get("openticket:autoclose-message").workers.add( - new api.ODWorker("openticket:autoclose-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:autoclose-message")) + embeds.get("opendiscord:autoclose-message").workers.add( + new api.ODWorker("opendiscord:autoclose-message",0,async (instance,params,source) => { const {user,ticket} = params - const hours: number = ticket.get("openticket:autoclose-hours").value + const hours: number = ticket.get("opendiscord:autoclose-hours").value const description = (source == "leave") ? lang.getTranslation("actions.descriptions.autocloseLeave") : lang.getTranslationWithParams("actions.descriptions.autocloseTimeout",[hours.toString()]) instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -1182,11 +1182,11 @@ const autoEmbeds = () => { ) //AUTODELETE MESSAGE - embeds.add(new api.ODEmbed("openticket:autodelete-message")) - embeds.get("openticket:autodelete-message").workers.add( - new api.ODWorker("openticket:autodelete-message",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:autodelete-message")) + embeds.get("opendiscord:autodelete-message").workers.add( + new api.ODWorker("opendiscord:autodelete-message",0,async (instance,params,source) => { const {user,ticket} = params - const days: number = ticket.get("openticket:autodelete-days").value + const days: number = ticket.get("opendiscord:autodelete-days").value const description = (source == "leave") ? lang.getTranslation("actions.descriptions.autodeleteLeave") : lang.getTranslationWithParams("actions.descriptions.autodeleteTimeout",[days.toString()]) instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -1198,9 +1198,9 @@ const autoEmbeds = () => { ) //AUTOCLOSE ENABLE - embeds.add(new api.ODEmbed("openticket:autoclose-enable")) - embeds.get("openticket:autoclose-enable").workers.add( - new api.ODWorker("openticket:autoclose-enable",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:autoclose-enable")) + embeds.get("opendiscord:autoclose-enable").workers.add( + new api.ODWorker("opendiscord:autoclose-enable",0,async (instance,params,source) => { const {user,ticket,reason,time} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -1212,9 +1212,9 @@ const autoEmbeds = () => { ) //AUTODELETE ENABLE - embeds.add(new api.ODEmbed("openticket:autodelete-enable")) - embeds.get("openticket:autodelete-enable").workers.add( - new api.ODWorker("openticket:autodelete-enable",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:autodelete-enable")) + embeds.get("opendiscord:autodelete-enable").workers.add( + new api.ODWorker("opendiscord:autodelete-enable",0,async (instance,params,source) => { const {user,ticket,reason,time} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -1226,9 +1226,9 @@ const autoEmbeds = () => { ) //AUTOCLOSE DISABLE - embeds.add(new api.ODEmbed("openticket:autoclose-disable")) - embeds.get("openticket:autoclose-disable").workers.add( - new api.ODWorker("openticket:autoclose-disable",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:autoclose-disable")) + embeds.get("opendiscord:autoclose-disable").workers.add( + new api.ODWorker("opendiscord:autoclose-disable",0,async (instance,params,source) => { const {user,ticket,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) @@ -1240,9 +1240,9 @@ const autoEmbeds = () => { ) //AUTODELETE DISABLE - embeds.add(new api.ODEmbed("openticket:autodelete-disable")) - embeds.get("openticket:autodelete-disable").workers.add( - new api.ODWorker("openticket:autodelete-disable",0,async (instance,params,source) => { + embeds.add(new api.ODEmbed("opendiscord:autodelete-disable")) + embeds.get("opendiscord:autodelete-disable").workers.add( + new api.ODWorker("opendiscord:autodelete-disable",0,async (instance,params,source) => { const {user,ticket,reason} = params instance.setAuthor(user.displayName,user.displayAvatarURL()) diff --git a/src/builders/files.ts b/src/builders/files.ts index c23daa0..9a30548 100644 --- a/src/builders/files.ts +++ b/src/builders/files.ts @@ -6,7 +6,7 @@ import * as discord from "discord.js" const files = opendiscord.builders.files const lang = opendiscord.languages -const transcriptConfig = opendiscord.configs.get("openticket:transcripts") +const transcriptConfig = opendiscord.configs.get("opendiscord:transcripts") export const registerAllFiles = async () => { transcriptFiles() @@ -15,15 +15,15 @@ export const registerAllFiles = async () => { const transcriptFiles = () => { //TEXT TRANSCRIPT - files.add(new api.ODFile("openticket:text-transcript")) - files.get("openticket:text-transcript").workers.add( - new api.ODWorker("openticket:text-transcript",0,async (instance,params,source) => { + files.add(new api.ODFile("opendiscord:text-transcript")) + files.get("opendiscord:text-transcript").workers.add( + new api.ODWorker("opendiscord:text-transcript",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler,result} = params const fileMode = transcriptConfig.data.textTranscriptStyle.fileMode const customName = transcriptConfig.data.textTranscriptStyle.customFileName - const creatorId = ticket.get("openticket:opened-by").value ?? "unknown-creator-id" + const creatorId = ticket.get("opendiscord:opened-by").value ?? "unknown-creator-id" const creator = (await opendiscord.tickets.getTicketUser(ticket,"creator")) if (fileMode == "custom") instance.setName(customName.split(".")[0]+".txt") @@ -35,7 +35,7 @@ const transcriptFiles = () => { instance.setDescription(lang.getTranslation("transcripts.success.textFileDescription")) - if (compiler.id.value != "openticket:text-compiler" || !result.data || typeof result.data.contents != "string"){ + if (compiler.id.value != "opendiscord:text-compiler" || !result.data || typeof result.data.contents != "string"){ instance.setContents("") return } diff --git a/src/builders/messages.ts b/src/builders/messages.ts index 0bdb0c5..d0353a2 100644 --- a/src/builders/messages.ts +++ b/src/builders/messages.ts @@ -10,7 +10,7 @@ const dropdowns = opendiscord.builders.dropdowns const files = opendiscord.builders.files const embeds = opendiscord.builders.embeds const lang = opendiscord.languages -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerAllMessages = async () => { verifyBarMessages() @@ -28,25 +28,25 @@ export const registerAllMessages = async () => { const verifyBarMessages = () => { //VERIFYBAR TICKET MESSAGE - messages.add(new api.ODMessage("openticket:verifybar-ticket-message")) - messages.get("openticket:verifybar-ticket-message").workers.add( - new api.ODWorker("openticket:verifybar-ticket-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:verifybar-ticket-message")) + messages.get("opendiscord:verifybar-ticket-message").workers.add( + new api.ODWorker("opendiscord:verifybar-ticket-message",0,async (instance,params,source) => { const {guild,channel,user,verifybar} = params if (!guild){ - instance.setContent("ODError: Not In Guild => `openticket:verifybar-ticket-message`") + instance.setContent("ODError: Not In Guild => `opendiscord:verifybar-ticket-message`") return } const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ - instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-ticket-message`") + instance.setContent("ODError: Unknown Ticket => `opendiscord:verifybar-ticket-message`") return } const option = ticket.option //add pings - const pingOptions = option.get("openticket:ticket-message-ping").value + const pingOptions = option.get("opendiscord:ticket-message-ping").value const pings: string[] = [] - const creator = ticket.get("openticket:opened-by").value + const creator = ticket.get("opendiscord:opened-by").value if (creator) pings.push(discord.userMention(creator)) if (pingOptions["@everyone"]) pings.push("@everyone") if (pingOptions["@here"]) pings.push("@here") @@ -54,65 +54,65 @@ const verifyBarMessages = () => { const pingText = (pings.length > 0) ? pings.join(" ")+"\n" : "" //add text - const text = option.get("openticket:ticket-message-text").value + const text = option.get("opendiscord:ticket-message-text").value if (text !== "") instance.setContent(pingText+text) else instance.setContent(pingText) //add embed - if (option.get("openticket:ticket-message-embed").value.enabled) instance.addEmbed(await embeds.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + if (option.get("opendiscord:ticket-message-embed").value.enabled) instance.addEmbed(await embeds.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) //add verifybar components - if (verifybar.id.value == "openticket:claim-ticket-ticket-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (verifybar.id.value == "opendiscord:claim-ticket-ticket-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - }else if (verifybar.id.value == "openticket:unclaim-ticket-ticket-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + }else if (verifybar.id.value == "opendiscord:unclaim-ticket-ticket-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - }else if (verifybar.id.value == "openticket:pin-ticket-ticket-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + }else if (verifybar.id.value == "opendiscord:pin-ticket-ticket-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - }else if (verifybar.id.value == "openticket:unpin-ticket-ticket-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + }else if (verifybar.id.value == "opendiscord:unpin-ticket-ticket-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - }else if (verifybar.id.value == "openticket:close-ticket-ticket-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + }else if (verifybar.id.value == "opendiscord:close-ticket-ticket-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - }else if (verifybar.id.value == "openticket:reopen-ticket-ticket-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + }else if (verifybar.id.value == "opendiscord:reopen-ticket-ticket-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - }else if (verifybar.id.value == "openticket:delete-ticket-ticket-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - if (generalConfig.data.system.enableDeleteWithoutTranscript) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"no-transcript",customEmoji:"📄",customLabel:lang.getTranslation("actions.buttons.withoutTranscript"),customColor:"red"})) + }else if (verifybar.id.value == "opendiscord:delete-ticket-ticket-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (generalConfig.data.system.enableDeleteWithoutTranscript) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"no-transcript",customEmoji:"📄",customLabel:lang.getTranslation("actions.buttons.withoutTranscript"),customColor:"red"})) } }) ) //TICKET CLOSED - messages.add(new api.ODMessage("openticket:verifybar-close-message")) - messages.get("openticket:verifybar-close-message").workers.add( - new api.ODWorker("openticket:verifybar-close-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:verifybar-close-message")) + messages.get("opendiscord:verifybar-close-message").workers.add( + new api.ODWorker("opendiscord:verifybar-close-message",0,async (instance,params,source) => { const {guild,channel,user,verifybar,originalMessage} = params if (!guild){ - instance.setContent("ODError: Not In Guild => `openticket:verifybar-close-message`") + instance.setContent("ODError: Not In Guild => `opendiscord:verifybar-close-message`") return } const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ - instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-close-message`") + instance.setContent("ODError: Unknown Ticket => `opendiscord:verifybar-close-message`") return } @@ -120,35 +120,35 @@ const verifyBarMessages = () => { const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) //add embed - instance.addEmbed(await embeds.getSafe("openticket:close-message").build("other",{guild,channel,user,ticket,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:close-message").build("other",{guild,channel,user,ticket,reason})) //add verifybar components - if (verifybar.id.value == "openticket:reopen-ticket-close-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (verifybar.id.value == "opendiscord:reopen-ticket-close-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - }else if (verifybar.id.value == "openticket:delete-ticket-close-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - if (generalConfig.data.system.enableDeleteWithoutTranscript) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"no-transcript",customEmoji:"📄",customLabel:lang.getTranslation("actions.buttons.withoutTranscript"),customColor:"red"})) + }else if (verifybar.id.value == "opendiscord:delete-ticket-close-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (generalConfig.data.system.enableDeleteWithoutTranscript) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"no-transcript",customEmoji:"📄",customLabel:lang.getTranslation("actions.buttons.withoutTranscript"),customColor:"red"})) } }) ) //TICKET REOPENED - messages.add(new api.ODMessage("openticket:verifybar-reopen-message")) - messages.get("openticket:verifybar-reopen-message").workers.add( - new api.ODWorker("openticket:verifybar-reopen-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:verifybar-reopen-message")) + messages.get("opendiscord:verifybar-reopen-message").workers.add( + new api.ODWorker("opendiscord:verifybar-reopen-message",0,async (instance,params,source) => { const {guild,channel,user,verifybar,originalMessage} = params if (!guild){ - instance.setContent("ODError: Not In Guild => `openticket:verifybar-reopen-message`") + instance.setContent("ODError: Not In Guild => `opendiscord:verifybar-reopen-message`") return } const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ - instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-reopen-message`") + instance.setContent("ODError: Unknown Ticket => `opendiscord:verifybar-reopen-message`") return } @@ -156,35 +156,35 @@ const verifyBarMessages = () => { const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) //add embed - instance.addEmbed(await embeds.getSafe("openticket:reopen-message").build("other",{guild,channel,user,ticket,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:reopen-message").build("other",{guild,channel,user,ticket,reason})) //add verifybar components - if (verifybar.id.value == "openticket:close-ticket-reopen-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (verifybar.id.value == "opendiscord:close-ticket-reopen-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - }else if (verifybar.id.value == "openticket:delete-ticket-reopen-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - if (generalConfig.data.system.enableDeleteWithoutTranscript) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"no-transcript",customEmoji:"📄",customLabel:lang.getTranslation("actions.buttons.withoutTranscript"),customColor:"red"})) + }else if (verifybar.id.value == "opendiscord:delete-ticket-reopen-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (generalConfig.data.system.enableDeleteWithoutTranscript) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"no-transcript",customEmoji:"📄",customLabel:lang.getTranslation("actions.buttons.withoutTranscript"),customColor:"red"})) } }) ) //TICKET CLAIM - messages.add(new api.ODMessage("openticket:verifybar-claim-message")) - messages.get("openticket:verifybar-claim-message").workers.add( - new api.ODWorker("openticket:verifybar-claim-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:verifybar-claim-message")) + messages.get("opendiscord:verifybar-claim-message").workers.add( + new api.ODWorker("opendiscord:verifybar-claim-message",0,async (instance,params,source) => { const {guild,channel,user,verifybar,originalMessage} = params if (!guild){ - instance.setContent("ODError: Not In Guild => `openticket:verifybar-claim-message`") + instance.setContent("ODError: Not In Guild => `opendiscord:verifybar-claim-message`") return } const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ - instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-claim-message`") + instance.setContent("ODError: Unknown Ticket => `opendiscord:verifybar-claim-message`") return } @@ -192,29 +192,29 @@ const verifyBarMessages = () => { const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) //add embed - instance.addEmbed(await embeds.getSafe("openticket:claim-message").build("other",{guild,channel,user,ticket,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:claim-message").build("other",{guild,channel,user,ticket,reason})) //add verifybar components - if (verifybar.id.value == "openticket:unclaim-ticket-claim-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (verifybar.id.value == "opendiscord:unclaim-ticket-claim-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) } }) ) //TICKET UNCLAIM - messages.add(new api.ODMessage("openticket:verifybar-unclaim-message")) - messages.get("openticket:verifybar-unclaim-message").workers.add( - new api.ODWorker("openticket:verifybar-unclaim-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:verifybar-unclaim-message")) + messages.get("opendiscord:verifybar-unclaim-message").workers.add( + new api.ODWorker("opendiscord:verifybar-unclaim-message",0,async (instance,params,source) => { const {guild,channel,user,verifybar,originalMessage} = params if (!guild){ - instance.setContent("ODError: Not In Guild => `openticket:verifybar-unclaim-message`") + instance.setContent("ODError: Not In Guild => `opendiscord:verifybar-unclaim-message`") return } const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ - instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-unclaim-message`") + instance.setContent("ODError: Unknown Ticket => `opendiscord:verifybar-unclaim-message`") return } @@ -222,29 +222,29 @@ const verifyBarMessages = () => { const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) //add embed - instance.addEmbed(await embeds.getSafe("openticket:unclaim-message").build("other",{guild,channel,user,ticket,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:unclaim-message").build("other",{guild,channel,user,ticket,reason})) //add verifybar components - if (verifybar.id.value == "openticket:claim-ticket-unclaim-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (verifybar.id.value == "opendiscord:claim-ticket-unclaim-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) } }) ) //TICKET PIN - messages.add(new api.ODMessage("openticket:verifybar-pin-message")) - messages.get("openticket:verifybar-pin-message").workers.add( - new api.ODWorker("openticket:verifybar-pin-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:verifybar-pin-message")) + messages.get("opendiscord:verifybar-pin-message").workers.add( + new api.ODWorker("opendiscord:verifybar-pin-message",0,async (instance,params,source) => { const {guild,channel,user,verifybar,originalMessage} = params if (!guild){ - instance.setContent("ODError: Not In Guild => `openticket:verifybar-pin-message`") + instance.setContent("ODError: Not In Guild => `opendiscord:verifybar-pin-message`") return } const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ - instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-pin-message`") + instance.setContent("ODError: Unknown Ticket => `opendiscord:verifybar-pin-message`") return } @@ -252,29 +252,29 @@ const verifyBarMessages = () => { const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) //add embed - instance.addEmbed(await embeds.getSafe("openticket:pin-message").build("other",{guild,channel,user,ticket,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:pin-message").build("other",{guild,channel,user,ticket,reason})) //add verifybar components - if (verifybar.id.value == "openticket:unpin-ticket-pin-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (verifybar.id.value == "opendiscord:unpin-ticket-pin-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) } }) ) //TICKET UNPIN - messages.add(new api.ODMessage("openticket:verifybar-unpin-message")) - messages.get("openticket:verifybar-unpin-message").workers.add( - new api.ODWorker("openticket:verifybar-unpin-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:verifybar-unpin-message")) + messages.get("opendiscord:verifybar-unpin-message").workers.add( + new api.ODWorker("opendiscord:verifybar-unpin-message",0,async (instance,params,source) => { const {guild,channel,user,verifybar,originalMessage} = params if (!guild){ - instance.setContent("ODError: Not In Guild => `openticket:verifybar-unpin-message`") + instance.setContent("ODError: Not In Guild => `opendiscord:verifybar-unpin-message`") return } const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ - instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-unpin-message`") + instance.setContent("ODError: Unknown Ticket => `opendiscord:verifybar-unpin-message`") return } @@ -282,46 +282,46 @@ const verifyBarMessages = () => { const reason = (rawReason == null) ? null : rawReason.substring(3,rawReason.length-3) //add embed - instance.addEmbed(await embeds.getSafe("openticket:unpin-message").build("other",{guild,channel,user,ticket,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:unpin-message").build("other",{guild,channel,user,ticket,reason})) //add verifybar components - if (verifybar.id.value == "openticket:pin-ticket-unpin-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (verifybar.id.value == "opendiscord:pin-ticket-unpin-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) } }) ) //TICKET AUTOCLOSED - messages.add(new api.ODMessage("openticket:verifybar-autoclose-message")) - messages.get("openticket:verifybar-autoclose-message").workers.add( - new api.ODWorker("openticket:verifybar-autoclose-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:verifybar-autoclose-message")) + messages.get("opendiscord:verifybar-autoclose-message").workers.add( + new api.ODWorker("opendiscord:verifybar-autoclose-message",0,async (instance,params,source) => { const {guild,channel,user,verifybar,originalMessage} = params if (!guild || channel.isDMBased()){ - instance.setContent("ODError: Not In Guild => `openticket:verifybar-autoclose-message`") + instance.setContent("ODError: Not In Guild => `opendiscord:verifybar-autoclose-message`") return } const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ - instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-autoclose-message`") + instance.setContent("ODError: Unknown Ticket => `opendiscord:verifybar-autoclose-message`") return } //add embed - instance.addEmbed(await embeds.getSafe("openticket:autoclose-message").build("other",{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:autoclose-message").build("other",{guild,channel,user,ticket})) //add verifybar components - if (verifybar.id.value == "openticket:reopen-ticket-autoclose-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (verifybar.id.value == "opendiscord:reopen-ticket-autoclose-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - }else if (verifybar.id.value == "openticket:delete-ticket-autoclose-message"){ - instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) - instance.addComponent(await buttons.getSafe("openticket:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) - if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) - if (generalConfig.data.system.enableDeleteWithoutTranscript) instance.addComponent(await buttons.getSafe("openticket:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"no-transcript",customEmoji:"📄",customLabel:lang.getTranslation("actions.buttons.withoutTranscript"),customColor:"red"})) + }else if (verifybar.id.value == "opendiscord:delete-ticket-autoclose-message"){ + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar})) + instance.addComponent(await buttons.getSafe("opendiscord:verifybar-failure").build("verifybar",{guild,channel,user,verifybar})) + if (generalConfig.data.system.enableTicketActionWithReason) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"reason",customEmoji:"✏️",customLabel:lang.getTranslation("actions.buttons.withReason"),customColor:"blue"})) + if (generalConfig.data.system.enableDeleteWithoutTranscript) instance.addComponent(await buttons.getSafe("opendiscord:verifybar-success").build("verifybar",{guild,channel,user,verifybar,customData:"no-transcript",customEmoji:"📄",customLabel:lang.getTranslation("actions.buttons.withoutTranscript"),customColor:"red"})) } }) ) @@ -329,162 +329,162 @@ const verifyBarMessages = () => { const errorMessages = () => { //ERROR - messages.add(new api.ODMessage("openticket:error")) - messages.get("openticket:error").workers.add( - new api.ODWorker("openticket:error",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error")) + messages.get("opendiscord:error").workers.add( + new api.ODWorker("opendiscord:error",0,async (instance,params,source) => { const {guild,channel,user,error,layout} = params - instance.addEmbed(await embeds.getSafe("openticket:error").build(source,{guild,channel,user,error,layout})) + instance.addEmbed(await embeds.getSafe("opendiscord:error").build(source,{guild,channel,user,error,layout})) instance.setEphemeral(true) }) ) //ERROR OPTION MISSING - messages.add(new api.ODMessage("openticket:error-option-missing")) - messages.get("openticket:error-option-missing").workers.add( - new api.ODWorker("openticket:error-option-missing",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-option-missing")) + messages.get("opendiscord:error-option-missing").workers.add( + new api.ODWorker("opendiscord:error-option-missing",0,async (instance,params,source) => { const {guild,channel,user,error} = params - instance.addEmbed(await embeds.getSafe("openticket:error-option-missing").build(source,{guild,channel,user,error})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-option-missing").build(source,{guild,channel,user,error})) instance.setEphemeral(true) }) ) //ERROR OPTION INVALID - messages.add(new api.ODMessage("openticket:error-option-invalid")) - messages.get("openticket:error-option-invalid").workers.add( - new api.ODWorker("openticket:error-option-invalid",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-option-invalid")) + messages.get("opendiscord:error-option-invalid").workers.add( + new api.ODWorker("opendiscord:error-option-invalid",0,async (instance,params,source) => { const {guild,channel,user,error} = params - instance.addEmbed(await embeds.getSafe("openticket:error-option-invalid").build(source,{guild,channel,user,error})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-option-invalid").build(source,{guild,channel,user,error})) instance.setEphemeral(true) }) ) //ERROR UNKNOWN COMMAND - messages.add(new api.ODMessage("openticket:error-unknown-command")) - messages.get("openticket:error-unknown-command").workers.add( - new api.ODWorker("openticket:error-unknown-command",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-unknown-command")) + messages.get("opendiscord:error-unknown-command").workers.add( + new api.ODWorker("opendiscord:error-unknown-command",0,async (instance,params,source) => { const {guild,channel,user,error} = params - instance.addEmbed(await embeds.getSafe("openticket:error-unknown-command").build(source,{guild,channel,user,error})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-unknown-command").build(source,{guild,channel,user,error})) instance.setEphemeral(true) }) ) //ERROR NO PERMISSIONS - messages.add(new api.ODMessage("openticket:error-no-permissions")) - messages.get("openticket:error-no-permissions").workers.add( - new api.ODWorker("openticket:error-no-permissions",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-no-permissions")) + messages.get("opendiscord:error-no-permissions").workers.add( + new api.ODWorker("opendiscord:error-no-permissions",0,async (instance,params,source) => { const {guild,channel,user,permissions} = params - instance.addEmbed(await embeds.getSafe("openticket:error-no-permissions").build(source,{guild,channel,user,permissions})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-no-permissions").build(source,{guild,channel,user,permissions})) instance.setEphemeral(true) }) ) //ERROR NO PERMISSIONS COOLDOWN - messages.add(new api.ODMessage("openticket:error-no-permissions-cooldown")) - messages.get("openticket:error-no-permissions-cooldown").workers.add( - new api.ODWorker("openticket:error-no-permissions-cooldown",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-no-permissions-cooldown")) + messages.get("opendiscord:error-no-permissions-cooldown").workers.add( + new api.ODWorker("opendiscord:error-no-permissions-cooldown",0,async (instance,params,source) => { const {guild,channel,user,until} = params - instance.addEmbed(await embeds.getSafe("openticket:error-no-permissions-cooldown").build(source,{guild,channel,user,until})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-no-permissions-cooldown").build(source,{guild,channel,user,until})) instance.setEphemeral(true) }) ) //ERROR NO PERMISSIONS BLACKLISTED - messages.add(new api.ODMessage("openticket:error-no-permissions-blacklisted")) - messages.get("openticket:error-no-permissions-blacklisted").workers.add( - new api.ODWorker("openticket:error-no-permissions-blacklisted",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-no-permissions-blacklisted")) + messages.get("opendiscord:error-no-permissions-blacklisted").workers.add( + new api.ODWorker("opendiscord:error-no-permissions-blacklisted",0,async (instance,params,source) => { const {guild,channel,user} = params - instance.addEmbed(await embeds.getSafe("openticket:error-no-permissions-blacklisted").build(source,{guild,channel,user})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-no-permissions-blacklisted").build(source,{guild,channel,user})) instance.setEphemeral(true) }) ) //ERROR NO PERMISSIONS LIMITS - messages.add(new api.ODMessage("openticket:error-no-permissions-limits")) - messages.get("openticket:error-no-permissions-limits").workers.add( - new api.ODWorker("openticket:error-no-permissions-limits",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-no-permissions-limits")) + messages.get("opendiscord:error-no-permissions-limits").workers.add( + new api.ODWorker("opendiscord:error-no-permissions-limits",0,async (instance,params,source) => { const {guild,channel,user,limit} = params - instance.addEmbed(await embeds.getSafe("openticket:error-no-permissions-limits").build(source,{guild,channel,user,limit})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild,channel,user,limit})) instance.setEphemeral(true) }) ) //ERROR RESPONDER TIMEOUT - messages.add(new api.ODMessage("openticket:error-responder-timeout")) - messages.get("openticket:error-responder-timeout").workers.add( - new api.ODWorker("openticket:error-responder-timeout",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-responder-timeout")) + messages.get("opendiscord:error-responder-timeout").workers.add( + new api.ODWorker("opendiscord:error-responder-timeout",0,async (instance,params,source) => { const {guild,channel,user} = params - instance.addEmbed(await embeds.getSafe("openticket:error-responder-timeout").build(source,{guild,channel,user})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-responder-timeout").build(source,{guild,channel,user})) instance.setEphemeral(true) }) ) //ERROR TICKET UNKNOWN - messages.add(new api.ODMessage("openticket:error-ticket-unknown")) - messages.get("openticket:error-ticket-unknown").workers.add( - new api.ODWorker("openticket:error-ticket-unknown",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-ticket-unknown")) + messages.get("opendiscord:error-ticket-unknown").workers.add( + new api.ODWorker("opendiscord:error-ticket-unknown",0,async (instance,params,source) => { const {guild,channel,user} = params - instance.addEmbed(await embeds.getSafe("openticket:error-ticket-unknown").build(source,{guild,channel,user})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-ticket-unknown").build(source,{guild,channel,user})) instance.setEphemeral(true) }) ) //ERROR TICKET DEPRECATED - messages.add(new api.ODMessage("openticket:error-ticket-deprecated")) - messages.get("openticket:error-ticket-deprecated").workers.add( - new api.ODWorker("openticket:error-ticket-deprecated",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-ticket-deprecated")) + messages.get("opendiscord:error-ticket-deprecated").workers.add( + new api.ODWorker("opendiscord:error-ticket-deprecated",0,async (instance,params,source) => { const {guild,channel,user} = params - instance.addEmbed(await embeds.getSafe("openticket:error-ticket-deprecated").build(source,{guild,channel,user})) - instance.addComponent(await buttons.getSafe("openticket:error-ticket-deprecated-transcript").build(source,{})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-ticket-deprecated").build(source,{guild,channel,user})) + instance.addComponent(await buttons.getSafe("opendiscord:error-ticket-deprecated-transcript").build(source,{})) instance.setEphemeral(true) }) ) //ERROR OPTION UNKNOWN - messages.add(new api.ODMessage("openticket:error-option-unknown")) - messages.get("openticket:error-option-unknown").workers.add( - new api.ODWorker("openticket:error-option-unknown",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-option-unknown")) + messages.get("opendiscord:error-option-unknown").workers.add( + new api.ODWorker("opendiscord:error-option-unknown",0,async (instance,params,source) => { const {guild,channel,user} = params - instance.addEmbed(await embeds.getSafe("openticket:error-option-unknown").build(source,{guild,channel,user})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-option-unknown").build(source,{guild,channel,user})) instance.setEphemeral(true) }) ) //ERROR PANEL UNKNOWN - messages.add(new api.ODMessage("openticket:error-panel-unknown")) - messages.get("openticket:error-panel-unknown").workers.add( - new api.ODWorker("openticket:error-panel-unknown",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-panel-unknown")) + messages.get("opendiscord:error-panel-unknown").workers.add( + new api.ODWorker("opendiscord:error-panel-unknown",0,async (instance,params,source) => { const {guild,channel,user} = params - instance.addEmbed(await embeds.getSafe("openticket:error-panel-unknown").build(source,{guild,channel,user})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-panel-unknown").build(source,{guild,channel,user})) instance.setEphemeral(true) }) ) //ERROR NOD IN GUILD - messages.add(new api.ODMessage("openticket:error-not-in-guild")) - messages.get("openticket:error-not-in-guild").workers.add( - new api.ODWorker("openticket:error-not-in-guild",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-not-in-guild")) + messages.get("opendiscord:error-not-in-guild").workers.add( + new api.ODWorker("opendiscord:error-not-in-guild",0,async (instance,params,source) => { const {channel,user} = params - instance.addEmbed(await embeds.getSafe("openticket:error-not-in-guild").build(source,{channel,user})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-not-in-guild").build(source,{channel,user})) instance.setEphemeral(true) }) ) //ERROR CHANNEL RENAME - messages.add(new api.ODMessage("openticket:error-channel-rename")) - messages.get("openticket:error-channel-rename").workers.add( - new api.ODWorker("openticket:error-channel-rename",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-channel-rename")) + messages.get("opendiscord:error-channel-rename").workers.add( + new api.ODWorker("opendiscord:error-channel-rename",0,async (instance,params,source) => { const {guild,channel,user,originalName,newName} = params - instance.addEmbed(await embeds.getSafe("openticket:error-channel-rename").build(source,{guild,channel,user,originalName,newName})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-channel-rename").build(source,{guild,channel,user,originalName,newName})) instance.setEphemeral(true) }) ) //ERROR TICKET BUSY - messages.add(new api.ODMessage("openticket:error-ticket-busy")) - messages.get("openticket:error-ticket-busy").workers.add( - new api.ODWorker("openticket:error-ticket-busy",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:error-ticket-busy")) + messages.get("opendiscord:error-ticket-busy").workers.add( + new api.ODWorker("opendiscord:error-ticket-busy",0,async (instance,params,source) => { const {guild,channel,user} = params - instance.addEmbed(await embeds.getSafe("openticket:error-ticket-busy").build(source,{guild,channel,user})) + instance.addEmbed(await embeds.getSafe("opendiscord:error-ticket-busy").build(source,{guild,channel,user})) instance.setEphemeral(true) }) ) @@ -492,69 +492,69 @@ const errorMessages = () => { const helpMenuMessages = () => { //HELP MENU - messages.add(new api.ODMessage("openticket:help-menu")) - messages.get("openticket:help-menu").workers.add( - new api.ODWorker("openticket:help-menu",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:help-menu")) + messages.get("opendiscord:help-menu").workers.add( + new api.ODWorker("opendiscord:help-menu",0,async (instance,params,source) => { const {mode,page} = params const totalPages = (await opendiscord.helpmenu.render(mode)).length - const embed = await embeds.getSafe("openticket:help-menu").build(source,{mode,page}) + const embed = await embeds.getSafe("opendiscord:help-menu").build(source,{mode,page}) instance.addEmbed(embed) if (totalPages > 1){ //when more than 1 page - instance.addComponent(await buttons.getSafe("openticket:help-menu-previous").build(source,{mode,page})) - instance.addComponent(await buttons.getSafe("openticket:help-menu-page").build(source,{mode,page})) - instance.addComponent(await buttons.getSafe("openticket:help-menu-next").build(source,{mode,page})) - instance.addComponent(buttons.getNewLine("openticket:help-menu-divider")) + instance.addComponent(await buttons.getSafe("opendiscord:help-menu-previous").build(source,{mode,page})) + instance.addComponent(await buttons.getSafe("opendiscord:help-menu-page").build(source,{mode,page})) + instance.addComponent(await buttons.getSafe("opendiscord:help-menu-next").build(source,{mode,page})) + instance.addComponent(buttons.getNewLine("opendiscord:help-menu-divider")) } - if (generalConfig.data.textCommands && generalConfig.data.slashCommands) instance.addComponent(await buttons.get("openticket:help-menu-switch").build(source,{mode,page})) + if (generalConfig.data.textCommands && generalConfig.data.slashCommands) instance.addComponent(await buttons.get("opendiscord:help-menu-switch").build(source,{mode,page})) }) ) } const statsMessages = () => { //STATS GLOBAL - messages.add(new api.ODMessage("openticket:stats-global")) - messages.get("openticket:stats-global").workers.add( - new api.ODWorker("openticket:stats-global",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:stats-global")) + messages.get("opendiscord:stats-global").workers.add( + new api.ODWorker("opendiscord:stats-global",0,async (instance,params,source) => { const {guild,channel,user} = params - instance.addEmbed(await embeds.getSafe("openticket:stats-global").build(source,{guild,channel,user})) + instance.addEmbed(await embeds.getSafe("opendiscord:stats-global").build(source,{guild,channel,user})) }) ) //STATS TICKET - messages.add(new api.ODMessage("openticket:stats-ticket")) - messages.get("openticket:stats-ticket").workers.add( - new api.ODWorker("openticket:stats-ticket",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:stats-ticket")) + messages.get("opendiscord:stats-ticket").workers.add( + new api.ODWorker("opendiscord:stats-ticket",0,async (instance,params,source) => { const {guild,channel,user,scopeData} = params - instance.addEmbed(await embeds.getSafe("openticket:stats-ticket").build(source,{guild,channel,user,scopeData})) + instance.addEmbed(await embeds.getSafe("opendiscord:stats-ticket").build(source,{guild,channel,user,scopeData})) }) ) //STATS USER - messages.add(new api.ODMessage("openticket:stats-user")) - messages.get("openticket:stats-user").workers.add( - new api.ODWorker("openticket:stats-user",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:stats-user")) + messages.get("opendiscord:stats-user").workers.add( + new api.ODWorker("opendiscord:stats-user",0,async (instance,params,source) => { const {guild,channel,user,scopeData} = params - instance.addEmbed(await embeds.getSafe("openticket:stats-user").build(source,{guild,channel,user,scopeData})) + instance.addEmbed(await embeds.getSafe("opendiscord:stats-user").build(source,{guild,channel,user,scopeData})) }) ) //STATS RESET - messages.add(new api.ODMessage("openticket:stats-reset")) - messages.get("openticket:stats-reset").workers.add( - new api.ODWorker("openticket:stats-reset",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:stats-reset")) + messages.get("opendiscord:stats-reset").workers.add( + new api.ODWorker("opendiscord:stats-reset",0,async (instance,params,source) => { const {guild,channel,user,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:stats-reset").build(source,{guild,channel,user,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:stats-reset").build(source,{guild,channel,user,reason})) }) ) //STATS TICKET UNKNOWN - messages.add(new api.ODMessage("openticket:stats-ticket-unknown")) - messages.get("openticket:stats-ticket-unknown").workers.add( - new api.ODWorker("openticket:stats-ticket-unknown",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:stats-ticket-unknown")) + messages.get("opendiscord:stats-ticket-unknown").workers.add( + new api.ODWorker("opendiscord:stats-ticket-unknown",0,async (instance,params,source) => { const {guild,channel,user,id} = params - instance.addEmbed(await embeds.getSafe("openticket:stats-ticket-unknown").build(source,{guild,channel,user,id})) + instance.addEmbed(await embeds.getSafe("opendiscord:stats-ticket-unknown").build(source,{guild,channel,user,id})) instance.setEphemeral(true) }) ) @@ -562,14 +562,14 @@ const statsMessages = () => { const panelMessages = () => { //PANEL - messages.add(new api.ODMessage("openticket:panel")) - messages.get("openticket:panel").workers.add([ - new api.ODWorker("openticket:panel-layout",1,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:panel")) + messages.get("opendiscord:panel").workers.add([ + new api.ODWorker("opendiscord:panel-layout",1,async (instance,params,source) => { const {guild,channel,user,panel} = params //add text - const text = panel.get("openticket:text").value - if (panel.get("openticket:describe-options-in-text").value){ + const text = panel.get("opendiscord:text").value + if (panel.get("opendiscord:describe-options-in-text").value){ //describe options in text const describeText = (await import("../data/openticket/panelLoader.js")).describePanelOptions("text",panel) instance.setContent(text+"\n\n"+describeText) @@ -577,44 +577,44 @@ const panelMessages = () => { instance.setContent(text) } - if (panel.get("openticket:enable-max-tickets-warning-text").value && generalConfig.data.system.limits.enabled){ + if (panel.get("opendiscord:enable-max-tickets-warning-text").value && generalConfig.data.system.limits.enabled){ instance.setContent(instance.data.content+"\n\n*"+lang.getTranslationWithParams("actions.descriptions.ticketMessageLimit",[generalConfig.data.system.limits.userMaximum.toString()])+"*") } //add embed - const embedOptions = panel.get("openticket:embed").value - if (embedOptions.enabled) instance.addEmbed(await embeds.getSafe("openticket:panel").build(source,{guild,channel,user,panel})) + const embedOptions = panel.get("opendiscord:embed").value + if (embedOptions.enabled) instance.addEmbed(await embeds.getSafe("opendiscord:panel").build(source,{guild,channel,user,panel})) }), - new api.ODWorker("openticket:panel-components",0,async (instance,params,source) => { + new api.ODWorker("opendiscord:panel-components",0,async (instance,params,source) => { const {guild,channel,user,panel} = params const options: api.ODOption[] = [] - panel.get("openticket:options").value.forEach((id) => { + panel.get("opendiscord:options").value.forEach((id) => { const opt = opendiscord.options.get(id) if (opt) options.push(opt) }) - if (panel.get("openticket:dropdown").value){ + if (panel.get("opendiscord:dropdown").value){ //dropdown const ticketOptions: api.ODTicketOption[] = [] options.forEach((option) => { if (option instanceof api.ODTicketOption) ticketOptions.push(option) }) - instance.addComponent(await dropdowns.getSafe("openticket:panel-dropdown-tickets").build(source,{guild,channel,user,panel,options:ticketOptions})) + instance.addComponent(await dropdowns.getSafe("opendiscord:panel-dropdown-tickets").build(source,{guild,channel,user,panel,options:ticketOptions})) }else{ //buttons for (const option of options){ - if (option instanceof api.ODTicketOption) instance.addComponent(await buttons.getSafe("openticket:ticket-option").build(source,{guild,channel,user,panel,option})) - else if (option instanceof api.ODWebsiteOption) instance.addComponent(await buttons.getSafe("openticket:website-option").build(source,{guild,channel,user,panel,option})) - else if (option instanceof api.ODRoleOption) instance.addComponent(await buttons.getSafe("openticket:role-option").build(source,{guild,channel,user,panel,option})) + if (option instanceof api.ODTicketOption) instance.addComponent(await buttons.getSafe("opendiscord:ticket-option").build(source,{guild,channel,user,panel,option})) + else if (option instanceof api.ODWebsiteOption) instance.addComponent(await buttons.getSafe("opendiscord:website-option").build(source,{guild,channel,user,panel,option})) + else if (option instanceof api.ODRoleOption) instance.addComponent(await buttons.getSafe("opendiscord:role-option").build(source,{guild,channel,user,panel,option})) } } }) ]) //PANEL READY - messages.add(new api.ODMessage("openticket:panel-ready")) - messages.get("openticket:panel-ready").workers.add( - new api.ODWorker("openticket:panel-ready",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:panel-ready")) + messages.get("opendiscord:panel-ready").workers.add( + new api.ODWorker("opendiscord:panel-ready",0,async (instance,params,source) => { instance.setContent("## "+lang.getTranslation("actions.descriptions.panelReady")) instance.setEphemeral(true) }) @@ -623,56 +623,56 @@ const panelMessages = () => { const ticketMessages = () => { //TICKET CREATED - messages.add(new api.ODMessage("openticket:ticket-created")) - messages.get("openticket:ticket-created").workers.add( - new api.ODWorker("openticket:ticket-created",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:ticket-created")) + messages.get("opendiscord:ticket-created").workers.add( + new api.ODWorker("opendiscord:ticket-created",0,async (instance,params,source) => { const {guild,channel,user,ticket} = params - instance.addEmbed(await embeds.getSafe("openticket:ticket-created").build(source,{guild,channel,user,ticket})) - instance.addComponent(await buttons.getSafe("openticket:visit-ticket").build("ticket-created",{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:ticket-created").build(source,{guild,channel,user,ticket})) + instance.addComponent(await buttons.getSafe("opendiscord:visit-ticket").build("ticket-created",{guild,channel,user,ticket})) instance.setEphemeral(true) }) ) //TICKET CREATED DM - messages.add(new api.ODMessage("openticket:ticket-created-dm")) - messages.get("openticket:ticket-created-dm").workers.add( - new api.ODWorker("openticket:ticket-created-dm",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:ticket-created-dm")) + messages.get("opendiscord:ticket-created-dm").workers.add( + new api.ODWorker("opendiscord:ticket-created-dm",0,async (instance,params,source) => { const {guild,channel,user,ticket} = params //add text - const text = ticket.option.get("openticket:dm-message-text").value + const text = ticket.option.get("opendiscord:dm-message-text").value if (text !== "") instance.setContent(text) //add embed - if (ticket.option.get("openticket:dm-message-embed").value.enabled) instance.addEmbed(await embeds.getSafe("openticket:ticket-created-dm").build(source,{guild,channel,user,ticket})) + if (ticket.option.get("opendiscord:dm-message-embed").value.enabled) instance.addEmbed(await embeds.getSafe("opendiscord:ticket-created-dm").build(source,{guild,channel,user,ticket})) //add components - instance.addComponent(await buttons.getSafe("openticket:visit-ticket").build("ticket-created",{guild,channel,user,ticket})) + instance.addComponent(await buttons.getSafe("opendiscord:visit-ticket").build("ticket-created",{guild,channel,user,ticket})) }) ) //TICKET CREATED LOGS - messages.add(new api.ODMessage("openticket:ticket-created-logs")) - messages.get("openticket:ticket-created-logs").workers.add( - new api.ODWorker("openticket:ticket-created-logs",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:ticket-created-logs")) + messages.get("opendiscord:ticket-created-logs").workers.add( + new api.ODWorker("opendiscord:ticket-created-logs",0,async (instance,params,source) => { const {guild,channel,user,ticket} = params - instance.addEmbed(await embeds.getSafe("openticket:ticket-created-logs").build(source,{guild,channel,user,ticket})) - instance.addComponent(await buttons.getSafe("openticket:visit-ticket").build("ticket-created",{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:ticket-created-logs").build(source,{guild,channel,user,ticket})) + instance.addComponent(await buttons.getSafe("opendiscord:visit-ticket").build("ticket-created",{guild,channel,user,ticket})) }) ) //TICKET MESSAGE - messages.add(new api.ODMessage("openticket:ticket-message")) - messages.get("openticket:ticket-message").workers.add([ - new api.ODWorker("openticket:ticket-message-layout",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:ticket-message")) + messages.get("opendiscord:ticket-message").workers.add([ + new api.ODWorker("opendiscord:ticket-message-layout",0,async (instance,params,source) => { const {guild,channel,user,ticket} = params //add pings - const pingOptions = ticket.option.get("openticket:ticket-message-ping").value + const pingOptions = ticket.option.get("opendiscord:ticket-message-ping").value const pings: string[] = [] - const creator = ticket.get("openticket:opened-by").value + const creator = ticket.get("opendiscord:opened-by").value if (creator) pings.push(discord.userMention(creator)) if (pingOptions["@everyone"]) pings.push("@everyone") if (pingOptions["@here"]) pings.push("@here") @@ -680,46 +680,46 @@ const ticketMessages = () => { const pingText = (pings.length > 0) ? pings.join(" ")+"\n" : "" //add text - const text = ticket.option.get("openticket:ticket-message-text").value + const text = ticket.option.get("opendiscord:ticket-message-text").value if (text !== "") instance.setContent(pingText+text) else instance.setContent(pingText) //add embed - if (ticket.option.get("openticket:ticket-message-embed").value.enabled) instance.addEmbed(await embeds.getSafe("openticket:ticket-message").build(source,{guild,channel,user,ticket})) + if (ticket.option.get("opendiscord:ticket-message-embed").value.enabled) instance.addEmbed(await embeds.getSafe("opendiscord:ticket-message").build(source,{guild,channel,user,ticket})) }), - new api.ODWorker("openticket:ticket-message-components",1,async (instance,params,source) => { + new api.ODWorker("opendiscord:ticket-message-components",1,async (instance,params,source) => { const {guild,channel,user,ticket} = params //add components - if (generalConfig.data.system.enableTicketClaimButtons && !ticket.get("openticket:closed").value){ + if (generalConfig.data.system.enableTicketClaimButtons && !ticket.get("opendiscord:closed").value){ //enable ticket claiming - if (ticket.get("openticket:claimed").value){ - instance.addComponent(await buttons.getSafe("openticket:unclaim-ticket").build("ticket-message",{guild,channel,user,ticket})) + if (ticket.get("opendiscord:claimed").value){ + instance.addComponent(await buttons.getSafe("opendiscord:unclaim-ticket").build("ticket-message",{guild,channel,user,ticket})) }else{ - instance.addComponent(await buttons.getSafe("openticket:claim-ticket").build("ticket-message",{guild,channel,user,ticket})) + instance.addComponent(await buttons.getSafe("opendiscord:claim-ticket").build("ticket-message",{guild,channel,user,ticket})) } } - if (generalConfig.data.system.enableTicketPinButtons && !ticket.get("openticket:closed").value){ + if (generalConfig.data.system.enableTicketPinButtons && !ticket.get("opendiscord:closed").value){ //enable ticket pinning - if (ticket.get("openticket:pinned").value){ - instance.addComponent(await buttons.getSafe("openticket:unpin-ticket").build("ticket-message",{guild,channel,user,ticket})) + if (ticket.get("opendiscord:pinned").value){ + instance.addComponent(await buttons.getSafe("opendiscord:unpin-ticket").build("ticket-message",{guild,channel,user,ticket})) }else{ - instance.addComponent(await buttons.getSafe("openticket:pin-ticket").build("ticket-message",{guild,channel,user,ticket})) + instance.addComponent(await buttons.getSafe("opendiscord:pin-ticket").build("ticket-message",{guild,channel,user,ticket})) } } if (generalConfig.data.system.enableTicketCloseButtons){ //enable ticket closing - if (ticket.get("openticket:closed").value){ - instance.addComponent(await buttons.getSafe("openticket:reopen-ticket").build("ticket-message",{guild,channel,user,ticket})) + if (ticket.get("opendiscord:closed").value){ + instance.addComponent(await buttons.getSafe("opendiscord:reopen-ticket").build("ticket-message",{guild,channel,user,ticket})) }else{ - instance.addComponent(await buttons.getSafe("openticket:close-ticket").build("ticket-message",{guild,channel,user,ticket})) + instance.addComponent(await buttons.getSafe("opendiscord:close-ticket").build("ticket-message",{guild,channel,user,ticket})) } } //enable ticket deletion - if (generalConfig.data.system.enableTicketDeleteButtons) instance.addComponent(await buttons.getSafe("openticket:delete-ticket").build("ticket-message",{guild,channel,user,ticket})) + if (generalConfig.data.system.enableTicketDeleteButtons) instance.addComponent(await buttons.getSafe("opendiscord:delete-ticket").build("ticket-message",{guild,channel,user,ticket})) }), - new api.ODWorker("openticket:ticket-message-disable-components",2,async (instance,params,source) => { + new api.ODWorker("opendiscord:ticket-message-disable-components",2,async (instance,params,source) => { const {ticket} = params - if (ticket.get("openticket:for-deletion").value){ + if (ticket.get("opendiscord:for-deletion").value){ //disable all buttons when ticket is being prepared for deletion instance.data.components.forEach((component) => { if ((component.component instanceof discord.ButtonBuilder) || (component.component instanceof discord.BaseSelectMenuBuilder)){ @@ -731,236 +731,236 @@ const ticketMessages = () => { ]) //TICKET CLOSED - messages.add(new api.ODMessage("openticket:close-message")) - messages.get("openticket:close-message").workers.add( - new api.ODWorker("openticket:close-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:close-message")) + messages.get("opendiscord:close-message").workers.add( + new api.ODWorker("opendiscord:close-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:close-message").build(source,{guild,channel,user,ticket,reason})) - if (generalConfig.data.system.enableTicketCloseButtons) instance.addComponent(await buttons.getSafe("openticket:reopen-ticket").build("close-message",{guild,channel,user,ticket})) - if (generalConfig.data.system.enableTicketDeleteButtons) instance.addComponent(await buttons.getSafe("openticket:delete-ticket").build("close-message",{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:close-message").build(source,{guild,channel,user,ticket,reason})) + if (generalConfig.data.system.enableTicketCloseButtons) instance.addComponent(await buttons.getSafe("opendiscord:reopen-ticket").build("close-message",{guild,channel,user,ticket})) + if (generalConfig.data.system.enableTicketDeleteButtons) instance.addComponent(await buttons.getSafe("opendiscord:delete-ticket").build("close-message",{guild,channel,user,ticket})) }) ) //TICKET REOPENED - messages.add(new api.ODMessage("openticket:reopen-message")) - messages.get("openticket:reopen-message").workers.add( - new api.ODWorker("openticket:reopen-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:reopen-message")) + messages.get("opendiscord:reopen-message").workers.add( + new api.ODWorker("opendiscord:reopen-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:reopen-message").build(source,{guild,channel,user,ticket,reason})) - if (generalConfig.data.system.enableTicketCloseButtons) instance.addComponent(await buttons.getSafe("openticket:close-ticket").build("reopen-message",{guild,channel,user,ticket})) - if (generalConfig.data.system.enableTicketDeleteButtons) instance.addComponent(await buttons.getSafe("openticket:delete-ticket").build("reopen-message",{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:reopen-message").build(source,{guild,channel,user,ticket,reason})) + if (generalConfig.data.system.enableTicketCloseButtons) instance.addComponent(await buttons.getSafe("opendiscord:close-ticket").build("reopen-message",{guild,channel,user,ticket})) + if (generalConfig.data.system.enableTicketDeleteButtons) instance.addComponent(await buttons.getSafe("opendiscord:delete-ticket").build("reopen-message",{guild,channel,user,ticket})) }) ) //TICKET DELETED - messages.add(new api.ODMessage("openticket:delete-message")) - messages.get("openticket:delete-message").workers.add( - new api.ODWorker("openticket:delete-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:delete-message")) + messages.get("opendiscord:delete-message").workers.add( + new api.ODWorker("opendiscord:delete-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:delete-message").build(source,{guild,channel,user,ticket,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:delete-message").build(source,{guild,channel,user,ticket,reason})) }) ) //TICKET CLAIMED - messages.add(new api.ODMessage("openticket:claim-message")) - messages.get("openticket:claim-message").workers.add( - new api.ODWorker("openticket:claim-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:claim-message")) + messages.get("opendiscord:claim-message").workers.add( + new api.ODWorker("opendiscord:claim-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:claim-message").build(source,{guild,channel,user,ticket,reason})) - if (generalConfig.data.system.enableTicketClaimButtons) instance.addComponent(await buttons.getSafe("openticket:unclaim-ticket").build("claim-message",{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:claim-message").build(source,{guild,channel,user,ticket,reason})) + if (generalConfig.data.system.enableTicketClaimButtons) instance.addComponent(await buttons.getSafe("opendiscord:unclaim-ticket").build("claim-message",{guild,channel,user,ticket})) }) ) //TICKET UNCLAIMED - messages.add(new api.ODMessage("openticket:unclaim-message")) - messages.get("openticket:unclaim-message").workers.add( - new api.ODWorker("openticket:unclaim-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:unclaim-message")) + messages.get("opendiscord:unclaim-message").workers.add( + new api.ODWorker("opendiscord:unclaim-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:unclaim-message").build(source,{guild,channel,user,ticket,reason})) - if (generalConfig.data.system.enableTicketClaimButtons) instance.addComponent(await buttons.getSafe("openticket:claim-ticket").build("unclaim-message",{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:unclaim-message").build(source,{guild,channel,user,ticket,reason})) + if (generalConfig.data.system.enableTicketClaimButtons) instance.addComponent(await buttons.getSafe("opendiscord:claim-ticket").build("unclaim-message",{guild,channel,user,ticket})) }) ) //TICKET PINNED - messages.add(new api.ODMessage("openticket:pin-message")) - messages.get("openticket:pin-message").workers.add( - new api.ODWorker("openticket:pin-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:pin-message")) + messages.get("opendiscord:pin-message").workers.add( + new api.ODWorker("opendiscord:pin-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:pin-message").build(source,{guild,channel,user,ticket,reason})) - if (generalConfig.data.system.enableTicketPinButtons) instance.addComponent(await buttons.getSafe("openticket:unpin-ticket").build("pin-message",{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:pin-message").build(source,{guild,channel,user,ticket,reason})) + if (generalConfig.data.system.enableTicketPinButtons) instance.addComponent(await buttons.getSafe("opendiscord:unpin-ticket").build("pin-message",{guild,channel,user,ticket})) }) ) //TICKET UNPINNED - messages.add(new api.ODMessage("openticket:unpin-message")) - messages.get("openticket:unpin-message").workers.add( - new api.ODWorker("openticket:unpin-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:unpin-message")) + messages.get("opendiscord:unpin-message").workers.add( + new api.ODWorker("opendiscord:unpin-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:unpin-message").build(source,{guild,channel,user,ticket,reason})) - if (generalConfig.data.system.enableTicketPinButtons) instance.addComponent(await buttons.getSafe("openticket:pin-ticket").build("unpin-message",{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:unpin-message").build(source,{guild,channel,user,ticket,reason})) + if (generalConfig.data.system.enableTicketPinButtons) instance.addComponent(await buttons.getSafe("opendiscord:pin-ticket").build("unpin-message",{guild,channel,user,ticket})) }) ) //TICKET RENAMED - messages.add(new api.ODMessage("openticket:rename-message")) - messages.get("openticket:rename-message").workers.add( - new api.ODWorker("openticket:rename-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:rename-message")) + messages.get("opendiscord:rename-message").workers.add( + new api.ODWorker("opendiscord:rename-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason,data} = params - instance.addEmbed(await embeds.getSafe("openticket:rename-message").build(source,{guild,channel,user,ticket,reason,data})) + instance.addEmbed(await embeds.getSafe("opendiscord:rename-message").build(source,{guild,channel,user,ticket,reason,data})) }) ) //TICKET MOVED - messages.add(new api.ODMessage("openticket:move-message")) - messages.get("openticket:move-message").workers.add( - new api.ODWorker("openticket:move-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:move-message")) + messages.get("opendiscord:move-message").workers.add( + new api.ODWorker("opendiscord:move-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason,data} = params - instance.addEmbed(await embeds.getSafe("openticket:move-message").build(source,{guild,channel,user,ticket,reason,data})) + instance.addEmbed(await embeds.getSafe("opendiscord:move-message").build(source,{guild,channel,user,ticket,reason,data})) }) ) //TICKET USER ADDED - messages.add(new api.ODMessage("openticket:add-message")) - messages.get("openticket:add-message").workers.add( - new api.ODWorker("openticket:add-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:add-message")) + messages.get("opendiscord:add-message").workers.add( + new api.ODWorker("opendiscord:add-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason,data} = params - instance.addEmbed(await embeds.getSafe("openticket:add-message").build(source,{guild,channel,user,ticket,reason,data})) + instance.addEmbed(await embeds.getSafe("opendiscord:add-message").build(source,{guild,channel,user,ticket,reason,data})) }) ) //TICKET USER REMOVED - messages.add(new api.ODMessage("openticket:remove-message")) - messages.get("openticket:remove-message").workers.add( - new api.ODWorker("openticket:remove-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:remove-message")) + messages.get("opendiscord:remove-message").workers.add( + new api.ODWorker("opendiscord:remove-message",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason,data} = params - instance.addEmbed(await embeds.getSafe("openticket:remove-message").build(source,{guild,channel,user,ticket,reason,data})) + instance.addEmbed(await embeds.getSafe("opendiscord:remove-message").build(source,{guild,channel,user,ticket,reason,data})) }) ) //TICKET ACTION DM - messages.add(new api.ODMessage("openticket:ticket-action-dm")) - messages.get("openticket:ticket-action-dm").workers.add( - new api.ODWorker("openticket:ticket-action-dm",0,async (instance,params,source) => { + 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,source) => { const {guild,channel,user,mode,ticket,reason,additionalData} = params - instance.addEmbed(await embeds.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,mode,ticket,reason,additionalData})) + instance.addEmbed(await embeds.getSafe("opendiscord:ticket-action-dm").build(source,{guild,channel,user,mode,ticket,reason,additionalData})) }) ) //TICKET ACTION LOGS - messages.add(new api.ODMessage("openticket:ticket-action-logs")) - messages.get("openticket:ticket-action-logs").workers.add( - new api.ODWorker("openticket:ticket-action-logs",0,async (instance,params,source) => { + 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,source) => { const {guild,channel,user,mode,ticket,reason,additionalData} = params - instance.addEmbed(await embeds.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,mode,ticket,reason,additionalData})) + instance.addEmbed(await embeds.getSafe("opendiscord:ticket-action-logs").build(source,{guild,channel,user,mode,ticket,reason,additionalData})) }) ) } const blacklistMessages = () => { //BLACKLIST VIEW - messages.add(new api.ODMessage("openticket:blacklist-view")) - messages.get("openticket:blacklist-view").workers.add( - new api.ODWorker("openticket:blacklist-view",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:blacklist-view")) + messages.get("opendiscord:blacklist-view").workers.add( + new api.ODWorker("opendiscord:blacklist-view",0,async (instance,params,source) => { const {guild,channel,user} = params - instance.addEmbed(await embeds.getSafe("openticket:blacklist-view").build(source,{guild,channel,user})) + instance.addEmbed(await embeds.getSafe("opendiscord:blacklist-view").build(source,{guild,channel,user})) }) ) //BLACKLIST GET - messages.add(new api.ODMessage("openticket:blacklist-get")) - messages.get("openticket:blacklist-get").workers.add( - new api.ODWorker("openticket:blacklist-get",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:blacklist-get")) + messages.get("opendiscord:blacklist-get").workers.add( + new api.ODWorker("opendiscord:blacklist-get",0,async (instance,params,source) => { const {guild,channel,user,data} = params - instance.addEmbed(await embeds.getSafe("openticket:blacklist-get").build(source,{guild,channel,user,data})) + instance.addEmbed(await embeds.getSafe("opendiscord:blacklist-get").build(source,{guild,channel,user,data})) }) ) //BLACKLIST ADD - messages.add(new api.ODMessage("openticket:blacklist-add")) - messages.get("openticket:blacklist-add").workers.add( - new api.ODWorker("openticket:blacklist-add",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:blacklist-add")) + messages.get("opendiscord:blacklist-add").workers.add( + new api.ODWorker("opendiscord:blacklist-add",0,async (instance,params,source) => { const {guild,channel,user,data,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:blacklist-add").build(source,{guild,channel,user,data,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:blacklist-add").build(source,{guild,channel,user,data,reason})) }) ) //BLACKLIST REMOVE - messages.add(new api.ODMessage("openticket:blacklist-remove")) - messages.get("openticket:blacklist-remove").workers.add( - new api.ODWorker("openticket:blacklist-remove",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:blacklist-remove")) + messages.get("opendiscord:blacklist-remove").workers.add( + new api.ODWorker("opendiscord:blacklist-remove",0,async (instance,params,source) => { const {guild,channel,user,data,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:blacklist-remove").build(source,{guild,channel,user,data,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:blacklist-remove").build(source,{guild,channel,user,data,reason})) }) ) //BLACKLIST DM - messages.add(new api.ODMessage("openticket:blacklist-dm")) - messages.get("openticket:blacklist-dm").workers.add( - new api.ODWorker("openticket:blacklist-dm",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:blacklist-dm")) + messages.get("opendiscord:blacklist-dm").workers.add( + new api.ODWorker("opendiscord:blacklist-dm",0,async (instance,params,source) => { const {guild,channel,user,mode,data,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:blacklist-dm").build(source,{guild,channel,user,mode,data,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:blacklist-dm").build(source,{guild,channel,user,mode,data,reason})) }) ) //BLACKLIST LOGS - messages.add(new api.ODMessage("openticket:blacklist-logs")) - messages.get("openticket:blacklist-logs").workers.add( - new api.ODWorker("openticket:blacklist-logs",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:blacklist-logs")) + messages.get("opendiscord:blacklist-logs").workers.add( + new api.ODWorker("opendiscord:blacklist-logs",0,async (instance,params,source) => { const {guild,channel,user,mode,data,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:blacklist-logs").build(source,{guild,channel,user,mode,data,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:blacklist-logs").build(source,{guild,channel,user,mode,data,reason})) }) ) } const transcriptMessages = () => { //TRANSCRIPT TEXT READY - messages.add(new api.ODMessage("openticket:transcript-text-ready")) - messages.get("openticket:transcript-text-ready").workers.add( - new api.ODWorker("openticket:transcript-text-ready",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:transcript-text-ready")) + messages.get("opendiscord:transcript-text-ready").workers.add( + new api.ODWorker("opendiscord:transcript-text-ready",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler,result} = params - instance.addEmbed(await embeds.getSafe("openticket:transcript-text-ready").build(source,{guild,channel,user,ticket,compiler,result})) - instance.addFile(await files.getSafe("openticket:text-transcript").build(source,{guild,channel,user,ticket,compiler,result})) + instance.addEmbed(await embeds.getSafe("opendiscord:transcript-text-ready").build(source,{guild,channel,user,ticket,compiler,result})) + instance.addFile(await files.getSafe("opendiscord:text-transcript").build(source,{guild,channel,user,ticket,compiler,result})) }) ) //TRANSCRIPT HTML READY - messages.add(new api.ODMessage("openticket:transcript-html-ready")) - messages.get("openticket:transcript-html-ready").workers.add( - new api.ODWorker("openticket:transcript-html-ready",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:transcript-html-ready")) + messages.get("opendiscord:transcript-html-ready").workers.add( + new api.ODWorker("opendiscord:transcript-html-ready",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler,result} = params - instance.addEmbed(await embeds.getSafe("openticket:transcript-html-ready").build(source,{guild,channel,user,ticket,compiler,result})) - instance.addComponent(await buttons.getSafe("openticket:transcript-html-visit").build(source,{guild,channel,user,ticket,compiler,result})) + instance.addEmbed(await embeds.getSafe("opendiscord:transcript-html-ready").build(source,{guild,channel,user,ticket,compiler,result})) + instance.addComponent(await buttons.getSafe("opendiscord:transcript-html-visit").build(source,{guild,channel,user,ticket,compiler,result})) }) ) //TRANSCRIPT HTML PROGRESS - messages.add(new api.ODMessage("openticket:transcript-html-progress")) - messages.get("openticket:transcript-html-progress").workers.add( - new api.ODWorker("openticket:transcript-html-progress",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:transcript-html-progress")) + messages.get("opendiscord:transcript-html-progress").workers.add( + new api.ODWorker("opendiscord:transcript-html-progress",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler,remaining} = params - instance.addEmbed(await embeds.getSafe("openticket:transcript-html-progress").build(source,{guild,channel,user,ticket,compiler,remaining})) + instance.addEmbed(await embeds.getSafe("opendiscord:transcript-html-progress").build(source,{guild,channel,user,ticket,compiler,remaining})) }) ) //TRANSCRIPT ERROR - messages.add(new api.ODMessage("openticket:transcript-error")) - messages.get("openticket:transcript-error").workers.add( - new api.ODWorker("openticket:transcript-error",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:transcript-error")) + messages.get("opendiscord:transcript-error").workers.add( + new api.ODWorker("opendiscord:transcript-error",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:transcript-error").build(source,{guild,channel,user,ticket,compiler,reason})) - instance.addComponent(await buttons.getSafe("openticket:transcript-error-retry").build(source,{guild,channel,user,ticket,compiler,reason})) - instance.addComponent(await buttons.getSafe("openticket:transcript-error-continue").build(source,{guild,channel,user,ticket,compiler,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:transcript-error").build(source,{guild,channel,user,ticket,compiler,reason})) + instance.addComponent(await buttons.getSafe("opendiscord:transcript-error-retry").build(source,{guild,channel,user,ticket,compiler,reason})) + instance.addComponent(await buttons.getSafe("opendiscord:transcript-error-continue").build(source,{guild,channel,user,ticket,compiler,reason})) }) ) } const roleMessages = () => { //REACTION ROLE - messages.add(new api.ODMessage("openticket:reaction-role")) - messages.get("openticket:reaction-role").workers.add( - new api.ODWorker("openticket:reaction-role",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:reaction-role")) + messages.get("opendiscord:reaction-role").workers.add( + new api.ODWorker("opendiscord:reaction-role",0,async (instance,params,source) => { const {guild,user,role,result} = params - instance.addEmbed(await embeds.getSafe("openticket:reaction-role").build(source,{guild,user,role,result})) + instance.addEmbed(await embeds.getSafe("opendiscord:reaction-role").build(source,{guild,user,role,result})) instance.setEphemeral(true) }) ) @@ -968,90 +968,90 @@ const roleMessages = () => { const clearMessages = () => { //CLEAR VERIFY MESSAGE - messages.add(new api.ODMessage("openticket:clear-verify-message")) - messages.get("openticket:clear-verify-message").workers.add( - new api.ODWorker("openticket:clear-verify-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:clear-verify-message")) + messages.get("opendiscord:clear-verify-message").workers.add( + new api.ODWorker("opendiscord:clear-verify-message",0,async (instance,params,source) => { const {guild,channel,user,filter,list} = params - instance.addEmbed(await embeds.getSafe("openticket:clear-verify-message").build(source,{guild,channel,user,filter,list})) - instance.addComponent(await buttons.getSafe("openticket:clear-continue").build(source,{guild,channel,user,filter,list})) + instance.addEmbed(await embeds.getSafe("opendiscord:clear-verify-message").build(source,{guild,channel,user,filter,list})) + instance.addComponent(await buttons.getSafe("opendiscord:clear-continue").build(source,{guild,channel,user,filter,list})) instance.setEphemeral(true) }) ) //CLEAR MESSAGE - messages.add(new api.ODMessage("openticket:clear-message")) - messages.get("openticket:clear-message").workers.add( - new api.ODWorker("openticket:clear-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:clear-message")) + messages.get("opendiscord:clear-message").workers.add( + new api.ODWorker("opendiscord:clear-message",0,async (instance,params,source) => { const {guild,channel,user,filter,list} = params - instance.addEmbed(await embeds.getSafe("openticket:clear-message").build(source,{guild,channel,user,filter,list})) + instance.addEmbed(await embeds.getSafe("opendiscord:clear-message").build(source,{guild,channel,user,filter,list})) instance.setEphemeral(true) }) ) //CLEAR LOGS - messages.add(new api.ODMessage("openticket:clear-logs")) - messages.get("openticket:clear-logs").workers.add( - new api.ODWorker("openticket:clear-logs",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:clear-logs")) + messages.get("opendiscord:clear-logs").workers.add( + new api.ODWorker("opendiscord:clear-logs",0,async (instance,params,source) => { const {guild,channel,user,filter,list} = params - instance.addEmbed(await embeds.getSafe("openticket:clear-logs").build(source,{guild,channel,user,filter,list})) + instance.addEmbed(await embeds.getSafe("opendiscord:clear-logs").build(source,{guild,channel,user,filter,list})) }) ) } const autoMessages = () => { //AUTOCLOSE MESSAGE - messages.add(new api.ODMessage("openticket:autoclose-message")) - messages.get("openticket:autoclose-message").workers.add( - new api.ODWorker("openticket:autoclose-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:autoclose-message")) + messages.get("opendiscord:autoclose-message").workers.add( + new api.ODWorker("opendiscord:autoclose-message",0,async (instance,params,source) => { const {guild,channel,user,ticket} = params - instance.addEmbed(await embeds.getSafe("openticket:autoclose-message").build(source,{guild,channel,user,ticket})) - if (generalConfig.data.system.enableTicketCloseButtons) instance.addComponent(await buttons.getSafe("openticket:reopen-ticket").build("autoclose-message",{guild,channel,user,ticket})) - if (generalConfig.data.system.enableTicketDeleteButtons) instance.addComponent(await buttons.getSafe("openticket:delete-ticket").build("autoclose-message",{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:autoclose-message").build(source,{guild,channel,user,ticket})) + if (generalConfig.data.system.enableTicketCloseButtons) instance.addComponent(await buttons.getSafe("opendiscord:reopen-ticket").build("autoclose-message",{guild,channel,user,ticket})) + if (generalConfig.data.system.enableTicketDeleteButtons) instance.addComponent(await buttons.getSafe("opendiscord:delete-ticket").build("autoclose-message",{guild,channel,user,ticket})) }) ) //AUTODELETE MESSAGE - messages.add(new api.ODMessage("openticket:autodelete-message")) - messages.get("openticket:autodelete-message").workers.add( - new api.ODWorker("openticket:autodelete-message",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:autodelete-message")) + messages.get("opendiscord:autodelete-message").workers.add( + new api.ODWorker("opendiscord:autodelete-message",0,async (instance,params,source) => { const {guild,channel,user,ticket} = params - instance.addEmbed(await embeds.getSafe("openticket:autodelete-message").build(source,{guild,channel,user,ticket})) + instance.addEmbed(await embeds.getSafe("opendiscord:autodelete-message").build(source,{guild,channel,user,ticket})) }) ) //AUTOCLOSE ENABLE - messages.add(new api.ODMessage("openticket:autoclose-enable")) - messages.get("openticket:autoclose-enable").workers.add( - new api.ODWorker("openticket:autoclose-enable",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:autoclose-enable")) + messages.get("opendiscord:autoclose-enable").workers.add( + new api.ODWorker("opendiscord:autoclose-enable",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason,time} = params - instance.addEmbed(await embeds.getSafe("openticket:autoclose-enable").build(source,{guild,channel,user,ticket,reason,time})) + instance.addEmbed(await embeds.getSafe("opendiscord:autoclose-enable").build(source,{guild,channel,user,ticket,reason,time})) }) ) //AUTODELETE ENABLE - messages.add(new api.ODMessage("openticket:autodelete-enable")) - messages.get("openticket:autodelete-enable").workers.add( - new api.ODWorker("openticket:autodelete-enable",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:autodelete-enable")) + messages.get("opendiscord:autodelete-enable").workers.add( + new api.ODWorker("opendiscord:autodelete-enable",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason,time} = params - instance.addEmbed(await embeds.getSafe("openticket:autodelete-enable").build(source,{guild,channel,user,ticket,reason,time})) + instance.addEmbed(await embeds.getSafe("opendiscord:autodelete-enable").build(source,{guild,channel,user,ticket,reason,time})) }) ) //AUTOCLOSE DISABLE - messages.add(new api.ODMessage("openticket:autoclose-disable")) - messages.get("openticket:autoclose-disable").workers.add( - new api.ODWorker("openticket:autoclose-disable",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:autoclose-disable")) + messages.get("opendiscord:autoclose-disable").workers.add( + new api.ODWorker("opendiscord:autoclose-disable",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:autoclose-disable").build(source,{guild,channel,user,ticket,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:autoclose-disable").build(source,{guild,channel,user,ticket,reason})) }) ) //AUTODELETE DISABLE - messages.add(new api.ODMessage("openticket:autodelete-disable")) - messages.get("openticket:autodelete-disable").workers.add( - new api.ODWorker("openticket:autodelete-disable",0,async (instance,params,source) => { + messages.add(new api.ODMessage("opendiscord:autodelete-disable")) + messages.get("opendiscord:autodelete-disable").workers.add( + new api.ODWorker("opendiscord:autodelete-disable",0,async (instance,params,source) => { const {guild,channel,user,ticket,reason} = params - instance.addEmbed(await embeds.getSafe("openticket:autodelete-disable").build(source,{guild,channel,user,ticket,reason})) + instance.addEmbed(await embeds.getSafe("opendiscord:autodelete-disable").build(source,{guild,channel,user,ticket,reason})) }) ) } \ No newline at end of file diff --git a/src/builders/modals.ts b/src/builders/modals.ts index fef8aa0..df7d222 100644 --- a/src/builders/modals.ts +++ b/src/builders/modals.ts @@ -12,43 +12,43 @@ export const registerAllModals = async () => { } const ticketModals = () => { //TICKET QUESTIONS - modals.add(new api.ODModal("openticket:ticket-questions")) - modals.get("openticket:ticket-questions").workers.add( - new api.ODWorker("openticket:ticket-questions",0,async (instance,params,source) => { + modals.add(new api.ODModal("opendiscord:ticket-questions")) + modals.get("opendiscord:ticket-questions").workers.add( + new api.ODWorker("opendiscord:ticket-questions",0,async (instance,params,source) => { const {option} = params instance.setCustomId("od:ticket-questions_"+option.id.value+"_"+source) - instance.setTitle(option.exists("openticket:name") ? option.get("openticket:name").value : option.id.value) - const questionIds = option.get("openticket:questions").value + instance.setTitle(option.exists("opendiscord:name") ? option.get("opendiscord:name").value : option.id.value) + const questionIds = option.get("opendiscord:questions").value questionIds.forEach((id) => { const question = opendiscord.questions.get(id) if (!question) return if (question instanceof api.ODShortQuestion) instance.addQuestion({ customId:question.id.value, - label:question.get("openticket:name").value, + label:question.get("opendiscord:name").value, style:"short", - required:question.get("openticket:required").value, - placeholder:(question.get("openticket:placeholder").value) ? question.get("openticket:placeholder").value : undefined, - minLength:(question.get("openticket:length-enabled").value) ? question.get("openticket:length-min").value : undefined, - maxLength:(question.get("openticket:length-enabled").value) ? question.get("openticket:length-max").value : undefined + required:question.get("opendiscord:required").value, + placeholder:(question.get("opendiscord:placeholder").value) ? question.get("opendiscord:placeholder").value : undefined, + minLength:(question.get("opendiscord:length-enabled").value) ? question.get("opendiscord:length-min").value : undefined, + maxLength:(question.get("opendiscord:length-enabled").value) ? question.get("opendiscord:length-max").value : undefined }) else if (question instanceof api.ODParagraphQuestion) instance.addQuestion({ customId:question.id.value, - label:question.get("openticket:name").value, + label:question.get("opendiscord:name").value, style:"paragraph", - required:question.get("openticket:required").value, - placeholder:(question.get("openticket:placeholder").value) ? question.get("openticket:placeholder").value : undefined, - minLength:(question.get("openticket:length-enabled").value) ? question.get("openticket:length-min").value : undefined, - maxLength:(question.get("openticket:length-enabled").value) ? question.get("openticket:length-max").value : undefined + required:question.get("opendiscord:required").value, + placeholder:(question.get("opendiscord:placeholder").value) ? question.get("opendiscord:placeholder").value : undefined, + minLength:(question.get("opendiscord:length-enabled").value) ? question.get("opendiscord:length-min").value : undefined, + maxLength:(question.get("opendiscord:length-enabled").value) ? question.get("opendiscord:length-max").value : undefined }) }) }) ) //CLOSE TICKET REASON - modals.add(new api.ODModal("openticket:close-ticket-reason")) - modals.get("openticket:close-ticket-reason").workers.add( - new api.ODWorker("openticket:close-ticket-reason",0,async (instance,params,source) => { + modals.add(new api.ODModal("opendiscord:close-ticket-reason")) + modals.get("opendiscord:close-ticket-reason").workers.add( + new api.ODWorker("opendiscord:close-ticket-reason",0,async (instance,params,source) => { const {ticket} = params instance.setCustomId("od:close-ticket-reason_"+ticket.id.value+"_"+source) @@ -64,9 +64,9 @@ const ticketModals = () => { ) //REOPEN TICKET REASON - modals.add(new api.ODModal("openticket:reopen-ticket-reason")) - modals.get("openticket:reopen-ticket-reason").workers.add( - new api.ODWorker("openticket:reopen-ticket-reason",0,async (instance,params,source) => { + modals.add(new api.ODModal("opendiscord:reopen-ticket-reason")) + modals.get("opendiscord:reopen-ticket-reason").workers.add( + new api.ODWorker("opendiscord:reopen-ticket-reason",0,async (instance,params,source) => { const {ticket} = params instance.setCustomId("od:reopen-ticket-reason_"+ticket.id.value+"_"+source) @@ -82,9 +82,9 @@ const ticketModals = () => { ) //DELETE TICKET REASON - modals.add(new api.ODModal("openticket:delete-ticket-reason")) - modals.get("openticket:delete-ticket-reason").workers.add( - new api.ODWorker("openticket:delete-ticket-reason",0,async (instance,params,source) => { + modals.add(new api.ODModal("opendiscord:delete-ticket-reason")) + modals.get("opendiscord:delete-ticket-reason").workers.add( + new api.ODWorker("opendiscord:delete-ticket-reason",0,async (instance,params,source) => { const {ticket} = params instance.setCustomId("od:delete-ticket-reason_"+ticket.id.value+"_"+source) @@ -100,9 +100,9 @@ const ticketModals = () => { ) //CLAIM TICKET REASON - modals.add(new api.ODModal("openticket:claim-ticket-reason")) - modals.get("openticket:claim-ticket-reason").workers.add( - new api.ODWorker("openticket:claim-ticket-reason",0,async (instance,params,source) => { + modals.add(new api.ODModal("opendiscord:claim-ticket-reason")) + modals.get("opendiscord:claim-ticket-reason").workers.add( + new api.ODWorker("opendiscord:claim-ticket-reason",0,async (instance,params,source) => { const {ticket} = params instance.setCustomId("od:claim-ticket-reason_"+ticket.id.value+"_"+source) @@ -118,9 +118,9 @@ const ticketModals = () => { ) //UNCLAIM TICKET REASON - modals.add(new api.ODModal("openticket:unclaim-ticket-reason")) - modals.get("openticket:unclaim-ticket-reason").workers.add( - new api.ODWorker("openticket:unclaim-ticket-reason",0,async (instance,params,source) => { + modals.add(new api.ODModal("opendiscord:unclaim-ticket-reason")) + modals.get("opendiscord:unclaim-ticket-reason").workers.add( + new api.ODWorker("opendiscord:unclaim-ticket-reason",0,async (instance,params,source) => { const {ticket} = params instance.setCustomId("od:unclaim-ticket-reason_"+ticket.id.value+"_"+source) @@ -136,9 +136,9 @@ const ticketModals = () => { ) //PIN TICKET REASON - modals.add(new api.ODModal("openticket:pin-ticket-reason")) - modals.get("openticket:pin-ticket-reason").workers.add( - new api.ODWorker("openticket:pin-ticket-reason",0,async (instance,params,source) => { + modals.add(new api.ODModal("opendiscord:pin-ticket-reason")) + modals.get("opendiscord:pin-ticket-reason").workers.add( + new api.ODWorker("opendiscord:pin-ticket-reason",0,async (instance,params,source) => { const {ticket} = params instance.setCustomId("od:pin-ticket-reason_"+ticket.id.value+"_"+source) @@ -154,9 +154,9 @@ const ticketModals = () => { ) //UNPIN TICKET REASON - modals.add(new api.ODModal("openticket:unpin-ticket-reason")) - modals.get("openticket:unpin-ticket-reason").workers.add( - new api.ODWorker("openticket:unpin-ticket-reason",0,async (instance,params,source) => { + modals.add(new api.ODModal("opendiscord:unpin-ticket-reason")) + modals.get("opendiscord:unpin-ticket-reason").workers.add( + new api.ODWorker("opendiscord:unpin-ticket-reason",0,async (instance,params,source) => { const {ticket} = params instance.setCustomId("od:unpin-ticket-reason_"+ticket.id.value+"_"+source) diff --git a/src/commands/add.ts b/src/commands/add.ts index 73cb34b..ab68104 100644 --- a/src/commands/add.ts +++ b/src/commands/add.ts @@ -4,59 +4,59 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //ADD COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:add",generalConfig.data.prefix,"add")) - opendiscord.responders.commands.get("openticket:add").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:add",generalConfig.data.prefix,"add")) + opendiscord.responders.commands.get("opendiscord:add").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.add if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:add",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:add",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -66,16 +66,16 @@ export const registerCommandResponders = async () => { //return when user already added to ticket const participants = await opendiscord.tickets.getAllTicketParticipants(ticket) if (!participants || participants.find((p) => p.user.id == data.id)){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.add"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.add"),layout:"simple"})) return cancel() } //start adding user to ticket await instance.defer(false) - await opendiscord.actions.get("openticket:add-ticket-user").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data}) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:add-message").build(source,{guild,channel,user,ticket,reason,data})) + await opendiscord.actions.get("opendiscord:add-ticket-user").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:add-message").build(source,{guild,channel,user,ticket,reason,data})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'add' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, diff --git a/src/commands/autoclose.ts b/src/commands/autoclose.ts index 3a38a93..6200479 100644 --- a/src/commands/autoclose.ts +++ b/src/commands/autoclose.ts @@ -4,65 +4,65 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //AUTOCLOSE COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:autoclose",generalConfig.data.prefix,/^autoclose/)) - opendiscord.responders.commands.get("openticket:autoclose").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:autoclose",generalConfig.data.prefix,/^autoclose/)) + opendiscord.responders.commands.get("opendiscord:autoclose").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.autoclose if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:autoclose",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:autoclose",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return } //return when already closed - if (ticket.get("openticket:closed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) + if (ticket.get("opendiscord:closed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -71,23 +71,23 @@ export const registerCommandResponders = async () => { if (scope == "disable"){ const reason = instance.options.getString("reason",false) - ticket.get("openticket:autoclose-enabled").value = false - ticket.get("openticket:autoclose-hours").value = 0 - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:autoclose-disable").build(source,{guild,channel,user,ticket,reason})) + ticket.get("opendiscord:autoclose-enabled").value = false + ticket.get("opendiscord:autoclose-hours").value = 0 + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:autoclose-disable").build(source,{guild,channel,user,ticket,reason})) }else if (scope == "enable"){ const time = instance.options.getNumber("time",true) const reason = instance.options.getString("reason",false) - ticket.get("openticket:autoclose-enabled").value = true - ticket.get("openticket:autoclose-hours").value = time - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:autoclose-enable").build(source,{guild,channel,user,ticket,reason,time})) + ticket.get("opendiscord:autoclose-enabled").value = true + ticket.get("opendiscord:autoclose-hours").value = time + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:autoclose-enable").build(source,{guild,channel,user,ticket,reason,time})) } //update ticket message const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on autoclose "+scope+"!","error",[ {key:"channel",value:"#"+channel.name}, @@ -99,7 +99,7 @@ export const registerCommandResponders = async () => { } } }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { const scope = instance.options.getSubCommand() const reason = instance.options.getString("reason",false) opendiscord.log(instance.user.displayName+" used the 'autoclose "+scope+"' command!","info",[ diff --git a/src/commands/autodelete.ts b/src/commands/autodelete.ts index 939a94a..acf4941 100644 --- a/src/commands/autodelete.ts +++ b/src/commands/autodelete.ts @@ -4,60 +4,60 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //AUTODELETE COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:autodelete",generalConfig.data.prefix,/^autodelete/)) - opendiscord.responders.commands.get("openticket:autodelete").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:autodelete",generalConfig.data.prefix,/^autodelete/)) + opendiscord.responders.commands.get("opendiscord:autodelete").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.autodelete if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:autodelete",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:autodelete",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -66,23 +66,23 @@ export const registerCommandResponders = async () => { if (scope == "disable"){ const reason = instance.options.getString("reason",false) - ticket.get("openticket:autodelete-enabled").value = false - ticket.get("openticket:autodelete-days").value = 0 - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:autodelete-disable").build(source,{guild,channel,user,ticket,reason})) + ticket.get("opendiscord:autodelete-enabled").value = false + ticket.get("opendiscord:autodelete-days").value = 0 + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:autodelete-disable").build(source,{guild,channel,user,ticket,reason})) }else if (scope == "enable"){ const time = instance.options.getNumber("time",true) const reason = instance.options.getString("reason",false) - ticket.get("openticket:autodelete-enabled").value = true - ticket.get("openticket:autodelete-days").value = time - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:autodelete-enable").build(source,{guild,channel,user,ticket,reason,time})) + ticket.get("opendiscord:autodelete-enabled").value = true + ticket.get("opendiscord:autodelete-days").value = time + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:autodelete-enable").build(source,{guild,channel,user,ticket,reason,time})) } //update ticket message const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ opendiscord.log("Unable to edit ticket message on autodelete "+scope+"!","error",[ {key:"channel",value:"#"+channel.name}, @@ -94,7 +94,7 @@ export const registerCommandResponders = async () => { } } }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { const scope = instance.options.getSubCommand() const reason = instance.options.getString("reason",false) opendiscord.log(instance.user.displayName+" used the 'autodelete "+scope+"' command!","info",[ diff --git a/src/commands/blacklist.ts b/src/commands/blacklist.ts index 5f50105..b33c3fe 100644 --- a/src/commands/blacklist.ts +++ b/src/commands/blacklist.ts @@ -4,61 +4,61 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //BLACKLIST COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:blacklist",generalConfig.data.prefix,/^blacklist/)) - opendiscord.responders.commands.get("openticket:blacklist").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:blacklist",generalConfig.data.prefix,/^blacklist/)) + opendiscord.responders.commands.get("opendiscord:blacklist").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.blacklist if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:blacklist",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:blacklist",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } const scope = instance.options.getSubCommand() if (!scope || (scope != "add" && scope != "get" && scope != "remove" && scope != "view")) return if (scope == "view"){ - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:blacklist-view").build(source,{guild,channel,user})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:blacklist-view").build(source,{guild,channel,user})) }else if (scope == "get"){ const data = instance.options.getUser("user",true) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:blacklist-get").build(source,{guild,channel,user,data})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:blacklist-get").build(source,{guild,channel,user,data})) }else if (scope == "add"){ const data = instance.options.getUser("user",true) @@ -74,10 +74,10 @@ export const registerCommandResponders = async () => { ]) //manage stats - await opendiscord.stats.get("openticket:global").setStat("openticket:users-blacklisted",1,"increase") - await opendiscord.stats.get("openticket:user").setStat("openticket:users-blacklisted",user.id,1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:users-blacklisted",1,"increase") + await opendiscord.stats.get("opendiscord:user").setStat("opendiscord:users-blacklisted",user.id,1,"increase") - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:blacklist-add").build(source,{guild,channel,user,data,reason})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:blacklist-add").build(source,{guild,channel,user,data,reason})) }else if (scope == "remove"){ const data = instance.options.getUser("user",true) @@ -92,10 +92,10 @@ export const registerCommandResponders = async () => { {key:"reason",value:reason ?? "/"} ]) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:blacklist-remove").build(source,{guild,channel,user,data,reason})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:blacklist-remove").build(source,{guild,channel,user,data,reason})) } }), - new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:discord-logs",1,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild) return @@ -107,14 +107,14 @@ export const registerCommandResponders = async () => { //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.blacklisting.logs){ - const logChannel = opendiscord.posts.get("openticket:logs") - if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("openticket:blacklist-logs").build(source,{guild,channel,user,mode:scope,data,reason})) + const logChannel = opendiscord.posts.get("opendiscord:logs") + if (logChannel) logChannel.send(await opendiscord.builders.messages.getSafe("opendiscord:blacklist-logs").build(source,{guild,channel,user,mode:scope,data,reason})) } //to dm - if (generalConfig.data.system.messages.blacklisting.dm) await opendiscord.client.sendUserDm(user,await opendiscord.builders.messages.getSafe("openticket:blacklist-dm").build(source,{guild,channel,user,mode:scope,data,reason})) + if (generalConfig.data.system.messages.blacklisting.dm) await opendiscord.client.sendUserDm(user,await opendiscord.builders.messages.getSafe("opendiscord:blacklist-dm").build(source,{guild,channel,user,mode:scope,data,reason})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { const scope = instance.options.getSubCommand() opendiscord.log(instance.user.displayName+" used the 'blacklist "+scope+"' command!","info",[ {key:"user",value:instance.user.username}, diff --git a/src/commands/claim.ts b/src/commands/claim.ts index 1a4a236..50981e1 100644 --- a/src/commands/claim.ts +++ b/src/commands/claim.ts @@ -4,64 +4,64 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //CLAIM COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:claim",generalConfig.data.prefix,"claim")) - opendiscord.responders.commands.get("openticket:claim").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:claim",generalConfig.data.prefix,"claim")) + opendiscord.responders.commands.get("opendiscord:claim").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.claim if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:claim",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:claim",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already claimed - if (ticket.get("openticket:claimed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.claim"),layout:"simple"})) + if (ticket.get("opendiscord:claimed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.claim"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -70,10 +70,10 @@ export const registerCommandResponders = async () => { //start claiming ticket await instance.defer(false) - await opendiscord.actions.get("openticket:claim-ticket").run(source,{guild,channel,user:claimUser,ticket,reason,sendMessage:false}) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:claim-message").build(source,{guild,channel,user:claimUser,ticket,reason})) + await opendiscord.actions.get("opendiscord:claim-ticket").run(source,{guild,channel,user:claimUser,ticket,reason,sendMessage:false}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:claim-message").build(source,{guild,channel,user:claimUser,ticket,reason})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'claim' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, @@ -86,33 +86,33 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //CLAIM TICKET BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:claim-ticket",/^od:claim-ticket/)) - opendiscord.responders.buttons.get("openticket:claim-ticket").workers.add( - new api.ODWorker("openticket:claim-ticket",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:claim-ticket",/^od:claim-ticket/)) + opendiscord.responders.buttons.get("opendiscord:claim-ticket").workers.add( + new api.ODWorker("opendiscord:claim-ticket",0,async (instance,params,source,cancel) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "unclaim-message") return - if (originalSource == "ticket-message") await opendiscord.verifybars.get("openticket:claim-ticket-ticket-message").activate(instance) - else await opendiscord.verifybars.get("openticket:claim-ticket-unclaim-message").activate(instance) + if (originalSource == "ticket-message") await opendiscord.verifybars.get("opendiscord:claim-ticket-ticket-message").activate(instance) + else await opendiscord.verifybars.get("opendiscord:claim-ticket-unclaim-message").activate(instance) }) ) } export const registerModalResponders = async () => { //CLAIM WITH REASON MODAL RESPONDER - opendiscord.responders.modals.add(new api.ODModalResponder("openticket:claim-ticket-reason",/^od:claim-ticket-reason_/)) - opendiscord.responders.modals.get("openticket:claim-ticket-reason").workers.add([ - new api.ODWorker("openticket:claim-ticket-reason",0,async (instance,params,source,cancel) => { + opendiscord.responders.modals.add(new api.ODModalResponder("opendiscord:claim-ticket-reason",/^od:claim-ticket-reason_/)) + opendiscord.responders.modals.get("opendiscord:claim-ticket-reason").workers.add([ + new api.ODWorker("opendiscord:claim-ticket-reason",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return } @@ -122,15 +122,15 @@ export const registerModalResponders = async () => { //claim with reason if (originalSource == "ticket-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:claim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:claim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }else if (originalSource == "unclaim-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:claim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:claim-message").build("other",{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:claim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:claim-message").build("other",{guild,channel,user,ticket,reason})) }else if (originalSource == "other"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:claim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("opendiscord:claim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) diff --git a/src/commands/clear.ts b/src/commands/clear.ts index 4c415ed..8541903 100644 --- a/src/commands/clear.ts +++ b/src/commands/clear.ts @@ -4,50 +4,50 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //CLEAR COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:clear",generalConfig.data.prefix,"clear")) - opendiscord.responders.commands.get("openticket:clear").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:clear",generalConfig.data.prefix,"clear")) + opendiscord.responders.commands.get("opendiscord:clear").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.clear if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ //only allow global admins (ticket admins aren't allowed to clear tickets) if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild,{allowChannelUserScope:false,allowChannelRoleScope:false}))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:clear",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:clear",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } @@ -56,13 +56,13 @@ export const registerCommandResponders = async () => { const list: string[] = [] const ticketList = opendiscord.tickets.getAll().filter((ticket) => { if (filter == "all") return true - else if (filter == "open" && ticket.get("openticket:open").value) return true - else if (filter == "closed" && ticket.get("openticket:closed").value) return true - else if (filter == "claimed" && ticket.get("openticket:claimed").value) return true - else if (filter == "pinned" && ticket.get("openticket:pinned").value) return true - else if (filter == "unclaimed" && !ticket.get("openticket:claimed").value) return true - else if (filter == "unpinned" && !ticket.get("openticket:pinned").value) return true - else if (filter == "autoclosed" && ticket.get("openticket:closed").value) return true + else if (filter == "open" && ticket.get("opendiscord:open").value) return true + else if (filter == "closed" && ticket.get("opendiscord:closed").value) return true + else if (filter == "claimed" && ticket.get("opendiscord:claimed").value) return true + else if (filter == "pinned" && ticket.get("opendiscord:pinned").value) return true + else if (filter == "unclaimed" && !ticket.get("opendiscord:claimed").value) return true + else if (filter == "unpinned" && !ticket.get("opendiscord:pinned").value) return true + else if (filter == "autoclosed" && ticket.get("opendiscord:closed").value) return true else return false }) for (const ticket of ticketList){ @@ -72,9 +72,9 @@ export const registerCommandResponders = async () => { //reply with clear verify await instance.defer(true) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:clear-verify-message").build(source,{guild,channel,user,filter,list})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:clear-verify-message").build(source,{guild,channel,user,filter,list})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'clear' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, @@ -87,9 +87,9 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //CLEAR CONTINUE BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:clear-continue",/^od:clear-continue_/)) - opendiscord.responders.buttons.get("openticket:clear-continue").workers.add( - new api.ODWorker("openticket:clear-continue",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:clear-continue",/^od:clear-continue_/)) + opendiscord.responders.buttons.get("opendiscord:clear-continue").workers.add( + new api.ODWorker("opendiscord:clear-continue",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild || channel.isDMBased()) return const originalSource = instance.interaction.customId.split("_")[1] @@ -101,13 +101,13 @@ export const registerButtonResponders = async () => { const list: string[] = [] const ticketList = opendiscord.tickets.getAll().filter((ticket) => { if (filter == "all") return true - else if (filter == "open" && ticket.get("openticket:open").value) return true - else if (filter == "closed" && ticket.get("openticket:closed").value) return true - else if (filter == "claimed" && ticket.get("openticket:claimed").value) return true - else if (filter == "pinned" && ticket.get("openticket:pinned").value) return true - else if (filter == "unclaimed" && !ticket.get("openticket:claimed").value) return true - else if (filter == "unpinned" && !ticket.get("openticket:pinned").value) return true - else if (filter == "autoclosed" && ticket.get("openticket:closed").value) return true + else if (filter == "open" && ticket.get("opendiscord:open").value) return true + else if (filter == "closed" && ticket.get("opendiscord:closed").value) return true + else if (filter == "claimed" && ticket.get("opendiscord:claimed").value) return true + else if (filter == "pinned" && ticket.get("opendiscord:pinned").value) return true + else if (filter == "unclaimed" && !ticket.get("opendiscord:claimed").value) return true + else if (filter == "unpinned" && !ticket.get("opendiscord:pinned").value) return true + else if (filter == "autoclosed" && ticket.get("opendiscord:closed").value) return true else return false }) for (const ticket of ticketList){ @@ -115,8 +115,8 @@ export const registerButtonResponders = async () => { if (ticketChannel) list.push("#"+ticketChannel.name) } - await opendiscord.actions.get("openticket:clear-tickets").run(originalSource,{guild,channel,user,filter,list:ticketList}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:clear-message").build(originalSource,{guild,channel,user,filter,list})) + await opendiscord.actions.get("opendiscord:clear-tickets").run(originalSource,{guild,channel,user,filter,list:ticketList}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:clear-message").build(originalSource,{guild,channel,user,filter,list})) }) ) } \ No newline at end of file diff --git a/src/commands/close.ts b/src/commands/close.ts index 14a2cbd..75cc683 100644 --- a/src/commands/close.ts +++ b/src/commands/close.ts @@ -4,64 +4,64 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //CLOSE COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:close",generalConfig.data.prefix,"close")) - opendiscord.responders.commands.get("openticket:close").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:close",generalConfig.data.prefix,"close")) + opendiscord.responders.commands.get("opendiscord:close").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.close if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:close",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:close",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already closed - if (ticket.get("openticket:closed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) + if (ticket.get("opendiscord:closed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -69,10 +69,10 @@ export const registerCommandResponders = async () => { //start closing ticket await instance.defer(false) - await opendiscord.actions.get("openticket:close-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:close-message").build(source,{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:close-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:close-message").build(source,{guild,channel,user,ticket,reason})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'close' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, @@ -85,33 +85,33 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //CLOSE TICKET BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:close-ticket",/^od:close-ticket_/)) - opendiscord.responders.buttons.get("openticket:close-ticket").workers.add( - new api.ODWorker("openticket:close-ticket",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:close-ticket",/^od:close-ticket_/)) + opendiscord.responders.buttons.get("opendiscord:close-ticket").workers.add( + new api.ODWorker("opendiscord:close-ticket",0,async (instance,params,source,cancel) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "reopen-message") return - if (originalSource == "ticket-message") await opendiscord.verifybars.get("openticket:close-ticket-ticket-message").activate(instance) - else await opendiscord.verifybars.get("openticket:close-ticket-reopen-message").activate(instance) + if (originalSource == "ticket-message") await opendiscord.verifybars.get("opendiscord:close-ticket-ticket-message").activate(instance) + else await opendiscord.verifybars.get("opendiscord:close-ticket-reopen-message").activate(instance) }) ) } export const registerModalResponders = async () => { //CLOSE WITH REASON MODAL RESPONDER - opendiscord.responders.modals.add(new api.ODModalResponder("openticket:close-ticket-reason",/^od:close-ticket-reason_/)) - opendiscord.responders.modals.get("openticket:close-ticket-reason").workers.add([ - new api.ODWorker("openticket:close-ticket-reason",0,async (instance,params,source,cancel) => { + opendiscord.responders.modals.add(new api.ODModalResponder("opendiscord:close-ticket-reason",/^od:close-ticket-reason_/)) + opendiscord.responders.modals.get("opendiscord:close-ticket-reason").workers.add([ + new api.ODWorker("opendiscord:close-ticket-reason",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return } @@ -121,15 +121,15 @@ export const registerModalResponders = async () => { //close with reason if (originalSource == "ticket-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:close-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:close-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }else if (originalSource == "reopen-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:close-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:close-message").build("other",{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:close-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:close-message").build("other",{guild,channel,user,ticket,reason})) }else if (originalSource == "other"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:close-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("opendiscord:close-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) diff --git a/src/commands/delete.ts b/src/commands/delete.ts index d98d0a7..3a36efe 100644 --- a/src/commands/delete.ts +++ b/src/commands/delete.ts @@ -4,59 +4,59 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //DELETE COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:delete",generalConfig.data.prefix,"delete")) - opendiscord.responders.commands.get("openticket:delete").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:delete",generalConfig.data.prefix,"delete")) + opendiscord.responders.commands.get("opendiscord:delete").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:delete",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:delete",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -65,10 +65,10 @@ export const registerCommandResponders = async () => { //start deleting ticket await instance.defer(false) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:delete-message").build(source,{guild,channel,user,ticket,reason})) - await opendiscord.actions.get("openticket:delete-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:delete-message").build(source,{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:delete-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript}) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'delete' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, @@ -81,35 +81,35 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //DELETE TICKET BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:delete-ticket",/^od:delete-ticket/)) - opendiscord.responders.buttons.get("openticket:delete-ticket").workers.add( - new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:delete-ticket",/^od:delete-ticket/)) + opendiscord.responders.buttons.get("opendiscord:delete-ticket").workers.add( + new api.ODWorker("opendiscord:delete-ticket",0,async (instance,params,source,cancel) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "reopen-message" && originalSource != "close-message" && originalSource != "autoclose-message") return - if (originalSource == "ticket-message") await opendiscord.verifybars.get("openticket:delete-ticket-ticket-message").activate(instance) - else if (originalSource == "close-message") await opendiscord.verifybars.get("openticket:delete-ticket-close-message").activate(instance) - else if (originalSource == "reopen-message") await opendiscord.verifybars.get("openticket:delete-ticket-reopen-message").activate(instance) - else if (originalSource == "autoclose-message") await opendiscord.verifybars.get("openticket:delete-ticket-autoclose-message").activate(instance) + if (originalSource == "ticket-message") await opendiscord.verifybars.get("opendiscord:delete-ticket-ticket-message").activate(instance) + else if (originalSource == "close-message") await opendiscord.verifybars.get("opendiscord:delete-ticket-close-message").activate(instance) + else if (originalSource == "reopen-message") await opendiscord.verifybars.get("opendiscord:delete-ticket-reopen-message").activate(instance) + else if (originalSource == "autoclose-message") await opendiscord.verifybars.get("opendiscord:delete-ticket-autoclose-message").activate(instance) }) ) } export const registerModalResponders = async () => { //REOPEN WITH REASON MODAL RESPONDER - opendiscord.responders.modals.add(new api.ODModalResponder("openticket:delete-ticket-reason",/^od:delete-ticket-reason_/)) - opendiscord.responders.modals.get("openticket:delete-ticket-reason").workers.add([ - new api.ODWorker("openticket:delete-ticket-reason",0,async (instance,params,source,cancel) => { + opendiscord.responders.modals.add(new api.ODModalResponder("opendiscord:delete-ticket-reason",/^od:delete-ticket-reason_/)) + opendiscord.responders.modals.get("opendiscord:delete-ticket-reason").workers.add([ + new api.ODWorker("opendiscord:delete-ticket-reason",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return } @@ -120,29 +120,29 @@ export const registerModalResponders = async () => { if (originalSource == "ticket-message"){ await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true,withoutTranscript:false}) + opendiscord.actions.get("opendiscord:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true,withoutTranscript:false}) //update ticket (for ticket message) => no-await doesn't wait for the action to set this variable - ticket.get("openticket:for-deletion").value = true - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + ticket.get("opendiscord:for-deletion").value = true + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }else if (originalSource == "close-message"){ await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason})) + opendiscord.actions.get("opendiscord:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:delete-message").build("other",{guild,channel,user,ticket,reason})) }else if (originalSource == "reopen-message"){ await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason})) + opendiscord.actions.get("opendiscord:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:delete-message").build("other",{guild,channel,user,ticket,reason})) }else if (originalSource == "autoclose-message"){ await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason})) + opendiscord.actions.get("opendiscord:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:delete-message").build("other",{guild,channel,user,ticket,reason})) }else if (originalSource == "other"){ await instance.defer("update",false) //don't await DELETE action => else it will update the message after the channel has been deleted - opendiscord.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true,withoutTranscript:false}) + opendiscord.actions.get("opendiscord:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true,withoutTranscript:false}) } }) ]) diff --git a/src/commands/help.ts b/src/commands/help.ts index a23ab8c..3679785 100644 --- a/src/commands/help.ts +++ b/src/commands/help.ts @@ -4,46 +4,46 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //HELP COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:help",generalConfig.data.prefix,"help")) - opendiscord.responders.commands.get("openticket:help").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:help",generalConfig.data.prefix,"help")) + opendiscord.responders.commands.get("opendiscord:help").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.help if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:help",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:help",0,async (instance,params,source,cancel) => { const preferSlashOverText = generalConfig.data.system.preferSlashOverText let mode: "slash"|"text" @@ -53,9 +53,9 @@ export const registerCommandResponders = async () => { }else if (!generalConfig.data.slashCommands) mode = "text" else mode = "slash" - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:help-menu").build(source,{mode,page:0})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:help-menu").build(source,{mode,page:0})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'help' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, @@ -68,44 +68,44 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //HELP MENU SWITCH BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:help-menu-switch",/^od:help-menu-switch_(slash|text)/)) - opendiscord.responders.buttons.get("openticket:help-menu-switch").workers.add( - new api.ODWorker("openticket:update-help-menu",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:help-menu-switch",/^od:help-menu-switch_(slash|text)/)) + opendiscord.responders.buttons.get("opendiscord:help-menu-switch").workers.add( + new api.ODWorker("opendiscord:update-help-menu",0,async (instance,params,source,cancel) => { const mode = instance.interaction.customId.split("_")[1] as "slash"|"text" const pageButton = instance.getMessageComponent("button",/^od:help-menu-page_([0-9]+)/) const currentPage = (pageButton && pageButton.customId) ? Number(pageButton.customId.split("_")[1]) : 0 const newMode = (mode == "slash") ? "text" : "slash" - const msg = await opendiscord.builders.messages.getSafe("openticket:help-menu").build("button",{mode:newMode,page:currentPage}) + const msg = await opendiscord.builders.messages.getSafe("opendiscord:help-menu").build("button",{mode:newMode,page:currentPage}) await instance.update(msg) }) ) //HELP MENU PREVIOUS BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:help-menu-previous",/^od:help-menu-previous/)) - opendiscord.responders.buttons.get("openticket:help-menu-previous").workers.add( - new api.ODWorker("openticket:update-help-menu",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:help-menu-previous",/^od:help-menu-previous/)) + opendiscord.responders.buttons.get("opendiscord:help-menu-previous").workers.add( + new api.ODWorker("opendiscord:update-help-menu",0,async (instance,params,source,cancel) => { const switchButton = instance.getMessageComponent("button",/^od:help-menu-switch_(slash|text)/) const pageButton = instance.getMessageComponent("button",/^od:help-menu-page_([0-9]+)/) const currentPage = (pageButton && pageButton.customId) ? Number(pageButton.customId.split("_")[1]) : 0 const currentMode = (switchButton && switchButton.customId) ? switchButton.customId.split("_")[1] as "text"|"slash" : "slash" - const msg = await opendiscord.builders.messages.getSafe("openticket:help-menu").build("button",{mode:currentMode,page:currentPage-1}) + const msg = await opendiscord.builders.messages.getSafe("opendiscord:help-menu").build("button",{mode:currentMode,page:currentPage-1}) await instance.update(msg) }) ) //HELP MENU NEXT BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:help-menu-next",/^od:help-menu-next/)) - opendiscord.responders.buttons.get("openticket:help-menu-next").workers.add( - new api.ODWorker("openticket:update-help-menu",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:help-menu-next",/^od:help-menu-next/)) + opendiscord.responders.buttons.get("opendiscord:help-menu-next").workers.add( + new api.ODWorker("opendiscord:update-help-menu",0,async (instance,params,source,cancel) => { const switchButton = instance.getMessageComponent("button",/^od:help-menu-switch_(slash|text)/) const pageButton = instance.getMessageComponent("button",/^od:help-menu-page_([0-9]+)/) const currentPage = (pageButton && pageButton.customId) ? Number(pageButton.customId.split("_")[1]) : 0 const currentMode = (switchButton && switchButton.customId) ? switchButton.customId.split("_")[1] as "text"|"slash" : "slash" - const msg = await opendiscord.builders.messages.getSafe("openticket:help-menu").build("button",{mode:currentMode,page:currentPage+1}) + const msg = await opendiscord.builders.messages.getSafe("opendiscord:help-menu").build("button",{mode:currentMode,page:currentPage+1}) await instance.update(msg) }) ) diff --git a/src/commands/move.ts b/src/commands/move.ts index 9fd61a0..3a63498 100644 --- a/src/commands/move.ts +++ b/src/commands/move.ts @@ -4,59 +4,59 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //MOVE COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:move",generalConfig.data.prefix,"move")) - opendiscord.responders.commands.get("openticket:move").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:move",generalConfig.data.prefix,"move")) + opendiscord.responders.commands.get("opendiscord:move").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.move if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:move",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:move",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -66,21 +66,21 @@ export const registerCommandResponders = async () => { const option = opendiscord.options.get(id) //return if unknown option if (!option || !(option instanceof api.ODTicketOption)){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.titles.unknownOption"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.titles.unknownOption"),layout:"simple"})) return cancel() } //return if option is the same if (ticket.option.id.value == option.id.value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:"This ticket is already the same as the chosen option!",layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:"This ticket is already the same as the chosen option!",layout:"simple"})) return cancel() } //start moving ticket await instance.defer(false) - await opendiscord.actions.get("openticket:move-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data:option}) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:move-message").build(source,{guild,channel,user,ticket,reason,data:option})) + await opendiscord.actions.get("opendiscord:move-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data:option}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:move-message").build(source,{guild,channel,user,ticket,reason,data:option})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'move' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, diff --git a/src/commands/panel.ts b/src/commands/panel.ts index 5589323..74b44e6 100644 --- a/src/commands/panel.ts +++ b/src/commands/panel.ts @@ -4,51 +4,51 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //PANEL COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:panel",generalConfig.data.prefix,/^panel/)) - opendiscord.responders.commands.get("openticket:panel").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:panel",generalConfig.data.prefix,/^panel/)) + opendiscord.responders.commands.get("opendiscord:panel").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.panel //command is disabled if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:panel",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:panel",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild || instance.channel.type == discord.ChannelType.GroupDM){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } @@ -57,20 +57,20 @@ export const registerCommandResponders = async () => { if (!panel){ //invalid panel - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-panel-unknown").build(source,{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-panel-unknown").build(source,{guild,channel,user})) return cancel() } - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:panel-ready").build(source,{guild,channel,user,panel})) - const panelMessage = await instance.channel.send((await opendiscord.builders.messages.getSafe("openticket:panel").build(source,{guild,channel,user,panel})).message) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:panel-ready").build(source,{guild,channel,user,panel})) + const panelMessage = await instance.channel.send((await opendiscord.builders.messages.getSafe("opendiscord:panel").build(source,{guild,channel,user,panel})).message) //add panel to database on auto-update if (instance.options.getBoolean("auto-update",false)){ - const globalDatabase = opendiscord.databases.get("openticket:global") - await globalDatabase.set("openticket:panel-update",panelMessage.channel.id+"_"+panelMessage.id,panel.id.value) + const globalDatabase = opendiscord.databases.get("opendiscord:global") + await globalDatabase.set("opendiscord:panel-update",panelMessage.channel.id+"_"+panelMessage.id,panel.id.value) } }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'panel' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, diff --git a/src/commands/pin.ts b/src/commands/pin.ts index ed1460b..ac63a59 100644 --- a/src/commands/pin.ts +++ b/src/commands/pin.ts @@ -4,64 +4,64 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //PIN COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:pin",generalConfig.data.prefix,"pin")) - opendiscord.responders.commands.get("openticket:pin").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:pin",generalConfig.data.prefix,"pin")) + opendiscord.responders.commands.get("opendiscord:pin").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.pin if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:pin",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:pin",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already pinned - if (ticket.get("openticket:pinned").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.pin"),layout:"simple"})) + if (ticket.get("opendiscord:pinned").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.pin"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -69,10 +69,10 @@ export const registerCommandResponders = async () => { //start pinning ticket await instance.defer(false) - await opendiscord.actions.get("openticket:pin-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:pin-message").build(source,{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:pin-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:pin-message").build(source,{guild,channel,user,ticket,reason})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'pin' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, @@ -85,33 +85,33 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //PIN TICKET BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:pin-ticket",/^od:pin-ticket/)) - opendiscord.responders.buttons.get("openticket:pin-ticket").workers.add( - new api.ODWorker("openticket:pin-ticket",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:pin-ticket",/^od:pin-ticket/)) + opendiscord.responders.buttons.get("opendiscord:pin-ticket").workers.add( + new api.ODWorker("opendiscord:pin-ticket",0,async (instance,params,source,cancel) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "unpin-message") return - if (originalSource == "ticket-message") await opendiscord.verifybars.get("openticket:pin-ticket-ticket-message").activate(instance) - else await opendiscord.verifybars.get("openticket:pin-ticket-unpin-message").activate(instance) + if (originalSource == "ticket-message") await opendiscord.verifybars.get("opendiscord:pin-ticket-ticket-message").activate(instance) + else await opendiscord.verifybars.get("opendiscord:pin-ticket-unpin-message").activate(instance) }) ) } export const registerModalResponders = async () => { //PIN WITH REASON MODAL RESPONDER - opendiscord.responders.modals.add(new api.ODModalResponder("openticket:pin-ticket-reason",/^od:pin-ticket-reason_/)) - opendiscord.responders.modals.get("openticket:pin-ticket-reason").workers.add([ - new api.ODWorker("openticket:pin-ticket-reason",0,async (instance,params,source,cancel) => { + opendiscord.responders.modals.add(new api.ODModalResponder("opendiscord:pin-ticket-reason",/^od:pin-ticket-reason_/)) + opendiscord.responders.modals.get("opendiscord:pin-ticket-reason").workers.add([ + new api.ODWorker("opendiscord:pin-ticket-reason",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return } @@ -121,15 +121,15 @@ export const registerModalResponders = async () => { //pin with reason if (originalSource == "ticket-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:pin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:pin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }else if (originalSource == "unpin-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:pin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:pin-message").build("other",{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:pin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:pin-message").build("other",{guild,channel,user,ticket,reason})) }else if (originalSource == "other"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:pin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("opendiscord:pin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) diff --git a/src/commands/remove.ts b/src/commands/remove.ts index 89cccc1..6e71533 100644 --- a/src/commands/remove.ts +++ b/src/commands/remove.ts @@ -4,59 +4,59 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //REMOVE COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:remove",generalConfig.data.prefix,"remove")) - opendiscord.responders.commands.get("openticket:remove").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:remove",generalConfig.data.prefix,"remove")) + opendiscord.responders.commands.get("opendiscord:remove").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.remove if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:remove",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:remove",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -66,16 +66,16 @@ export const registerCommandResponders = async () => { //return when user is not a participant of the ticket (admins & creator can't be removed) const participants = await opendiscord.tickets.getAllTicketParticipants(ticket) if (!participants || !participants.find((p) => p.user.id == data.id && p.role == "participant")){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.remove"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.remove"),layout:"simple"})) return cancel() } //start removing user from ticket await instance.defer(false) - await opendiscord.actions.get("openticket:remove-ticket-user").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data}) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:remove-message").build(source,{guild,channel,user,ticket,reason,data})) + await opendiscord.actions.get("opendiscord:remove-ticket-user").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:remove-message").build(source,{guild,channel,user,ticket,reason,data})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'remove' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, diff --git a/src/commands/rename.ts b/src/commands/rename.ts index 39f560a..f84740d 100644 --- a/src/commands/rename.ts +++ b/src/commands/rename.ts @@ -4,59 +4,59 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //RENAME COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:rename",generalConfig.data.prefix,"rename")) - opendiscord.responders.commands.get("openticket:rename").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:rename",generalConfig.data.prefix,"rename")) + opendiscord.responders.commands.get("opendiscord:rename").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.rename if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:rename",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:rename",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -65,10 +65,10 @@ export const registerCommandResponders = async () => { //start renaming ticket await instance.defer(false) - await opendiscord.actions.get("openticket:rename-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data:name}) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:rename-message").build(source,{guild,channel,user,ticket,reason,data:name})) + await opendiscord.actions.get("opendiscord:rename-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data:name}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:rename-message").build(source,{guild,channel,user,ticket,reason,data:name})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'rename' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, diff --git a/src/commands/reopen.ts b/src/commands/reopen.ts index a7d31e5..6fe30c9 100644 --- a/src/commands/reopen.ts +++ b/src/commands/reopen.ts @@ -4,64 +4,64 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //REOPEN COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:reopen",generalConfig.data.prefix,"reopen")) - opendiscord.responders.commands.get("openticket:reopen").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:reopen",generalConfig.data.prefix,"reopen")) + opendiscord.responders.commands.get("opendiscord:reopen").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.reopen if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:reopen",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:reopen",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not closed - if (!ticket.get("openticket:closed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) + if (!ticket.get("opendiscord:closed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -69,10 +69,10 @@ export const registerCommandResponders = async () => { //start reopening ticket await instance.defer(false) - await opendiscord.actions.get("openticket:reopen-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:reopen-message").build(source,{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:reopen-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:reopen-message").build(source,{guild,channel,user,ticket,reason})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'reopen' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, @@ -85,34 +85,34 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //REOPEN TICKET BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:reopen-ticket",/^od:reopen-ticket/)) - opendiscord.responders.buttons.get("openticket:reopen-ticket").workers.add( - new api.ODWorker("openticket:reopen-ticket",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:reopen-ticket",/^od:reopen-ticket/)) + opendiscord.responders.buttons.get("opendiscord:reopen-ticket").workers.add( + new api.ODWorker("opendiscord:reopen-ticket",0,async (instance,params,source,cancel) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "close-message" && originalSource != "autoclose-message") return - if (originalSource == "ticket-message") await opendiscord.verifybars.get("openticket:reopen-ticket-ticket-message").activate(instance) - else if (originalSource == "close-message") await opendiscord.verifybars.get("openticket:reopen-ticket-close-message").activate(instance) - else await opendiscord.verifybars.get("openticket:reopen-ticket-autoclose-message").activate(instance) + if (originalSource == "ticket-message") await opendiscord.verifybars.get("opendiscord:reopen-ticket-ticket-message").activate(instance) + else if (originalSource == "close-message") await opendiscord.verifybars.get("opendiscord:reopen-ticket-close-message").activate(instance) + else await opendiscord.verifybars.get("opendiscord:reopen-ticket-autoclose-message").activate(instance) }) ) } export const registerModalResponders = async () => { //REOPEN WITH REASON MODAL RESPONDER - opendiscord.responders.modals.add(new api.ODModalResponder("openticket:reopen-ticket-reason",/^od:reopen-ticket-reason_/)) - opendiscord.responders.modals.get("openticket:reopen-ticket-reason").workers.add([ - new api.ODWorker("openticket:reopen-ticket-reason",0,async (instance,params,source,cancel) => { + opendiscord.responders.modals.add(new api.ODModalResponder("opendiscord:reopen-ticket-reason",/^od:reopen-ticket-reason_/)) + opendiscord.responders.modals.get("opendiscord:reopen-ticket-reason").workers.add([ + new api.ODWorker("opendiscord:reopen-ticket-reason",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return } @@ -122,19 +122,19 @@ export const registerModalResponders = async () => { //reopen with reason if (originalSource == "ticket-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }else if (originalSource == "close-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:reopen-message").build("other",{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:reopen-message").build("other",{guild,channel,user,ticket,reason})) }else if (originalSource == "autoclose-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:reopen-message").build("other",{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:reopen-message").build("other",{guild,channel,user,ticket,reason})) }else if (originalSource == "other"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("opendiscord:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) diff --git a/src/commands/role.ts b/src/commands/role.ts index b826b50..0081df6 100644 --- a/src/commands/role.ts +++ b/src/commands/role.ts @@ -4,17 +4,17 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerButtonResponders = async () => { //ROLE OPTION BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:role-option",/^od:role-option_/)) - opendiscord.responders.buttons.get("openticket:role-option").workers.add( - new api.ODWorker("openticket:role-option",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:role-option",/^od:role-option_/)) + opendiscord.responders.buttons.get("opendiscord:role-option").workers.add( + new api.ODWorker("opendiscord:role-option",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } @@ -23,19 +23,19 @@ export const registerButtonResponders = async () => { const option = opendiscord.options.get(optionId) if (!option || !(option instanceof api.ODRoleOption)){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) return cancel() } //reaction role await instance.defer("reply",true) - const res = await opendiscord.actions.get("openticket:reaction-role").run("panel-button",{guild,user,option,overwriteMode:null}) + const res = await opendiscord.actions.get("opendiscord:reaction-role").run("panel-button",{guild,user,option,overwriteMode:null}) if (!res.result || !res.role){ //error - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild,channel:instance.channel,user,error:"Unable to receive role update data from worker!",layout:"advanced"})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild,channel:instance.channel,user,error:"Unable to receive role update data from worker!",layout:"advanced"})) return cancel() } - if (generalConfig.data.system.replyOnReactionRole) await instance.reply(await opendiscord.builders.messages.getSafe("openticket:reaction-role").build("panel-button",{guild,user,role:res.role,result:res.result})) + if (generalConfig.data.system.replyOnReactionRole) await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:reaction-role").build("panel-button",{guild,user,role:res.role,result:res.result})) }) ) } \ No newline at end of file diff --git a/src/commands/stats.ts b/src/commands/stats.ts index b01811f..c308c3f 100644 --- a/src/commands/stats.ts +++ b/src/commands/stats.ts @@ -4,19 +4,19 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //STATS COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:stats",generalConfig.data.prefix,/^stats/)) - opendiscord.responders.commands.get("openticket:stats").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:stats",generalConfig.data.prefix,/^stats/)) + opendiscord.responders.commands.get("opendiscord:stats").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.stats //command is disabled if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() } @@ -24,7 +24,7 @@ export const registerCommandResponders = async () => { if (instance.options.getSubCommand() == "reset"){ if (!opendiscord.permissions.hasPermissions("owner",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["owner","developer"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["owner","developer"]})) return cancel() }else return } @@ -34,60 +34,60 @@ export const registerCommandResponders = async () => { else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:stats",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:stats",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } const scope = instance.options.getSubCommand() if (!scope || (scope != "global" && scope != "ticket" && scope != "user" && scope != "reset")) return if (scope == "global"){ - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:stats-global").build(source,{guild,channel,user})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:stats-global").build(source,{guild,channel,user})) }else if (scope == "ticket"){ const id = instance.options.getChannel("ticket",false)?.id ?? channel.id const ticket = opendiscord.tickets.get(id) - if (ticket) await instance.reply(await opendiscord.builders.messages.getSafe("openticket:stats-ticket").build(source,{guild,channel,user,scopeData:ticket})) - else await instance.reply(await opendiscord.builders.messages.getSafe("openticket:stats-ticket-unknown").build(source,{guild,channel,user,id})) + if (ticket) await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:stats-ticket").build(source,{guild,channel,user,scopeData:ticket})) + else await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:stats-ticket-unknown").build(source,{guild,channel,user,id})) }else if (scope == "user"){ const statsUser = instance.options.getUser("user",false) ?? user - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:stats-user").build(source,{guild,channel,user,scopeData:statsUser})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:stats-user").build(source,{guild,channel,user,scopeData:statsUser})) }else if (scope == "reset"){ const reason = instance.options.getString("reason",false) opendiscord.stats.reset() - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:stats-reset").build(source,{guild,channel,user,reason})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:stats-reset").build(source,{guild,channel,user,reason})) } }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { const scope = instance.options.getSubCommand() let data: string if (scope == "ticket"){ diff --git a/src/commands/ticket.ts b/src/commands/ticket.ts index 13e6432..1265d79 100644 --- a/src/commands/ticket.ts +++ b/src/commands/ticket.ts @@ -4,50 +4,50 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //TICKET COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:ticket",generalConfig.data.prefix,/^ticket/)) - opendiscord.responders.commands.get("openticket:ticket").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:ticket",generalConfig.data.prefix,/^ticket/)) + opendiscord.responders.commands.get("opendiscord:ticket").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.ticket if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:ticket",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } @@ -56,41 +56,41 @@ export const registerCommandResponders = async () => { const option = opendiscord.options.get(optionId) if (!option || !(option instanceof api.ODTicketOption)){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) return cancel() } //check ticket permissions - const res = await opendiscord.actions.get("openticket:create-ticket-permissions").run(source,{guild,user,option}) + const res = await opendiscord.actions.get("opendiscord:create-ticket-permissions").run(source,{guild,user,option}) if (!res.valid){ //error - if (res.reason == "blacklist") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-blacklisted").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) - else if (res.reason == "cooldown") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-cooldown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,until:res.cooldownUntil})) - else if (res.reason == "global-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global"})) - else if (res.reason == "global-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global-user"})) - else if (res.reason == "option-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option"})) - else if (res.reason == "option-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option-user"})) - else instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Unknown invalid_permission reason => calculation failed #1",layout:"advanced"})) + if (res.reason == "blacklist") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-blacklisted").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + else if (res.reason == "cooldown") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-cooldown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,until:res.cooldownUntil})) + else if (res.reason == "global-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global"})) + else if (res.reason == "global-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global-user"})) + else if (res.reason == "option-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option"})) + else if (res.reason == "option-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option-user"})) + else instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Unknown invalid_permission reason => calculation failed #1",layout:"advanced"})) return cancel() } //start ticket creation - if (option.exists("openticket:questions") && option.get("openticket:questions").value.length > 0){ + if (option.exists("opendiscord:questions") && option.get("opendiscord:questions").value.length > 0){ //send modal - instance.modal(await opendiscord.builders.modals.getSafe("openticket:ticket-questions").build(source,{guild,channel,user,option})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:ticket-questions").build(source,{guild,channel,user,option})) }else{ //create ticket await instance.defer(true) - const res = await opendiscord.actions.get("openticket:create-ticket").run(source,{guild,user,answers:[],option}) + const res = await opendiscord.actions.get("opendiscord:create-ticket").run(source,{guild,user,answers:[],option}) if (!res.channel || !res.ticket){ //error - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild,channel:instance.channel,user,error:"Unable to receive ticket or channel from callback! #1",layout:"advanced"})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild,channel:instance.channel,user,error:"Unable to receive ticket or channel from callback! #1",layout:"advanced"})) return cancel() } - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:ticket-created").build(source,{guild,channel:res.channel,user,ticket:res.ticket})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:ticket-created").build(source,{guild,channel:res.channel,user,ticket:res.ticket})) } }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'ticket' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, @@ -103,13 +103,13 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //TICKET OPTION BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:ticket-option",/^od:ticket-option_/)) - opendiscord.responders.buttons.get("openticket:ticket-option").workers.add( - new api.ODWorker("openticket:ticket-option",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:ticket-option",/^od:ticket-option_/)) + opendiscord.responders.buttons.get("opendiscord:ticket-option").workers.add( + new api.ODWorker("opendiscord:ticket-option",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } @@ -118,38 +118,38 @@ export const registerButtonResponders = async () => { const option = opendiscord.options.get(optionId) if (!option || !(option instanceof api.ODTicketOption)){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) return cancel() } //check ticket permissions - const res = await opendiscord.actions.get("openticket:create-ticket-permissions").run("panel-button",{guild,user,option}) + const res = await opendiscord.actions.get("opendiscord:create-ticket-permissions").run("panel-button",{guild,user,option}) if (!res.valid){ //error - if (res.reason == "blacklist") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-blacklisted").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) - else if (res.reason == "cooldown") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-cooldown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,until:res.cooldownUntil})) - else if (res.reason == "global-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global"})) - else if (res.reason == "global-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global-user"})) - else if (res.reason == "option-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option"})) - else if (res.reason == "option-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option-user"})) - else instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Unknown invalid_permission reason => calculation failed #1",layout:"advanced"})) + if (res.reason == "blacklist") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-blacklisted").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + else if (res.reason == "cooldown") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-cooldown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,until:res.cooldownUntil})) + else if (res.reason == "global-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global"})) + else if (res.reason == "global-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global-user"})) + else if (res.reason == "option-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option"})) + else if (res.reason == "option-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option-user"})) + else instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Unknown invalid_permission reason => calculation failed #1",layout:"advanced"})) return cancel() } //start ticket creation - if (option.exists("openticket:questions") && option.get("openticket:questions").value.length > 0){ + if (option.exists("opendiscord:questions") && option.get("opendiscord:questions").value.length > 0){ //send modal - instance.modal(await opendiscord.builders.modals.getSafe("openticket:ticket-questions").build("panel-button",{guild,channel,user,option})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:ticket-questions").build("panel-button",{guild,channel,user,option})) }else{ //create ticket await instance.defer("reply",true) - const res = await opendiscord.actions.get("openticket:create-ticket").run("panel-button",{guild,user,answers:[],option}) + const res = await opendiscord.actions.get("opendiscord:create-ticket").run("panel-button",{guild,user,answers:[],option}) if (!res.channel || !res.ticket){ //error - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild,channel:instance.channel,user,error:"Unable to receive ticket or channel from callback! #1",layout:"advanced"})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild,channel:instance.channel,user,error:"Unable to receive ticket or channel from callback! #1",layout:"advanced"})) return cancel() } - if (generalConfig.data.system.replyOnTicketCreation) await instance.reply(await opendiscord.builders.messages.getSafe("openticket:ticket-created").build("panel-button",{guild,channel:res.channel,user,ticket:res.ticket})) + if (generalConfig.data.system.replyOnTicketCreation) await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:ticket-created").build("panel-button",{guild,channel:res.channel,user,ticket:res.ticket})) } }) ) @@ -157,13 +157,13 @@ export const registerButtonResponders = async () => { export const registerDropdownResponders = async () => { //PANEL DROPDOWN TICKETS DROPDOWN RESPONDER - opendiscord.responders.dropdowns.add(new api.ODDropdownResponder("openticket:panel-dropdown-tickets",/^od:panel-dropdown_/)) - opendiscord.responders.dropdowns.get("openticket:panel-dropdown-tickets").workers.add( - new api.ODWorker("openticket:panel-dropdown-tickets",0,async (instance,params,source,cancel) => { + opendiscord.responders.dropdowns.add(new api.ODDropdownResponder("opendiscord:panel-dropdown-tickets",/^od:panel-dropdown_/)) + opendiscord.responders.dropdowns.get("opendiscord:panel-dropdown-tickets").workers.add( + new api.ODWorker("opendiscord:panel-dropdown-tickets",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } @@ -172,38 +172,38 @@ export const registerDropdownResponders = async () => { const option = opendiscord.options.get(optionId) if (!option || !(option instanceof api.ODTicketOption)){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) return cancel() } //check ticket permissions - const res = await opendiscord.actions.get("openticket:create-ticket-permissions").run("panel-dropdown",{guild,user,option}) + const res = await opendiscord.actions.get("opendiscord:create-ticket-permissions").run("panel-dropdown",{guild,user,option}) if (!res.valid){ //error - if (res.reason == "blacklist") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-blacklisted").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) - else if (res.reason == "cooldown") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-cooldown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,until:res.cooldownUntil})) - else if (res.reason == "global-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global"})) - else if (res.reason == "global-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global-user"})) - else if (res.reason == "option-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option"})) - else if (res.reason == "option-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option-user"})) - else instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Unknown invalid_permission reason => calculation failed #1",layout:"advanced"})) + if (res.reason == "blacklist") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-blacklisted").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + else if (res.reason == "cooldown") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-cooldown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,until:res.cooldownUntil})) + else if (res.reason == "global-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global"})) + else if (res.reason == "global-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"global-user"})) + else if (res.reason == "option-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option"})) + else if (res.reason == "option-user-limit") instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions-limits").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,limit:"option-user"})) + else instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Unknown invalid_permission reason => calculation failed #1",layout:"advanced"})) return cancel() } //start ticket creation - if (option.exists("openticket:questions") && option.get("openticket:questions").value.length > 0){ + if (option.exists("opendiscord:questions") && option.get("opendiscord:questions").value.length > 0){ //send modal - instance.modal(await opendiscord.builders.modals.getSafe("openticket:ticket-questions").build("panel-dropdown",{guild,channel,user,option})) + instance.modal(await opendiscord.builders.modals.getSafe("opendiscord:ticket-questions").build("panel-dropdown",{guild,channel,user,option})) }else{ //create ticket await instance.defer("reply",true) - const res = await opendiscord.actions.get("openticket:create-ticket").run("panel-dropdown",{guild,user,answers:[],option}) + const res = await opendiscord.actions.get("opendiscord:create-ticket").run("panel-dropdown",{guild,user,answers:[],option}) if (!res.channel || !res.ticket){ //error - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild,channel:instance.channel,user,error:"Unable to receive ticket or channel from callback! #1",layout:"advanced"})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild,channel:instance.channel,user,error:"Unable to receive ticket or channel from callback! #1",layout:"advanced"})) return cancel() } - if (generalConfig.data.system.replyOnTicketCreation) await instance.reply(await opendiscord.builders.messages.getSafe("openticket:ticket-created").build("panel-dropdown",{guild,channel:res.channel,user,ticket:res.ticket})) + if (generalConfig.data.system.replyOnTicketCreation) await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:ticket-created").build("panel-dropdown",{guild,channel:res.channel,user,ticket:res.ticket})) } }) ) @@ -211,14 +211,14 @@ export const registerDropdownResponders = async () => { export const registerModalResponders = async () => { //TICKET QUESTIONS RESPONDER - opendiscord.responders.modals.add(new api.ODModalResponder("openticket:ticket-questions",/^od:ticket-questions_/)) - opendiscord.responders.modals.get("openticket:ticket-questions").workers.add([ - new api.ODWorker("openticket:ticket-questions",0,async (instance,params,source,cancel) => { + opendiscord.responders.modals.add(new api.ODModalResponder("opendiscord:ticket-questions",/^od:ticket-questions_/)) + opendiscord.responders.modals.get("opendiscord:ticket-questions").workers.add([ + new api.ODWorker("opendiscord:ticket-questions",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!channel) throw new api.ODSystemError("The 'Ticket Questions' modal requires a channel for responding!") if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } @@ -229,26 +229,26 @@ export const registerModalResponders = async () => { const option = opendiscord.options.get(optionId) if (!option || !(option instanceof api.ODTicketOption)){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-option-unknown").build(source,{guild:instance.guild,channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-option-unknown").build(source,{guild:instance.guild,channel,user:instance.user})) return cancel() } //get answers const answers: {id:string,name:string,type:"short"|"paragraph",value:string|null}[] = [] - option.get("openticket:questions").value.forEach((id) => { + option.get("opendiscord:questions").value.forEach((id) => { const question = opendiscord.questions.get(id) if (!question) return if (question instanceof api.ODShortQuestion){ answers.push({ id, - name:question.exists("openticket:name") ? question.get("openticket:name")?.value : id, + name:question.exists("opendiscord:name") ? question.get("opendiscord:name")?.value : id, type:"short", value:instance.values.getTextField(id,false) }) }else if (question instanceof api.ODParagraphQuestion){ answers.push({ id, - name:question.exists("openticket:name") ? question.get("openticket:name")?.value : id, + name:question.exists("opendiscord:name") ? question.get("opendiscord:name")?.value : id, type:"paragraph", value:instance.values.getTextField(id,false) }) @@ -257,13 +257,13 @@ export const registerModalResponders = async () => { //create ticket await instance.defer("reply",true) - const res = await opendiscord.actions.get("openticket:create-ticket").run(originalSource,{guild,user,answers,option}) + const res = await opendiscord.actions.get("opendiscord:create-ticket").run(originalSource,{guild,user,answers,option}) if (!res.channel || !res.ticket){ //error - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild,channel,user,error:"Unable to receive ticket or channel from callback! #2",layout:"advanced"})) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild,channel,user,error:"Unable to receive ticket or channel from callback! #2",layout:"advanced"})) return cancel() } - if (generalConfig.data.system.replyOnTicketCreation) await instance.reply(await opendiscord.builders.messages.getSafe("openticket:ticket-created").build(originalSource,{guild,channel:res.channel,user,ticket:res.ticket})) + if (generalConfig.data.system.replyOnTicketCreation) await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:ticket-created").build(originalSource,{guild,channel:res.channel,user,ticket:res.ticket})) }) ]) } \ No newline at end of file diff --git a/src/commands/unclaim.ts b/src/commands/unclaim.ts index 7a785e5..37692f3 100644 --- a/src/commands/unclaim.ts +++ b/src/commands/unclaim.ts @@ -4,64 +4,64 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //UNCLAIM COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:unclaim",generalConfig.data.prefix,"unclaim")) - opendiscord.responders.commands.get("openticket:unclaim").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:unclaim",generalConfig.data.prefix,"unclaim")) + opendiscord.responders.commands.get("opendiscord:unclaim").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.unclaim if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:unclaim",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:unclaim",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not claimed - if (!ticket.get("openticket:claimed").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unclaim"),layout:"simple"})) + if (!ticket.get("opendiscord:claimed").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unclaim"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -69,10 +69,10 @@ export const registerCommandResponders = async () => { //start unclaiming ticket await instance.defer(false) - await opendiscord.actions.get("openticket:unclaim-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:unclaim-message").build(source,{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:unclaim-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:unclaim-message").build(source,{guild,channel,user,ticket,reason})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'unclaim' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, @@ -85,33 +85,33 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //UNCLAIM TICKET BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:unclaim-ticket",/^od:unclaim-ticket/)) - opendiscord.responders.buttons.get("openticket:unclaim-ticket").workers.add( - new api.ODWorker("openticket:unclaim-ticket",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:unclaim-ticket",/^od:unclaim-ticket/)) + opendiscord.responders.buttons.get("opendiscord:unclaim-ticket").workers.add( + new api.ODWorker("opendiscord:unclaim-ticket",0,async (instance,params,source,cancel) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "claim-message") return - if (originalSource == "ticket-message") await opendiscord.verifybars.get("openticket:unclaim-ticket-ticket-message").activate(instance) - else await opendiscord.verifybars.get("openticket:unclaim-ticket-claim-message").activate(instance) + if (originalSource == "ticket-message") await opendiscord.verifybars.get("opendiscord:unclaim-ticket-ticket-message").activate(instance) + else await opendiscord.verifybars.get("opendiscord:unclaim-ticket-claim-message").activate(instance) }) ) } export const registerModalResponders = async () => { //UNCLAIM WITH REASON MODAL RESPONDER - opendiscord.responders.modals.add(new api.ODModalResponder("openticket:unclaim-ticket-reason",/^od:unclaim-ticket-reason_/)) - opendiscord.responders.modals.get("openticket:unclaim-ticket-reason").workers.add([ - new api.ODWorker("openticket:unclaim-ticket-reason",0,async (instance,params,source,cancel) => { + opendiscord.responders.modals.add(new api.ODModalResponder("opendiscord:unclaim-ticket-reason",/^od:unclaim-ticket-reason_/)) + opendiscord.responders.modals.get("opendiscord:unclaim-ticket-reason").workers.add([ + new api.ODWorker("opendiscord:unclaim-ticket-reason",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return } @@ -121,15 +121,15 @@ export const registerModalResponders = async () => { //unclaim with reason if (originalSource == "ticket-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:unclaim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:unclaim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }else if (originalSource == "claim-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:unclaim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:unclaim-message").build("other",{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:unclaim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:unclaim-message").build("other",{guild,channel,user,ticket,reason})) }else if (originalSource == "other"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:unclaim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("opendiscord:unclaim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) ]) diff --git a/src/commands/unpin.ts b/src/commands/unpin.ts index 60fb092..9160d8a 100644 --- a/src/commands/unpin.ts +++ b/src/commands/unpin.ts @@ -4,64 +4,64 @@ import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const registerCommandResponders = async () => { //UNPIN COMMAND RESPONDER - opendiscord.responders.commands.add(new api.ODCommandResponder("openticket:unpin",generalConfig.data.prefix,"unpin")) - opendiscord.responders.commands.get("openticket:unpin").workers.add([ - new api.ODWorker("openticket:permissions",1,async (instance,params,source,cancel) => { + opendiscord.responders.commands.add(new api.ODCommandResponder("opendiscord:unpin",generalConfig.data.prefix,"unpin")) + opendiscord.responders.commands.get("opendiscord:unpin").workers.add([ + new api.ODWorker("opendiscord:permissions",1,async (instance,params,source,cancel) => { const permissionMode = generalConfig.data.system.permissions.unpin if (permissionMode == "none"){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else if (permissionMode == "everyone") return else if (permissionMode == "admin"){ if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["support"]})) return cancel() }else return }else{ if (!instance.guild || !instance.member){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #1",layout:"advanced"})) return cancel() } const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,error:"Permission Error: Not in Server #2",layout:"advanced"})) return cancel() } if (!role.members.has(instance.member.id)){ //no permissions - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } }), - new api.ODWorker("openticket:unpin",0,async (instance,params,source,cancel) => { + new api.ODWorker("opendiscord:unpin",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build("button",{channel,user})) return cancel() } const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not pinned yet - if (!ticket.get("openticket:pinned").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unpin"),layout:"simple"})) + if (!ticket.get("opendiscord:pinned").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error").build("button",{guild,channel,user,error:opendiscord.languages.getTranslation("errors.actionInvalid.unpin"),layout:"simple"})) return cancel() } //return when busy - if (ticket.get("openticket:busy").value){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + if (ticket.get("opendiscord:busy").value){ + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -69,10 +69,10 @@ export const registerCommandResponders = async () => { //start unpinning ticket await instance.defer(false) - await opendiscord.actions.get("openticket:unpin-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.reply(await opendiscord.builders.messages.getSafe("openticket:unpin-message").build(source,{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:unpin-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:unpin-message").build(source,{guild,channel,user,ticket,reason})) }), - new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { + new api.ODWorker("opendiscord:logs",-1,(instance,params,source,cancel) => { opendiscord.log(instance.user.displayName+" used the 'unpin' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, @@ -85,33 +85,33 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //UNPIN TICKET BUTTON RESPONDER - opendiscord.responders.buttons.add(new api.ODButtonResponder("openticket:unpin-ticket",/^od:unpin-ticket/)) - opendiscord.responders.buttons.get("openticket:unpin-ticket").workers.add( - new api.ODWorker("openticket:unpin-ticket",0,async (instance,params,source,cancel) => { + opendiscord.responders.buttons.add(new api.ODButtonResponder("opendiscord:unpin-ticket",/^od:unpin-ticket/)) + opendiscord.responders.buttons.get("opendiscord:unpin-ticket").workers.add( + new api.ODWorker("opendiscord:unpin-ticket",0,async (instance,params,source,cancel) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "pin-message") return - if (originalSource == "ticket-message") await opendiscord.verifybars.get("openticket:unpin-ticket-ticket-message").activate(instance) - else await opendiscord.verifybars.get("openticket:unpin-ticket-pin-message").activate(instance) + if (originalSource == "ticket-message") await opendiscord.verifybars.get("opendiscord:unpin-ticket-ticket-message").activate(instance) + else await opendiscord.verifybars.get("opendiscord:unpin-ticket-pin-message").activate(instance) }) ) } export const registerModalResponders = async () => { //UNPIN WITH REASON MODAL RESPONDER - opendiscord.responders.modals.add(new api.ODModalResponder("openticket:unpin-ticket-reason",/^od:unpin-ticket-reason_/)) - opendiscord.responders.modals.get("openticket:unpin-ticket-reason").workers.add([ - new api.ODWorker("openticket:unpin-ticket-reason",0,async (instance,params,source,cancel) => { + opendiscord.responders.modals.add(new api.ODModalResponder("opendiscord:unpin-ticket-reason",/^od:unpin-ticket-reason_/)) + opendiscord.responders.modals.get("opendiscord:unpin-ticket-reason").workers.add([ + new api.ODWorker("opendiscord:unpin-ticket-reason",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-ticket-unknown").build("button",{guild,channel,user})) return } @@ -121,15 +121,15 @@ export const registerModalResponders = async () => { //unpin with reason if (originalSource == "ticket-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:unpin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await opendiscord.actions.get("opendiscord:unpin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:ticket-message").build("other",{guild,channel,user,ticket})) }else if (originalSource == "pin-message"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:unpin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await opendiscord.builders.messages.getSafe("openticket:unpin-message").build("other",{guild,channel,user,ticket,reason})) + await opendiscord.actions.get("opendiscord:unpin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) + await instance.update(await opendiscord.builders.messages.getSafe("opendiscord:unpin-message").build("other",{guild,channel,user,ticket,reason})) }else if (originalSource == "other"){ await instance.defer("update",false) - await opendiscord.actions.get("openticket:unpin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("opendiscord:unpin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) ]) diff --git a/src/core/api/defaults/action.ts b/src/core/api/defaults/action.ts index 2f9aaaa..808724e 100644 --- a/src/core/api/defaults/action.ts +++ b/src/core/api/defaults/action.ts @@ -16,101 +16,101 @@ import { ODRole, ODRoleUpdateMode, ODRoleUpdateResult } from "../openticket/role * It's used to generate typescript declarations for this class. */ export interface ODActionManagerIds_Default { - "openticket:create-ticket-permissions":{ + "opendiscord:create-ticket-permissions":{ source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other", params:{guild:discord.Guild,user:discord.User,option:ODTicketOption}, result:{valid:boolean,reason:"blacklist"|"cooldown"|"global-limit"|"global-user-limit"|"option-limit"|"option-user-limit"|null,cooldownUntil?:Date}, - workers:"openticket:check-blacklist"|"openticket:check-cooldown"|"openticket:check-global-limits"|"openticket:check-option-limits"|"openticket:valid" + workers:"opendiscord:check-blacklist"|"opendiscord:check-cooldown"|"opendiscord:check-global-limits"|"opendiscord:check-option-limits"|"opendiscord:valid" }, - "openticket:create-transcript":{ + "opendiscord:create-transcript":{ source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket}, result:{compiler:ODTranscriptCompiler, success:boolean, result:ODTranscriptCompilerCompileResult, errorReason:string|null, pendingMessage:ODMessageBuildSentResult|null, participants:{user:discord.User,role:"creator"|"participant"|"admin"}[]}, - workers:"openticket:select-compiler"|"openticket:init-transcript"|"openticket:compile-transcript"|"openticket:ready-transcript"|"openticket:logs" + workers:"opendiscord:select-compiler"|"opendiscord:init-transcript"|"opendiscord:compile-transcript"|"opendiscord:ready-transcript"|"opendiscord:logs" }, - "openticket:create-ticket":{ + "opendiscord:create-ticket":{ source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other", params:{guild:discord.Guild,user:discord.User,option:ODTicketOption,answers:{id:string,name:string,type:"short"|"paragraph",value:string|null}[]}, result:{channel:discord.GuildTextBasedChannel,ticket:ODTicket}, - workers:"openticket:create-ticket"|"openticket:send-ticket-message"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:create-ticket"|"opendiscord:send-ticket-message"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:close-ticket":{ + "opendiscord:close-ticket":{ source:"slash"|"text"|"ticket-message"|"reopen-message"|"autoclose"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean}, result:{}, - workers:"openticket:close-ticket"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:close-ticket"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:delete-ticket":{ + "opendiscord:delete-ticket":{ source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean,withoutTranscript:boolean}, result:{}, - workers:"openticket:delete-ticket"|"openticket:discord-logs"|"openticket:delete-channel"|"openticket:logs" + workers:"opendiscord:delete-ticket"|"opendiscord:discord-logs"|"opendiscord:delete-channel"|"opendiscord:logs" }, - "openticket:reopen-ticket":{ + "opendiscord:reopen-ticket":{ source:"slash"|"text"|"ticket-message"|"close-message"|"autoclose-message"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean}, result:{}, - workers:"openticket:reopen-ticket"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:reopen-ticket"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:claim-ticket":{ + "opendiscord:claim-ticket":{ source:"slash"|"text"|"ticket-message"|"unclaim-message"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean}, result:{}, - workers:"openticket:claim-ticket"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:claim-ticket"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:unclaim-ticket":{ + "opendiscord:unclaim-ticket":{ source:"slash"|"text"|"ticket-message"|"claim-message"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean}, result:{}, - workers:"openticket:unclaim-ticket"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:unclaim-ticket"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:pin-ticket":{ + "opendiscord:pin-ticket":{ source:"slash"|"text"|"ticket-message"|"unpin-message"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean}, result:{}, - workers:"openticket:pin-ticket"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:pin-ticket"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:unpin-ticket":{ + "opendiscord:unpin-ticket":{ source:"slash"|"text"|"ticket-message"|"pin-message"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean}, result:{}, - workers:"openticket:unpin-ticket"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:unpin-ticket"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:rename-ticket":{ + "opendiscord:rename-ticket":{ source:"slash"|"text"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean,data:string}, result:{}, - workers:"openticket:rename-ticket"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:rename-ticket"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:move-ticket":{ + "opendiscord:move-ticket":{ source:"slash"|"text"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean,data:ODTicketOption}, result:{}, - workers:"openticket:move-ticket"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:move-ticket"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:add-ticket-user":{ + "opendiscord:add-ticket-user":{ source:"slash"|"text"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean,data:discord.User}, result:{}, - workers:"openticket:add-ticket-user"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:add-ticket-user"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:remove-ticket-user":{ + "opendiscord:remove-ticket-user":{ source:"slash"|"text"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,sendMessage:boolean,data:discord.User}, result:{}, - workers:"openticket:remove-ticket-user"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:remove-ticket-user"|"opendiscord:discord-logs"|"opendiscord:logs" }, - "openticket:reaction-role":{ + "opendiscord:reaction-role":{ source:"panel-button"|"other", params:{guild:discord.Guild,user:discord.User,option:ODRoleOption,overwriteMode:ODRoleUpdateMode|null}, result:{result:ODRoleUpdateResult[],role:ODRole}, - workers:"openticket:reaction-role"|"openticket:logs" + workers:"opendiscord:reaction-role"|"opendiscord:logs" }, - "openticket:clear-tickets":{ + "opendiscord:clear-tickets":{ source:"slash"|"text"|"other", params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:ODTicket[]}, result:{list:string[]}, - workers:"openticket:clear-tickets"|"openticket:discord-logs"|"openticket:logs" + workers:"opendiscord:clear-tickets"|"opendiscord:discord-logs"|"opendiscord:logs" } } diff --git a/src/core/api/defaults/base.ts b/src/core/api/defaults/base.ts index 532a9f9..2cfa279 100644 --- a/src/core/api/defaults/base.ts +++ b/src/core/api/defaults/base.ts @@ -8,11 +8,11 @@ import { ODVersion, ODVersionManager, ODValidId } from "../modules/base" * It's used to generate typescript declarations for this class. */ export interface ODVersionManagerIds_Default { - "openticket:version":ODVersion, - "openticket:last-version":ODVersion, - "openticket:api":ODVersion, - "openticket:transcripts":ODVersion, - "openticket:livestatus":ODVersion + "opendiscord:version":ODVersion, + "opendiscord:last-version":ODVersion, + "opendiscord:api":ODVersion, + "opendiscord:transcripts":ODVersion, + "opendiscord:livestatus":ODVersion } /**## ODFlagManager_Default `default_class` diff --git a/src/core/api/defaults/builder.ts b/src/core/api/defaults/builder.ts index 6e3bfe7..97cb2ec 100644 --- a/src/core/api/defaults/builder.ts +++ b/src/core/api/defaults/builder.ts @@ -34,35 +34,35 @@ export class ODBuilderManager_Default extends ODBuilderManager { * It's used to generate typescript declarations for this class. */ export interface ODButtonManagerIds_Default { - "openticket:verifybar-success":{source:"verifybar"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,customData?:string,customColor?:ODValidButtonColor,customLabel?:string,customEmoji?:string},workers:"openticket:verifybar-success"}, - "openticket:verifybar-failure":{source:"verifybar"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,customData?:string,customColor?:ODValidButtonColor,customLabel?:string,customEmoji?:string},workers:"openticket:verifybar-failure"}, + "opendiscord:verifybar-success":{source:"verifybar"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,customData?:string,customColor?:ODValidButtonColor,customLabel?:string,customEmoji?:string},workers:"opendiscord:verifybar-success"}, + "opendiscord:verifybar-failure":{source:"verifybar"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,customData?:string,customColor?:ODValidButtonColor,customLabel?:string,customEmoji?:string},workers:"opendiscord:verifybar-failure"}, - "openticket:error-ticket-deprecated-transcript":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{},workers:"openticket:error-ticket-deprecated-transcript"}, + "opendiscord:error-ticket-deprecated-transcript":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{},workers:"opendiscord:error-ticket-deprecated-transcript"}, - "openticket:help-menu-previous":{source:"text"|"slash"|"button"|"other",params:{mode:"slash"|"text",page:number},workers:"openticket:help-menu-previous"}, - "openticket:help-menu-next":{source:"text"|"slash"|"button"|"other",params:{mode:"slash"|"text",page:number},workers:"openticket:help-menu-next"}, - "openticket:help-menu-page":{source:"text"|"slash"|"button"|"other",params:{mode:"slash"|"text",page:number},workers:"openticket:help-menu-page"} - "openticket:help-menu-switch":{source:"text"|"slash"|"button"|"other",params:{mode:"slash"|"text",page:number},workers:"openticket:help-menu-switch"}, + "opendiscord:help-menu-previous":{source:"text"|"slash"|"button"|"other",params:{mode:"slash"|"text",page:number},workers:"opendiscord:help-menu-previous"}, + "opendiscord:help-menu-next":{source:"text"|"slash"|"button"|"other",params:{mode:"slash"|"text",page:number},workers:"opendiscord:help-menu-next"}, + "opendiscord:help-menu-page":{source:"text"|"slash"|"button"|"other",params:{mode:"slash"|"text",page:number},workers:"opendiscord:help-menu-page"} + "opendiscord:help-menu-switch":{source:"text"|"slash"|"button"|"other",params:{mode:"slash"|"text",page:number},workers:"opendiscord:help-menu-switch"}, - "openticket:ticket-option":{source:"slash"|"text"|"auto-update"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel,option:ODTicketOption},workers:"openticket:ticket-option"}, - "openticket:website-option":{source:"slash"|"text"|"auto-update"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel,option:ODWebsiteOption},workers:"openticket:website-option"}, - "openticket:role-option":{source:"slash"|"text"|"auto-update"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel,option:ODRoleOption},workers:"openticket:role-option"} + "opendiscord:ticket-option":{source:"slash"|"text"|"auto-update"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel,option:ODTicketOption},workers:"opendiscord:ticket-option"}, + "opendiscord:website-option":{source:"slash"|"text"|"auto-update"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel,option:ODWebsiteOption},workers:"opendiscord:website-option"}, + "opendiscord:role-option":{source:"slash"|"text"|"auto-update"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel,option:ODRoleOption},workers:"opendiscord:role-option"} - "openticket:visit-ticket":{source:"ticket-created"|"dm"|"logs"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:visit-ticket"}, + "opendiscord:visit-ticket":{source:"ticket-created"|"dm"|"logs"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:visit-ticket"}, - "openticket:close-ticket":{source:"ticket-message"|"reopen-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:close-ticket"}, - "openticket:delete-ticket":{source:"ticket-message"|"close-message"|"autoclose-message"|"reopen-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:delete-ticket"}, - "openticket:reopen-ticket":{source:"ticket-message"|"close-message"|"autoclose-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:reopen-ticket"}, - "openticket:claim-ticket":{source:"ticket-message"|"unclaim-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:claim-ticket"}, - "openticket:unclaim-ticket":{source:"ticket-message"|"claim-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:unclaim-ticket"}, - "openticket:pin-ticket":{source:"ticket-message"|"unpin-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:pin-ticket"}, - "openticket:unpin-ticket":{source:"ticket-message"|"pin-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:unpin-ticket"}, + "opendiscord:close-ticket":{source:"ticket-message"|"reopen-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:close-ticket"}, + "opendiscord:delete-ticket":{source:"ticket-message"|"close-message"|"autoclose-message"|"reopen-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:delete-ticket"}, + "opendiscord:reopen-ticket":{source:"ticket-message"|"close-message"|"autoclose-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:reopen-ticket"}, + "opendiscord:claim-ticket":{source:"ticket-message"|"unclaim-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:claim-ticket"}, + "opendiscord:unclaim-ticket":{source:"ticket-message"|"claim-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:unclaim-ticket"}, + "opendiscord:pin-ticket":{source:"ticket-message"|"unpin-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:pin-ticket"}, + "opendiscord:unpin-ticket":{source:"ticket-message"|"pin-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:unpin-ticket"}, - "openticket:transcript-html-visit":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{url:string}>,result:ODTranscriptCompilerCompileResult<{url:string}>},workers:"openticket:transcript-html-visit"}, - "openticket:transcript-error-retry":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler,reason:string|null},workers:"openticket:transcript-error-retry"}, - "openticket:transcript-error-continue":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler,reason:string|null},workers:"openticket:transcript-error-continue"}, + "opendiscord:transcript-html-visit":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{url:string}>,result:ODTranscriptCompilerCompileResult<{url:string}>},workers:"opendiscord:transcript-html-visit"}, + "opendiscord:transcript-error-retry":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler,reason:string|null},workers:"opendiscord:transcript-error-retry"}, + "opendiscord:transcript-error-continue":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler,reason:string|null},workers:"opendiscord:transcript-error-continue"}, - "openticket:clear-continue":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"openticket:clear-continue"}, + "opendiscord:clear-continue":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-continue"}, } /**## ODButtonManager_Default `default_class` @@ -116,7 +116,7 @@ export class ODButton_Default,result:ODTranscriptCompilerCompileResult},workers:"openticket:text-transcript"} + "opendiscord:text-transcript":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler,result:ODTranscriptCompilerCompileResult},workers:"opendiscord:text-transcript"} } /**## ODFileManager_Default `default_class` @@ -224,73 +224,73 @@ export class ODFile_Default,result:ODTranscriptCompilerCompileResult<{contents:string}>},workers:"openticket:transcript-text-ready"}, - "openticket:transcript-html-ready":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{url:string}>,result:ODTranscriptCompilerCompileResult<{url:string}>},workers:"openticket:transcript-html-ready"}, - "openticket:transcript-html-progress":{source:"channel"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{url:string}>,remaining:number},workers:"openticket:transcript-html-progress"}, - "openticket:transcript-error":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler,reason:string|null},workers:"openticket:transcript-error"}, + "opendiscord:transcript-text-ready":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{contents:string}>,result:ODTranscriptCompilerCompileResult<{contents:string}>},workers:"opendiscord:transcript-text-ready"}, + "opendiscord:transcript-html-ready":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{url:string}>,result:ODTranscriptCompilerCompileResult<{url:string}>},workers:"opendiscord:transcript-html-ready"}, + "opendiscord:transcript-html-progress":{source:"channel"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{url:string}>,remaining:number},workers:"opendiscord:transcript-html-progress"}, + "opendiscord:transcript-error":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler,reason:string|null},workers:"opendiscord:transcript-error"}, - "openticket:reaction-role":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"openticket:reaction-role"}, - "openticket:clear-verify-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"openticket:clear-verify-message"}, - "openticket:clear-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"openticket:clear-message"}, - "openticket:clear-logs":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"openticket:clear-logs"}, + "opendiscord:reaction-role":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"opendiscord:reaction-role"}, + "opendiscord:clear-verify-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-verify-message"}, + "opendiscord:clear-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-message"}, + "opendiscord:clear-logs":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-logs"}, - "openticket:autoclose-message":{source:"timeout"|"leave"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:autoclose-message"}, - "openticket:autodelete-message":{source:"timeout"|"leave"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:autodelete-message"}, - "openticket:autoclose-enable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,time:number,reason:string|null},workers:"openticket:autoclose-enable"}, - "openticket:autodelete-enable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,time:number,reason:string|null},workers:"openticket:autodelete-enable"}, - "openticket:autoclose-disable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:autoclose-disable"}, - "openticket:autodelete-disable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:autodelete-disable"}, + "opendiscord:autoclose-message":{source:"timeout"|"leave"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:autoclose-message"}, + "opendiscord:autodelete-message":{source:"timeout"|"leave"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:autodelete-message"}, + "opendiscord:autoclose-enable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,time:number,reason:string|null},workers:"opendiscord:autoclose-enable"}, + "opendiscord:autodelete-enable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,time:number,reason:string|null},workers:"opendiscord:autodelete-enable"}, + "opendiscord:autoclose-disable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:autoclose-disable"}, + "opendiscord:autodelete-disable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:autodelete-disable"}, } /**## ODEmbedManager_Default `default_class` @@ -344,84 +344,84 @@ export class ODEmbed_Default},workers:"openticket:verifybar-ticket-message"}, - "openticket:verifybar-close-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"openticket:verifybar-close-message"}, - "openticket:verifybar-reopen-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"openticket:verifybar-reopen-message"}, - "openticket:verifybar-claim-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"openticket:verifybar-claim-message"}, - "openticket:verifybar-unclaim-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"openticket:verifybar-unclaim-message"}, - "openticket:verifybar-pin-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"openticket:verifybar-pin-message"}, - "openticket:verifybar-unpin-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"openticket:verifybar-unpin-message"} - "openticket:verifybar-autoclose-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"openticket:verifybar-autoclose-message"} + "opendiscord:verifybar-ticket-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"opendiscord:verifybar-ticket-message"}, + "opendiscord:verifybar-close-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"opendiscord:verifybar-close-message"}, + "opendiscord:verifybar-reopen-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"opendiscord:verifybar-reopen-message"}, + "opendiscord:verifybar-claim-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"opendiscord:verifybar-claim-message"}, + "opendiscord:verifybar-unclaim-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"opendiscord:verifybar-unclaim-message"}, + "opendiscord:verifybar-pin-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"opendiscord:verifybar-pin-message"}, + "opendiscord:verifybar-unpin-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"opendiscord:verifybar-unpin-message"} + "opendiscord:verifybar-autoclose-message":{source:"verifybar",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,verifybar:ODVerifyBar,originalMessage:discord.Message},workers:"opendiscord:verifybar-autoclose-message"} - "openticket:error":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:string,layout:"simple"|"advanced"},workers:"openticket:error"}, - "openticket:error-option-missing":{source:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:ODTextCommandErrorMissingOption},workers:"openticket:error-option-missing"}, - "openticket:error-option-invalid":{source:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:ODTextCommandErrorInvalidOption},workers:"openticket:error-option-invalid"}, - "openticket:error-unknown-command":{source:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:ODTextCommandErrorUnknownCommand},workers:"openticket:error-unknown-command"}, - "openticket:error-no-permissions":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,permissions:ODPermissionEmbedType[]},workers:"openticket:error-no-permissions"}, - "openticket:error-no-permissions-cooldown":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,until?:Date},workers:"openticket:error-no-permissions-cooldown"}, - "openticket:error-no-permissions-blacklisted":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"openticket:error-no-permissions-blacklisted"}, - "openticket:error-no-permissions-limits":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,limit:"global"|"global-user"|"option"|"option-user"},workers:"openticket:error-no-permissions-limits"}, - "openticket:error-responder-timeout":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"openticket:error-responder-timeout"}, - "openticket:error-ticket-unknown":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"openticket:error-ticket-unknown"}, - "openticket:error-ticket-deprecated":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"openticket:error-ticket-deprecated"}, - "openticket:error-option-unknown":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"openticket:error-option-unknown"}, - "openticket:error-panel-unknown":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"openticket:error-panel-unknown"}, - "openticket:error-not-in-guild":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{channel:discord.TextBasedChannel,user:discord.User},workers:"openticket:error-not-in-guild"}, - "openticket:error-channel-rename":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"ticket-pin"|"ticket-unpin"|"ticket-rename"|"ticket-move"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,originalName:string,newName:string},workers:"openticket:error-channel-rename"}, - "openticket:error-ticket-busy":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"openticket:error-ticket-busy"}, + "opendiscord:error":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:string,layout:"simple"|"advanced"},workers:"opendiscord:error"}, + "opendiscord:error-option-missing":{source:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:ODTextCommandErrorMissingOption},workers:"opendiscord:error-option-missing"}, + "opendiscord:error-option-invalid":{source:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:ODTextCommandErrorInvalidOption},workers:"opendiscord:error-option-invalid"}, + "opendiscord:error-unknown-command":{source:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,error:ODTextCommandErrorUnknownCommand},workers:"opendiscord:error-unknown-command"}, + "opendiscord:error-no-permissions":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,permissions:ODPermissionEmbedType[]},workers:"opendiscord:error-no-permissions"}, + "opendiscord:error-no-permissions-cooldown":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,until?:Date},workers:"opendiscord:error-no-permissions-cooldown"}, + "opendiscord:error-no-permissions-blacklisted":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:error-no-permissions-blacklisted"}, + "opendiscord:error-no-permissions-limits":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,limit:"global"|"global-user"|"option"|"option-user"},workers:"opendiscord:error-no-permissions-limits"}, + "opendiscord:error-responder-timeout":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:error-responder-timeout"}, + "opendiscord:error-ticket-unknown":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:error-ticket-unknown"}, + "opendiscord:error-ticket-deprecated":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:error-ticket-deprecated"}, + "opendiscord:error-option-unknown":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:error-option-unknown"}, + "opendiscord:error-panel-unknown":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:error-panel-unknown"}, + "opendiscord:error-not-in-guild":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:error-not-in-guild"}, + "opendiscord:error-channel-rename":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"ticket-pin"|"ticket-unpin"|"ticket-rename"|"ticket-move"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User,originalName:string,newName:string},workers:"opendiscord:error-channel-rename"}, + "opendiscord:error-ticket-busy":{source:"slash"|"text"|"button"|"dropdown"|"modal"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:error-ticket-busy"}, - "openticket:help-menu":{source:"slash"|"text"|"button"|"other",params:{mode:"slash"|"text",page:number},workers:"openticket:help-menu"}, + "opendiscord:help-menu":{source:"slash"|"text"|"button"|"other",params:{mode:"slash"|"text",page:number},workers:"opendiscord:help-menu"}, - "openticket:stats-global":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User},workers:"openticket:stats-global"}, - "openticket:stats-ticket":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,scopeData:ODTicket},workers:"openticket:stats-ticket"}, - "openticket:stats-user":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,scopeData:discord.User},workers:"openticket:stats-user"|"openticket:easter-egg"}, - "openticket:stats-reset":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,reason:string|null},workers:"openticket:stats-reset"}, - "openticket:stats-ticket-unknown":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,id:string},workers:"openticket:stats-ticket-unknown"}, + "opendiscord:stats-global":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:stats-global"}, + "opendiscord:stats-ticket":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,scopeData:ODTicket},workers:"opendiscord:stats-ticket"}, + "opendiscord:stats-user":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,scopeData:discord.User},workers:"opendiscord:stats-user"|"opendiscord:easter-egg"}, + "opendiscord:stats-reset":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,reason:string|null},workers:"opendiscord:stats-reset"}, + "opendiscord:stats-ticket-unknown":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,id:string},workers:"opendiscord:stats-ticket-unknown"}, - "openticket:panel":{source:"slash"|"text"|"auto-update"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel},workers:"openticket:panel-layout"|"openticket:panel-components"}, - "openticket:panel-ready":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel},workers:"openticket:panel-ready"}, + "opendiscord:panel":{source:"slash"|"text"|"auto-update"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel},workers:"opendiscord:panel-layout"|"opendiscord:panel-components"}, + "opendiscord:panel-ready":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,panel:ODPanel},workers:"opendiscord:panel-ready"}, - "openticket:ticket-created":{source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:ticket-created"}, - "openticket:ticket-created-dm":{source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:ticket-created-dm"}, - "openticket:ticket-created-logs":{source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:ticket-created-logs"}, - "openticket:ticket-message":{source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:ticket-message-layout"|"openticket:ticket-message-components"|"openticket:ticket-message-disable-components"}, - "openticket:close-message":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"autoclose"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:close-message"}, - "openticket:reopen-message":{source:"slash"|"text"|"ticket-message"|"close-message"|"autoclose-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:reopen-message"}, - "openticket:delete-message":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:delete-message"}, - "openticket:claim-message":{source:"slash"|"text"|"ticket-message"|"unclaim-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:claim-message"}, - "openticket:unclaim-message":{source:"slash"|"text"|"ticket-message"|"claim-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:unclaim-message"}, - "openticket:pin-message":{source:"slash"|"text"|"ticket-message"|"unpin-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:pin-message"}, - "openticket:unpin-message":{source:"slash"|"text"|"ticket-message"|"pin-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:unpin-message"}, - "openticket:rename-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:string},workers:"openticket:rename-message"}, - "openticket:move-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:ODTicketOption},workers:"openticket:move-message"}, - "openticket:add-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:discord.User},workers:"openticket:add-message"}, - "openticket:remove-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:discord.User},workers:"openticket:remove-message"}, - "openticket:ticket-action-dm":{source:"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:"openticket:ticket-action-dm"}, - "openticket:ticket-action-logs":{source:"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:"openticket:ticket-action-logs"}, + "opendiscord:ticket-created":{source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:ticket-created"}, + "opendiscord:ticket-created-dm":{source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:ticket-created-dm"}, + "opendiscord:ticket-created-logs":{source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:ticket-created-logs"}, + "opendiscord:ticket-message":{source:"panel-button"|"panel-dropdown"|"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:ticket-message-layout"|"opendiscord:ticket-message-components"|"opendiscord:ticket-message-disable-components"}, + "opendiscord:close-message":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"autoclose"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:close-message"}, + "opendiscord:reopen-message":{source:"slash"|"text"|"ticket-message"|"close-message"|"autoclose-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:reopen-message"}, + "opendiscord:delete-message":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:delete-message"}, + "opendiscord:claim-message":{source:"slash"|"text"|"ticket-message"|"unclaim-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:claim-message"}, + "opendiscord:unclaim-message":{source:"slash"|"text"|"ticket-message"|"claim-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:unclaim-message"}, + "opendiscord:pin-message":{source:"slash"|"text"|"ticket-message"|"unpin-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:pin-message"}, + "opendiscord:unpin-message":{source:"slash"|"text"|"ticket-message"|"pin-message"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:unpin-message"}, + "opendiscord:rename-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null,data:string},workers:"opendiscord:rename-message"}, + "opendiscord:move-message":{source:"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":{source:"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":{source:"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":{source:"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":{source:"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"}, - "openticket:blacklist-view":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User},workers:"openticket:blacklist-view"}, - "openticket:blacklist-get":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,data:discord.User},workers:"openticket:blacklist-get"}, - "openticket:blacklist-add":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,data:discord.User,reason:string|null},workers:"openticket:blacklist-add"}, - "openticket:blacklist-remove":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,data:discord.User,reason:string|null},workers:"openticket:blacklist-remove"}, - "openticket:blacklist-dm":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"add"|"remove",data:discord.User,reason:string|null},workers:"openticket:blacklist-dm"}, - "openticket:blacklist-logs":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"add"|"remove",data:discord.User,reason:string|null},workers:"openticket:blacklist-logs"}, + "opendiscord:blacklist-view":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:blacklist-view"}, + "opendiscord:blacklist-get":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,data:discord.User},workers:"opendiscord:blacklist-get"}, + "opendiscord:blacklist-add":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,data:discord.User,reason:string|null},workers:"opendiscord:blacklist-add"}, + "opendiscord:blacklist-remove":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,data:discord.User,reason:string|null},workers:"opendiscord:blacklist-remove"}, + "opendiscord:blacklist-dm":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"add"|"remove",data:discord.User,reason:string|null},workers:"opendiscord:blacklist-dm"}, + "opendiscord:blacklist-logs":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.TextBasedChannel,user:discord.User,mode:"add"|"remove",data:discord.User,reason:string|null},workers:"opendiscord:blacklist-logs"}, - "openticket:transcript-text-ready":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{contents:string}>,result:ODTranscriptCompilerCompileResult<{contents:string}>},workers:"openticket:transcript-text-ready"}, - "openticket:transcript-html-ready":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{url:string}>,result:ODTranscriptCompilerCompileResult<{url:string}>},workers:"openticket:transcript-html-ready"}, - "openticket:transcript-html-progress":{source:"channel"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{url:string}>,remaining:number},workers:"openticket:transcript-html-progress"}, - "openticket:transcript-error":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler,reason:string|null},workers:"openticket:transcript-error"}, + "opendiscord:transcript-text-ready":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{contents:string}>,result:ODTranscriptCompilerCompileResult<{contents:string}>},workers:"opendiscord:transcript-text-ready"}, + "opendiscord:transcript-html-ready":{source:"channel"|"creator-dm"|"participant-dm"|"active-admin-dm"|"every-admin-dm"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{url:string}>,result:ODTranscriptCompilerCompileResult<{url:string}>},workers:"opendiscord:transcript-html-ready"}, + "opendiscord:transcript-html-progress":{source:"channel"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler<{url:string}>,remaining:number},workers:"opendiscord:transcript-html-progress"}, + "opendiscord:transcript-error":{source:"slash"|"text"|"ticket-message"|"reopen-message"|"close-message"|"autoclose-message"|"autodelete"|"clear"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,compiler:ODTranscriptCompiler,reason:string|null},workers:"opendiscord:transcript-error"}, - "openticket:reaction-role":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"openticket:reaction-role"}, - "openticket:clear-verify-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"openticket:clear-verify-message"}, - "openticket:clear-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"openticket:clear-message"}, - "openticket:clear-logs":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"openticket:clear-logs"}, + "opendiscord:reaction-role":{source:"panel-button"|"other",params:{guild:discord.Guild,user:discord.User,role:ODRole,result:ODRoleUpdateResult[]},workers:"opendiscord:reaction-role"}, + "opendiscord:clear-verify-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-verify-message"}, + "opendiscord:clear-message":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-message"}, + "opendiscord:clear-logs":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,filter:ODTicketClearFilter,list:string[]},workers:"opendiscord:clear-logs"}, - "openticket:autoclose-message":{source:"timeout"|"leave"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:autoclose-message"}, - "openticket:autodelete-message":{source:"timeout"|"leave"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket},workers:"openticket:autodelete-message"}, - "openticket:autoclose-enable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,time:number,reason:string|null},workers:"openticket:autoclose-enable"}, - "openticket:autodelete-enable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,time:number,reason:string|null},workers:"openticket:autodelete-enable"}, - "openticket:autoclose-disable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:autoclose-disable"}, - "openticket:autodelete-disable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"openticket:autodelete-disable"}, + "opendiscord:autoclose-message":{source:"timeout"|"leave"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:autoclose-message"}, + "opendiscord:autodelete-message":{source:"timeout"|"leave"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket},workers:"opendiscord:autodelete-message"}, + "opendiscord:autoclose-enable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,time:number,reason:string|null},workers:"opendiscord:autoclose-enable"}, + "opendiscord:autodelete-enable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,time:number,reason:string|null},workers:"opendiscord:autodelete-enable"}, + "opendiscord:autoclose-disable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:autoclose-disable"}, + "opendiscord:autodelete-disable":{source:"slash"|"text"|"other",params:{guild:discord.Guild,channel:discord.GuildTextBasedChannel,user:discord.User,ticket:ODTicket,reason:string|null},workers:"opendiscord:autodelete-disable"}, } /**## ODMessageManager_Default `default_class` @@ -475,14 +475,14 @@ export class ODMessage_Default m.type == "error").length > 0 const hasWarnings = data.messages.filter((m) => m.type == "warning").length > 0 @@ -213,19 +213,19 @@ export class ODCheckerRenderer_Default extends ODCheckerRenderer { * It's used to generate typescript declarations for this class. */ export type ODCheckerTranslationRegisterOtherIds_Default = ( - "openticket:header-openticket"| - "openticket:header-configchecker"| - "openticket:header-description"| - "openticket:type-error"| - "openticket:type-warning"| - "openticket:type-info"| - "openticket:data-path"| - "openticket:data-docs"| - "openticket:data-message"| - "openticket:compact-information"| - "openticket:footer-error"| - "openticket:footer-warning"| - "openticket:footer-support" + "opendiscord:header-openticket"| + "opendiscord:header-configchecker"| + "opendiscord:header-description"| + "opendiscord:type-error"| + "opendiscord:type-warning"| + "opendiscord:type-info"| + "opendiscord:data-path"| + "opendiscord:data-docs"| + "opendiscord:data-message"| + "opendiscord:compact-information"| + "opendiscord:footer-error"| + "opendiscord:footer-warning"| + "opendiscord:footer-support" ) /**## ODCheckerTranslationRegisterMessageIds_Default `interface` @@ -233,73 +233,73 @@ export type ODCheckerTranslationRegisterOtherIds_Default = ( * It's used to generate typescript declarations for this class. */ export type ODCheckerTranslationRegisterMessageIds_Default = ( - "openticket:invalid-type"| - "openticket:property-missing"| - "openticket:property-optional"| - "openticket:object-disabled"| - "openticket:null-invalid"| - "openticket:switch-invalid-type"| - "openticket:object-switch-invalid-type"| + "opendiscord:invalid-type"| + "opendiscord:property-missing"| + "opendiscord:property-optional"| + "opendiscord:object-disabled"| + "opendiscord:null-invalid"| + "opendiscord:switch-invalid-type"| + "opendiscord:object-switch-invalid-type"| - "openticket:string-too-short"| - "openticket:string-too-long"| - "openticket:string-length-invalid"| - "openticket:string-starts-with"| - "openticket:string-ends-with"| - "openticket:string-contains"| - "openticket:string-choices"| - "openticket:string-regex"| + "opendiscord:string-too-short"| + "opendiscord:string-too-long"| + "opendiscord:string-length-invalid"| + "opendiscord:string-starts-with"| + "opendiscord:string-ends-with"| + "opendiscord:string-contains"| + "opendiscord:string-choices"| + "opendiscord:string-regex"| - "openticket:number-too-short"| - "openticket:number-too-long"| - "openticket:number-length-invalid"| - "openticket:number-too-small"| - "openticket:number-too-large"| - "openticket:number-not-equal"| - "openticket:number-step"| - "openticket:number-step-offset"| - "openticket:number-starts-with"| - "openticket:number-ends-with"| - "openticket:number-contains"| - "openticket:number-choices"| - "openticket:number-float"| - "openticket:number-negative"| - "openticket:number-positive"| - "openticket:number-zero"| + "opendiscord:number-too-short"| + "opendiscord:number-too-long"| + "opendiscord:number-length-invalid"| + "opendiscord:number-too-small"| + "opendiscord:number-too-large"| + "opendiscord:number-not-equal"| + "opendiscord:number-step"| + "opendiscord:number-step-offset"| + "opendiscord:number-starts-with"| + "opendiscord:number-ends-with"| + "opendiscord:number-contains"| + "opendiscord:number-choices"| + "opendiscord:number-float"| + "opendiscord:number-negative"| + "opendiscord:number-positive"| + "opendiscord:number-zero"| - "openticket:boolean-true"| - "openticket:boolean-false"| + "opendiscord:boolean-true"| + "opendiscord:boolean-false"| - "openticket:array-empty-disabled"| - "openticket:array-empty-required"| - "openticket:array-too-short"| - "openticket:array-too-long"| - "openticket:array-length-invalid"| - "openticket:array-invalid-types"| - "openticket:array-double"| + "opendiscord:array-empty-disabled"| + "opendiscord:array-empty-required"| + "opendiscord:array-too-short"| + "opendiscord:array-too-long"| + "opendiscord:array-length-invalid"| + "opendiscord:array-invalid-types"| + "opendiscord:array-double"| - "openticket:discord-invalid-id"| - "openticket:discord-invalid-id-options"| - "openticket:discord-invalid-token"| - "openticket:color-invalid"| - "openticket:emoji-too-short"| - "openticket:emoji-too-long"| - "openticket:emoji-custom"| - "openticket:emoji-invalid"| - "openticket:url-invalid"| - "openticket:url-invalid-http"| - "openticket:url-invalid-protocol"| - "openticket:url-invalid-hostname"| - "openticket:url-invalid-extension"| - "openticket:url-invalid-path"| - "openticket:id-not-unique"| - "openticket:id-non-existent"| + "opendiscord:discord-invalid-id"| + "opendiscord:discord-invalid-id-options"| + "opendiscord:discord-invalid-token"| + "opendiscord:color-invalid"| + "opendiscord:emoji-too-short"| + "opendiscord:emoji-too-long"| + "opendiscord:emoji-custom"| + "opendiscord:emoji-invalid"| + "opendiscord:url-invalid"| + "opendiscord:url-invalid-http"| + "opendiscord:url-invalid-protocol"| + "opendiscord:url-invalid-hostname"| + "opendiscord:url-invalid-extension"| + "opendiscord:url-invalid-path"| + "opendiscord:id-not-unique"| + "opendiscord:id-non-existent"| - "openticket:invalid-language"| - "openticket:invalid-button"| - "openticket:unused-option"| - "openticket:unused-question"| - "openticket:dropdown-option" + "opendiscord:invalid-language"| + "opendiscord:invalid-button"| + "opendiscord:unused-option"| + "opendiscord:unused-question"| + "opendiscord:dropdown-option" ) /**## ODCheckerTranslationRegister_Default `default_class` @@ -346,9 +346,9 @@ export class ODCheckerTranslationRegister_Default extends ODCheckerTranslationRe * It's used to generate typescript declarations for this class. */ export interface ODCheckerFunctionManagerIds_Default { - "openticket:unused-options":ODCheckerFunction, - "openticket:unused-questions":ODCheckerFunction, - "openticket:dropdown-options":ODCheckerFunction + "opendiscord:unused-options":ODCheckerFunction, + "opendiscord:unused-questions":ODCheckerFunction, + "opendiscord:dropdown-options":ODCheckerFunction } /**## ODCheckerFunctionManager_Default `default_class` diff --git a/src/core/api/defaults/client.ts b/src/core/api/defaults/client.ts index 90d8a22..d451afa 100644 --- a/src/core/api/defaults/client.ts +++ b/src/core/api/defaults/client.ts @@ -20,25 +20,25 @@ export class ODClientManager_Default extends ODClientManager { * It's used to generate typescript declarations for this class. */ export interface ODSlashCommandManagerIds_Default { - "openticket:help":ODSlashCommand, - "openticket:panel":ODSlashCommand, - "openticket:ticket":ODSlashCommand, - "openticket:close":ODSlashCommand, - "openticket:delete":ODSlashCommand, - "openticket:reopen":ODSlashCommand, - "openticket:claim":ODSlashCommand, - "openticket:unclaim":ODSlashCommand, - "openticket:pin":ODSlashCommand, - "openticket:unpin":ODSlashCommand, - "openticket:move":ODSlashCommand, - "openticket:rename":ODSlashCommand, - "openticket:add":ODSlashCommand, - "openticket:remove":ODSlashCommand, - "openticket:blacklist":ODSlashCommand, - "openticket:stats":ODSlashCommand, - "openticket:clear":ODSlashCommand, - "openticket:autoclose":ODSlashCommand, - "openticket:autodelete":ODSlashCommand, + "opendiscord:help":ODSlashCommand, + "opendiscord:panel":ODSlashCommand, + "opendiscord:ticket":ODSlashCommand, + "opendiscord:close":ODSlashCommand, + "opendiscord:delete":ODSlashCommand, + "opendiscord:reopen":ODSlashCommand, + "opendiscord:claim":ODSlashCommand, + "opendiscord:unclaim":ODSlashCommand, + "opendiscord:pin":ODSlashCommand, + "opendiscord:unpin":ODSlashCommand, + "opendiscord:move":ODSlashCommand, + "opendiscord:rename":ODSlashCommand, + "opendiscord:add":ODSlashCommand, + "opendiscord:remove":ODSlashCommand, + "opendiscord:blacklist":ODSlashCommand, + "opendiscord:stats":ODSlashCommand, + "opendiscord:clear":ODSlashCommand, + "opendiscord:autoclose":ODSlashCommand, + "opendiscord:autodelete":ODSlashCommand, } /**## ODSlashCommandManager_Default `default_class` @@ -82,33 +82,33 @@ export class ODSlashCommandManager_Default extends ODSlashCommandManager { * It's used to generate typescript declarations for this class. */ export interface ODTextCommandManagerIds_Default { - "openticket:dump":ODTextCommand, - "openticket:help":ODTextCommand, - "openticket:panel":ODTextCommand, - "openticket:close":ODTextCommand, - "openticket:delete":ODTextCommand, - "openticket:reopen":ODTextCommand, - "openticket:claim":ODTextCommand, - "openticket:unclaim":ODTextCommand, - "openticket:pin":ODTextCommand, - "openticket:unpin":ODTextCommand, - "openticket:move":ODTextCommand, - "openticket:rename":ODTextCommand, - "openticket:add":ODTextCommand, - "openticket:remove":ODTextCommand, - "openticket:blacklist-view":ODTextCommand, - "openticket:blacklist-add":ODTextCommand, - "openticket:blacklist-remove":ODTextCommand, - "openticket:blacklist-get":ODTextCommand, - "openticket:stats-global":ODTextCommand, - "openticket:stats-reset":ODTextCommand, - "openticket:stats-ticket":ODTextCommand, - "openticket:stats-user":ODTextCommand, - "openticket:clear":ODTextCommand, - "openticket:autoclose-disable":ODTextCommand, - "openticket:autoclose-enable":ODTextCommand, - "openticket:autodelete-disable":ODTextCommand, - "openticket:autodelete-enable":ODTextCommand + "opendiscord:dump":ODTextCommand, + "opendiscord:help":ODTextCommand, + "opendiscord:panel":ODTextCommand, + "opendiscord:close":ODTextCommand, + "opendiscord:delete":ODTextCommand, + "opendiscord:reopen":ODTextCommand, + "opendiscord:claim":ODTextCommand, + "opendiscord:unclaim":ODTextCommand, + "opendiscord:pin":ODTextCommand, + "opendiscord:unpin":ODTextCommand, + "opendiscord:move":ODTextCommand, + "opendiscord:rename":ODTextCommand, + "opendiscord:add":ODTextCommand, + "opendiscord:remove":ODTextCommand, + "opendiscord:blacklist-view":ODTextCommand, + "opendiscord:blacklist-add":ODTextCommand, + "opendiscord:blacklist-remove":ODTextCommand, + "opendiscord:blacklist-get":ODTextCommand, + "opendiscord:stats-global":ODTextCommand, + "opendiscord:stats-reset":ODTextCommand, + "opendiscord:stats-ticket":ODTextCommand, + "opendiscord:stats-user":ODTextCommand, + "opendiscord:clear":ODTextCommand, + "opendiscord:autoclose-disable":ODTextCommand, + "opendiscord:autoclose-enable":ODTextCommand, + "opendiscord:autodelete-disable":ODTextCommand, + "opendiscord:autodelete-enable":ODTextCommand } /**## ODTextCommandManager_Default `default_class` diff --git a/src/core/api/defaults/code.ts b/src/core/api/defaults/code.ts index 508ff26..7ef19a8 100644 --- a/src/core/api/defaults/code.ts +++ b/src/core/api/defaults/code.ts @@ -9,22 +9,22 @@ import { ODCode, ODCodeManager } from "../modules/code" * It's used to generate typescript declarations for this class. */ export interface ODCodeManagerIds_Default { - "openticket:command-error-handling":ODCode, - "openticket:start-listening-interactions":ODCode, - "openticket:panel-database-cleaner":ODCode, - "openticket:suffix-database-cleaner":ODCode, - "openticket:option-database-cleaner":ODCode, - "openticket:user-database-cleaner":ODCode, - "openticket:ticket-database-cleaner":ODCode, - "openticket:panel-auto-update":ODCode, - "openticket:ticket-saver":ODCode, - "openticket:blacklist-saver":ODCode, - "openticket:auto-role-on-join":ODCode, - "openticket:autoclose-timeout":ODCode, - "openticket:autoclose-leave":ODCode, - "openticket:autodelete-timeout":ODCode, - "openticket:autodelete-leave":ODCode, - "openticket:ticket-anti-busy":ODCode, + "opendiscord:command-error-handling":ODCode, + "opendiscord:start-listening-interactions":ODCode, + "opendiscord:panel-database-cleaner":ODCode, + "opendiscord:suffix-database-cleaner":ODCode, + "opendiscord:option-database-cleaner":ODCode, + "opendiscord:user-database-cleaner":ODCode, + "opendiscord:ticket-database-cleaner":ODCode, + "opendiscord:panel-auto-update":ODCode, + "opendiscord:ticket-saver":ODCode, + "opendiscord:blacklist-saver":ODCode, + "opendiscord:auto-role-on-join":ODCode, + "opendiscord:autoclose-timeout":ODCode, + "opendiscord:autoclose-leave":ODCode, + "opendiscord:autodelete-timeout":ODCode, + "opendiscord:autodelete-leave":ODCode, + "opendiscord:ticket-anti-busy":ODCode, } /**## ODCodeManager_Default `default_class` diff --git a/src/core/api/defaults/config.ts b/src/core/api/defaults/config.ts index 0936bd2..ccdcfd0 100644 --- a/src/core/api/defaults/config.ts +++ b/src/core/api/defaults/config.ts @@ -12,11 +12,11 @@ import { ODRoleUpdateMode } from "../openticket/role" * It's used to generate typescript declarations for this class. */ export interface ODConfigManagerIds_Default { - "openticket:general":ODJsonConfig_DefaultGeneral, - "openticket:options":ODJsonConfig_DefaultOptions, - "openticket:panels":ODJsonConfig_DefaultPanels, - "openticket:questions":ODJsonConfig_DefaultQuestions, - "openticket:transcripts":ODJsonConfig_DefaultTranscripts + "opendiscord:general":ODJsonConfig_DefaultGeneral, + "opendiscord:options":ODJsonConfig_DefaultOptions, + "opendiscord:panels":ODJsonConfig_DefaultPanels, + "opendiscord:questions":ODJsonConfig_DefaultQuestions, + "opendiscord:transcripts":ODJsonConfig_DefaultTranscripts } /**## ODConfigManager_Default `default_class` @@ -102,7 +102,7 @@ export class ODJsonConfig_DefaultGeneral extends ODJsonConfig { /**The main (hex) color used in almost every embed in the bot. */ mainColor:discord.ColorResolvable, - /**The language to use. Can be the id of the language or the id without the prefix when using `openticket:...`. */ + /**The language to use. Can be the id of the language or the id without the prefix when using `opendiscord:...`. */ language:string, /**The prefix used in all text-commands. */ prefix:string, diff --git a/src/core/api/defaults/console.ts b/src/core/api/defaults/console.ts index d824fce..6b4d0da 100644 --- a/src/core/api/defaults/console.ts +++ b/src/core/api/defaults/console.ts @@ -9,7 +9,7 @@ import { ODLiveStatusUrlSource, ODLiveStatusManager, ODLiveStatusSource } from " * It's used to generate typescript declarations for this class. */ export interface ODLiveStatusManagerIds_Default { - "openticket:default-djdj-dev":ODLiveStatusUrlSource + "opendiscord:default-djdj-dev":ODLiveStatusUrlSource } /**## ODLiveStatusManager_Default `default_class` diff --git a/src/core/api/defaults/database.ts b/src/core/api/defaults/database.ts index 012be40..9dd3bcc 100644 --- a/src/core/api/defaults/database.ts +++ b/src/core/api/defaults/database.ts @@ -11,11 +11,11 @@ import { ODOptionJson } from "../openticket/option" * It's used to generate typescript declarations for this class. */ export interface ODDatabaseManagerIds_Default { - "openticket:global":ODFormattedJsonDatabase_DefaultGlobal, - "openticket:stats":ODFormattedJsonDatabase, - "openticket:tickets":ODFormattedJsonDatabase_DefaultTickets, - "openticket:users":ODFormattedJsonDatabase_DefaultUsers, - "openticket:options":ODFormattedJsonDatabase_DefaultOptions, + "opendiscord:global":ODFormattedJsonDatabase_DefaultGlobal, + "opendiscord:stats":ODFormattedJsonDatabase, + "opendiscord:tickets":ODFormattedJsonDatabase_DefaultTickets, + "opendiscord:users":ODFormattedJsonDatabase_DefaultUsers, + "opendiscord:options":ODFormattedJsonDatabase_DefaultOptions, } /**## ODDatabaseManager_Default `default_class` @@ -52,10 +52,10 @@ export class ODDatabaseManager_Default extends ODDatabaseManager { * It's used to generate typescript declarations for this class. */ export interface ODFormattedJsonDatabaseIds_DefaultGlobal { - "openticket:panel-update":string, - "openticket:option-suffix-counter":number, - "openticket:option-suffix-history":string[], - "openticket:last-version":string + "opendiscord:panel-update":string, + "opendiscord:option-suffix-counter":number, + "opendiscord:option-suffix-history":string[], + "opendiscord:last-version":string } /**## ODFormattedJsonDatabase_DefaultGlobal `default_class` @@ -106,7 +106,7 @@ export class ODFormattedJsonDatabase_DefaultGlobal extends ODFormattedJsonDataba * It's used to generate typescript declarations for this class. */ export interface ODFormattedJsonDatabaseIds_DefaultTickets { - "openticket:ticket":ODTicketJson + "opendiscord:ticket":ODTicketJson } /**## ODFormattedJsonDatabase_DefaultTickets `default_class` @@ -157,7 +157,7 @@ export class ODFormattedJsonDatabase_DefaultTickets extends ODFormattedJsonDatab * It's used to generate typescript declarations for this class. */ export interface ODFormattedJsonDatabaseIds_DefaultUsers { - "openticket:blacklist":ODTicketJson + "opendiscord:blacklist":ODTicketJson } /**## ODFormattedJsonDatabase_DefaultUsers `default_class` @@ -209,7 +209,7 @@ export class ODFormattedJsonDatabase_DefaultUsers extends ODFormattedJsonDatabas * It's used to generate typescript declarations for this class. */ export interface ODFormattedJsonDatabaseIds_DefaultOptions { - "openticket:used-option":ODOptionJson + "opendiscord:used-option":ODOptionJson } /**## ODFormattedJsonDatabase_DefaultOptions `default_class` diff --git a/src/core/api/defaults/flag.ts b/src/core/api/defaults/flag.ts index dbc066f..bf2d5eb 100644 --- a/src/core/api/defaults/flag.ts +++ b/src/core/api/defaults/flag.ts @@ -9,20 +9,20 @@ import { ODFlagManager, ODFlag } from "../modules/flag" * It's used to generate typescript declarations for this class. */ export interface ODFlagManagerIds_Default { - "openticket:no-migration":ODFlag, - "openticket:dev-config":ODFlag, - "openticket:dev-database":ODFlag, - "openticket:debug":ODFlag, - "openticket:crash":ODFlag, - "openticket:no-transcripts":ODFlag, - "openticket:no-checker":ODFlag, - "openticket:checker":ODFlag, - "openticket:no-easter":ODFlag, - "openticket:no-plugins":ODFlag, - "openticket:soft-plugins":ODFlag, - "openticket:force-slash-update":ODFlag, - "openticket:no-compile":ODFlag, - "openticket:compile-only":ODFlag, + "opendiscord:no-migration":ODFlag, + "opendiscord:dev-config":ODFlag, + "opendiscord:dev-database":ODFlag, + "opendiscord:debug":ODFlag, + "opendiscord:crash":ODFlag, + "opendiscord:no-transcripts":ODFlag, + "opendiscord:no-checker":ODFlag, + "opendiscord:checker":ODFlag, + "opendiscord:no-easter":ODFlag, + "opendiscord:no-plugins":ODFlag, + "opendiscord:soft-plugins":ODFlag, + "opendiscord:force-slash-update":ODFlag, + "opendiscord:no-compile":ODFlag, + "opendiscord:compile-only":ODFlag, } /**## ODFlagManager_Default `default_class` diff --git a/src/core/api/defaults/helpmenu.ts b/src/core/api/defaults/helpmenu.ts index 50624fc..a8a986d 100644 --- a/src/core/api/defaults/helpmenu.ts +++ b/src/core/api/defaults/helpmenu.ts @@ -9,13 +9,13 @@ import { ODHelpMenuCategory, ODHelpMenuCommandComponent, ODHelpMenuComponent, OD * It's used to generate typescript declarations for this class. */ export interface ODHelpMenuManagerIds_Default { - "openticket:general":ODHelpMenuCategory_DefaultGeneral, - "openticket:ticket-basic":ODHelpMenuCategory_DefaultTicketBasic, - "openticket:ticket-advanced":ODHelpMenuCategory_DefaultTicketAdvanced, - "openticket:ticket-user":ODHelpMenuCategory_DefaultTicketUser, - "openticket:admin":ODHelpMenuCategory_DefaultAdmin, - "openticket:advanced":ODHelpMenuCategory_DefaultAdvanced, - "openticket:extra":ODHelpMenuCategory_DefaultExtra + "opendiscord:general":ODHelpMenuCategory_DefaultGeneral, + "opendiscord:ticket-basic":ODHelpMenuCategory_DefaultTicketBasic, + "opendiscord:ticket-advanced":ODHelpMenuCategory_DefaultTicketAdvanced, + "opendiscord:ticket-user":ODHelpMenuCategory_DefaultTicketUser, + "opendiscord:admin":ODHelpMenuCategory_DefaultAdmin, + "opendiscord:advanced":ODHelpMenuCategory_DefaultAdvanced, + "opendiscord:extra":ODHelpMenuCategory_DefaultExtra } /**## ODHelpMenuManager_Default `default_class` @@ -52,15 +52,15 @@ export class ODHelpMenuManager_Default extends ODHelpMenuManager { * It's used to generate typescript declarations for this class. */ export interface ODHelpMenuManagerCategoryIds_DefaultGeneral { - "openticket:help":ODHelpMenuCommandComponent, - "openticket:ticket":ODHelpMenuCommandComponent|null + "opendiscord:help":ODHelpMenuCommandComponent, + "opendiscord:ticket":ODHelpMenuCommandComponent|null } /**## ODHelpMenuCategory_DefaultGeneral `default_class` * This is a special class that adds type definitions & typescript to the ODHelpMenuManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:general` category in `opendiscord.helpmenu`! + * This default class is made for the `opendiscord:general` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultGeneral extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultGeneral[HelpMenuCategoryId] @@ -90,16 +90,16 @@ export class ODHelpMenuCategory_DefaultGeneral extends ODHelpMenuCategory { * It's used to generate typescript declarations for this class. */ export interface ODHelpMenuManagerCategoryIds_DefaultTicketBasic { - "openticket:close":ODHelpMenuCommandComponent, - "openticket:delete":ODHelpMenuCommandComponent, - "openticket:reopen":ODHelpMenuCommandComponent + "opendiscord:close":ODHelpMenuCommandComponent, + "opendiscord:delete":ODHelpMenuCommandComponent, + "opendiscord:reopen":ODHelpMenuCommandComponent } /**## ODHelpMenuCategory_DefaultTicketBasic `default_class` * This is a special class that adds type definitions & typescript to the ODHelpMenuManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:ticket` category in `opendiscord.helpmenu`! + * This default class is made for the `opendiscord:ticket` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultTicketBasic extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketBasic[HelpMenuCategoryId] @@ -129,17 +129,17 @@ export class ODHelpMenuCategory_DefaultTicketBasic extends ODHelpMenuCategory { * It's used to generate typescript declarations for this class. */ export interface ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced { - "openticket:pin":ODHelpMenuCommandComponent, - "openticket:unpin":ODHelpMenuCommandComponent, - "openticket:move":ODHelpMenuCommandComponent, - "openticket:rename":ODHelpMenuCommandComponent + "opendiscord:pin":ODHelpMenuCommandComponent, + "opendiscord:unpin":ODHelpMenuCommandComponent, + "opendiscord:move":ODHelpMenuCommandComponent, + "opendiscord:rename":ODHelpMenuCommandComponent } /**## ODHelpMenuCategory_DefaultTicketAdvanced `default_class` * This is a special class that adds type definitions & typescript to the ODHelpMenuManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:ticket` category in `opendiscord.helpmenu`! + * This default class is made for the `opendiscord:ticket` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultTicketAdvanced extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced[HelpMenuCategoryId] @@ -169,17 +169,17 @@ export class ODHelpMenuCategory_DefaultTicketAdvanced extends ODHelpMenuCategory * It's used to generate typescript declarations for this class. */ export interface ODHelpMenuManagerCategoryIds_DefaultTicketUser { - "openticket:claim":ODHelpMenuCommandComponent, - "openticket:unclaim":ODHelpMenuCommandComponent, - "openticket:add":ODHelpMenuCommandComponent, - "openticket:remove":ODHelpMenuCommandComponent + "opendiscord:claim":ODHelpMenuCommandComponent, + "opendiscord:unclaim":ODHelpMenuCommandComponent, + "opendiscord:add":ODHelpMenuCommandComponent, + "opendiscord:remove":ODHelpMenuCommandComponent } /**## ODHelpMenuCategory_DefaultTicketUser `default_class` * This is a special class that adds type definitions & typescript to the ODHelpMenuManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:ticket` category in `opendiscord.helpmenu`! + * This default class is made for the `opendiscord:ticket` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultTicketUser extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketUser[HelpMenuCategoryId] @@ -209,18 +209,18 @@ export class ODHelpMenuCategory_DefaultTicketUser extends ODHelpMenuCategory { * It's used to generate typescript declarations for this class. */ export interface ODHelpMenuManagerCategoryIds_DefaultAdmin { - "openticket:panel":ODHelpMenuCommandComponent, - "openticket:blacklist-view":ODHelpMenuCommandComponent, - "openticket:blacklist-add":ODHelpMenuCommandComponent, - "openticket:blacklist-remove":ODHelpMenuCommandComponent, - "openticket:blacklist-get":ODHelpMenuCommandComponent + "opendiscord:panel":ODHelpMenuCommandComponent, + "opendiscord:blacklist-view":ODHelpMenuCommandComponent, + "opendiscord:blacklist-add":ODHelpMenuCommandComponent, + "opendiscord:blacklist-remove":ODHelpMenuCommandComponent, + "opendiscord:blacklist-get":ODHelpMenuCommandComponent } /**## ODHelpMenuCategory_DefaultAdmin `default_class` * This is a special class that adds type definitions & typescript to the ODHelpMenuManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:admin` category in `opendiscord.helpmenu`! + * This default class is made for the `opendiscord:admin` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultAdmin extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultAdmin[HelpMenuCategoryId] @@ -250,19 +250,19 @@ export class ODHelpMenuCategory_DefaultAdmin extends ODHelpMenuCategory { * It's used to generate typescript declarations for this class. */ export interface ODHelpMenuManagerCategoryIds_DefaultAdvanced { - "openticket:stats-global":ODHelpMenuCommandComponent, - "openticket:stats-reset":ODHelpMenuCommandComponent, - "openticket:stats-ticket":ODHelpMenuCommandComponent, - "openticket:stats-user":ODHelpMenuCommandComponent, - "openticket:autoclose-disable":ODHelpMenuCommandComponent, - "openticket:autoclose-enable":ODHelpMenuCommandComponent + "opendiscord:stats-global":ODHelpMenuCommandComponent, + "opendiscord:stats-reset":ODHelpMenuCommandComponent, + "opendiscord:stats-ticket":ODHelpMenuCommandComponent, + "opendiscord:stats-user":ODHelpMenuCommandComponent, + "opendiscord:autoclose-disable":ODHelpMenuCommandComponent, + "opendiscord:autoclose-enable":ODHelpMenuCommandComponent } /**## ODHelpMenuCategory_DefaultAdvanced `default_class` * This is a special class that adds type definitions & typescript to the ODHelpMenuManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:advanced` category in `opendiscord.helpmenu`! + * This default class is made for the `opendiscord:advanced` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultAdvanced extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultAdvanced[HelpMenuCategoryId] @@ -297,7 +297,7 @@ export interface ODHelpMenuManagerCategoryIds_DefaultExtra {} * This is a special class that adds type definitions & typescript to the ODHelpMenuManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:general` category in `opendiscord.helpmenu`! + * This default class is made for the `opendiscord:general` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultExtra extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultExtra[HelpMenuCategoryId] diff --git a/src/core/api/defaults/language.ts b/src/core/api/defaults/language.ts index e6849a5..49c4771 100644 --- a/src/core/api/defaults/language.ts +++ b/src/core/api/defaults/language.ts @@ -444,29 +444,29 @@ export type ODLanguageManagerTranslations_Default = ( * It's used to generate typescript declarations for this class. */ export interface ODLanguageManagerIds_Default { - "openticket:custom":ODLanguage, - "openticket:english":ODLanguage, - "openticket:dutch":ODLanguage, - "openticket:portuguese":ODLanguage, - "openticket:czech":ODLanguage, - "openticket:german":ODLanguage, - "openticket:catalan":ODLanguage, - "openticket:hungarian":ODLanguage, - "openticket:spanish":ODLanguage, - "openticket:romanian":ODLanguage, - "openticket:ukrainian":ODLanguage, - "openticket:indonesian":ODLanguage, - "openticket:italian":ODLanguage, - "openticket:estonian":ODLanguage, - "openticket:finnish":ODLanguage, - "openticket:danish":ODLanguage, - "openticket:thai":ODLanguage, - "openticket:turkish":ODLanguage, - "openticket:french":ODLanguage, - "openticket:arabic":ODLanguage, - "openticket:hindi":ODLanguage, - "openticket:lithuanian":ODLanguage, - "openticket:polish":ODLanguage, + "opendiscord:custom":ODLanguage, + "opendiscord:english":ODLanguage, + "opendiscord:dutch":ODLanguage, + "opendiscord:portuguese":ODLanguage, + "opendiscord:czech":ODLanguage, + "opendiscord:german":ODLanguage, + "opendiscord:catalan":ODLanguage, + "opendiscord:hungarian":ODLanguage, + "opendiscord:spanish":ODLanguage, + "opendiscord:romanian":ODLanguage, + "opendiscord:ukrainian":ODLanguage, + "opendiscord:indonesian":ODLanguage, + "opendiscord:italian":ODLanguage, + "opendiscord:estonian":ODLanguage, + "opendiscord:finnish":ODLanguage, + "opendiscord:danish":ODLanguage, + "opendiscord:thai":ODLanguage, + "opendiscord:turkish":ODLanguage, + "opendiscord:french":ODLanguage, + "opendiscord:arabic":ODLanguage, + "opendiscord:hindi":ODLanguage, + "opendiscord:lithuanian":ODLanguage, + "opendiscord:polish":ODLanguage, //ADD NEW LANGUAGES HERE!!! } diff --git a/src/core/api/defaults/permission.ts b/src/core/api/defaults/permission.ts index 5a3f3d7..23b4b02 100644 --- a/src/core/api/defaults/permission.ts +++ b/src/core/api/defaults/permission.ts @@ -17,7 +17,7 @@ export class ODPermissionManager_Default extends ODPermissionManager { } /**## ODPermissionEmbedType `type` - * This type contains all types available in the `openticket:no-permissions` embed. + * This type contains all types available in the `opendiscord:no-permissions` embed. */ export type ODPermissionEmbedType = ( "developer"| diff --git a/src/core/api/defaults/post.ts b/src/core/api/defaults/post.ts index 1776b0b..bdc64db 100644 --- a/src/core/api/defaults/post.ts +++ b/src/core/api/defaults/post.ts @@ -10,8 +10,8 @@ import * as discord from "discord.js" * It's used to generate typescript declarations for this class. */ export interface ODPostManagerIds_Default { - "openticket:logs":ODPost|null, - "openticket:transcripts":ODPost|null + "opendiscord:logs":ODPost|null, + "opendiscord:transcripts":ODPost|null } /**## ODPostManager_Default `default_class` diff --git a/src/core/api/defaults/progressbar.ts b/src/core/api/defaults/progressbar.ts index e0e46fe..2d1b3f1 100644 --- a/src/core/api/defaults/progressbar.ts +++ b/src/core/api/defaults/progressbar.ts @@ -89,12 +89,12 @@ export class ODProgressBarRenderer_Default extends ODProgressBarRenderer(id:StatsId): ODStatGlobalScopeIds_DefaultGlobal[StatsId] @@ -119,15 +119,15 @@ export class ODStatGlobalScope_DefaultGlobal extends ODStatGlobalScope { * It's used to generate typescript declarations for this class. */ export interface ODStatGlobalScopeIds_DefaultSystem { - "openticket:startup-date":ODDynamicStat, - "openticket:version":ODDynamicStat + "opendiscord:startup-date":ODDynamicStat, + "opendiscord:version":ODDynamicStat } /**## ODStatGlobalScope_DefaultSystem `default_class` * This is a special class that adds type definitions & typescript to the ODStatsManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:system` category in `opendiscord.stats`! + * This default class is made for the `opendiscord:system` category in `opendiscord.stats`! */ export class ODStatGlobalScope_DefaultSystem extends ODStatGlobalScope { get(id:StatsId): ODStatGlobalScopeIds_DefaultSystem[StatsId] @@ -178,24 +178,24 @@ export class ODStatGlobalScope_DefaultSystem extends ODStatGlobalScope { * It's used to generate typescript declarations for this class. */ export interface ODStatScopeIds_DefaultUser { - "openticket:name":ODDynamicStat, - "openticket:role":ODDynamicStat, - "openticket:tickets-created":ODBasicStat, - "openticket:tickets-closed":ODBasicStat, - "openticket:tickets-deleted":ODBasicStat, - "openticket:tickets-reopened":ODBasicStat, - "openticket:tickets-claimed":ODBasicStat, - "openticket:tickets-pinned":ODBasicStat, - "openticket:tickets-moved":ODBasicStat, - "openticket:users-blacklisted":ODBasicStat, - "openticket:transcripts-created":ODBasicStat + "opendiscord:name":ODDynamicStat, + "opendiscord:role":ODDynamicStat, + "opendiscord:tickets-created":ODBasicStat, + "opendiscord:tickets-closed":ODBasicStat, + "opendiscord:tickets-deleted":ODBasicStat, + "opendiscord:tickets-reopened":ODBasicStat, + "opendiscord:tickets-claimed":ODBasicStat, + "opendiscord:tickets-pinned":ODBasicStat, + "opendiscord:tickets-moved":ODBasicStat, + "opendiscord:users-blacklisted":ODBasicStat, + "opendiscord:transcripts-created":ODBasicStat } /**## ODStatScope_DefaultUser `default_class` * This is a special class that adds type definitions & typescript to the ODStatsManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:user` category in `opendiscord.stats`! + * This default class is made for the `opendiscord:user` category in `opendiscord.stats`! */ export class ODStatScope_DefaultUser extends ODStatScope { get(id:StatsId): ODStatScopeIds_DefaultUser[StatsId] @@ -246,19 +246,19 @@ export class ODStatScope_DefaultUser extends ODStatScope { * It's used to generate typescript declarations for this class. */ export interface ODStatScopeIds_DefaultTicket { - "openticket:name":ODDynamicStat, - "openticket:status":ODDynamicStat, - "openticket:claimed":ODDynamicStat, - "openticket:pinned":ODDynamicStat, - "openticket:creation-date":ODDynamicStat, - "openticket:creator":ODDynamicStat + "opendiscord:name":ODDynamicStat, + "opendiscord:status":ODDynamicStat, + "opendiscord:claimed":ODDynamicStat, + "opendiscord:pinned":ODDynamicStat, + "opendiscord:creation-date":ODDynamicStat, + "opendiscord:creator":ODDynamicStat } /**## ODStatScope_DefaultTicket `default_class` * This is a special class that adds type definitions & typescript to the ODStatsManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:ticket` category in `opendiscord.stats`! + * This default class is made for the `opendiscord:ticket` category in `opendiscord.stats`! */ export class ODStatScope_DefaultTicket extends ODStatScope { get(id:StatsId): ODStatScopeIds_DefaultTicket[StatsId] @@ -309,14 +309,14 @@ export class ODStatScope_DefaultTicket extends ODStatScope { * It's used to generate typescript declarations for this class. */ export interface ODStatScopeIds_DefaultParticipants { - "openticket:participants":ODDynamicStat + "opendiscord:participants":ODDynamicStat } /**## ODStatScope_DefaultParticipants `default_class` * This is a special class that adds type definitions & typescript to the ODStatsManager class. * It doesn't add any extra features! * - * This default class is made for the `openticket:participants` category in `opendiscord.stats`! + * This default class is made for the `opendiscord:participants` category in `opendiscord.stats`! */ export class ODStatScope_DefaultParticipants extends ODStatScope { get(id:StatsId): ODStatScopeIds_DefaultParticipants[StatsId] diff --git a/src/core/api/defaults/verifybar.ts b/src/core/api/defaults/verifybar.ts index 280eca8..7ee623b 100644 --- a/src/core/api/defaults/verifybar.ts +++ b/src/core/api/defaults/verifybar.ts @@ -12,23 +12,23 @@ import * as discord from "discord.js" * It's used to generate typescript declarations for this class. */ export interface ODVerifyBarManagerIds_Default { - "openticket:claim-ticket-ticket-message":{successWorkerIds:"openticket:permissions"|"openticket:claim-ticket",failureWorkerIds:"openticket:back-to-ticket-message"}, - "openticket:claim-ticket-unclaim-message":{successWorkerIds:"openticket:permissions"|"openticket:claim-ticket",failureWorkerIds:"openticket:back-to-unclaim-message"}, - "openticket:unclaim-ticket-ticket-message":{successWorkerIds:"openticket:permissions"|"openticket:unclaim-ticket",failureWorkerIds:"openticket:back-to-ticket-message"}, - "openticket:unclaim-ticket-claim-message":{successWorkerIds:"openticket:permissions"|"openticket:unclaim-ticket",failureWorkerIds:"openticket:back-to-claim-message"}, - "openticket:pin-ticket-ticket-message":{successWorkerIds:"openticket:permissions"|"openticket:pin-ticket",failureWorkerIds:"openticket:back-to-ticket-message"}, - "openticket:pin-ticket-unpin-message":{successWorkerIds:"openticket:permissions"|"openticket:pin-ticket",failureWorkerIds:"openticket:back-to-unpin-message"}, - "openticket:unpin-ticket-ticket-message":{successWorkerIds:"openticket:permissions"|"openticket:unpin-ticket",failureWorkerIds:"openticket:back-to-ticket-message"}, - "openticket:unpin-ticket-pin-message":{successWorkerIds:"openticket:permissions"|"openticket:unpin-ticket",failureWorkerIds:"openticket:back-to-pin-message"}, - "openticket:close-ticket-ticket-message":{successWorkerIds:"openticket:permissions"|"openticket:close-ticket",failureWorkerIds:"openticket:back-to-ticket-message"}, - "openticket:close-ticket-reopen-message":{successWorkerIds:"openticket:permissions"|"openticket:close-ticket",failureWorkerIds:"openticket:back-to-reopen-message"}, - "openticket:reopen-ticket-ticket-message":{successWorkerIds:"openticket:permissions"|"openticket:reopen-ticket",failureWorkerIds:"openticket:back-to-ticket-message"}, - "openticket:reopen-ticket-close-message":{successWorkerIds:"openticket:permissions"|"openticket:reopen-ticket",failureWorkerIds:"openticket:back-to-close-message"}, - "openticket:reopen-ticket-autoclose-message":{successWorkerIds:"openticket:permissions"|"openticket:reopen-ticket",failureWorkerIds:"openticket:back-to-autoclose-message"}, - "openticket:delete-ticket-ticket-message":{successWorkerIds:"openticket:permissions"|"openticket:delete-ticket",failureWorkerIds:"openticket:back-to-ticket-message"} - "openticket:delete-ticket-close-message":{successWorkerIds:"openticket:permissions"|"openticket:delete-ticket",failureWorkerIds:"openticket:back-to-close-message"} - "openticket:delete-ticket-reopen-message":{successWorkerIds:"openticket:permissions"|"openticket:delete-ticket",failureWorkerIds:"openticket:back-to-reopen-message"} - "openticket:delete-ticket-autoclose-message":{successWorkerIds:"openticket:permissions"|"openticket:delete-ticket",failureWorkerIds:"openticket:back-to-autoclose-message"} + "opendiscord:claim-ticket-ticket-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:claim-ticket",failureWorkerIds:"opendiscord:back-to-ticket-message"}, + "opendiscord:claim-ticket-unclaim-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:claim-ticket",failureWorkerIds:"opendiscord:back-to-unclaim-message"}, + "opendiscord:unclaim-ticket-ticket-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:unclaim-ticket",failureWorkerIds:"opendiscord:back-to-ticket-message"}, + "opendiscord:unclaim-ticket-claim-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:unclaim-ticket",failureWorkerIds:"opendiscord:back-to-claim-message"}, + "opendiscord:pin-ticket-ticket-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:pin-ticket",failureWorkerIds:"opendiscord:back-to-ticket-message"}, + "opendiscord:pin-ticket-unpin-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:pin-ticket",failureWorkerIds:"opendiscord:back-to-unpin-message"}, + "opendiscord:unpin-ticket-ticket-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:unpin-ticket",failureWorkerIds:"opendiscord:back-to-ticket-message"}, + "opendiscord:unpin-ticket-pin-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:unpin-ticket",failureWorkerIds:"opendiscord:back-to-pin-message"}, + "opendiscord:close-ticket-ticket-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:close-ticket",failureWorkerIds:"opendiscord:back-to-ticket-message"}, + "opendiscord:close-ticket-reopen-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:close-ticket",failureWorkerIds:"opendiscord:back-to-reopen-message"}, + "opendiscord:reopen-ticket-ticket-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:reopen-ticket",failureWorkerIds:"opendiscord:back-to-ticket-message"}, + "opendiscord:reopen-ticket-close-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:reopen-ticket",failureWorkerIds:"opendiscord:back-to-close-message"}, + "opendiscord:reopen-ticket-autoclose-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:reopen-ticket",failureWorkerIds:"opendiscord:back-to-autoclose-message"}, + "opendiscord:delete-ticket-ticket-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:delete-ticket",failureWorkerIds:"opendiscord:back-to-ticket-message"} + "opendiscord:delete-ticket-close-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:delete-ticket",failureWorkerIds:"opendiscord:back-to-close-message"} + "opendiscord:delete-ticket-reopen-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:delete-ticket",failureWorkerIds:"opendiscord:back-to-reopen-message"} + "opendiscord:delete-ticket-autoclose-message":{successWorkerIds:"opendiscord:permissions"|"opendiscord:delete-ticket",failureWorkerIds:"opendiscord:back-to-autoclose-message"} } /**## ODVerifyBarManager_Default `default_class` diff --git a/src/core/api/main.ts b/src/core/api/main.ts index 9ca7165..a248982 100644 --- a/src/core/api/main.ts +++ b/src/core/api/main.ts @@ -130,12 +130,12 @@ export class ODMain { constructor(){ this.versions = new ODVersionManager_Default() - this.versions.add(ODVersion.fromString("openticket:version","v4.0.0")) - this.versions.add(ODVersion.fromString("openticket:api","v1.0.0")) - this.versions.add(ODVersion.fromString("openticket:transcripts","v2.0.0")) - this.versions.add(ODVersion.fromString("openticket:livestatus","v2.0.0")) + this.versions.add(ODVersion.fromString("opendiscord:version","v4.0.0")) + this.versions.add(ODVersion.fromString("opendiscord:api","v1.0.0")) + this.versions.add(ODVersion.fromString("opendiscord:transcripts","v2.0.0")) + this.versions.add(ODVersion.fromString("opendiscord:livestatus","v2.0.0")) - this.debugfile = new ODDebugFileManager("./","otdebug.txt",5000,this.versions.get("openticket:version")) + this.debugfile = new ODDebugFileManager("./","otdebug.txt",5000,this.versions.get("opendiscord:version")) this.console = new ODConsoleManager(100,this.debugfile) this.debug = new ODDebugger(this.console) this.events = new ODEventManager_Default(this.debug) diff --git a/src/core/api/modules/base.ts b/src/core/api/modules/base.ts index fda578e..368f237 100644 --- a/src/core/api/modules/base.ts +++ b/src/core/api/modules/base.ts @@ -46,9 +46,6 @@ export type ODInterfaceWithPartialProperty> { constructor(debug:ODDebugger){ super(() => { - return new ODButton("openticket:unknown-button",(instance,params,source,cancel) => { + return new ODButton("opendiscord:unknown-button",(instance,params,source,cancel) => { instance.setCustomId("od:unknown-button") instance.setMode("button") instance.setColor("red") @@ -255,7 +255,7 @@ export class ODButton extends ODBuilderImplementat export class ODDropdownManager extends ODManagerWithSafety> { constructor(debug:ODDebugger){ super(() => { - return new ODDropdown("openticket:unknown-dropdown",(instance,params,source,cancel) => { + return new ODDropdown("opendiscord:unknown-dropdown",(instance,params,source,cancel) => { instance.setCustomId("od:unknown-dropdown") instance.setType("string") instance.setPlaceholder("❌ ") @@ -509,7 +509,7 @@ export class ODDropdown extends ODBuilderImplement export class ODFileManager extends ODManagerWithSafety> { constructor(debug:ODDebugger){ super(() => { - return new ODFile("openticket:unknown-file",(instance,params,source,cancel) => { + return new ODFile("opendiscord:unknown-file",(instance,params,source,cancel) => { instance.setName("openticket_unknown-file.txt") instance.setDescription("❌ ") instance.setContents("Couldn't find file in registery `opendiscord.builders.files`") @@ -632,8 +632,8 @@ export class ODFile extends ODBuilderImplementatio export class ODEmbedManager extends ODManagerWithSafety> { constructor(debug:ODDebugger){ super(() => { - return new ODEmbed("openticket:unknown-embed",(instance,params,source,cancel) => { - instance.setFooter("openticket:unknown-embed") + return new ODEmbed("opendiscord:unknown-embed",(instance,params,source,cancel) => { + instance.setFooter("opendiscord:unknown-embed") instance.setColor("#ff0000") instance.setTitle("❌ ") instance.setDescription("Couldn't find embed in registery `opendiscord.builders.embeds`") @@ -846,7 +846,7 @@ export class ODEmbed extends ODBuilderImplementati export class ODMessageManager extends ODManagerWithSafety> { constructor(debug:ODDebugger){ super(() => { - return new ODMessage("openticket:unknown-message",(instance,params,source,cancel) => { + return new ODMessage("opendiscord:unknown-message",(instance,params,source,cancel) => { instance.setContent("**❌ **\nCouldn't find message in registery `opendiscord.builders.messages`") cancel() }) @@ -1087,7 +1087,7 @@ export class ODMessage extends ODBuilderImplementa export class ODModalManager extends ODManagerWithSafety> { constructor(debug:ODDebugger){ super(() => { - return new ODModal("openticket:unknown-modal",(instance,params,source,cancel) => { + return new ODModal("opendiscord:unknown-modal",(instance,params,source,cancel) => { instance.setCustomId("od:unknown-modal") instance.setTitle("❌ ") instance.setQuestions( diff --git a/src/core/api/modules/checker.ts b/src/core/api/modules/checker.ts index 641766b..0e172cf 100644 --- a/src/core/api/modules/checker.ts +++ b/src/core/api/modules/checker.ts @@ -442,7 +442,7 @@ export class ODCheckerObjectStructure extends ODCheckerStructure { //check type & options if (typeof value != "object"){ - checker.createMessage("openticket:invalid-type","error","This property needs to be the type: object!",lt,null,["object"],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:invalid-type","error","This property needs to be the type: object!",lt,null,["object"],this.id,(this.options.docs ?? null)) return false } @@ -463,9 +463,9 @@ export class ODCheckerObjectStructure extends ODCheckerStructure { if (typeof value[child.key] == "undefined"){ if (!child.optional){ localQuit = true - checker.createMessage("openticket:property-missing","error",`The property "${child.key}" is mising from this object!`,lt,null,[`"${child.key}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:property-missing","error",`The property "${child.key}" is mising from this object!`,lt,null,[`"${child.key}"`],this.id,(this.options.docs ?? null)) }else{ - checker.createMessage("openticket:property-optional","info",`The property "${child.key}" is optional in this object!`,lt,null,[`"${child.key}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:property-optional","info",`The property "${child.key}" is optional in this object!`,lt,null,[`"${child.key}"`],this.id,(this.options.docs ?? null)) } }else if (!child.checker.check(checker,value[child.key],localLt)) localQuit = true }) @@ -515,31 +515,31 @@ export class ODCheckerStringStructure extends ODCheckerStructure { //check type & options if (typeof value != "string"){ - checker.createMessage("openticket:invalid-type","error","This property needs to be the type: string!",lt,null,["string"],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:invalid-type","error","This property needs to be the type: string!",lt,null,["string"],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.minLength != "undefined" && value.length < this.options.minLength){ - checker.createMessage("openticket:string-too-short","error",`This string can't be shorter than ${this.options.minLength} characters!`,lt,null,[this.options.minLength.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:string-too-short","error",`This string can't be shorter than ${this.options.minLength} characters!`,lt,null,[this.options.minLength.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.maxLength != "undefined" && value.length > this.options.maxLength){ - checker.createMessage("openticket:string-too-long","error",`This string can't be longer than ${this.options.maxLength} characters!`,lt,null,[this.options.maxLength.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:string-too-long","error",`This string can't be longer than ${this.options.maxLength} characters!`,lt,null,[this.options.maxLength.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.length != "undefined" && value.length !== this.options.length){ - checker.createMessage("openticket:string-length-invalid","error",`This string needs to be ${this.options.length} characters long!`,lt,null,[this.options.length.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:string-length-invalid","error",`This string needs to be ${this.options.length} characters long!`,lt,null,[this.options.length.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.startsWith != "undefined" && !value.startsWith(this.options.startsWith)){ - checker.createMessage("openticket:string-starts-with","error",`This string needs to start with "${this.options.startsWith}"!`,lt,null,[`"${this.options.startsWith}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:string-starts-with","error",`This string needs to start with "${this.options.startsWith}"!`,lt,null,[`"${this.options.startsWith}"`],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.endsWith != "undefined" && !value.endsWith(this.options.endsWith)){ - checker.createMessage("openticket:string-ends-with","error",`This string needs to end with "${this.options.endsWith}"!`,lt,null,[`"${this.options.endsWith}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:string-ends-with","error",`This string needs to end with "${this.options.endsWith}"!`,lt,null,[`"${this.options.endsWith}"`],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.contains != "undefined" && !value.includes(this.options.contains)){ - checker.createMessage("openticket:string-contains","error",`This string needs to contain "${this.options.contains}"!`,lt,null,[`"${this.options.contains}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:string-contains","error",`This string needs to contain "${this.options.contains}"!`,lt,null,[`"${this.options.contains}"`],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.choices != "undefined" && !this.options.choices.includes(value)){ - checker.createMessage("openticket:string-choices","error",`This string can only be one of the following values: "${this.options.choices.join(`", "`)}"!`,lt,null,[`"${this.options.choices.join(`", "`)}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:string-choices","error",`This string can only be one of the following values: "${this.options.choices.join(`", "`)}"!`,lt,null,[`"${this.options.choices.join(`", "`)}"`],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.regex != "undefined" && !this.options.regex.test(value)){ - checker.createMessage("openticket:string-regex","error","This string is invalid!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:string-regex","error","This string is invalid!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else return super.check(checker,value,locationTrace) } @@ -603,53 +603,53 @@ export class ODCheckerNumberStructure extends ODCheckerStructure { //check type & options if (typeof value != "number"){ - checker.createMessage("openticket:invalid-type","error","This property needs to be the type: number!",lt,null,["number"],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:invalid-type","error","This property needs to be the type: number!",lt,null,["number"],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.minLength != "undefined" && value.toString().length < this.options.minLength){ - checker.createMessage("openticket:number-too-short","error",`This number can't be shorter than ${this.options.minLength} characters!`,lt,null,[this.options.minLength.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-too-short","error",`This number can't be shorter than ${this.options.minLength} characters!`,lt,null,[this.options.minLength.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.maxLength != "undefined" && value.toString().length > this.options.maxLength){ - checker.createMessage("openticket:number-too-long","error",`This number can't be longer than ${this.options.maxLength} characters!`,lt,null,[this.options.maxLength.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-too-long","error",`This number can't be longer than ${this.options.maxLength} characters!`,lt,null,[this.options.maxLength.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.length != "undefined" && value.toString().length !== this.options.length){ - checker.createMessage("openticket:number-length-invalid","error",`This number needs to be ${this.options.length} characters long!`,lt,null,[this.options.length.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-length-invalid","error",`This number needs to be ${this.options.length} characters long!`,lt,null,[this.options.length.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.min != "undefined" && value < this.options.min){ - checker.createMessage("openticket:number-too-small","error",`This number needs to be at least ${this.options.min}!`,lt,null,[this.options.min.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-too-small","error",`This number needs to be at least ${this.options.min}!`,lt,null,[this.options.min.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.max != "undefined" && value > this.options.max){ - checker.createMessage("openticket:number-too-large","error",`This number needs to be at most ${this.options.max}!`,lt,null,[this.options.max.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-too-large","error",`This number needs to be at most ${this.options.max}!`,lt,null,[this.options.max.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.is != "undefined" && value == this.options.is){ - checker.createMessage("openticket:number-not-equal","error",`This number needs to be ${this.options.is}!`,lt,null,[this.options.is.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-not-equal","error",`This number needs to be ${this.options.is}!`,lt,null,[this.options.is.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.step != "undefined" && ((value - stepOffset) % this.options.step) !== 0){ - if (stepOffset > 0) checker.createMessage("openticket:number-step-offset","error",`This number needs to be a multiple of ${this.options.step} starting with ${stepOffset}!`,lt,null,[this.options.step.toString(),stepOffset.toString()],this.id,(this.options.docs ?? null)) - else checker.createMessage("openticket:number-step","error",`This number needs to be a multiple of ${this.options.step}!`,lt,null,[this.options.step.toString()],this.id,(this.options.docs ?? null)) + if (stepOffset > 0) checker.createMessage("opendiscord:number-step-offset","error",`This number needs to be a multiple of ${this.options.step} starting with ${stepOffset}!`,lt,null,[this.options.step.toString(),stepOffset.toString()],this.id,(this.options.docs ?? null)) + else checker.createMessage("opendiscord:number-step","error",`This number needs to be a multiple of ${this.options.step}!`,lt,null,[this.options.step.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.startsWith != "undefined" && !value.toString().startsWith(this.options.startsWith)){ - checker.createMessage("openticket:number-starts-with","error",`This number needs to start with "${this.options.startsWith}"!`,lt,null,[`"${this.options.startsWith}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-starts-with","error",`This number needs to start with "${this.options.startsWith}"!`,lt,null,[`"${this.options.startsWith}"`],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.endsWith != "undefined" && !value.toString().endsWith(this.options.endsWith)){ - checker.createMessage("openticket:number-ends-with","error",`This number needs to end with "${this.options.endsWith}"!`,lt,null,[`"${this.options.endsWith}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-ends-with","error",`This number needs to end with "${this.options.endsWith}"!`,lt,null,[`"${this.options.endsWith}"`],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.contains != "undefined" && !value.toString().includes(this.options.contains)){ - checker.createMessage("openticket:number-contains","error",`This number needs to contain "${this.options.contains}"!`,lt,null,[`"${this.options.contains}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-contains","error",`This number needs to contain "${this.options.contains}"!`,lt,null,[`"${this.options.contains}"`],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.choices != "undefined" && !this.options.choices.includes(value)){ - checker.createMessage("openticket:number-choices","error",`This number can only be one of the following values: "${this.options.choices.join(`", "`)}"!`,lt,null,[`"${this.options.choices.join(`", "`)}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-choices","error",`This number can only be one of the following values: "${this.options.choices.join(`", "`)}"!`,lt,null,[`"${this.options.choices.join(`", "`)}"`],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.floatAllowed != "undefined" && !this.options.floatAllowed && (value % 1) !== 0){ - checker.createMessage("openticket:number-float","error","This number can't be a decimal!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-float","error","This number can't be a decimal!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.negativeAllowed != "undefined" && value < 0){ - checker.createMessage("openticket:number-negative","error","This number can't be negative!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-negative","error","This number can't be negative!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.positiveAllowed != "undefined" && value > 0){ - checker.createMessage("openticket:number-positive","error","This number can't be positive!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-positive","error","This number can't be positive!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.zeroAllowed != "undefined" && value === 0){ - checker.createMessage("openticket:number-zero","error","This number can't be zero!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:number-zero","error","This number can't be zero!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else return super.check(checker,value,locationTrace) } @@ -682,13 +682,13 @@ export class ODCheckerBooleanStructure extends ODCheckerStructure { //check type & options if (typeof value != "boolean"){ - checker.createMessage("openticket:invalid-type","error","This property needs to be the type: boolean!",lt,null,["boolean"],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:invalid-type","error","This property needs to be the type: boolean!",lt,null,["boolean"],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.trueAllowed != "undefined" && !this.options.trueAllowed && value == true){ - checker.createMessage("openticket:boolean-true","error","This boolean can't be true!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:boolean-true","error","This boolean can't be true!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.falseAllowed != "undefined" && !this.options.falseAllowed && value == false){ - checker.createMessage("openticket:boolean-false","error","This boolean can't be false!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:boolean-false","error","This boolean can't be false!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else return super.check(checker,value,locationTrace) } @@ -732,28 +732,28 @@ export class ODCheckerArrayStructure extends ODCheckerStructure { const lt = checker.locationTraceDeref(locationTrace) if (!Array.isArray(value)){ - checker.createMessage("openticket:invalid-type","error","This property needs to be the type: array!",lt,null,["array"],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:invalid-type","error","This property needs to be the type: array!",lt,null,["array"],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.disableEmpty != "undefined" && this.options.disableEmpty && value.length == 0){ - checker.createMessage("openticket:array-empty-disabled","error","This array isn't allowed to be empty!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:array-empty-disabled","error","This array isn't allowed to be empty!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.emptyRequired != "undefined" && this.options.emptyRequired && value.length != 0){ - checker.createMessage("openticket:array-empty-required","error","This array is required to be empty!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:array-empty-required","error","This array is required to be empty!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.minLength != "undefined" && value.length < this.options.minLength){ - checker.createMessage("openticket:array-too-short","error",`This array needs to have a length of at least ${this.options.minLength}!`,lt,null,[this.options.minLength.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:array-too-short","error",`This array needs to have a length of at least ${this.options.minLength}!`,lt,null,[this.options.minLength.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.maxLength != "undefined" && value.length > this.options.maxLength){ - checker.createMessage("openticket:array-too-long","error",`This array needs to have a length of at most ${this.options.maxLength}!`,lt,null,[this.options.maxLength.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:array-too-long","error",`This array needs to have a length of at most ${this.options.maxLength}!`,lt,null,[this.options.maxLength.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.length != "undefined" && value.length == this.options.length){ - checker.createMessage("openticket:array-length-invalid","error",`This array needs to have a length of ${this.options.length}!`,lt,null,[this.options.length.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:array-length-invalid","error",`This array needs to have a length of ${this.options.length}!`,lt,null,[this.options.length.toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.allowedTypes != "undefined" && !this.#arrayAllowedTypesCheck(value,this.options.allowedTypes)){ - checker.createMessage("openticket:array-invalid-types","error",`This array can only contain the following types: ${this.options.allowedTypes.join(", ")}!`,lt,null,[this.options.allowedTypes.join(", ").toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:array-invalid-types","error",`This array can only contain the following types: ${this.options.allowedTypes.join(", ")}!`,lt,null,[this.options.allowedTypes.join(", ").toString()],this.id,(this.options.docs ?? null)) return false }else if (typeof this.options.allowDoubles != "undefined" && !this.options.allowDoubles && this.#arrayHasDoubles(value)){ - checker.createMessage("openticket:array-double","error","This array doesn't allow the same value twice!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:array-double","error","This array doesn't allow the same value twice!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else{ //check all properties @@ -836,10 +836,10 @@ export class ODCheckerNullStructure extends ODCheckerStructure { //check type & options if (typeof this.options.nullAllowed != "undefined" && !this.options.nullAllowed && value == null){ - checker.createMessage("openticket:null-invalid","error","This property can't be null!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:null-invalid","error","This property can't be null!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (value !== null){ - checker.createMessage("openticket:invalid-type","error","This property needs to be the type: null!",lt,null,["null"],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:invalid-type","error","This property needs to be the type: null!",lt,null,["null"],this.id,(this.options.docs ?? null)) return false }else return super.check(checker,value,locationTrace) } @@ -909,7 +909,7 @@ export class ODCheckerTypeSwitchStructure extends ODCheckerStructure { return this.options.other.check(checker,value,lt) }else if (this.options.allowedTypes && this.options.allowedTypes.length > 0){ - checker.createMessage("openticket:switch-invalid-type","error",`This needs to be one of the following types: ${this.options.allowedTypes.join(", ")}!`,lt,null,[this.options.allowedTypes.join(", ")],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:switch-invalid-type","error",`This needs to be one of the following types: ${this.options.allowedTypes.join(", ")}!`,lt,null,[this.options.allowedTypes.join(", ")],this.id,(this.options.docs ?? null)) return false }else return super.check(checker,value,locationTrace) } @@ -950,7 +950,7 @@ export class ODCheckerObjectSwitchStructure extends ODCheckerStructure { if (this.options.objects){ //check type & options if (typeof value != "object"){ - checker.createMessage("openticket:invalid-type","error","This property needs to be the type: object!",lt,null,["object"],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:invalid-type","error","This property needs to be the type: object!",lt,null,["object"],this.id,(this.options.docs ?? null)) return false } @@ -974,7 +974,7 @@ export class ODCheckerObjectSwitchStructure extends ODCheckerStructure { //do local quit or check custom function if (!didSelectObject){ - checker.createMessage("openticket:object-switch-invalid-type","error",`This object needs to be one of the following types: ${this.options.objects.map((obj) => obj.name).join(", ")}!`,lt,null,[this.options.objects.map((obj) => obj.name).join(", ")],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:object-switch-invalid-type","error",`This object needs to be one of the following types: ${this.options.objects.map((obj) => obj.name).join(", ")}!`,lt,null,[this.options.objects.map((obj) => obj.name).join(", ")],this.id,(this.options.docs ?? null)) return false }else if (localQuit){ return false @@ -1012,12 +1012,12 @@ export class ODCheckerEnabledObjectStructure extends ODCheckerStructure { if (typeof value != "object"){ //value isn't an object - checker.createMessage("openticket:invalid-type","error","This property needs to be the type: object!",lt,null,["object"],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:invalid-type","error","This property needs to be the type: object!",lt,null,["object"],this.id,(this.options.docs ?? null)) return false }else if (this.options.property && typeof value[this.options.property] == "undefined"){ //property doesn't exist - checker.createMessage("openticket:property-missing","error",`The property "${this.options.property}" is mising from this object!`,lt,null,[`"${this.options.property}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:property-missing","error",`The property "${this.options.property}" is mising from this object!`,lt,null,[`"${this.options.property}"`],this.id,(this.options.docs ?? null)) return false }else if (this.options.property && value[this.options.property] === (typeof this.options.enabledValue == "undefined" ? true : this.options.enabledValue)){ @@ -1027,7 +1027,7 @@ export class ODCheckerEnabledObjectStructure extends ODCheckerStructure { }else{ //this object is disabled - if (this.options.property) checker.createMessage("openticket:object-disabled","info",`This object is disabled, enable it using "${this.options.property}"!`,lt,null,[`"${this.options.property}"`],this.id,(this.options.docs ?? null)) + if (this.options.property) checker.createMessage("opendiscord:object-disabled","info",`This object is disabled, enable it using "${this.options.property}"!`,lt,null,[`"${this.options.property}"`],this.id,(this.options.docs ?? null)) return super.check(checker,value,locationTrace) } } @@ -1059,8 +1059,8 @@ export class ODCheckerCustomStructure_DiscordId extends ODCheckerStringStructure else if ((!emptyAllowed && value.length < 15) || value.length > 50 || !/^[0-9]*$/.test(value)){ if (!(extraOptions.length > 0 && extraOptions.some((opt) => opt == value))){ //value is not an id & not one of the extra options - if (extraOptions.length > 0) checker.createMessage("openticket:discord-invalid-id-options","error",`This is an invalid discord ${type} id! You can also use one of these: ${extraOptions.join(", ")}!`,lt,null,[type,extraOptions.join(", ")],this.id,(this.options.docs ?? null)) - else checker.createMessage("openticket:discord-invalid-id","error",`This is an invalid discord ${type} id!`,lt,null,[type],this.id,(this.options.docs ?? null)) + if (extraOptions.length > 0) checker.createMessage("opendiscord:discord-invalid-id-options","error",`This is an invalid discord ${type} id! You can also use one of these: ${extraOptions.join(", ")}!`,lt,null,[type,extraOptions.join(", ")],this.id,(this.options.docs ?? null)) + else checker.createMessage("opendiscord:discord-invalid-id","error",`This is an invalid discord ${type} id!`,lt,null,[type],this.id,(this.options.docs ?? null)) return false }else return true } @@ -1113,7 +1113,7 @@ export class ODCheckerCustomStructure_DiscordToken extends ODCheckerStringStruct const lt = checker.locationTraceDeref(locationTrace) if (typeof value != "string" || !/^[A-Za-z0-9-_\.]+$/.test(value)){ - checker.createMessage("openticket:discord-invalid-token","error","This is an invalid discord token (syntactically)!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:discord-invalid-token","error","This is an invalid discord token (syntactically)!",lt,null,[],this.id,(this.options.docs ?? null)) return false } return true @@ -1146,7 +1146,7 @@ export class ODCheckerCustomStructure_HexColor extends ODCheckerStringStructure else if (emptyAllowed && value.length == 0){ return true }else if ((!allowShortForm && !/^#[a-fA-F0-9]{6}$/.test(value)) || (allowShortForm && !/^#[a-fA-F0-9]{6}$/.test(value) && !/^#[a-fA-F0-9]{3}$/.test(value))){ - checker.createMessage("openticket:color-invalid","error","This is an invalid hex color!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:color-invalid","error","This is an invalid hex color!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else return true } @@ -1186,16 +1186,16 @@ export class ODCheckerCustomStructure_EmojiString extends ODCheckerStringStructu const emojiAmount = discordEmojiAmount+unicodeEmojiAmount if (emojiAmount < minLength){ - checker.createMessage("openticket:emoji-too-short","error",`This string needs to have at least ${minLength} emoji's!`,lt,null,[maxLength.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:emoji-too-short","error",`This string needs to have at least ${minLength} emoji's!`,lt,null,[maxLength.toString()],this.id,(this.options.docs ?? null)) return false }else if (emojiAmount > maxLength){ - checker.createMessage("openticket:emoji-too-long","error",`This string needs to have at most ${maxLength} emoji's!`,lt,null,[maxLength.toString()],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:emoji-too-long","error",`This string needs to have at most ${maxLength} emoji's!`,lt,null,[maxLength.toString()],this.id,(this.options.docs ?? null)) return false }else if (!allowCustomDiscordEmoji && //.test(value)){ - checker.createMessage("openticket:emoji-custom","error",`This emoji can't be a custom discord emoji!`,lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:emoji-custom","error",`This emoji can't be a custom discord emoji!`,lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (!/^(?:\p{Emoji}|\p{Emoji_Component}|(?:))*$/u.test(value)){ - checker.createMessage("openticket:emoji-invalid","error","This is an invalid emoji!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:emoji-invalid","error","This is an invalid emoji!",lt,null,[],this.id,(this.options.docs ?? null)) return false } return true @@ -1247,25 +1247,25 @@ export class ODCheckerCustomStructure_UrlString extends ODCheckerStringStructure else if (emptyAllowed && value.length == 0){ return true }else if (!this.#urlIsValid(value)){ - checker.createMessage("openticket:url-invalid","error","This url is invalid!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:url-invalid","error","This url is invalid!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (typeof this.urlSettings.allowHttp != "undefined" && !this.urlSettings.allowHttp && !/^(https:\/\/)/.test(value)){ - checker.createMessage("openticket:url-invalid-http","error","This url can only use the https:// protocol!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:url-invalid-http","error","This url can only use the https:// protocol!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (!/^(http(s)?:\/\/)/.test(value)){ - checker.createMessage("openticket:url-invalid-protocol","error","This url can only use the http:// & https:// protocols!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:url-invalid-protocol","error","This url can only use the http:// & https:// protocols!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (typeof this.urlSettings.allowedHostnames != "undefined" && !this.#urlHasValidHostname(value,this.urlSettings.allowedHostnames)){ - checker.createMessage("openticket:url-invalid-hostname","error","This url has a disallowed hostname!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:url-invalid-hostname","error","This url has a disallowed hostname!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (typeof this.urlSettings.allowedExtensions != "undefined" && !this.#urlHasValidExtension(value,this.urlSettings.allowedExtensions)){ - checker.createMessage("openticket:url-invalid-extension","error",`This url has an invalid extension! Choose between: ${this.urlSettings.allowedExtensions.join(", ")}!"`,lt,null,[this.urlSettings.allowedExtensions.join(", ")],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:url-invalid-extension","error",`This url has an invalid extension! Choose between: ${this.urlSettings.allowedExtensions.join(", ")}!"`,lt,null,[this.urlSettings.allowedExtensions.join(", ")],this.id,(this.options.docs ?? null)) return false }else if (typeof this.urlSettings.allowedPaths != "undefined" && !this.#urlHasValidPath(value,this.urlSettings.allowedPaths)){ - checker.createMessage("openticket:url-invalid-path","error","This url has an invalid path!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:url-invalid-path","error","This url has an invalid path!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else if (typeof this.urlSettings.regex != "undefined" && !this.urlSettings.regex.test(value)){ - checker.createMessage("openticket:url-invalid","error","This url is invalid!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:url-invalid","error","This url is invalid!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else return true } @@ -1351,7 +1351,7 @@ export class ODCheckerCustomStructure_UniqueId extends ODCheckerStringStructure const uniqueArray: string[] = (checker.storage.get(source,scope) === null) ? [] : checker.storage.get(source,scope) if (uniqueArray.includes(value)){ //unique id already exists => throw error - checker.createMessage("openticket:id-not-unique","error","This id isn't unique, use another id instead!",lt,null,[],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:id-not-unique","error","This id isn't unique, use another id instead!",lt,null,[],this.id,(this.options.docs ?? null)) return false }else{ //unique id doesn't exists => add to list @@ -1405,7 +1405,7 @@ export class ODCheckerCustomStructure_UniqueIdArray extends ODCheckerArrayStruct } }else{ //doesn't exist - checker.createMessage("openticket:id-non-existent","error",`The id "${id}" doesn't exist!`,localLt,null,[`"${id}"`],this.id,(this.options.docs ?? null)) + checker.createMessage("opendiscord:id-non-existent","error",`The id "${id}" doesn't exist!`,localLt,null,[`"${id}"`],this.id,(this.options.docs ?? null)) localQuit = true } }) diff --git a/src/core/api/modules/console.ts b/src/core/api/modules/console.ts index 3497184..fc634d6 100644 --- a/src/core/api/modules/console.ts +++ b/src/core/api/modules/console.ts @@ -501,8 +501,8 @@ export class ODLiveStatusSource extends ODManagerData { const validMessages: ODLiveStatusSourceData[] = [] //parse data from ODMain - const currentVersion: string = main.versions.get("openticket:version").toString(true) - const usingSlashCommands: boolean = main.configs.get("openticket:general").data.slashCommands + const currentVersion: string = main.versions.get("opendiscord:version").toString(true) + const usingSlashCommands: boolean = main.configs.get("opendiscord:general").data.slashCommands const usingTranscripts: false|"text"|"html" = false as false|"text"|"html" //TODO const currentLanguage: string = main.languages.getCurrentLanguageId() const usingPlugins: boolean = (main.plugins.getLength() > 0) diff --git a/src/core/api/modules/defaults.ts b/src/core/api/modules/defaults.ts index 0747ad2..aaa0c47 100644 --- a/src/core/api/modules/defaults.ts +++ b/src/core/api/modules/defaults.ts @@ -252,7 +252,7 @@ export class ODDefaultsManager { languageLoading:true, languageInitiating:true, languageSelection:true, - backupLanguage:"openticket:english", + backupLanguage:"opendiscord:english", languageList:[], checkerLoading:true, diff --git a/src/core/api/openticket/option.ts b/src/core/api/openticket/option.ts index 8268a59..d71268d 100644 --- a/src/core/api/openticket/option.ts +++ b/src/core/api/openticket/option.ts @@ -50,7 +50,7 @@ export interface ODOptionDataJson { export interface ODOptionJson { /**The id of this option. */ id:string, - /**The type of this option. (e.g. `openticket:ticket`, `openticket:website`, `openticket:role`) */ + /**The type of this option. (e.g. `opendiscord:ticket`, `opendiscord:website`, `opendiscord:role`) */ type:string, /**The version of Open Ticket used to create this option & store it in the database. */ version:string, @@ -68,7 +68,7 @@ export interface ODOptionJson { export class ODOption extends ODManager> { /**The id of this option. (from the config) */ id:ODId - /**The type of this option. (e.g. `openticket:ticket`, `openticket:website`, `openticket:role`) */ + /**The type of this option. (e.g. `opendiscord:ticket`, `opendiscord:website`, `opendiscord:role`) */ type: string constructor(id:ODValidId, type:string, data:ODOptionData[]){ @@ -138,51 +138,51 @@ export class ODOptionData extends ODManagerDat * It's used to generate typescript declarations for this class. */ export interface ODTicketOptionIds { - "openticket:name":ODOptionData, - "openticket:description":ODOptionData, + "opendiscord:name":ODOptionData, + "opendiscord:description":ODOptionData, - "openticket:button-emoji":ODOptionData, - "openticket:button-label":ODOptionData, - "openticket:button-color":ODOptionData, + "opendiscord:button-emoji":ODOptionData, + "opendiscord:button-label":ODOptionData, + "opendiscord:button-color":ODOptionData, - "openticket:admins":ODOptionData, - "openticket:admins-readonly":ODOptionData, - "openticket:allow-blacklisted-users":ODOptionData, - "openticket:questions":ODOptionData, + "opendiscord:admins":ODOptionData, + "opendiscord:admins-readonly":ODOptionData, + "opendiscord:allow-blacklisted-users":ODOptionData, + "opendiscord:questions":ODOptionData, - "openticket:channel-prefix":ODOptionData, - "openticket:channel-suffix":ODOptionData<"user-name"|"user-id"|"random-number"|"random-hex"|"counter-dynamic"|"counter-fixed">, - "openticket:channel-category":ODOptionData, - "openticket:channel-category-closed":ODOptionData, - "openticket:channel-category-backup":ODOptionData, - "openticket:channel-categories-claimed":ODOptionData<{user:string,category:string}[]>, - "openticket:channel-description":ODOptionData, + "opendiscord:channel-prefix":ODOptionData, + "opendiscord:channel-suffix":ODOptionData<"user-name"|"user-id"|"random-number"|"random-hex"|"counter-dynamic"|"counter-fixed">, + "opendiscord:channel-category":ODOptionData, + "opendiscord:channel-category-closed":ODOptionData, + "opendiscord:channel-category-backup":ODOptionData, + "opendiscord:channel-categories-claimed":ODOptionData<{user:string,category:string}[]>, + "opendiscord:channel-description":ODOptionData, - "openticket:dm-message-enabled":ODOptionData, - "openticket:dm-message-text":ODOptionData, - "openticket:dm-message-embed":ODOptionData, + "opendiscord:dm-message-enabled":ODOptionData, + "opendiscord:dm-message-text":ODOptionData, + "opendiscord:dm-message-embed":ODOptionData, - "openticket:ticket-message-enabled":ODOptionData, - "openticket:ticket-message-text":ODOptionData, - "openticket:ticket-message-embed":ODOptionData, - "openticket:ticket-message-ping":ODOptionData, + "opendiscord:ticket-message-enabled":ODOptionData, + "opendiscord:ticket-message-text":ODOptionData, + "opendiscord:ticket-message-embed":ODOptionData, + "opendiscord:ticket-message-ping":ODOptionData, - "openticket:autoclose-enable-hours":ODOptionData, - "openticket:autoclose-enable-leave":ODOptionData, - "openticket:autoclose-disable-claim":ODOptionData, - "openticket:autoclose-hours":ODOptionData, + "opendiscord:autoclose-enable-hours":ODOptionData, + "opendiscord:autoclose-enable-leave":ODOptionData, + "opendiscord:autoclose-disable-claim":ODOptionData, + "opendiscord:autoclose-hours":ODOptionData, - "openticket:autodelete-enable-days":ODOptionData, - "openticket:autodelete-enable-leave":ODOptionData, - "openticket:autodelete-disable-claim":ODOptionData, - "openticket:autodelete-days":ODOptionData, + "opendiscord:autodelete-enable-days":ODOptionData, + "opendiscord:autodelete-enable-leave":ODOptionData, + "opendiscord:autodelete-disable-claim":ODOptionData, + "opendiscord:autodelete-days":ODOptionData, - "openticket:cooldown-enabled":ODOptionData, - "openticket:cooldown-minutes":ODOptionData, + "opendiscord:cooldown-enabled":ODOptionData, + "opendiscord:cooldown-minutes":ODOptionData, - "openticket:limits-enabled":ODOptionData, - "openticket:limits-maximum-global":ODOptionData, - "openticket:limits-maximum-user":ODOptionData + "opendiscord:limits-enabled":ODOptionData, + "opendiscord:limits-maximum-global":ODOptionData, + "opendiscord:limits-maximum-user":ODOptionData } /**## ODTicketOption `class` @@ -193,10 +193,10 @@ export interface ODTicketOptionIds { * Use this option to create a new ticket! */ export class ODTicketOption extends ODOption { - type: "openticket:ticket" = "openticket:ticket" + type: "opendiscord:ticket" = "opendiscord:ticket" constructor(id:ODValidId, data:ODOptionData[]){ - super(id,"openticket:ticket",data) + super(id,"opendiscord:ticket",data) } get(id:OptionId): ODTicketOptionIds[OptionId] @@ -230,13 +230,13 @@ export class ODTicketOption extends ODOption { * It's used to generate typescript declarations for this class. */ export interface ODWebsiteOptionIds { - "openticket:name":ODOptionData, - "openticket:description":ODOptionData, + "opendiscord:name":ODOptionData, + "opendiscord:description":ODOptionData, - "openticket:button-emoji":ODOptionData, - "openticket:button-label":ODOptionData, + "opendiscord:button-emoji":ODOptionData, + "opendiscord:button-label":ODOptionData, - "openticket:url":ODOptionData, + "opendiscord:url":ODOptionData, } /**## ODWebsiteOption `class` @@ -247,10 +247,10 @@ export interface ODWebsiteOptionIds { * Use this option to create a button which links to a website! */ export class ODWebsiteOption extends ODOption { - type: "openticket:website" = "openticket:website" + type: "opendiscord:website" = "opendiscord:website" constructor(id:ODValidId, data:ODOptionData[]){ - super(id,"openticket:website",data) + super(id,"opendiscord:website",data) } get(id:OptionId): ODWebsiteOptionIds[OptionId] @@ -284,17 +284,17 @@ export class ODWebsiteOption extends ODOption { * It's used to generate typescript declarations for this class. */ export interface ODRoleOptionIds { - "openticket:name":ODOptionData, - "openticket:description":ODOptionData, + "opendiscord:name":ODOptionData, + "opendiscord:description":ODOptionData, - "openticket:button-emoji":ODOptionData, - "openticket:button-label":ODOptionData, - "openticket:button-color":ODOptionData, + "opendiscord:button-emoji":ODOptionData, + "opendiscord:button-label":ODOptionData, + "opendiscord:button-color":ODOptionData, - "openticket:roles":ODOptionData, - "openticket:mode":ODOptionData, - "openticket:remove-roles-on-add":ODOptionData, - "openticket:add-on-join":ODOptionData + "opendiscord:roles":ODOptionData, + "opendiscord:mode":ODOptionData, + "opendiscord:remove-roles-on-add":ODOptionData, + "opendiscord:add-on-join":ODOptionData } /**## ODRoleOption `class` @@ -305,10 +305,10 @@ export interface ODRoleOptionIds { * Use this option to create a button for reaction roles! */ export class ODRoleOption extends ODOption { - type: "openticket:role" = "openticket:role" + type: "opendiscord:role" = "opendiscord:role" constructor(id:ODValidId, data:ODOptionData[]){ - super(id,"openticket:role",data) + super(id,"opendiscord:role",data) } get(id:OptionId): ODRoleOptionIds[OptionId] @@ -424,13 +424,13 @@ export class ODOptionCounterDynamicSuffix extends ODOptionSuffix { /**Initialize the database for this suffix. */ async #init(){ - if (!await this.database.exists("openticket:option-suffix-counter",this.option.id.value)) await this.database.set("openticket:option-suffix-counter",this.option.id.value,0) + if (!await this.database.exists("opendiscord:option-suffix-counter",this.option.id.value)) await this.database.set("opendiscord:option-suffix-counter",this.option.id.value,0) } getSuffix(user:discord.User): string { - const rawCurrentValue = this.database.get("openticket:option-suffix-counter",this.option.id.value) + const rawCurrentValue = this.database.get("opendiscord:option-suffix-counter",this.option.id.value) const currentValue = (typeof rawCurrentValue != "number") ? 0 : rawCurrentValue const newValue = currentValue+1 - this.database.set("openticket:option-suffix-counter",this.option.id.value,newValue) + this.database.set("opendiscord:option-suffix-counter",this.option.id.value,newValue) return newValue.toString() } } @@ -454,14 +454,14 @@ export class ODOptionCounterFixedSuffix extends ODOptionSuffix { /**Initialize the database for this suffix. */ async #init(){ - if (!await this.database.exists("openticket:option-suffix-counter",this.option.id.value)) await this.database.set("openticket:option-suffix-counter",this.option.id.value,0) + if (!await this.database.exists("opendiscord:option-suffix-counter",this.option.id.value)) await this.database.set("opendiscord:option-suffix-counter",this.option.id.value,0) } getSuffix(user:discord.User): string { - const rawCurrentValue = this.database.get("openticket:option-suffix-counter",this.option.id.value) + const rawCurrentValue = this.database.get("opendiscord:option-suffix-counter",this.option.id.value) const currentValue = (typeof rawCurrentValue != "number") ? 0 : rawCurrentValue const newValue = (currentValue >= 9999) ? 0 : currentValue+1 - this.database.set("openticket:option-suffix-counter",this.option.id.value,newValue) + this.database.set("opendiscord:option-suffix-counter",this.option.id.value,newValue) if (newValue.toString().length == 1) return "000"+newValue.toString() else if (newValue.toString().length == 2) return "00"+newValue.toString() else if (newValue.toString().length == 3) return "0"+newValue.toString() @@ -488,7 +488,7 @@ export class ODOptionRandomNumberSuffix extends ODOptionSuffix { /**Initialize the database for this suffix. */ async #init(){ - if (!await this.database.exists("openticket:option-suffix-history",this.option.id.value)) await this.database.set("openticket:option-suffix-history",this.option.id.value,[]) + if (!await this.database.exists("opendiscord:option-suffix-history",this.option.id.value)) await this.database.set("opendiscord:option-suffix-history",this.option.id.value,[]) } /**Get a unique number for this suffix. */ #generateUniqueValue(history:string[]): string { @@ -502,12 +502,12 @@ export class ODOptionRandomNumberSuffix extends ODOptionSuffix { else return number } getSuffix(user:discord.User): string { - const rawCurrentValues = this.database.get("openticket:option-suffix-history",this.option.id.value) + const rawCurrentValues = this.database.get("opendiscord:option-suffix-history",this.option.id.value) const currentValues = ((Array.isArray(rawCurrentValues)) ? rawCurrentValues : []) as string[] const newValue = this.#generateUniqueValue(currentValues) currentValues.push(newValue) if (currentValues.length > 50) currentValues.shift() - this.database.set("openticket:option-suffix-history",this.option.id.value,currentValues) + this.database.set("opendiscord:option-suffix-history",this.option.id.value,currentValues) return newValue } } @@ -531,7 +531,7 @@ export class ODOptionRandomHexSuffix extends ODOptionSuffix { /**Initialize the database for this suffix. */ async #init(){ - if (!await this.database.exists("openticket:option-suffix-history",this.option.id.value)) await this.database.set("openticket:option-suffix-history",this.option.id.value,[]) + if (!await this.database.exists("opendiscord:option-suffix-history",this.option.id.value)) await this.database.set("opendiscord:option-suffix-history",this.option.id.value,[]) } /**Get a unique hex-string for this suffix. */ #generateUniqueValue(history:string[]): string { @@ -540,12 +540,12 @@ export class ODOptionRandomHexSuffix extends ODOptionSuffix { else return hex } getSuffix(user:discord.User): string { - const rawCurrentValues = this.database.get("openticket:option-suffix-history",this.option.id.value) + const rawCurrentValues = this.database.get("opendiscord:option-suffix-history",this.option.id.value) const currentValues = ((Array.isArray(rawCurrentValues)) ? rawCurrentValues : []) as string[] const newValue = this.#generateUniqueValue(currentValues) currentValues.push(newValue) if (currentValues.length > 50) currentValues.shift() - this.database.set("openticket:option-suffix-history",this.option.id.value,currentValues) + this.database.set("opendiscord:option-suffix-history",this.option.id.value,currentValues) return newValue } } \ No newline at end of file diff --git a/src/core/api/openticket/panel.ts b/src/core/api/openticket/panel.ts index 21ec71b..633a0a8 100644 --- a/src/core/api/openticket/panel.ts +++ b/src/core/api/openticket/panel.ts @@ -54,23 +54,23 @@ export interface ODPanelJson { * It's used to generate typescript declarations for this class. */ export interface ODPanelIds { - "openticket:name":ODPanelData, - "openticket:options":ODPanelData, - "openticket:dropdown":ODPanelData, + "opendiscord:name":ODPanelData, + "opendiscord:options":ODPanelData, + "opendiscord:dropdown":ODPanelData, - "openticket:text":ODPanelData, - "openticket:embed":ODPanelData, + "opendiscord:text":ODPanelData, + "opendiscord:embed":ODPanelData, - "openticket:dropdown-placeholder":ODPanelData, + "opendiscord:dropdown-placeholder":ODPanelData, - "openticket:enable-max-tickets-warning-text":ODPanelData, - "openticket:enable-max-tickets-warning-embed":ODPanelData, + "opendiscord:enable-max-tickets-warning-text":ODPanelData, + "opendiscord:enable-max-tickets-warning-embed":ODPanelData, - "openticket:describe-options-layout":ODPanelData<"simple"|"normal"|"detailed">, - "openticket:describe-options-custom-title":ODPanelData, - "openticket:describe-options-in-text":ODPanelData, - "openticket:describe-options-in-embed-fields":ODPanelData, - "openticket:describe-options-in-embed-description":ODPanelData + "opendiscord:describe-options-layout":ODPanelData<"simple"|"normal"|"detailed">, + "opendiscord:describe-options-custom-title":ODPanelData, + "opendiscord:describe-options-in-text":ODPanelData, + "opendiscord:describe-options-in-embed-fields":ODPanelData, + "opendiscord:describe-options-in-embed-description":ODPanelData } /**## ODPanel `class` diff --git a/src/core/api/openticket/question.ts b/src/core/api/openticket/question.ts index cd99aad..5f19a4b 100644 --- a/src/core/api/openticket/question.ts +++ b/src/core/api/openticket/question.ts @@ -60,7 +60,7 @@ export interface ODQuestionJson { export class ODQuestion extends ODManager> { /**The id of this question. (from the config) */ id:ODId - /**The type of this question (e.g. `openticket:short` or `openticket:paragraph`) */ + /**The type of this question (e.g. `opendiscord:short` or `opendiscord:paragraph`) */ type: string constructor(id:ODValidId, type:string, data:ODQuestionData[]){ @@ -130,13 +130,13 @@ export class ODQuestionData extends ODManagerD * It's used to generate typescript declarations for this class. */ export interface ODShortQuestionIds { - "openticket:name":ODQuestionData, - "openticket:required":ODQuestionData, - "openticket:placeholder":ODQuestionData, + "opendiscord:name":ODQuestionData, + "opendiscord:required":ODQuestionData, + "opendiscord:placeholder":ODQuestionData, - "openticket:length-enabled":ODQuestionData, - "openticket:length-min":ODQuestionData, - "openticket:length-max":ODQuestionData + "opendiscord:length-enabled":ODQuestionData, + "opendiscord:length-min":ODQuestionData, + "opendiscord:length-max":ODQuestionData } /**## ODShortQuestion `class` @@ -147,10 +147,10 @@ export interface ODShortQuestionIds { * Use this question in an option to add a short text field to the modal! */ export class ODShortQuestion extends ODQuestion { - type: "openticket:short" = "openticket:short" + type: "opendiscord:short" = "opendiscord:short" constructor(id:ODValidId, data:ODQuestionData[]){ - super(id,"openticket:short",data) + super(id,"opendiscord:short",data) } get(id:QuestionId): ODShortQuestionIds[QuestionId] @@ -184,13 +184,13 @@ export class ODShortQuestion extends ODQuestion { * It's used to generate typescript declarations for this class. */ export interface ODParagraphQuestionIds { - "openticket:name":ODQuestionData, - "openticket:required":ODQuestionData, - "openticket:placeholder":ODQuestionData, + "opendiscord:name":ODQuestionData, + "opendiscord:required":ODQuestionData, + "opendiscord:placeholder":ODQuestionData, - "openticket:length-enabled":ODQuestionData, - "openticket:length-min":ODQuestionData, - "openticket:length-max":ODQuestionData + "opendiscord:length-enabled":ODQuestionData, + "opendiscord:length-min":ODQuestionData, + "opendiscord:length-max":ODQuestionData } /**## ODParagraphQuestion `class` @@ -201,10 +201,10 @@ export interface ODParagraphQuestionIds { * Use this question in an option to add a paragraph text field to the modal! */ export class ODParagraphQuestion extends ODQuestion { - type: "openticket:paragraph" = "openticket:paragraph" + type: "opendiscord:paragraph" = "opendiscord:paragraph" constructor(id:ODValidId, data:ODQuestionData[]){ - super(id,"openticket:paragraph",data) + super(id,"opendiscord:paragraph",data) } get(id:QuestionId): ODParagraphQuestionIds[QuestionId] diff --git a/src/core/api/openticket/role.ts b/src/core/api/openticket/role.ts index 6240470..ce22481 100644 --- a/src/core/api/openticket/role.ts +++ b/src/core/api/openticket/role.ts @@ -54,10 +54,10 @@ export interface ODRoleJson { * It's used to generate typescript declarations for this class. */ export interface ODRoleIds { - "openticket:roles":ODRoleData, - "openticket:mode":ODRoleData, - "openticket:remove-roles-on-add":ODRoleData, - "openticket:add-on-join":ODRoleData + "opendiscord:roles":ODRoleData, + "opendiscord:mode":ODRoleData, + "opendiscord:remove-roles-on-add":ODRoleData, + "opendiscord:add-on-join":ODRoleData } /**## ODRole `class` diff --git a/src/core/api/openticket/ticket.ts b/src/core/api/openticket/ticket.ts index bd00bec..7b03243 100644 --- a/src/core/api/openticket/ticket.ts +++ b/src/core/api/openticket/ticket.ts @@ -49,7 +49,7 @@ export class ODTicketManager extends ODManager { } /**Get the main ticket message of a ticket channel when found. */ async getTicketMessage(ticket:ODTicket): Promise|null> { - const msgId = ticket.get("openticket:ticket-message").value + const msgId = ticket.get("opendiscord:ticket-message").value if (!this.#guild || !msgId) return null try { const channel = await this.getTicketChannel(ticket) @@ -64,22 +64,22 @@ export class ODTicketManager extends ODManager { if (!this.#guild) return null try { if (user == "creator"){ - const creatorId = ticket.get("openticket:opened-by").value + const creatorId = ticket.get("opendiscord:opened-by").value if (!creatorId) return null else return (await this.#guild.client.users.fetch(creatorId)) }else if (user == "closer"){ - const closerId = ticket.get("openticket:closed-by").value + const closerId = ticket.get("opendiscord:closed-by").value if (!closerId) return null else return (await this.#guild.client.users.fetch(closerId)) }else if (user == "claimer"){ - const claimerId = ticket.get("openticket:claimed-by").value + const claimerId = ticket.get("opendiscord:claimed-by").value if (!claimerId) return null else return (await this.#guild.client.users.fetch(claimerId)) }else if (user == "pinner"){ - const pinnerId = ticket.get("openticket:pinned-by").value + const pinnerId = ticket.get("opendiscord:pinned-by").value if (!pinnerId) return null else return (await this.#guild.client.users.fetch(pinnerId)) @@ -94,14 +94,14 @@ export class ODTicketManager extends ODManager { if (!channel) return null //add creator - const creatorId = ticket.get("openticket:opened-by").value + const creatorId = ticket.get("opendiscord:opened-by").value if (creatorId){ const creator = await this.#client.fetchUser(creatorId) if (creator) final.push({user:creator,role:"creator"}) } //add participants - const participants = ticket.get("openticket:participants").value.filter((p) => p.type == "user") + const participants = ticket.get("opendiscord:participants").value.filter((p) => p.type == "user") for (const p of participants){ if (!final.find((u) => u.user.id == p.id)){ const participant = await this.#client.fetchUser(p.id) @@ -110,7 +110,7 @@ export class ODTicketManager extends ODManager { } //add admin roles - const roles = ticket.get("openticket:participants").value.filter((p) => p.type == "role") + const roles = ticket.get("opendiscord:participants").value.filter((p) => p.type == "role") for (const r of roles){ const role = await this.#client.fetchGuildRole(channel.guild,r.id) if (role){ @@ -154,35 +154,35 @@ export interface ODTicketJson { * It's used to generate typescript declarations for this class. */ export interface ODTicketIds { - "openticket:busy":ODTicketData, - "openticket:ticket-message":ODTicketData, - "openticket:participants":ODTicketData<{type:"role"|"user",id:string}[]>, - "openticket:channel-suffix":ODTicketData, + "opendiscord:busy":ODTicketData, + "opendiscord:ticket-message":ODTicketData, + "opendiscord:participants":ODTicketData<{type:"role"|"user",id:string}[]>, + "opendiscord:channel-suffix":ODTicketData, - "openticket:open":ODTicketData, - "openticket:opened-by":ODTicketData, - "openticket:opened-on":ODTicketData, - "openticket:closed":ODTicketData, - "openticket:closed-by":ODTicketData, - "openticket:closed-on":ODTicketData, - "openticket:claimed":ODTicketData, - "openticket:claimed-by":ODTicketData, - "openticket:claimed-on":ODTicketData, - "openticket:pinned":ODTicketData, - "openticket:pinned-by":ODTicketData, - "openticket:pinned-on":ODTicketData, - "openticket:for-deletion":ODTicketData, + "opendiscord:open":ODTicketData, + "opendiscord:opened-by":ODTicketData, + "opendiscord:opened-on":ODTicketData, + "opendiscord:closed":ODTicketData, + "opendiscord:closed-by":ODTicketData, + "opendiscord:closed-on":ODTicketData, + "opendiscord:claimed":ODTicketData, + "opendiscord:claimed-by":ODTicketData, + "opendiscord:claimed-on":ODTicketData, + "opendiscord:pinned":ODTicketData, + "opendiscord:pinned-by":ODTicketData, + "opendiscord:pinned-on":ODTicketData, + "opendiscord:for-deletion":ODTicketData, - "openticket:category":ODTicketData, - "openticket:category-mode":ODTicketData, + "opendiscord:category":ODTicketData, + "opendiscord:category-mode":ODTicketData, - "openticket:autoclose-enabled":ODTicketData, - "openticket:autoclose-hours":ODTicketData, - "openticket:autoclosed":ODTicketData, - "openticket:autodelete-enabled":ODTicketData, - "openticket:autodelete-days":ODTicketData, + "opendiscord:autoclose-enabled":ODTicketData, + "opendiscord:autoclose-hours":ODTicketData, + "opendiscord:autoclosed":ODTicketData, + "opendiscord:autodelete-enabled":ODTicketData, + "opendiscord:autodelete-days":ODTicketData, - "openticket:answers":ODTicketData<{id:string,name:string,type:"short"|"paragraph",value:string|null}[]>, + "opendiscord:answers":ODTicketData<{id:string,name:string,type:"short"|"paragraph",value:string|null}[]>, } /**## ODTicket `class` diff --git a/src/core/api/openticket/transcript.ts b/src/core/api/openticket/transcript.ts index 6af77c9..854cfee 100644 --- a/src/core/api/openticket/transcript.ts +++ b/src/core/api/openticket/transcript.ts @@ -13,7 +13,7 @@ import * as discord from "discord.js" * * This class manages all transcript generators in the bot. * - * The 2 default built-in transcript generators are: `openticket:html-compiler` & `openticket:text-compiler`. + * The 2 default built-in transcript generators are: `opendiscord:html-compiler` & `opendiscord:text-compiler`. */ export class ODTranscriptManager extends ODManager> { /**The manager responsible for collecting all messages in a channel. */ @@ -119,8 +119,8 @@ export class ODTranscriptCompiler extends ODManagerData { * It's used to generate typescript declarations for this class. */ export interface ODTranscriptCompilerIds { - "openticket:html-compiler":ODTranscriptCompiler<{url:string}>, - "openticket:text-compiler":ODTranscriptCompiler<{contents:string}>, + "opendiscord:html-compiler":ODTranscriptCompiler<{url:string}>, + "opendiscord:text-compiler":ODTranscriptCompiler<{contents:string}>, } /**## ODTranscriptManager_Default `default_class` diff --git a/src/core/startup/dump.ts b/src/core/startup/dump.ts index 27d0cc1..5ec486b 100644 --- a/src/core/startup/dump.ts +++ b/src/core/startup/dump.ts @@ -22,7 +22,7 @@ const disableDumpCommand = false export const loadDumpCommand = () => { if (disableDumpCommand) return - opendiscord.client.textCommands.add(new api.ODTextCommand("openticket:dump",{ + opendiscord.client.textCommands.add(new api.ODTextCommand("opendiscord:dump",{ allowBots:false, guildPermission:true, dmPermission:true, diff --git a/src/core/startup/manageMigration.ts b/src/core/startup/manageMigration.ts index 9a8e01c..07bc19c 100644 --- a/src/core/startup/manageMigration.ts +++ b/src/core/startup/manageMigration.ts @@ -5,8 +5,8 @@ export const loadVersionMigrationSystem = async () => { await preloadMigrationContext() const lastVersion = await isMigrationRequired() - opendiscord.versions.add(lastVersion ? lastVersion : api.ODVersion.fromString("openticket:last-version",opendiscord.versions.get("openticket:version").toString())) - if (lastVersion && !opendiscord.flags.get("openticket:no-migration").value){ + opendiscord.versions.add(lastVersion ? lastVersion : api.ODVersion.fromString("opendiscord:last-version",opendiscord.versions.get("opendiscord:version").toString())) + if (lastVersion && !opendiscord.flags.get("opendiscord:no-migration").value){ //MIGRATION IS REQUIRED opendiscord.log("Detected old data!","info") opendiscord.log("Starting closed API context...","debug") @@ -22,10 +22,10 @@ export const loadVersionMigrationSystem = async () => { saveAllVersionsToDatabase() //DEFAULT FLAGS - if (opendiscord.flags.exists("openticket:no-plugins") && opendiscord.flags.get("openticket:no-plugins").value) opendiscord.defaults.setDefault("pluginLoading",false) - if (opendiscord.flags.exists("openticket:soft-plugins") && opendiscord.flags.get("openticket:soft-plugins").value) opendiscord.defaults.setDefault("softPluginLoading",true) - if (opendiscord.flags.exists("openticket:crash") && opendiscord.flags.get("openticket:crash").value) opendiscord.defaults.setDefault("crashOnError",true) - if (opendiscord.flags.exists("openticket:force-slash-update") && opendiscord.flags.get("openticket:force-slash-update").value) opendiscord.defaults.setDefault("forceSlashCommandRegistration",true) + if (opendiscord.flags.exists("opendiscord:no-plugins") && opendiscord.flags.get("opendiscord:no-plugins").value) opendiscord.defaults.setDefault("pluginLoading",false) + if (opendiscord.flags.exists("opendiscord:soft-plugins") && opendiscord.flags.get("opendiscord:soft-plugins").value) opendiscord.defaults.setDefault("softPluginLoading",true) + if (opendiscord.flags.exists("opendiscord:crash") && opendiscord.flags.get("opendiscord:crash").value) opendiscord.defaults.setDefault("crashOnError",true) + if (opendiscord.flags.exists("opendiscord:force-slash-update") && opendiscord.flags.get("opendiscord:force-slash-update").value) opendiscord.defaults.setDefault("forceSlashCommandRegistration",true) //LEAVE MIGRATION CONTEXT await unloadMigrationContext() @@ -51,10 +51,10 @@ const unloadMigrationContext = async () => { } const isMigrationRequired = async (): Promise => { - const rawVersion = await opendiscord.databases.get("openticket:global").get("openticket:last-version","openticket:version") + const rawVersion = await opendiscord.databases.get("opendiscord:global").get("opendiscord:last-version","opendiscord:version") if (!rawVersion) return false - const version = api.ODVersion.fromString("openticket:last-version",rawVersion) - if (opendiscord.versions.get("openticket:version").compare(version) == "higher"){ + const version = api.ODVersion.fromString("opendiscord:last-version",rawVersion) + if (opendiscord.versions.get("opendiscord:version").compare(version) == "higher"){ return version }else return false } @@ -78,9 +78,9 @@ const loadAllVersionMigrations = async (lastVersion:api.ODVersion) => { } const saveAllVersionsToDatabase = async () => { - const globalDatabase = opendiscord.databases.get("openticket:global") + const globalDatabase = opendiscord.databases.get("opendiscord:global") await opendiscord.versions.loopAll(async (version,id) => { - await globalDatabase.set("openticket:last-version",id.value,version.toString()) + await globalDatabase.set("opendiscord:last-version",id.value,version.toString()) }) } \ No newline at end of file diff --git a/src/core/startup/migration.ts b/src/core/startup/migration.ts index a34ae1d..46e72cf 100644 --- a/src/core/startup/migration.ts +++ b/src/core/startup/migration.ts @@ -2,7 +2,7 @@ import {opendiscord, api, utilities} from "../../index" export const migrations = [ //MIGRATE TO v4.0.0 - new utilities.ODVersionMigration(api.ODVersion.fromString("openticket:version","v4.0.0"),async () => { + new utilities.ODVersionMigration(api.ODVersion.fromString("opendiscord:version","v4.0.0"),async () => { //nothing needs to be transferred :) }) ] \ No newline at end of file diff --git a/src/data/framework/checkerLoader.ts b/src/data/framework/checkerLoader.ts index 28f99eb..8955ae9 100644 --- a/src/data/framework/checkerLoader.ts +++ b/src/data/framework/checkerLoader.ts @@ -1,19 +1,19 @@ import {opendiscord, api, utilities} from "../../index" -const generalConfig = opendiscord.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("opendiscord:general") export const loadAllConfigCheckers = async () => { - opendiscord.checkers.add(new api.ODChecker("openticket:general",opendiscord.checkers.storage,0,opendiscord.configs.get("openticket:general"),defaultGeneralStructure)) - opendiscord.checkers.add(new api.ODChecker("openticket:options",opendiscord.checkers.storage,1,opendiscord.configs.get("openticket:options"),defaultOptionsStructure)) - opendiscord.checkers.add(new api.ODChecker("openticket:panels",opendiscord.checkers.storage,0,opendiscord.configs.get("openticket:panels"),defaultPanelsStructure)) - opendiscord.checkers.add(new api.ODChecker("openticket:questions",opendiscord.checkers.storage,2,opendiscord.configs.get("openticket:questions"),defaultQuestionsStructure)) - opendiscord.checkers.add(new api.ODChecker("openticket:transcripts",opendiscord.checkers.storage,0,opendiscord.configs.get("openticket:transcripts"),defaultTranscriptsStructure)) + opendiscord.checkers.add(new api.ODChecker("opendiscord:general",opendiscord.checkers.storage,0,opendiscord.configs.get("opendiscord:general"),defaultGeneralStructure)) + opendiscord.checkers.add(new api.ODChecker("opendiscord:options",opendiscord.checkers.storage,1,opendiscord.configs.get("opendiscord:options"),defaultOptionsStructure)) + opendiscord.checkers.add(new api.ODChecker("opendiscord:panels",opendiscord.checkers.storage,0,opendiscord.configs.get("opendiscord:panels"),defaultPanelsStructure)) + opendiscord.checkers.add(new api.ODChecker("opendiscord:questions",opendiscord.checkers.storage,2,opendiscord.configs.get("opendiscord:questions"),defaultQuestionsStructure)) + opendiscord.checkers.add(new api.ODChecker("opendiscord:transcripts",opendiscord.checkers.storage,0,opendiscord.configs.get("opendiscord:transcripts"),defaultTranscriptsStructure)) } export const loadAllConfigCheckerFunctions = async () => { - opendiscord.checkers.functions.add(new api.ODCheckerFunction("openticket:unused-options",defaultUnusedOptionsFunction)) - opendiscord.checkers.functions.add(new api.ODCheckerFunction("openticket:unused-questions",defaultUnusedQuestionsFunction)) - opendiscord.checkers.functions.add(new api.ODCheckerFunction("openticket:dropdown-options",defaultDropdownOptionsFunction)) + opendiscord.checkers.functions.add(new api.ODCheckerFunction("opendiscord:unused-options",defaultUnusedOptionsFunction)) + opendiscord.checkers.functions.add(new api.ODCheckerFunction("opendiscord:unused-questions",defaultUnusedQuestionsFunction)) + opendiscord.checkers.functions.add(new api.ODCheckerFunction("opendiscord:dropdown-options",defaultDropdownOptionsFunction)) } export const loadAllConfigCheckerTranslations = async () => { @@ -27,514 +27,514 @@ export const loadAllConfigCheckerTranslations = async () => { //GLOBAL FUNCTIONS export const registerDefaultCheckerSystemTranslations = (tm:api.ODCheckerTranslationRegister_Default,lm:api.ODLanguageManager_Default) => { //SYSTEM - //tm.quickTranslate(lm,"checker.system.headerOpenTicket","other","openticket:header-openticket") //OPEN TICKET (ignore) - tm.quickTranslate(lm,"checker.system.typeError","other","openticket:type-error") // [ERROR] (ignore) - tm.quickTranslate(lm,"checker.system.typeWarning","other","openticket:type-warning") // [WARNING] (ignore) - tm.quickTranslate(lm,"checker.system.typeInfo","other","openticket:type-info") // [INFO] (ignore) - tm.quickTranslate(lm,"checker.system.headerConfigChecker","other","openticket:header-configchecker") // CONFIG CHECKER - tm.quickTranslate(lm,"checker.system.headerDescription","other","openticket:header-description") // check for errors in your config files! - tm.quickTranslate(lm,"checker.system.footerError","other","openticket:footer-error") // the bot won't start until all {0}'s are fixed! - tm.quickTranslate(lm,"checker.system.footerWarning","other","openticket:footer-warning") // it's recommended to fix all {0}'s before starting! - tm.quickTranslate(lm,"checker.system.footerSupport","other","openticket:footer-support") // SUPPORT: {0} - DOCS: {1} - tm.quickTranslate(lm,"checker.system.compactInformation","other","openticket:compact-information") // use {0} for more information! - tm.quickTranslate(lm,"checker.system.dataPath","other","openticket:data-path") // path - tm.quickTranslate(lm,"checker.system.dataDocs","other","openticket:data-docs") // docs - tm.quickTranslate(lm,"checker.system.dataMessages","other","openticket:data-message") // message + //tm.quickTranslate(lm,"checker.system.headerOpenTicket","other","opendiscord:header-openticket") //OPEN TICKET (ignore) + tm.quickTranslate(lm,"checker.system.typeError","other","opendiscord:type-error") // [ERROR] (ignore) + tm.quickTranslate(lm,"checker.system.typeWarning","other","opendiscord:type-warning") // [WARNING] (ignore) + tm.quickTranslate(lm,"checker.system.typeInfo","other","opendiscord:type-info") // [INFO] (ignore) + tm.quickTranslate(lm,"checker.system.headerConfigChecker","other","opendiscord:header-configchecker") // CONFIG CHECKER + tm.quickTranslate(lm,"checker.system.headerDescription","other","opendiscord:header-description") // check for errors in your config files! + tm.quickTranslate(lm,"checker.system.footerError","other","opendiscord:footer-error") // the bot won't start until all {0}'s are fixed! + tm.quickTranslate(lm,"checker.system.footerWarning","other","opendiscord:footer-warning") // it's recommended to fix all {0}'s before starting! + tm.quickTranslate(lm,"checker.system.footerSupport","other","opendiscord:footer-support") // SUPPORT: {0} - DOCS: {1} + tm.quickTranslate(lm,"checker.system.compactInformation","other","opendiscord:compact-information") // use {0} for more information! + tm.quickTranslate(lm,"checker.system.dataPath","other","opendiscord:data-path") // path + tm.quickTranslate(lm,"checker.system.dataDocs","other","opendiscord:data-docs") // docs + tm.quickTranslate(lm,"checker.system.dataMessages","other","opendiscord:data-message") // message } export const registerDefaultCheckerMessageTranslations = (tm:api.ODCheckerTranslationRegister_Default,lm:api.ODLanguageManager_Default) => { //STRUCTURES - tm.quickTranslate(lm,"checker.messages.invalidType","message","openticket:invalid-type") // This property needs to be the type: {0}! - tm.quickTranslate(lm,"checker.messages.propertyMissing","message","openticket:property-missing") // The property {0} is missing from this object! - tm.quickTranslate(lm,"checker.messages.propertyOptional","message","openticket:property-optional") // The property {0} is optional in this object! - tm.quickTranslate(lm,"checker.messages.objectDisabled","message","openticket:object-disabled") // This object is disabled, enable it using {0}! - tm.quickTranslate(lm,"checker.messages.nullInvalid","message","openticket:null-invalid") // This property can't be null! - tm.quickTranslate(lm,"checker.messages.switchInvalidType","message","openticket:switch-invalid-type") // This needs to be one of the following types: {0}! - tm.quickTranslate(lm,"checker.messages.objectSwitchInvalid","message","openticket:object-switch-invalid-type") // This object needs to be one of the following types: {0}! + tm.quickTranslate(lm,"checker.messages.invalidType","message","opendiscord:invalid-type") // This property needs to be the type: {0}! + tm.quickTranslate(lm,"checker.messages.propertyMissing","message","opendiscord:property-missing") // The property {0} is missing from this object! + tm.quickTranslate(lm,"checker.messages.propertyOptional","message","opendiscord:property-optional") // The property {0} is optional in this object! + tm.quickTranslate(lm,"checker.messages.objectDisabled","message","opendiscord:object-disabled") // This object is disabled, enable it using {0}! + tm.quickTranslate(lm,"checker.messages.nullInvalid","message","opendiscord:null-invalid") // This property can't be null! + tm.quickTranslate(lm,"checker.messages.switchInvalidType","message","opendiscord:switch-invalid-type") // This needs to be one of the following types: {0}! + tm.quickTranslate(lm,"checker.messages.objectSwitchInvalid","message","opendiscord:object-switch-invalid-type") // This object needs to be one of the following types: {0}! - tm.quickTranslate(lm,"checker.messages.stringTooShort","message","openticket:string-too-short") // This string can't be shorter than {0} characters! - tm.quickTranslate(lm,"checker.messages.stringTooLong","message","openticket:string-too-long") // This string can't be longer than {0} characters! - tm.quickTranslate(lm,"checker.messages.stringLengthInvalid","message","openticket:string-length-invalid") // This string needs to be {0} characters long! - tm.quickTranslate(lm,"checker.messages.stringStartsWith","message","openticket:string-starts-with") // This string needs to start with {0}! - tm.quickTranslate(lm,"checker.messages.stringEndsWith","message","openticket:string-ends-with") // This string needs to end with {0}! - tm.quickTranslate(lm,"checker.messages.stringContains","message","openticket:string-contains") // This string needs to contain {0}! - tm.quickTranslate(lm,"checker.messages.stringChoices","message","openticket:string-choices") // This string can only be one of the following values: {0}! - tm.quickTranslate(lm,"checker.messages.stringRegex","message","openticket:string-regex") // This string is invalid! + tm.quickTranslate(lm,"checker.messages.stringTooShort","message","opendiscord:string-too-short") // This string can't be shorter than {0} characters! + tm.quickTranslate(lm,"checker.messages.stringTooLong","message","opendiscord:string-too-long") // This string can't be longer than {0} characters! + tm.quickTranslate(lm,"checker.messages.stringLengthInvalid","message","opendiscord:string-length-invalid") // This string needs to be {0} characters long! + tm.quickTranslate(lm,"checker.messages.stringStartsWith","message","opendiscord:string-starts-with") // This string needs to start with {0}! + tm.quickTranslate(lm,"checker.messages.stringEndsWith","message","opendiscord:string-ends-with") // This string needs to end with {0}! + tm.quickTranslate(lm,"checker.messages.stringContains","message","opendiscord:string-contains") // This string needs to contain {0}! + tm.quickTranslate(lm,"checker.messages.stringChoices","message","opendiscord:string-choices") // This string can only be one of the following values: {0}! + tm.quickTranslate(lm,"checker.messages.stringRegex","message","opendiscord:string-regex") // This string is invalid! - tm.quickTranslate(lm,"checker.messages.numberTooShort","message","openticket:number-too-short") // This number can't be shorter than {0} characters! - tm.quickTranslate(lm,"checker.messages.numberTooLong","message","openticket:number-too-long") // This number can't be longer than {0} characters! - tm.quickTranslate(lm,"checker.messages.numberLengthInvalid","message","openticket:number-length-invalid") // This number needs to be {0} characters long! - tm.quickTranslate(lm,"checker.messages.numberTooSmall","message","openticket:number-too-small") // This number needs to be at least {0}! - tm.quickTranslate(lm,"checker.messages.numberTooLarge","message","openticket:number-too-large") // This number needs to be at most {0}! - tm.quickTranslate(lm,"checker.messages.numberNotEqual","message","openticket:number-not-equal") // This number needs to be {0}! - tm.quickTranslate(lm,"checker.messages.numberStep","message","openticket:number-step") // This number needs to be a multiple of {0}! - tm.quickTranslate(lm,"checker.messages.numberStepOffset","message","openticket:number-step-offset") // This number needs to be a multiple of {0} starting with {1}! - tm.quickTranslate(lm,"checker.messages.numberStartsWith","message","openticket:number-starts-with") // This number needs to start with {0}! - tm.quickTranslate(lm,"checker.messages.numberEndsWith","message","openticket:number-ends-with") // This number needs to end with {0}! - tm.quickTranslate(lm,"checker.messages.numberContains","message","openticket:number-contains") // This number needs to contain {0}! - tm.quickTranslate(lm,"checker.messages.numberChoices","message","openticket:number-choices") // This number can only be one of the following values: {0}! - tm.quickTranslate(lm,"checker.messages.numberFloat","message","openticket:number-float") // This number can't be a decimal! - tm.quickTranslate(lm,"checker.messages.numberNegative","message","openticket:number-negative") // This number can't be negative! - tm.quickTranslate(lm,"checker.messages.numberPositive","message","openticket:number-positive") // This number can't be positive! - tm.quickTranslate(lm,"checker.messages.numberZero","message","openticket:number-zero") // This number can't be zero! + tm.quickTranslate(lm,"checker.messages.numberTooShort","message","opendiscord:number-too-short") // This number can't be shorter than {0} characters! + tm.quickTranslate(lm,"checker.messages.numberTooLong","message","opendiscord:number-too-long") // This number can't be longer than {0} characters! + tm.quickTranslate(lm,"checker.messages.numberLengthInvalid","message","opendiscord:number-length-invalid") // This number needs to be {0} characters long! + tm.quickTranslate(lm,"checker.messages.numberTooSmall","message","opendiscord:number-too-small") // This number needs to be at least {0}! + tm.quickTranslate(lm,"checker.messages.numberTooLarge","message","opendiscord:number-too-large") // This number needs to be at most {0}! + tm.quickTranslate(lm,"checker.messages.numberNotEqual","message","opendiscord:number-not-equal") // This number needs to be {0}! + tm.quickTranslate(lm,"checker.messages.numberStep","message","opendiscord:number-step") // This number needs to be a multiple of {0}! + tm.quickTranslate(lm,"checker.messages.numberStepOffset","message","opendiscord:number-step-offset") // This number needs to be a multiple of {0} starting with {1}! + tm.quickTranslate(lm,"checker.messages.numberStartsWith","message","opendiscord:number-starts-with") // This number needs to start with {0}! + tm.quickTranslate(lm,"checker.messages.numberEndsWith","message","opendiscord:number-ends-with") // This number needs to end with {0}! + tm.quickTranslate(lm,"checker.messages.numberContains","message","opendiscord:number-contains") // This number needs to contain {0}! + tm.quickTranslate(lm,"checker.messages.numberChoices","message","opendiscord:number-choices") // This number can only be one of the following values: {0}! + tm.quickTranslate(lm,"checker.messages.numberFloat","message","opendiscord:number-float") // This number can't be a decimal! + tm.quickTranslate(lm,"checker.messages.numberNegative","message","opendiscord:number-negative") // This number can't be negative! + tm.quickTranslate(lm,"checker.messages.numberPositive","message","opendiscord:number-positive") // This number can't be positive! + tm.quickTranslate(lm,"checker.messages.numberZero","message","opendiscord:number-zero") // This number can't be zero! - tm.quickTranslate(lm,"checker.messages.booleanTrue","message","openticket:boolean-true") // This boolean can't be true! - tm.quickTranslate(lm,"checker.messages.booleanFalse","message","openticket:boolean-false") // This boolean can't be false! + tm.quickTranslate(lm,"checker.messages.booleanTrue","message","opendiscord:boolean-true") // This boolean can't be true! + tm.quickTranslate(lm,"checker.messages.booleanFalse","message","opendiscord:boolean-false") // This boolean can't be false! - tm.quickTranslate(lm,"checker.messages.arrayEmptyDisabled","message","openticket:array-empty-disabled") // This array isn't allowed to be empty! - tm.quickTranslate(lm,"checker.messages.arrayEmptyRequired","message","openticket:array-empty-required") // This array is required to be empty! - tm.quickTranslate(lm,"checker.messages.arrayTooShort","message","openticket:array-too-short") // This array needs to have a length of at least {0}! - tm.quickTranslate(lm,"checker.messages.arrayTooLong","message","openticket:array-too-long") // This array needs to have a length of at most {0}! - tm.quickTranslate(lm,"checker.messages.arrayLengthInvalid","message","openticket:array-length-invalid") // This array needs to have a length of {0}! - tm.quickTranslate(lm,"checker.messages.arrayInvalidTypes","message","openticket:array-invalid-types") // This array can only contain the following types: {0}! - tm.quickTranslate(lm,"checker.messages.arrayDouble","message","openticket:array-double") // This array doesn't allow the same value twice! + tm.quickTranslate(lm,"checker.messages.arrayEmptyDisabled","message","opendiscord:array-empty-disabled") // This array isn't allowed to be empty! + tm.quickTranslate(lm,"checker.messages.arrayEmptyRequired","message","opendiscord:array-empty-required") // This array is required to be empty! + tm.quickTranslate(lm,"checker.messages.arrayTooShort","message","opendiscord:array-too-short") // This array needs to have a length of at least {0}! + tm.quickTranslate(lm,"checker.messages.arrayTooLong","message","opendiscord:array-too-long") // This array needs to have a length of at most {0}! + tm.quickTranslate(lm,"checker.messages.arrayLengthInvalid","message","opendiscord:array-length-invalid") // This array needs to have a length of {0}! + tm.quickTranslate(lm,"checker.messages.arrayInvalidTypes","message","opendiscord:array-invalid-types") // This array can only contain the following types: {0}! + tm.quickTranslate(lm,"checker.messages.arrayDouble","message","opendiscord:array-double") // This array doesn't allow the same value twice! - tm.quickTranslate(lm,"checker.messages.discordInvalidId","message","openticket:discord-invalid-id") // This is an invalid discord {0} id! - tm.quickTranslate(lm,"checker.messages.discordInvalidIdOptions","message","openticket:discord-invalid-id-options") // This is an invalid discord {0} id! You can also use one of these: {1}! - tm.quickTranslate(lm,"checker.messages.discordInvalidToken","message","openticket:discord-invalid-token") // This is an invalid discord token (syntactically)! - tm.quickTranslate(lm,"checker.messages.colorInvalid","message","openticket:color-invalid") // This is an invalid hex color! - tm.quickTranslate(lm,"checker.messages.emojiTooShort","message","openticket:emoji-too-short") // This string needs to have at least {0} emoji's! - tm.quickTranslate(lm,"checker.messages.emojiTooLong","message","openticket:emoji-too-long") // This string needs to have at most {0} emoji's! - tm.quickTranslate(lm,"checker.messages.emojiCustom","message","openticket:emoji-custom") // This emoji can't be a custom discord emoji! - tm.quickTranslate(lm,"checker.messages.emojiInvalid","message","openticket:emoji-invalid") // This is an invalid emoji! - tm.quickTranslate(lm,"checker.messages.urlInvalid","message","openticket:url-invalid") // This url is invalid! - tm.quickTranslate(lm,"checker.messages.urlInvalidHttp","message","openticket:url-invalid-http") // This url can only use the https:// protocol! - tm.quickTranslate(lm,"checker.messages.urlInvalidProtocol","message","openticket:url-invalid-protocol") // This url can only use the http:// & https:// protocols! - tm.quickTranslate(lm,"checker.messages.urlInvalidHostname","message","openticket:url-invalid-hostname") // This url has a disallowed hostname! - tm.quickTranslate(lm,"checker.messages.urlInvalidExtension","message","openticket:url-invalid-extension") // This url has an invalid extension! Choose between: {0}! - tm.quickTranslate(lm,"checker.messages.urlInvalidPath","message","openticket:url-invalid-path") // This url has an invalid path! - tm.quickTranslate(lm,"checker.messages.idNotUnique","message","openticket:id-not-unique") // This id isn't unique, use another id instead! - tm.quickTranslate(lm,"checker.messages.idNonExistent","message","openticket:id-non-existent") // The id {0} doesn't exist! + tm.quickTranslate(lm,"checker.messages.discordInvalidId","message","opendiscord:discord-invalid-id") // This is an invalid discord {0} id! + tm.quickTranslate(lm,"checker.messages.discordInvalidIdOptions","message","opendiscord:discord-invalid-id-options") // This is an invalid discord {0} id! You can also use one of these: {1}! + tm.quickTranslate(lm,"checker.messages.discordInvalidToken","message","opendiscord:discord-invalid-token") // This is an invalid discord token (syntactically)! + tm.quickTranslate(lm,"checker.messages.colorInvalid","message","opendiscord:color-invalid") // This is an invalid hex color! + tm.quickTranslate(lm,"checker.messages.emojiTooShort","message","opendiscord:emoji-too-short") // This string needs to have at least {0} emoji's! + tm.quickTranslate(lm,"checker.messages.emojiTooLong","message","opendiscord:emoji-too-long") // This string needs to have at most {0} emoji's! + tm.quickTranslate(lm,"checker.messages.emojiCustom","message","opendiscord:emoji-custom") // This emoji can't be a custom discord emoji! + tm.quickTranslate(lm,"checker.messages.emojiInvalid","message","opendiscord:emoji-invalid") // This is an invalid emoji! + tm.quickTranslate(lm,"checker.messages.urlInvalid","message","opendiscord:url-invalid") // This url is invalid! + tm.quickTranslate(lm,"checker.messages.urlInvalidHttp","message","opendiscord:url-invalid-http") // This url can only use the https:// protocol! + tm.quickTranslate(lm,"checker.messages.urlInvalidProtocol","message","opendiscord:url-invalid-protocol") // This url can only use the http:// & https:// protocols! + tm.quickTranslate(lm,"checker.messages.urlInvalidHostname","message","opendiscord:url-invalid-hostname") // This url has a disallowed hostname! + tm.quickTranslate(lm,"checker.messages.urlInvalidExtension","message","opendiscord:url-invalid-extension") // This url has an invalid extension! Choose between: {0}! + tm.quickTranslate(lm,"checker.messages.urlInvalidPath","message","opendiscord:url-invalid-path") // This url has an invalid path! + tm.quickTranslate(lm,"checker.messages.idNotUnique","message","opendiscord:id-not-unique") // This id isn't unique, use another id instead! + tm.quickTranslate(lm,"checker.messages.idNonExistent","message","opendiscord:id-non-existent") // The id {0} doesn't exist! } export const registerDefaultCheckerCustomTranslations = (tm:api.ODCheckerTranslationRegister_Default,lm:api.ODLanguageManager_Default) => { //CUSTOM - tm.quickTranslate(lm,"checker.messages.invalidLanguage","message","openticket:invalid-language") // This is an invalid language! - tm.quickTranslate(lm,"checker.messages.invalidButton","message","openticket:invalid-button") // This button needs to have at least an {0} or {1}! - tm.quickTranslate(lm,"checker.messages.unusedOption","message","openticket:unused-option") // The option {0} isn't used anywhere! - tm.quickTranslate(lm,"checker.messages.unusedQuestion","message","openticket:unused-question") // The question {0} isn't used anywhere! - tm.quickTranslate(lm,"checker.messages.dropdownOption","message","openticket:dropdown-option") // A panel with dropdown enabled can only contain options of the 'ticket' type! + tm.quickTranslate(lm,"checker.messages.invalidLanguage","message","opendiscord:invalid-language") // This is an invalid language! + tm.quickTranslate(lm,"checker.messages.invalidButton","message","opendiscord:invalid-button") // This button needs to have at least an {0} or {1}! + tm.quickTranslate(lm,"checker.messages.unusedOption","message","opendiscord:unused-option") // The option {0} isn't used anywhere! + tm.quickTranslate(lm,"checker.messages.unusedQuestion","message","opendiscord:unused-question") // The question {0} isn't used anywhere! + tm.quickTranslate(lm,"checker.messages.dropdownOption","message","opendiscord:dropdown-option") // A panel with dropdown enabled can only contain options of the 'ticket' type! //TODO TRANSLATION!!! - //tm.quickTranslate(lm,"checker.messages.TODO","message","openticket:invalid-version") // The version specified in your config is invalid! Make sure you have updated it to the latest version! + //tm.quickTranslate(lm,"checker.messages.TODO","message","opendiscord:invalid-version") // The version specified in your config is invalid! Make sure you have updated it to the latest version! } //UTILITY FUNCTIONS const createMsgStructure = (id:api.ODValidId) => { return new api.ODCheckerObjectStructure(id,{children:[ - {key:"dm",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:msg-dm",{})}, - {key:"logs",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:msg-logs",{})}, + {key:"dm",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:msg-dm",{})}, + {key:"logs",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:msg-logs",{})}, ]}) } const createTicketEmbedStructure = (id:api.ODValidId) => { return new api.ODCheckerEnabledObjectStructure(id,{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure(id,{children:[ - {key:"title",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-embed-text",{maxLength:256})}, - {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-embed-description",{maxLength:4096})}, - {key:"customColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:ticket-embed-color",true,true)}, + {key:"title",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-embed-text",{maxLength:256})}, + {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-embed-description",{maxLength:4096})}, + {key:"customColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:ticket-embed-color",true,true)}, - {key:"image",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("openticket:ticket-embed-image",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp",".gif"]})}, - {key:"thumbnail",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("openticket:ticket-embed-thumbnail",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp",".gif"]})}, - {key:"fields",optional:false,priority:0,checker:new api.ODCheckerArrayStructure("openticket:ticket-embed-fields",{allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectStructure("openticket:ticket-embed-fields",{children:[ - {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-embed-field-name",{minLength:1,maxLength:256})}, - {key:"value",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-embed-field-value",{minLength:1,maxLength:1024})}, - {key:"inline",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-embed-field-inline",{})} + {key:"image",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("opendiscord:ticket-embed-image",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp",".gif"]})}, + {key:"thumbnail",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("opendiscord:ticket-embed-thumbnail",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp",".gif"]})}, + {key:"fields",optional:false,priority:0,checker:new api.ODCheckerArrayStructure("opendiscord:ticket-embed-fields",{allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectStructure("opendiscord:ticket-embed-fields",{children:[ + {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-embed-field-name",{minLength:1,maxLength:256})}, + {key:"value",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-embed-field-value",{minLength:1,maxLength:1024})}, + {key:"inline",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-embed-field-inline",{})} ]})})}, - {key:"timestamp",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-embed-timestamp",{})} + {key:"timestamp",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-embed-timestamp",{})} ]})}) } const createTicketPingStructure = (id:api.ODValidId) => { return new api.ODCheckerObjectStructure(id,{children:[ - {key:"@here",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-ping-here",{})}, - {key:"@everyone",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-ping-everyone",{})}, - {key:"custom",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("openticket:ticket-ping-custom","role",[],{allowDoubles:false})}, + {key:"@here",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-ping-here",{})}, + {key:"@everyone",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-ping-everyone",{})}, + {key:"custom",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("opendiscord:ticket-ping-custom","role",[],{allowDoubles:false})}, ]}) } const createPanelEmbedStructure = (id:api.ODValidId) => { return new api.ODCheckerEnabledObjectStructure(id,{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure(id,{children:[ - {key:"title",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:panel-embed-text",{maxLength:256})}, - {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:panel-embed-description",{maxLength:4096})}, - {key:"customColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:panel-embed-color",true,true)}, - {key:"url",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("openticket:panel-embed-url",true,{allowHttp:false})}, + {key:"title",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:panel-embed-text",{maxLength:256})}, + {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:panel-embed-description",{maxLength:4096})}, + {key:"customColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:panel-embed-color",true,true)}, + {key:"url",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("opendiscord:panel-embed-url",true,{allowHttp:false})}, - {key:"image",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("openticket:panel-embed-image",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp",".gif"]})}, - {key:"thumbnail",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("openticket:panel-embed-thumbnail",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp",".gif"]})}, + {key:"image",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("opendiscord:panel-embed-image",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp",".gif"]})}, + {key:"thumbnail",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("opendiscord:panel-embed-thumbnail",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp",".gif"]})}, - {key:"footer",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:panel-embed-footer",{maxLength:2048})}, - {key:"fields",optional:false,priority:0,checker:new api.ODCheckerArrayStructure("openticket:panel-embed-fields",{allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectStructure("openticket:panel-embed-fields",{children:[ - {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:panel-embed-field-name",{minLength:1,maxLength:256})}, - {key:"value",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:panel-embed-field-value",{minLength:1,maxLength:1024})}, - {key:"inline",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:panel-embed-field-inline",{})} + {key:"footer",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:panel-embed-footer",{maxLength:2048})}, + {key:"fields",optional:false,priority:0,checker:new api.ODCheckerArrayStructure("opendiscord:panel-embed-fields",{allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectStructure("opendiscord:panel-embed-fields",{children:[ + {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:panel-embed-field-name",{minLength:1,maxLength:256})}, + {key:"value",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:panel-embed-field-value",{minLength:1,maxLength:1024})}, + {key:"inline",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:panel-embed-field-inline",{})} ]})})}, - {key:"timestamp",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:panel-embed-timestamp",{})} + {key:"timestamp",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:panel-embed-timestamp",{})} ]})}) } function loadFromEnv(){ - const generalConfig = opendiscord.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("opendiscord:general") if (generalConfig.data && generalConfig.data.tokenFromENV && typeof generalConfig.data.tokenFromENV == "boolean") return generalConfig.data.tokenFromENV else return false } //STRUCTURES -export const defaultGeneralStructure = new api.ODCheckerObjectStructure("openticket:general",{children:[ +export const defaultGeneralStructure = new api.ODCheckerObjectStructure("opendiscord:general",{children:[ //STATUS - {key:"_INFO",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:info",{children:[ - {key:"support",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:info-support",{choices:["https://otdocs.dj-dj.be"]})}, - {key:"discord",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:info-discord",{choices:["https://discord.dj-dj.be"]})}, - {key:"version",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:info-version",{custom(checker,value,locationTrace,locationId,locationDocs) { + {key:"_INFO",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:info",{children:[ + {key:"support",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:info-support",{choices:["https://otdocs.dj-dj.be"]})}, + {key:"discord",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:info-discord",{choices:["https://discord.dj-dj.be"]})}, + {key:"version",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:info-version",{custom(checker,value,locationTrace,locationId,locationDocs) { const lt = checker.locationTraceDeref(locationTrace) if (typeof value != "string") return false - else if (value != "open-ticket-"+opendiscord.versions.get("openticket:version").toString()){ - checker.createMessage("openticket:invalid-version","warning","The version specified in your config is invalid! Make sure you have updated it to the latest version!",lt,null,[],locationId,locationDocs) + else if (value != "open-ticket-"+opendiscord.versions.get("opendiscord:version").toString()){ + checker.createMessage("opendiscord:invalid-version","warning","The version specified in your config is invalid! Make sure you have updated it to the latest version!",lt,null,[],locationId,locationDocs) return false }else return true },})}, ]})}, //BASIC - {key:"token",optional:false,priority:0,checker:(loadFromEnv()) ? new api.ODCheckerStringStructure("openticket:token-disabled",{}) : new api.ODCheckerCustomStructure_DiscordToken("openticket:token")}, - {key:"tokenFromENV",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:token-env",{})}, - {key:"mainColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:main-color",true,false)}, - {key:"language",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:language",{ + {key:"token",optional:false,priority:0,checker:(loadFromEnv()) ? new api.ODCheckerStringStructure("opendiscord:token-disabled",{}) : new api.ODCheckerCustomStructure_DiscordToken("opendiscord:token")}, + {key:"tokenFromENV",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:token-env",{})}, + {key:"mainColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:main-color",true,false)}, + {key:"language",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:language",{ custom:(checker,value,locationTrace,locationId,locationDocs) => { const lt = checker.locationTraceDeref(locationTrace) if (typeof value != "string") return false else if (!opendiscord.defaults.getDefault("languageList").includes(value)){ - checker.createMessage("openticket:invalid-language","error","This is an invalid language!",lt,null,[],locationId,locationDocs) + checker.createMessage("opendiscord:invalid-language","error","This is an invalid language!",lt,null,[],locationId,locationDocs) return false }else return true }, })}, - {key:"prefix",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:prefix",{minLength:1})}, - {key:"serverId",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:server-id","server",false,[])}, - {key:"globalAdmins",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("openticket:global-admins","role",[],{allowDoubles:false})}, - {key:"slashCommands",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:slash-commands",{})}, - {key:"textCommands",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:text-commands",{})}, + {key:"prefix",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:prefix",{minLength:1})}, + {key:"serverId",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:server-id","server",false,[])}, + {key:"globalAdmins",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("opendiscord:global-admins","role",[],{allowDoubles:false})}, + {key:"slashCommands",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:slash-commands",{})}, + {key:"textCommands",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:text-commands",{})}, //STATUS - {key:"status",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:status",{ + {key:"status",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:status",{ property:"enabled", enabledValue:true, - checker:new api.ODCheckerObjectStructure("openticket:status",{children:[ - {key:"type",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:status-type",{choices:["listening","watching","playing","custom"]})}, - {key:"text",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:status-text",{minLength:1,maxLength:128})}, - {key:"status",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:status-type",{choices:["online","invisible","idle","dnd"]})}, + checker:new api.ODCheckerObjectStructure("opendiscord:status",{children:[ + {key:"type",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:status-type",{choices:["listening","watching","playing","custom"]})}, + {key:"text",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:status-text",{minLength:1,maxLength:128})}, + {key:"status",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:status-type",{choices:["online","invisible","idle","dnd"]})}, ]}) })}, //SYSTEM - {key:"system",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:system",{children:[ - {key:"removeParticipantsOnClose",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:remove-participants-on-close",{})}, - {key:"replyOnTicketCreation",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:reply-on-ticket-creation",{})}, - {key:"replyOnReactionRole",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:reply-on-reaction-role",{})}, - {key:"useTranslatedConfigChecker",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:use-translated-config-checker",{})}, - {key:"preferSlashOverText",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:prefer-slash-over-text",{})}, - {key:"sendErrorOnUnknownCommand",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:send-error-on-unknown-command",{})}, - {key:"questionFieldsInCodeBlock",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:question-fields-in-code-block",{})}, - {key:"disableVerifyBars",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:disable-verify-bars",{})}, - {key:"useRedErrorEmbeds",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:use-red-error-embeds",{})}, - {key:"emojiStyle",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:emoji-style",{choices:["before","after","double","disabled"]})}, + {key:"system",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:system",{children:[ + {key:"removeParticipantsOnClose",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:remove-participants-on-close",{})}, + {key:"replyOnTicketCreation",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:reply-on-ticket-creation",{})}, + {key:"replyOnReactionRole",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:reply-on-reaction-role",{})}, + {key:"useTranslatedConfigChecker",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:use-translated-config-checker",{})}, + {key:"preferSlashOverText",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:prefer-slash-over-text",{})}, + {key:"sendErrorOnUnknownCommand",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:send-error-on-unknown-command",{})}, + {key:"questionFieldsInCodeBlock",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:question-fields-in-code-block",{})}, + {key:"disableVerifyBars",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:disable-verify-bars",{})}, + {key:"useRedErrorEmbeds",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:use-red-error-embeds",{})}, + {key:"emojiStyle",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:emoji-style",{choices:["before","after","double","disabled"]})}, - {key:"enableTicketClaimButtons",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:enable-ticket-claim-buttons",{})}, - {key:"enableTicketCloseButtons",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:enable-ticket-close-buttons",{})}, - {key:"enableTicketPinButtons",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:enable-ticket-pin-buttons",{})}, - {key:"enableTicketDeleteButtons",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:enable-ticket-delete-buttons",{})}, - {key:"enableTicketActionWithReason",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:enable-ticket-action-with-reason",{})}, - {key:"enableDeleteWithoutTranscript",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:enable-delete-without-transcript",{})}, + {key:"enableTicketClaimButtons",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:enable-ticket-claim-buttons",{})}, + {key:"enableTicketCloseButtons",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:enable-ticket-close-buttons",{})}, + {key:"enableTicketPinButtons",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:enable-ticket-pin-buttons",{})}, + {key:"enableTicketDeleteButtons",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:enable-ticket-delete-buttons",{})}, + {key:"enableTicketActionWithReason",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:enable-ticket-action-with-reason",{})}, + {key:"enableDeleteWithoutTranscript",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:enable-delete-without-transcript",{})}, - {key:"logs",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:system-logs",{ + {key:"logs",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:system-logs",{ property:"enabled", enabledValue:true, - checker:new api.ODCheckerObjectStructure("openticket:system-logs",{children:[ - {key:"channel",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:log-channel","channel",false,[])}, + checker:new api.ODCheckerObjectStructure("opendiscord:system-logs",{children:[ + {key:"channel",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:log-channel","channel",false,[])}, ]}) })}, - {key:"limits",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:limits",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:limits",{children:[ - {key:"globalMaximum",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("openticket:limits-global",{zeroAllowed:false,negativeAllowed:false,floatAllowed:false,min:1})}, - {key:"userMaximum",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("openticket:limits-user",{zeroAllowed:false,negativeAllowed:false,floatAllowed:false,min:1})} + {key:"limits",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:limits",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:limits",{children:[ + {key:"globalMaximum",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("opendiscord:limits-global",{zeroAllowed:false,negativeAllowed:false,floatAllowed:false,min:1})}, + {key:"userMaximum",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("opendiscord:limits-user",{zeroAllowed:false,negativeAllowed:false,floatAllowed:false,min:1})} ]})})}, - {key:"permissions",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:system-permissions",{children:[ - {key:"help",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-help","role",false,["admin","everyone","none"])}, - {key:"panel",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-panel","role",false,["admin","everyone","none"])}, - {key:"ticket",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-ticket","role",false,["admin","everyone","none"])}, - {key:"close",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-close","role",false,["admin","everyone","none"])}, - {key:"delete",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-delete","role",false,["admin","everyone","none"])}, - {key:"reopen",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-reopen","role",false,["admin","everyone","none"])}, - {key:"claim",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-claim","role",false,["admin","everyone","none"])}, - {key:"unclaim",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-unclaim","role",false,["admin","everyone","none"])}, - {key:"pin",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-pin","role",false,["admin","everyone","none"])}, - {key:"unpin",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-unpin","role",false,["admin","everyone","none"])}, - {key:"move",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-move","role",false,["admin","everyone","none"])}, - {key:"rename",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-rename","role",false,["admin","everyone","none"])}, - {key:"add",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-add","role",false,["admin","everyone","none"])}, - {key:"remove",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-remove","role",false,["admin","everyone","none"])}, - {key:"blacklist",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-blacklist","role",false,["admin","everyone","none"])}, - {key:"stats",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-stats","role",false,["admin","everyone","none"])}, - {key:"clear",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-clear","role",false,["admin","everyone","none"])}, - {key:"autoclose",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-autoclose","role",false,["admin","everyone","none"])}, - {key:"autodelete",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:permissions-autodelete","role",false,["admin","everyone","none"])} + {key:"permissions",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:system-permissions",{children:[ + {key:"help",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-help","role",false,["admin","everyone","none"])}, + {key:"panel",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-panel","role",false,["admin","everyone","none"])}, + {key:"ticket",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-ticket","role",false,["admin","everyone","none"])}, + {key:"close",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-close","role",false,["admin","everyone","none"])}, + {key:"delete",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-delete","role",false,["admin","everyone","none"])}, + {key:"reopen",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-reopen","role",false,["admin","everyone","none"])}, + {key:"claim",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-claim","role",false,["admin","everyone","none"])}, + {key:"unclaim",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-unclaim","role",false,["admin","everyone","none"])}, + {key:"pin",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-pin","role",false,["admin","everyone","none"])}, + {key:"unpin",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-unpin","role",false,["admin","everyone","none"])}, + {key:"move",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-move","role",false,["admin","everyone","none"])}, + {key:"rename",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-rename","role",false,["admin","everyone","none"])}, + {key:"add",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-add","role",false,["admin","everyone","none"])}, + {key:"remove",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-remove","role",false,["admin","everyone","none"])}, + {key:"blacklist",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-blacklist","role",false,["admin","everyone","none"])}, + {key:"stats",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-stats","role",false,["admin","everyone","none"])}, + {key:"clear",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-clear","role",false,["admin","everyone","none"])}, + {key:"autoclose",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-autoclose","role",false,["admin","everyone","none"])}, + {key:"autodelete",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:permissions-autodelete","role",false,["admin","everyone","none"])} ]})}, - {key:"messages",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:system-permissions",{children:[ - {key:"creation",optional:false,priority:0,checker:createMsgStructure("openticket:msg-creation")}, - {key:"closing",optional:false,priority:0,checker:createMsgStructure("openticket:msg-closing")}, - {key:"deleting",optional:false,priority:0,checker:createMsgStructure("openticket:msg-deleting")}, - {key:"reopening",optional:false,priority:0,checker:createMsgStructure("openticket:msg-reopening")}, - {key:"claiming",optional:false,priority:0,checker:createMsgStructure("openticket:msg-claiming")}, - {key:"pinning",optional:false,priority:0,checker:createMsgStructure("openticket:msg-pinning")}, - {key:"adding",optional:false,priority:0,checker:createMsgStructure("openticket:msg-adding")}, - {key:"removing",optional:false,priority:0,checker:createMsgStructure("openticket:msg-removing")}, - {key:"renaming",optional:false,priority:0,checker:createMsgStructure("openticket:msg-renaming")}, - {key:"moving",optional:false,priority:0,checker:createMsgStructure("openticket:msg-moving")}, - {key:"blacklisting",optional:false,priority:0,checker:createMsgStructure("openticket:msg-blacklisting")}, - {key:"roleAdding",optional:false,priority:0,checker:createMsgStructure("openticket:msg-role-adding")}, - {key:"roleRemoving",optional:false,priority:0,checker:createMsgStructure("openticket:msg-role-removing")} + {key:"messages",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:system-permissions",{children:[ + {key:"creation",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-creation")}, + {key:"closing",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-closing")}, + {key:"deleting",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-deleting")}, + {key:"reopening",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-reopening")}, + {key:"claiming",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-claiming")}, + {key:"pinning",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-pinning")}, + {key:"adding",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-adding")}, + {key:"removing",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-removing")}, + {key:"renaming",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-renaming")}, + {key:"moving",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-moving")}, + {key:"blacklisting",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-blacklisting")}, + {key:"roleAdding",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-role-adding")}, + {key:"roleRemoving",optional:false,priority:0,checker:createMsgStructure("opendiscord:msg-role-removing")} ]})}, ]})} ]}) -export const defaultOptionsStructure = new api.ODCheckerArrayStructure("openticket:options",{allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectSwitchStructure("openticket:options",{objects:[ +export const defaultOptionsStructure = new api.ODCheckerArrayStructure("opendiscord:options",{allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectSwitchStructure("opendiscord:options",{objects:[ //TICKET - {name:"ticket",priority:0,properties:[{key:"type",value:"ticket"}],checker:new api.ODCheckerObjectStructure("openticket:ticket",{children:[ - {key:"id",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueId("openticket:ticket-id","openticket","option-ids",{regex:/^[A-Za-z0-9-éèçàêâôûî]+$/,minLength:3,maxLength:40})}, - {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-name",{minLength:2,maxLength:50})}, - {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-description",{maxLength:256})}, + {name:"ticket",priority:0,properties:[{key:"type",value:"ticket"}],checker:new api.ODCheckerObjectStructure("opendiscord:ticket",{children:[ + {key:"id",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueId("opendiscord:ticket-id","openticket","option-ids",{regex:/^[A-Za-z0-9-éèçàêâôûî]+$/,minLength:3,maxLength:40})}, + {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-name",{minLength:2,maxLength:50})}, + {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-description",{maxLength:256})}, //TICKET BUTTON - {key:"button",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:ticket-button",{children:[ - {key:"emoji",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_EmojiString("openticket:ticket-button-emoji",0,1,true)}, - {key:"label",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-button-label",{maxLength:80})}, - {key:"color",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-button-color",{choices:["gray","red","green","blue"]})}, + {key:"button",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:ticket-button",{children:[ + {key:"emoji",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_EmojiString("opendiscord:ticket-button-emoji",0,1,true)}, + {key:"label",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-button-label",{maxLength:80})}, + {key:"color",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-button-color",{choices:["gray","red","green","blue"]})}, ],custom:(checker,value,locationTrace,locationId,locationDocs) => { const lt = checker.locationTraceDeref(locationTrace) //check if emoji & label exists if (typeof value != "object") return false else if (value && value["emoji"].length < 1 && value["label"].length < 1){ //label & emoji are both empty - checker.createMessage("openticket:invalid-button","error",`This button needs to have at least an "emoji" or "label"!`,lt,null,[`"emoji"`,`"label"`],locationId,locationDocs) + checker.createMessage("opendiscord:invalid-button","error",`This button needs to have at least an "emoji" or "label"!`,lt,null,[`"emoji"`,`"label"`],locationId,locationDocs) return false }else return true }})}, //TICKET ADMINS - {key:"ticketAdmins",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("openticket:ticket-ticket-admins","role",[],{allowDoubles:false})}, - {key:"readonlyAdmins",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("openticket:ticket-readonly-admins","role",[],{allowDoubles:false})}, - {key:"allowCreationByBlacklistedUsers",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-allow-blacklisted-users",{})}, - {key:"questions",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueIdArray("openticket:option-questions","openticket","question-ids","question-ids-used",{allowDoubles:false,maxLength:5})}, + {key:"ticketAdmins",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("opendiscord:ticket-ticket-admins","role",[],{allowDoubles:false})}, + {key:"readonlyAdmins",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("opendiscord:ticket-readonly-admins","role",[],{allowDoubles:false})}, + {key:"allowCreationByBlacklistedUsers",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-allow-blacklisted-users",{})}, + {key:"questions",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueIdArray("opendiscord:option-questions","openticket","question-ids","question-ids-used",{allowDoubles:false,maxLength:5})}, //TICKET CHANNEL - {key:"channel",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:ticket-channel",{children:[ - {key:"prefix",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-channel-prefix",{maxLength:25,regex:/^[^\s]*$/})}, - {key:"suffix",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-channel-suffix",{choices:["user-name","user-id","random-number","random-hex","counter-dynamic","counter-fixed"]})}, + {key:"channel",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:ticket-channel",{children:[ + {key:"prefix",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-channel-prefix",{maxLength:25,regex:/^[^\s]*$/})}, + {key:"suffix",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-channel-suffix",{choices:["user-name","user-id","random-number","random-hex","counter-dynamic","counter-fixed"]})}, - {key:"category",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:ticket-channel-category","category",true,[])}, - {key:"closedCategory",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:ticket-channel-closed-category","category",true,[])}, - {key:"backupCategory",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:ticket-channel-backup-category","category",true,[])}, - {key:"claimedCategory",optional:false,priority:0,checker:new api.ODCheckerArrayStructure("openticket:ticket-channel-claimed-category",{allowDoubles:false,allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectStructure("openticket:ticket-channel-claimed-category",{children:[ - {key:"user",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:ticket-channel-claimed-user","user",false,[])}, - {key:"category",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:ticket-channel-claimed-category","category",false,[])} + {key:"category",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:ticket-channel-category","category",true,[])}, + {key:"closedCategory",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:ticket-channel-closed-category","category",true,[])}, + {key:"backupCategory",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:ticket-channel-backup-category","category",true,[])}, + {key:"claimedCategory",optional:false,priority:0,checker:new api.ODCheckerArrayStructure("opendiscord:ticket-channel-claimed-category",{allowDoubles:false,allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectStructure("opendiscord:ticket-channel-claimed-category",{children:[ + {key:"user",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:ticket-channel-claimed-user","user",false,[])}, + {key:"category",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:ticket-channel-claimed-category","category",false,[])} ]})})}, - {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-channel-description",{})}, + {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-channel-description",{})}, ]})}, //DM MESSAGE - {key:"dmMessage",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:ticket-dm-message",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:ticket-dm-message",{children:[ - {key:"text",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-message-text",{maxLength:4096})}, - {key:"embed",optional:false,priority:0,checker:createTicketEmbedStructure("openticket:ticket-message-embed")} + {key:"dmMessage",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:ticket-dm-message",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:ticket-dm-message",{children:[ + {key:"text",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-message-text",{maxLength:4096})}, + {key:"embed",optional:false,priority:0,checker:createTicketEmbedStructure("opendiscord:ticket-message-embed")} ]})})}, //TICKET MESSAGE - {key:"ticketMessage",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:ticket-message",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:ticket-message",{children:[ - {key:"text",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-message-text",{maxLength:4096})}, - {key:"embed",optional:false,priority:0,checker:createTicketEmbedStructure("openticket:ticket-message-embed")}, - {key:"ping",optional:false,priority:0,checker:createTicketPingStructure("openticket:ticket-message-ping")} + {key:"ticketMessage",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:ticket-message",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:ticket-message",{children:[ + {key:"text",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-message-text",{maxLength:4096})}, + {key:"embed",optional:false,priority:0,checker:createTicketEmbedStructure("opendiscord:ticket-message-embed")}, + {key:"ping",optional:false,priority:0,checker:createTicketPingStructure("opendiscord:ticket-message-ping")} ]})})}, //AUTOCLOSE - {key:"autoclose",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:ticket-autoclose",{children:[ - {key:"enableInactiveHours",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-autoclose-enable-hours",{})}, - {key:"inactiveHours",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("openticket:ticket-autoclose-hours",{zeroAllowed:false,negativeAllowed:false,floatAllowed:true,min:1,max:8544})}, - {key:"enableUserLeave",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-autoclose-enable-leave",{})}, - {key:"disableOnClaim",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-autoclose-disable-claim",{})}, + {key:"autoclose",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:ticket-autoclose",{children:[ + {key:"enableInactiveHours",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-autoclose-enable-hours",{})}, + {key:"inactiveHours",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("opendiscord:ticket-autoclose-hours",{zeroAllowed:false,negativeAllowed:false,floatAllowed:true,min:1,max:8544})}, + {key:"enableUserLeave",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-autoclose-enable-leave",{})}, + {key:"disableOnClaim",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-autoclose-disable-claim",{})}, ]})}, //AUTODELETE - {key:"autodelete",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:ticket-autodelete",{children:[ - {key:"enableInactiveDays",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-autodelete-enable-days",{})}, - {key:"inactiveDays",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("openticket:ticket-autodelete-days",{zeroAllowed:false,negativeAllowed:false,floatAllowed:true,min:1,max:356})}, - {key:"enableUserLeave",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-autodelete-enable-leave",{})}, - {key:"disableOnClaim",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:ticket-autodelete-disable-claim",{})}, + {key:"autodelete",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:ticket-autodelete",{children:[ + {key:"enableInactiveDays",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-autodelete-enable-days",{})}, + {key:"inactiveDays",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("opendiscord:ticket-autodelete-days",{zeroAllowed:false,negativeAllowed:false,floatAllowed:true,min:1,max:356})}, + {key:"enableUserLeave",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-autodelete-enable-leave",{})}, + {key:"disableOnClaim",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:ticket-autodelete-disable-claim",{})}, ]})}, //COOLDOWN - {key:"cooldown",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:ticket-cooldown",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:ticket-cooldown",{children:[ - {key:"cooldownMinutes",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("openticket:ticket-cooldown-minutes",{zeroAllowed:false,negativeAllowed:false,floatAllowed:false,min:1,max:512640})}, + {key:"cooldown",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:ticket-cooldown",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:ticket-cooldown",{children:[ + {key:"cooldownMinutes",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("opendiscord:ticket-cooldown-minutes",{zeroAllowed:false,negativeAllowed:false,floatAllowed:false,min:1,max:512640})}, ]})})}, //LIMITS - {key:"limits",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:ticket-limits",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:ticket-limits",{children:[ - {key:"globalMaximum",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("openticket:ticket-limits-global",{zeroAllowed:false,negativeAllowed:false,floatAllowed:false,min:1})}, - {key:"userMaximum",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("openticket:ticket-limits-user",{zeroAllowed:false,negativeAllowed:false,floatAllowed:false,min:1})} + {key:"limits",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:ticket-limits",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:ticket-limits",{children:[ + {key:"globalMaximum",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("opendiscord:ticket-limits-global",{zeroAllowed:false,negativeAllowed:false,floatAllowed:false,min:1})}, + {key:"userMaximum",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("opendiscord:ticket-limits-user",{zeroAllowed:false,negativeAllowed:false,floatAllowed:false,min:1})} ]})})}, ]})}, //WEBSITE - {name:"website",priority:0,properties:[{key:"type",value:"website"}],checker:new api.ODCheckerObjectStructure("openticket:options-website",{children:[ - {key:"id",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueId("openticket:website-id","openticket","option-ids",{regex:/^[A-Za-z0-9-éèçàêâôûî]+$/,minLength:3,maxLength:40})}, - {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:website-name",{minLength:2,maxLength:50})}, - {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:website-description",{maxLength:256})}, + {name:"website",priority:0,properties:[{key:"type",value:"website"}],checker:new api.ODCheckerObjectStructure("opendiscord:options-website",{children:[ + {key:"id",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueId("opendiscord:website-id","openticket","option-ids",{regex:/^[A-Za-z0-9-éèçàêâôûî]+$/,minLength:3,maxLength:40})}, + {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:website-name",{minLength:2,maxLength:50})}, + {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:website-description",{maxLength:256})}, //WEBSITE BUTTON - {key:"button",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:ticket-button",{children:[ - {key:"emoji",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_EmojiString("openticket:ticket-button-emoji",0,1,true)}, - {key:"label",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-button-label",{maxLength:80})}, + {key:"button",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:ticket-button",{children:[ + {key:"emoji",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_EmojiString("opendiscord:ticket-button-emoji",0,1,true)}, + {key:"label",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-button-label",{maxLength:80})}, ],custom:(checker,value,locationTrace,locationId,locationDocs) => { const lt = checker.locationTraceDeref(locationTrace) //check if emoji & label exists if (typeof value != "object") return false else if (value && value["emoji"].length < 1 && value["label"].length < 1){ //label & emoji are both empty - checker.createMessage("openticket:invalid-button","error",`This button needs to have at least an "emoji" or "label"!`,lt,null,[`"emoji"`,`"label"`],locationId,locationDocs) + checker.createMessage("opendiscord:invalid-button","error",`This button needs to have at least an "emoji" or "label"!`,lt,null,[`"emoji"`,`"label"`],locationId,locationDocs) return false }else return true }})}, //WEBSITE URL - {key:"url",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("openticket:website-url",false,{allowHttp:false})}, + {key:"url",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("opendiscord:website-url",false,{allowHttp:false})}, ]})}, //REACTION ROLES - {name:"role",priority:0,properties:[{key:"type",value:"role"}],checker:new api.ODCheckerObjectStructure("openticket:options-role",{children:[ - {key:"id",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueId("openticket:role-id","openticket","option-ids",{regex:/^[A-Za-z0-9-éèçàêâôûî]+$/,minLength:3,maxLength:40})}, - {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:role-name",{minLength:2,maxLength:50})}, - {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:role-description",{maxLength:256})}, + {name:"role",priority:0,properties:[{key:"type",value:"role"}],checker:new api.ODCheckerObjectStructure("opendiscord:options-role",{children:[ + {key:"id",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueId("opendiscord:role-id","openticket","option-ids",{regex:/^[A-Za-z0-9-éèçàêâôûî]+$/,minLength:3,maxLength:40})}, + {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:role-name",{minLength:2,maxLength:50})}, + {key:"description",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:role-description",{maxLength:256})}, //ROLE BUTTON - {key:"button",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:ticket-button",{children:[ - {key:"emoji",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_EmojiString("openticket:ticket-button-emoji",0,1,true)}, - {key:"label",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-button-label",{maxLength:80})}, - {key:"color",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:ticket-button-color",{choices:["gray","red","green","blue"]})}, + {key:"button",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:ticket-button",{children:[ + {key:"emoji",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_EmojiString("opendiscord:ticket-button-emoji",0,1,true)}, + {key:"label",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-button-label",{maxLength:80})}, + {key:"color",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:ticket-button-color",{choices:["gray","red","green","blue"]})}, ],custom:(checker,value,locationTrace,locationId,locationDocs) => { const lt = checker.locationTraceDeref(locationTrace) //check if emoji & label exists if (typeof value != "object") return false else if (value && value["emoji"].length < 1 && value["label"].length < 1){ //label & emoji are both empty - checker.createMessage("openticket:invalid-button","error",`This button needs to have at least an "emoji" or "label"!`,lt,null,[`"emoji"`,`"label"`],locationId,locationDocs) + checker.createMessage("opendiscord:invalid-button","error",`This button needs to have at least an "emoji" or "label"!`,lt,null,[`"emoji"`,`"label"`],locationId,locationDocs) return false }else return true }})}, //ROLE SETTINGS - {key:"roles",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("openticket:role-roles","role",[],{allowDoubles:false,minLength:1})}, - {key:"mode",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:role-mode",{choices:["add","remove","add&remove"]})}, - {key:"removeRolesOnAdd",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("openticket:role-remove-roles","role",[],{allowDoubles:false})}, - {key:"addOnMemberJoin",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:role-add-on-join",{})}, + {key:"roles",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("opendiscord:role-roles","role",[],{allowDoubles:false,minLength:1})}, + {key:"mode",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:role-mode",{choices:["add","remove","add&remove"]})}, + {key:"removeRolesOnAdd",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordIdArray("opendiscord:role-remove-roles","role",[],{allowDoubles:false})}, + {key:"addOnMemberJoin",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:role-add-on-join",{})}, ]})}, ]})}) -export const defaultPanelsStructure = new api.ODCheckerArrayStructure("openticket:panels",{allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectStructure("openticket:panels",{children:[ - {key:"id",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueId("openticket:panel-id","openticket","panel-ids",{regex:/^[A-Za-z0-9-éèçàêâôûî]+$/,minLength:3,maxLength:40})}, - {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:panel-name",{minLength:3,maxLength:50})}, - {key:"dropdown",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:panel-dropdown",{})}, - {key:"options",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueIdArray("openticket:panel-options","openticket","option-ids","option-ids-used",{allowDoubles:false,maxLength:25})}, +export const defaultPanelsStructure = new api.ODCheckerArrayStructure("opendiscord:panels",{allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectStructure("opendiscord:panels",{children:[ + {key:"id",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueId("opendiscord:panel-id","openticket","panel-ids",{regex:/^[A-Za-z0-9-éèçàêâôûî]+$/,minLength:3,maxLength:40})}, + {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:panel-name",{minLength:3,maxLength:50})}, + {key:"dropdown",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:panel-dropdown",{})}, + {key:"options",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueIdArray("opendiscord:panel-options","openticket","option-ids","option-ids-used",{allowDoubles:false,maxLength:25})}, //EMBED & TEXT - {key:"text",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:panel-text",{maxLength:4096})}, - {key:"embed",optional:false,priority:0,checker:createPanelEmbedStructure("openticket:panel-embed")}, + {key:"text",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:panel-text",{maxLength:4096})}, + {key:"embed",optional:false,priority:0,checker:createPanelEmbedStructure("opendiscord:panel-embed")}, //SETTINGS - {key:"settings",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:panel-settings",{children:[ - {key:"dropdownPlaceholder",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:panel-settings-placeholder",{maxLength:100})}, - {key:"enableMaxTicketsWarningInText",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:panel-settings-maxtickets-text",{})}, - {key:"enableMaxTicketsWarningInEmbed",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:panel-settings-maxtickets-embed",{})}, + {key:"settings",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:panel-settings",{children:[ + {key:"dropdownPlaceholder",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:panel-settings-placeholder",{maxLength:100})}, + {key:"enableMaxTicketsWarningInText",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:panel-settings-maxtickets-text",{})}, + {key:"enableMaxTicketsWarningInEmbed",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:panel-settings-maxtickets-embed",{})}, - {key:"describeOptionsLayout",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:panel-settings-describe-layout",{choices:["simple","normal","detailed"]})}, - {key:"describeOptionsCustomTitle",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:panel-settings-describe-title",{maxLength:512})}, - {key:"describeOptionsInText",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:panel-settings-describe-text",{})}, - {key:"describeOptionsInEmbedFields",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:panel-settings-describe-fields",{})}, - {key:"describeOptionsInEmbedDescription",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:panel-settings-describe-embed",{})}, + {key:"describeOptionsLayout",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:panel-settings-describe-layout",{choices:["simple","normal","detailed"]})}, + {key:"describeOptionsCustomTitle",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:panel-settings-describe-title",{maxLength:512})}, + {key:"describeOptionsInText",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:panel-settings-describe-text",{})}, + {key:"describeOptionsInEmbedFields",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:panel-settings-describe-fields",{})}, + {key:"describeOptionsInEmbedDescription",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:panel-settings-describe-embed",{})}, ]})}, ]})}) -export const defaultQuestionsStructure = new api.ODCheckerArrayStructure("openticket:questions",{allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectStructure("openticket:questions",{children:[ - {key:"id",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueId("openticket:question-id","openticket","question-ids",{regex:/^[A-Za-z0-9-éèçàêâôûî]+$/,minLength:3,maxLength:40})}, - {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:question-name",{minLength:3,maxLength:45})}, - {key:"type",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:question-type",{choices:["short","paragraph"]})}, +export const defaultQuestionsStructure = new api.ODCheckerArrayStructure("opendiscord:questions",{allowedTypes:["object"],propertyChecker:new api.ODCheckerObjectStructure("opendiscord:questions",{children:[ + {key:"id",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UniqueId("opendiscord:question-id","openticket","question-ids",{regex:/^[A-Za-z0-9-éèçàêâôûî]+$/,minLength:3,maxLength:40})}, + {key:"name",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:question-name",{minLength:3,maxLength:45})}, + {key:"type",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:question-type",{choices:["short","paragraph"]})}, - {key:"required",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:question-required",{})}, - {key:"placeholder",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:question-placeholder",{maxLength:100})}, + {key:"required",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:question-required",{})}, + {key:"placeholder",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:question-placeholder",{maxLength:100})}, - {key:"length",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:question-length",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:question-length",{children:[ - {key:"min",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("openticket:question-length-min",{min:0,max:1024,negativeAllowed:false,floatAllowed:false})}, - {key:"max",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("openticket:question-length-max",{min:1,max:1024,negativeAllowed:false,floatAllowed:false})}, + {key:"length",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:question-length",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:question-length",{children:[ + {key:"min",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("opendiscord:question-length-min",{min:0,max:1024,negativeAllowed:false,floatAllowed:false})}, + {key:"max",optional:false,priority:0,checker:new api.ODCheckerNumberStructure("opendiscord:question-length-max",{min:1,max:1024,negativeAllowed:false,floatAllowed:false})}, ]})})}, ]})}) -export const defaultTranscriptsStructure = new api.ODCheckerObjectStructure("openticket:transcripts",{children:[ +export const defaultTranscriptsStructure = new api.ODCheckerObjectStructure("opendiscord:transcripts",{children:[ //GENERAL - {key:"general",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:transcripts-general",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:transcripts-general",{children:[ - {key:"enableChannel",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-enable-channel",{})}, - {key:"enableCreatorDM",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-enable-creator-dm",{})}, - {key:"enableParticipantDM",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-enable-participant-dm",{})}, - {key:"enableActiveAdminDM",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-enable-active-admin-dm",{})}, - {key:"enableEveryAdminDM",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-enable-every-admin-dm",{})}, + {key:"general",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:transcripts-general",{property:"enabled",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:transcripts-general",{children:[ + {key:"enableChannel",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-enable-channel",{})}, + {key:"enableCreatorDM",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-enable-creator-dm",{})}, + {key:"enableParticipantDM",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-enable-participant-dm",{})}, + {key:"enableActiveAdminDM",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-enable-active-admin-dm",{})}, + {key:"enableEveryAdminDM",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-enable-every-admin-dm",{})}, - {key:"channel",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("openticket:transcripts-channel","channel",true,[])}, - {key:"mode",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:transcripts-mode",{choices:["html","text"]})}, + {key:"channel",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_DiscordId("opendiscord:transcripts-channel","channel",true,[])}, + {key:"mode",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:transcripts-mode",{choices:["html","text"]})}, ]})})}, //EMBED SETTINGS - {key:"embedSettings",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:transcripts-embed-settings",{children:[ - {key:"customColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:transcripts-embed-color",false,true)}, - {key:"listAllParticipants",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-embed-list-participants",{})}, - {key:"includeTicketStats",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-embed-include-ticket-stats",{})}, + {key:"embedSettings",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:transcripts-embed-settings",{children:[ + {key:"customColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:transcripts-embed-color",false,true)}, + {key:"listAllParticipants",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-embed-list-participants",{})}, + {key:"includeTicketStats",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-embed-include-ticket-stats",{})}, ]})}, //TEXT STYLE - {key:"textTranscriptStyle",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:transcripts-text",{children:[ - {key:"layout",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:transcripts-text-layout",{choices:["simple","normal","detailed"]})}, - {key:"includeStats",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-text-include-stats",{})}, - {key:"includeIds",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-text-include-ids",{})}, - {key:"includeEmbeds",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-text-include-embeds",{})}, - {key:"includeFiles",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-text-include-files",{})}, - {key:"includeBotMessages",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("openticket:transcripts-text-include-bots",{})}, + {key:"textTranscriptStyle",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:transcripts-text",{children:[ + {key:"layout",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:transcripts-text-layout",{choices:["simple","normal","detailed"]})}, + {key:"includeStats",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-text-include-stats",{})}, + {key:"includeIds",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-text-include-ids",{})}, + {key:"includeEmbeds",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-text-include-embeds",{})}, + {key:"includeFiles",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-text-include-files",{})}, + {key:"includeBotMessages",optional:false,priority:0,checker:new api.ODCheckerBooleanStructure("opendiscord:transcripts-text-include-bots",{})}, - {key:"fileMode",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:transcripts-text-file-mode",{choices:["custom","channel-name","channel-id","user-name","user-id"]})}, - {key:"customFileName",optional:false,priority:0,checker:new api.ODCheckerStringStructure("openticket:transcripts-file-name",{maxLength:512,regex:/^[^\.#%&{}\\<>*?/!'":@`|=]*$/})}, + {key:"fileMode",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:transcripts-text-file-mode",{choices:["custom","channel-name","channel-id","user-name","user-id"]})}, + {key:"customFileName",optional:false,priority:0,checker:new api.ODCheckerStringStructure("opendiscord:transcripts-file-name",{maxLength:512,regex:/^[^\.#%&{}\\<>*?/!'":@`|=]*$/})}, ]})}, //HTML STYLE - {key:"htmlTranscriptStyle",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("openticket:transcripts-html",{children:[ + {key:"htmlTranscriptStyle",optional:false,priority:0,checker:new api.ODCheckerObjectStructure("opendiscord:transcripts-html",{children:[ //HTML BACKGROUND - {key:"background",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:transcripts-html-background",{property:"enableCustomBackground",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:transcripts-html-background",{children:[ - {key:"backgroundColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:transcripts-html-background-color",false,true)}, - {key:"backgroundImage",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("openticket:transcripts-html-background-image",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp",".gif"]})}, + {key:"background",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:transcripts-html-background",{property:"enableCustomBackground",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:transcripts-html-background",{children:[ + {key:"backgroundColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:transcripts-html-background-color",false,true)}, + {key:"backgroundImage",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("opendiscord:transcripts-html-background-image",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp",".gif"]})}, ]})})}, //HTML HEADER - {key:"header",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:transcripts-html-header",{property:"enableCustomHeader",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:transcripts-html-header",{children:[ - {key:"backgroundColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:transcripts-html-header-bgcolor",false,false)}, - {key:"decoColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:transcripts-html-header-decocolor",false,false)}, - {key:"textColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:transcripts-html-header-textcolor",false,false)}, + {key:"header",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:transcripts-html-header",{property:"enableCustomHeader",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:transcripts-html-header",{children:[ + {key:"backgroundColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:transcripts-html-header-bgcolor",false,false)}, + {key:"decoColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:transcripts-html-header-decocolor",false,false)}, + {key:"textColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:transcripts-html-header-textcolor",false,false)}, ]})})}, //HTML STATS - {key:"stats",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:transcripts-html-stats",{property:"enableCustomStats",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:transcripts-html-stats",{children:[ - {key:"backgroundColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:transcripts-html-stats-bgcolor",false,false)}, - {key:"keyTextColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:transcripts-html-stats-keycolor",false,false)}, - {key:"valueTextColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:transcripts-html-stats-valuecolor",false,false)}, - {key:"hideBackgroundColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:transcripts-html-stats-hidebgcolor",false,false)}, - {key:"hideTextColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("openticket:transcripts-html-stats-hidecolor",false,false)}, + {key:"stats",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:transcripts-html-stats",{property:"enableCustomStats",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:transcripts-html-stats",{children:[ + {key:"backgroundColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:transcripts-html-stats-bgcolor",false,false)}, + {key:"keyTextColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:transcripts-html-stats-keycolor",false,false)}, + {key:"valueTextColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:transcripts-html-stats-valuecolor",false,false)}, + {key:"hideBackgroundColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:transcripts-html-stats-hidebgcolor",false,false)}, + {key:"hideTextColor",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_HexColor("opendiscord:transcripts-html-stats-hidecolor",false,false)}, ]})})}, //HTML FAVICON - {key:"favicon",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("openticket:transcripts-html-favicon",{property:"enableCustomFavicon",enabledValue:true,checker:new api.ODCheckerObjectStructure("openticket:transcripts-html-favicon",{children:[ - {key:"imageUrl",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("openticket:transcripts-html-favicon-image",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp"]})}, + {key:"favicon",optional:false,priority:0,checker:new api.ODCheckerEnabledObjectStructure("opendiscord:transcripts-html-favicon",{property:"enableCustomFavicon",enabledValue:true,checker:new api.ODCheckerObjectStructure("opendiscord:transcripts-html-favicon",{children:[ + {key:"imageUrl",optional:false,priority:0,checker:new api.ODCheckerCustomStructure_UrlString("opendiscord:transcripts-html-favicon-image",true,{allowHttp:false,allowedExtensions:[".png",".jpg",".jpeg",".webp"]})}, ]})})}, ]})}, ]}) @@ -544,14 +544,14 @@ export const defaultUnusedOptionsFunction = (manager:api.ODCheckerManager, funct const usedOptionList: string[] = manager.storage.get("openticket","option-ids-used") if (!optionList || ! usedOptionList) return {valid:true,messages:[]} - const optionChecker = manager.get("openticket:options") + const optionChecker = manager.get("opendiscord:options") if (!optionChecker) return {valid:true,messages:[]} const final: api.ODCheckerMessage[] = [] optionList.forEach((id) => { if (!usedOptionList.includes(id)){ //id isn't used anywhere => create warning - final.push(functions.createMessage("openticket:options","openticket:unused-option",optionChecker.config.file,"warning",`The option "${id}" isn't used anywhere!`,[],null,[`"${id}"`],new api.ODId("openticket:unused-options"),null)) + final.push(functions.createMessage("opendiscord:options","opendiscord:unused-option",optionChecker.config.file,"warning",`The option "${id}" isn't used anywhere!`,[],null,[`"${id}"`],new api.ODId("opendiscord:unused-options"),null)) } }) @@ -563,14 +563,14 @@ export const defaultUnusedQuestionsFunction = (manager:api.ODCheckerManager, fun const usedQuestionList: string[] = manager.storage.get("openticket","question-ids-used") if (!questionList || ! usedQuestionList) return {valid:true,messages:[]} - const questionChecker = manager.get("openticket:questions") + const questionChecker = manager.get("opendiscord:questions") if (!questionChecker) return {valid:true,messages:[]} const final: api.ODCheckerMessage[] = [] questionList.forEach((id) => { if (!usedQuestionList.includes(id)){ //id isn't used anywhere => create warning - final.push(functions.createMessage("openticket:questions","openticket:unused-question",questionChecker.config.file,"warning",`The question "${id}" isn't used anywhere!`,[],null,[`"${id}"`],new api.ODId("openticket:unused-questions"),null)) + final.push(functions.createMessage("opendiscord:questions","opendiscord:unused-question",questionChecker.config.file,"warning",`The question "${id}" isn't used anywhere!`,[],null,[`"${id}"`],new api.ODId("opendiscord:unused-questions"),null)) } }) @@ -582,10 +582,10 @@ export const defaultDropdownOptionsFunction = (manager:api.ODCheckerManager, fun const panelList: string[] = manager.storage.get("openticket","panel-ids") if (!panelList) return {valid:true,messages:[]} - const panelConfig = opendiscord.configs.get("openticket:panels") + const panelConfig = opendiscord.configs.get("opendiscord:panels") if (!panelConfig) return {valid:true,messages:[]} - const optionConfig = opendiscord.configs.get("openticket:options") + const optionConfig = opendiscord.configs.get("opendiscord:options") if (!optionConfig) return {valid:true,messages:[]} const final: api.ODCheckerMessage[] = [] @@ -599,7 +599,7 @@ export const defaultDropdownOptionsFunction = (manager:api.ODCheckerManager, fun else return false })){ //give error when non-ticket options exist in dropdown panel! - final.push(functions.createMessage("openticket:panels","openticket:dropdown-option",panelConfig.file,"error","A panel with dropdown enabled can only contain options of the 'ticket' type!",[index,"options"],null,[],new api.ODId("openticket:dropdown-options"),null)) + final.push(functions.createMessage("opendiscord:panels","opendiscord:dropdown-option",panelConfig.file,"error","A panel with dropdown enabled can only contain options of the 'ticket' type!",[index,"options"],null,[],new api.ODId("opendiscord:dropdown-options"),null)) } }) diff --git a/src/data/framework/codeLoader.ts b/src/data/framework/codeLoader.ts index b253888..472f9fd 100644 --- a/src/data/framework/codeLoader.ts +++ b/src/data/framework/codeLoader.ts @@ -1,12 +1,12 @@ import {opendiscord, api, utilities} from "../../index" import * as discord from "discord.js" -const generalConfig = opendiscord.configs.get("openticket:general") -const globalDatabase = opendiscord.databases.get("openticket:global") -const userDatabase = opendiscord.databases.get("openticket:users") -const ticketDatabase = opendiscord.databases.get("openticket:tickets") -const statsDatabase = opendiscord.databases.get("openticket:stats") -const optionDatabase = opendiscord.databases.get("openticket:options") +const generalConfig = opendiscord.configs.get("opendiscord:general") +const globalDatabase = opendiscord.databases.get("opendiscord:global") +const userDatabase = opendiscord.databases.get("opendiscord:users") +const ticketDatabase = opendiscord.databases.get("opendiscord:tickets") +const statsDatabase = opendiscord.databases.get("opendiscord:stats") +const optionDatabase = opendiscord.databases.get("opendiscord:options") const mainServer = opendiscord.client.mainServer export const loadAllCode = async () => { @@ -22,28 +22,28 @@ export const loadAllCode = async () => { export const loadCommandErrorHandlingCode = async () => { //COMMAND ERROR HANDLING - opendiscord.code.add(new api.ODCode("openticket:command-error-handling",14,() => { + opendiscord.code.add(new api.ODCode("opendiscord:command-error-handling",14,() => { //invalid/missing options opendiscord.client.textCommands.onError(async (error) => { if (error.msg.channel.type == discord.ChannelType.GroupDM) return if (error.type == "invalid_option"){ - error.msg.channel.send((await opendiscord.builders.messages.getSafe("openticket:error-option-invalid").build("text",{guild:error.msg.guild,channel:error.msg.channel,user:error.msg.author,error})).message) + error.msg.channel.send((await opendiscord.builders.messages.getSafe("opendiscord:error-option-invalid").build("text",{guild:error.msg.guild,channel:error.msg.channel,user:error.msg.author,error})).message) }else if (error.type == "missing_option"){ - error.msg.channel.send((await opendiscord.builders.messages.getSafe("openticket:error-option-missing").build("text",{guild:error.msg.guild,channel:error.msg.channel,user:error.msg.author,error})).message) + error.msg.channel.send((await opendiscord.builders.messages.getSafe("opendiscord:error-option-missing").build("text",{guild:error.msg.guild,channel:error.msg.channel,user:error.msg.author,error})).message) }else if (error.type == "unknown_command" && generalConfig.data.system.sendErrorOnUnknownCommand){ - error.msg.channel.send((await opendiscord.builders.messages.getSafe("openticket:error-unknown-command").build("text",{guild:error.msg.guild,channel:error.msg.channel,user:error.msg.author,error})).message) + error.msg.channel.send((await opendiscord.builders.messages.getSafe("opendiscord:error-unknown-command").build("text",{guild:error.msg.guild,channel:error.msg.channel,user:error.msg.author,error})).message) } }) //responder timeout opendiscord.responders.commands.setTimeoutErrorCallback(async (instance,source) => { - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) },null) opendiscord.responders.buttons.setTimeoutErrorCallback(async (instance,source) => { - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) },null) opendiscord.responders.dropdowns.setTimeoutErrorCallback(async (instance,source) => { - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) },null) opendiscord.responders.modals.setTimeoutErrorCallback(async (instance,source) => { if (!instance.channel){ @@ -52,14 +52,14 @@ export const loadCommandErrorHandlingCode = async () => { }}) return } - instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("opendiscord:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) },null) })) } export const loadStartListeningInteractionsCode = async () => { //START LISTENING TO INTERACTIONS - opendiscord.code.add(new api.ODCode("openticket:start-listening-interactions",13,() => { + opendiscord.code.add(new api.ODCode("opendiscord:start-listening-interactions",13,() => { opendiscord.client.slashCommands.startListeningToInteractions() opendiscord.client.textCommands.startListeningToInteractions() })) @@ -69,11 +69,11 @@ export const loadDatabaseCleanersCode = async () => { if (!mainServer) return //PANEL DATABASE CLEANER - opendiscord.code.add(new api.ODCode("openticket:panel-database-cleaner",12,async () => { + opendiscord.code.add(new api.ODCode("opendiscord:panel-database-cleaner",12,async () => { const validPanels: string[] = [] //check global database for valid panel embeds - for (const panel of (await globalDatabase.getCategory("openticket:panel-update") ?? [])){ + for (const panel of (await globalDatabase.getCategory("opendiscord:panel-update") ?? [])){ if (!validPanels.includes(panel.key)){ try{ const splittedId = panel.key.split("_") @@ -84,70 +84,70 @@ export const loadDatabaseCleanersCode = async () => { } //remove all unused panels - for (const panel of (await globalDatabase.getCategory("openticket:panel-update") ?? [])){ + for (const panel of (await globalDatabase.getCategory("opendiscord:panel-update") ?? [])){ if (!validPanels.includes(panel.key)){ - await globalDatabase.delete("openticket:panel-update",panel.key) + await globalDatabase.delete("opendiscord:panel-update",panel.key) } } //delete panel from database on delete opendiscord.client.client.on("messageDelete",async (msg) => { - if (await globalDatabase.exists("openticket:panel-update",msg.channel.id+"_"+msg.id)){ - await globalDatabase.delete("openticket:panel-update",msg.channel.id+"_"+msg.id) + if (await globalDatabase.exists("opendiscord:panel-update",msg.channel.id+"_"+msg.id)){ + await globalDatabase.delete("opendiscord:panel-update",msg.channel.id+"_"+msg.id) } }) })) //SUFFIX DATABASE CLEANER - opendiscord.code.add(new api.ODCode("openticket:suffix-database-cleaner",11,async () => { + opendiscord.code.add(new api.ODCode("opendiscord:suffix-database-cleaner",11,async () => { const validSuffixCounters: string[] = [] const validSuffixHistories: string[] = [] //check global database for valid option suffix counters - for (const counter of (await globalDatabase.getCategory("openticket:option-suffix-counter") ?? [])){ + for (const counter of (await globalDatabase.getCategory("opendiscord:option-suffix-counter") ?? [])){ if (!validSuffixCounters.includes(counter.key)){ if (opendiscord.options.exists(counter.key)) validSuffixCounters.push(counter.key) } } //check global database for valid option suffix histories - for (const history of (await globalDatabase.getCategory("openticket:option-suffix-history") ?? [])){ + for (const history of (await globalDatabase.getCategory("opendiscord:option-suffix-history") ?? [])){ if (!validSuffixHistories.includes(history.key)){ if (opendiscord.options.exists(history.key)) validSuffixHistories.push(history.key) } } //remove all unused suffix counters - for (const counter of (await globalDatabase.getCategory("openticket:option-suffix-counter") ?? [])){ + for (const counter of (await globalDatabase.getCategory("opendiscord:option-suffix-counter") ?? [])){ if (!validSuffixCounters.includes(counter.key)){ - await globalDatabase.delete("openticket:option-suffix-counter",counter.key) + await globalDatabase.delete("opendiscord:option-suffix-counter",counter.key) } } //remove all unused suffix histories - for (const history of (await globalDatabase.getCategory("openticket:option-suffix-history") ?? [])){ + for (const history of (await globalDatabase.getCategory("opendiscord:option-suffix-history") ?? [])){ if (!validSuffixHistories.includes(history.key)){ - await globalDatabase.delete("openticket:option-suffix-history",history.key) + await globalDatabase.delete("opendiscord:option-suffix-history",history.key) } } })) //OPTION DATABASE CLEANER - opendiscord.code.add(new api.ODCode("openticket:option-database-cleaner",10,async () => { + opendiscord.code.add(new api.ODCode("opendiscord:option-database-cleaner",10,async () => { //delete all unused options (async) - for (const option of (await optionDatabase.getCategory("openticket:used-option") ?? [])){ + for (const option of (await optionDatabase.getCategory("opendiscord:used-option") ?? [])){ if (!opendiscord.options.exists(option.key)){ //remove because option isn't loaded into memory (0 tickets require it) - await optionDatabase.delete("openticket:used-option",option.key) + await optionDatabase.delete("opendiscord:used-option",option.key) }else if (!opendiscord.tickets.getAll().some((ticket) => ticket.option.id.value == option.key)){ //remove when loaded into memory (0 tickets require it) - await optionDatabase.delete("openticket:used-option",option.key) + await optionDatabase.delete("opendiscord:used-option",option.key) } } })) //USER DATABASE CLEANER (full async/parallel because it takes a lot of time) - opendiscord.code.add(new api.ODCode("openticket:user-database-cleaner",9,() => { + opendiscord.code.add(new api.ODCode("opendiscord:user-database-cleaner",9,() => { utilities.runAsync(async () => { const validUsers: string[] = [] @@ -163,7 +163,7 @@ export const loadDatabaseCleanersCode = async () => { //check stats database for valid users for (const stat of (await statsDatabase.getAll())){ - if (stat.category.startsWith("openticket:user_")){ + if (stat.category.startsWith("opendiscord:user_")){ if (!validUsers.includes(stat.key)){ try{ const member = await mainServer.members.fetch(stat.key) @@ -182,7 +182,7 @@ export const loadDatabaseCleanersCode = async () => { //remove all unused stats for (const stat of (await statsDatabase.getAll())){ - if (stat.category.startsWith("openticket:user_")){ + if (stat.category.startsWith("opendiscord:user_")){ if (!validUsers.includes(stat.key)){ await statsDatabase.delete(stat.category,stat.key) } @@ -203,7 +203,7 @@ export const loadDatabaseCleanersCode = async () => { //remove unused stats for (const stat of (await statsDatabase.getAll())){ - if (stat.category.startsWith("openticket:user_")){ + if (stat.category.startsWith("opendiscord:user_")){ if (stat.key == member.id){ await statsDatabase.delete(stat.category,stat.key) } @@ -213,7 +213,7 @@ export const loadDatabaseCleanersCode = async () => { })) //TICKET DATABASE CLEANER - opendiscord.code.add(new api.ODCode("openticket:ticket-database-cleaner",8,async () => { + opendiscord.code.add(new api.ODCode("opendiscord:ticket-database-cleaner",8,async () => { const validTickets: string[] = [] //check ticket database for valid tickets @@ -228,7 +228,7 @@ export const loadDatabaseCleanersCode = async () => { //check stats database for valid tickets for (const stat of (await statsDatabase.getAll())){ - if (stat.category.startsWith("openticket:ticket_")){ + if (stat.category.startsWith("opendiscord:ticket_")){ if (!validTickets.includes(stat.key)){ try{ const channel = await opendiscord.client.fetchGuildTextChannel(mainServer,stat.key) @@ -248,7 +248,7 @@ export const loadDatabaseCleanersCode = async () => { //remove all unused stats for (const stat of (await statsDatabase.getAll())){ - if (stat.category.startsWith("openticket:ticket_")){ + if (stat.category.startsWith("opendiscord:ticket_")){ if (!validTickets.includes(stat.key)){ await statsDatabase.delete(stat.category,stat.key) } @@ -269,7 +269,7 @@ export const loadDatabaseCleanersCode = async () => { //remove unused stats for (const stat of (await statsDatabase.getAll())){ - if (stat.category.startsWith("openticket:ticket_")){ + if (stat.category.startsWith("opendiscord:ticket_")){ if (stat.key == channel.id){ await statsDatabase.delete(stat.category,stat.key) } @@ -281,9 +281,9 @@ export const loadDatabaseCleanersCode = async () => { export const loadPanelAutoUpdateCode = async () => { //PANEL AUTO UPDATE - opendiscord.code.add(new api.ODCode("openticket:panel-auto-update",7,async () => { - const globalDatabase = opendiscord.databases.get("openticket:global") - const panelIds = await globalDatabase.getCategory("openticket:panel-update") ?? [] + opendiscord.code.add(new api.ODCode("opendiscord:panel-auto-update",7,async () => { + const globalDatabase = opendiscord.databases.get("opendiscord:global") + const panelIds = await globalDatabase.getCategory("opendiscord:panel-update") ?? [] if (!mainServer) return for (const panelId of panelIds){ @@ -291,7 +291,7 @@ export const loadPanelAutoUpdateCode = async () => { //panel doesn't exist anymore in config and needs to be removed if (!panel){ - globalDatabase.delete("openticket:panel-update",panelId.key) + globalDatabase.delete("opendiscord:panel-update",panelId.key) return } @@ -302,7 +302,7 @@ export const loadPanelAutoUpdateCode = async () => { const message = await opendiscord.client.fetchGuildChannelMessage(mainServer,channel,splittedId[1]) if (!message || !message.editable) return - message.edit((await opendiscord.builders.messages.getSafe("openticket:panel").build("auto-update",{guild:mainServer,channel,user:opendiscord.client.client.user,panel})).message) + message.edit((await opendiscord.builders.messages.getSafe("opendiscord:panel").build("auto-update",{guild:mainServer,channel,user:opendiscord.client.client.user,panel})).message) opendiscord.log("Panel in server got auto-updated!","info",[ {key:"channelid",value:splittedId[0]}, {key:"messageid",value:splittedId[1]}, @@ -315,62 +315,62 @@ export const loadPanelAutoUpdateCode = async () => { export const loadDatabaseSaversCode = async () => { //TICKET SAVER - opendiscord.code.add(new api.ODCode("openticket:ticket-saver",6,() => { - const mainVersion = opendiscord.versions.get("openticket:version") + opendiscord.code.add(new api.ODCode("opendiscord:ticket-saver",6,() => { + const mainVersion = opendiscord.versions.get("opendiscord:version") opendiscord.tickets.onAdd(async (ticket) => { - await ticketDatabase.set("openticket:ticket",ticket.id.value,ticket.toJson(mainVersion)) + await ticketDatabase.set("opendiscord:ticket",ticket.id.value,ticket.toJson(mainVersion)) //add option to database if non-existent - if (!(await optionDatabase.exists("openticket:used-option",ticket.option.id.value))){ - await optionDatabase.set("openticket:used-option",ticket.option.id.value,ticket.option.toJson(mainVersion)) + if (!(await optionDatabase.exists("opendiscord:used-option",ticket.option.id.value))){ + await optionDatabase.set("opendiscord:used-option",ticket.option.id.value,ticket.option.toJson(mainVersion)) } }) opendiscord.tickets.onChange(async (ticket) => { - await ticketDatabase.set("openticket:ticket",ticket.id.value,ticket.toJson(mainVersion)) + await ticketDatabase.set("opendiscord:ticket",ticket.id.value,ticket.toJson(mainVersion)) //add option to database if non-existent - if (!(await optionDatabase.exists("openticket:used-option",ticket.option.id.value))){ - await optionDatabase.set("openticket:used-option",ticket.option.id.value,ticket.option.toJson(mainVersion)) + if (!(await optionDatabase.exists("opendiscord:used-option",ticket.option.id.value))){ + await optionDatabase.set("opendiscord:used-option",ticket.option.id.value,ticket.option.toJson(mainVersion)) } //delete all unused options on ticket move for (const option of opendiscord.options.getAll()){ - if (await optionDatabase.exists("openticket:used-option",option.id.value) && !opendiscord.tickets.getAll().some((ticket) => ticket.option.id.value == option.id.value)){ - await optionDatabase.delete("openticket:used-option",option.id.value) + if (await optionDatabase.exists("opendiscord:used-option",option.id.value) && !opendiscord.tickets.getAll().some((ticket) => ticket.option.id.value == option.id.value)){ + await optionDatabase.delete("opendiscord:used-option",option.id.value) } } }) opendiscord.tickets.onRemove(async (ticket) => { - await ticketDatabase.delete("openticket:ticket",ticket.id.value) + await ticketDatabase.delete("opendiscord:ticket",ticket.id.value) //remove option from database if unused if (!opendiscord.tickets.getAll().some((ticket) => ticket.option.id.value == ticket.option.id.value)){ - await optionDatabase.delete("openticket:used-option",ticket.option.id.value) + await optionDatabase.delete("opendiscord:used-option",ticket.option.id.value) } }) })) //BLACKLIST SAVER - opendiscord.code.add(new api.ODCode("openticket:blacklist-saver",5,() => { + opendiscord.code.add(new api.ODCode("opendiscord:blacklist-saver",5,() => { opendiscord.blacklist.onAdd(async (blacklist) => { - await userDatabase.set("openticket:blacklist",blacklist.id.value,blacklist.reason) + await userDatabase.set("opendiscord:blacklist",blacklist.id.value,blacklist.reason) }) opendiscord.blacklist.onChange(async (blacklist) => { - await userDatabase.set("openticket:blacklist",blacklist.id.value,blacklist.reason) + await userDatabase.set("opendiscord:blacklist",blacklist.id.value,blacklist.reason) }) opendiscord.blacklist.onRemove(async (blacklist) => { - await userDatabase.delete("openticket:blacklist",blacklist.id.value) + await userDatabase.delete("opendiscord:blacklist",blacklist.id.value) }) })) //AUTO ROLE ON JOIN - opendiscord.code.add(new api.ODCode("openticket:auto-role-on-join",4,() => { + opendiscord.code.add(new api.ODCode("opendiscord:auto-role-on-join",4,() => { opendiscord.client.client.on("guildMemberAdd",async (member) => { for (const option of opendiscord.options.getAll()){ - if (option instanceof api.ODRoleOption && option.get("openticket:add-on-join").value){ + if (option instanceof api.ODRoleOption && option.get("opendiscord:add-on-join").value){ //add these roles on user join - await opendiscord.actions.get("openticket:reaction-role").run("panel-button",{guild:member.guild,user:member.user,option,overwriteMode:"add"}) + await opendiscord.actions.get("opendiscord:reaction-role").run("panel-button",{guild:member.guild,user:member.user,option,overwriteMode:"add"}) } } }) @@ -379,26 +379,26 @@ export const loadDatabaseSaversCode = async () => { const loadAutoCode = () => { //AUTOCLOSE TIMEOUT - opendiscord.code.add(new api.ODCode("openticket:autoclose-timeout",3,() => { + opendiscord.code.add(new api.ODCode("opendiscord:autoclose-timeout",3,() => { setInterval(async () => { let count = 0 for (const ticket of opendiscord.tickets.getAll()){ const channel = await opendiscord.tickets.getTicketChannel(ticket) if (!channel) return const lastMessage = (await channel.messages.fetch({limit:5})).first() - if (lastMessage && !ticket.get("openticket:closed").value){ + if (lastMessage && !ticket.get("opendiscord:closed").value){ //ticket has last message - const disableOnClaim = ticket.option.get("openticket:autoclose-disable-claim").value && ticket.get("openticket:claimed").value - const enabled = (disableOnClaim) ? false : ticket.get("openticket:autoclose-enabled").value - const hours = ticket.get("openticket:autoclose-hours").value + const disableOnClaim = ticket.option.get("opendiscord:autoclose-disable-claim").value && ticket.get("opendiscord:claimed").value + const enabled = (disableOnClaim) ? false : ticket.get("opendiscord:autoclose-enabled").value + const hours = ticket.get("opendiscord:autoclose-hours").value const time = hours*60*60*1000 //hours in milliseconds if (enabled && (new Date().getTime() - lastMessage.createdTimestamp) >= time){ //autoclose ticket - await opendiscord.actions.get("openticket:close-ticket").run("autoclose",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autoclose",sendMessage:false}) - await channel.send((await opendiscord.builders.messages.getSafe("openticket:autoclose-message").build("timeout",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message) + await opendiscord.actions.get("opendiscord:close-ticket").run("autoclose",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autoclose",sendMessage:false}) + await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:autoclose-message").build("timeout",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message) count++ - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-autoclosed",1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-autoclosed",1,"increase") } } } @@ -410,21 +410,21 @@ const loadAutoCode = () => { })) //AUTOCLOSE LEAVE - opendiscord.code.add(new api.ODCode("openticket:autoclose-leave",2,() => { + opendiscord.code.add(new api.ODCode("opendiscord:autoclose-leave",2,() => { opendiscord.client.client.on("guildMemberRemove",async (member) => { for (const ticket of opendiscord.tickets.getAll()){ - if (ticket.get("openticket:opened-by").value == member.id){ + if (ticket.get("opendiscord:opened-by").value == member.id){ const channel = await opendiscord.tickets.getTicketChannel(ticket) if (!channel) return //ticket has been created by this user - const disableOnClaim = ticket.option.get("openticket:autoclose-disable-claim").value && ticket.get("openticket:claimed").value - const enabled = (disableOnClaim || !ticket.get("openticket:autoclose-enabled").value) ? false : ticket.option.get("openticket:autoclose-enable-leave") + const disableOnClaim = ticket.option.get("opendiscord:autoclose-disable-claim").value && ticket.get("opendiscord:claimed").value + const enabled = (disableOnClaim || !ticket.get("opendiscord:autoclose-enabled").value) ? false : ticket.option.get("opendiscord:autoclose-enable-leave") if (enabled){ //autoclose ticket - await opendiscord.actions.get("openticket:close-ticket").run("autoclose",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autoclose",sendMessage:false}) - await channel.send((await opendiscord.builders.messages.getSafe("openticket:autoclose-message").build("leave",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message) - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-autoclosed",1,"increase") + await opendiscord.actions.get("opendiscord:close-ticket").run("autoclose",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autoclose",sendMessage:false}) + await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:autoclose-message").build("leave",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message) + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-autoclosed",1,"increase") } } } @@ -432,7 +432,7 @@ const loadAutoCode = () => { })) //AUTODELETE TIMEOUT - opendiscord.code.add(new api.ODCode("openticket:autodelete-timeout",1,() => { + opendiscord.code.add(new api.ODCode("opendiscord:autodelete-timeout",1,() => { setInterval(async () => { let count = 0 for (const ticket of opendiscord.tickets.getAll()){ @@ -441,17 +441,17 @@ const loadAutoCode = () => { const lastMessage = (await channel.messages.fetch({limit:5})).first() if (lastMessage){ //ticket has last message - const disableOnClaim = ticket.option.get("openticket:autodelete-disable-claim").value && ticket.get("openticket:claimed").value - const enabled = (disableOnClaim) ? false : ticket.get("openticket:autodelete-enabled").value - const days = ticket.get("openticket:autodelete-days").value + const disableOnClaim = ticket.option.get("opendiscord:autodelete-disable-claim").value && ticket.get("opendiscord:claimed").value + const enabled = (disableOnClaim) ? false : ticket.get("opendiscord:autodelete-enabled").value + const days = ticket.get("opendiscord:autodelete-days").value const time = days*24*60*60*1000 //days in milliseconds if (enabled && (new Date().getTime() - lastMessage.createdTimestamp) >= time){ //autodelete ticket - await channel.send((await opendiscord.builders.messages.getSafe("openticket:autodelete-message").build("timeout",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message) - await opendiscord.actions.get("openticket:delete-ticket").run("autodelete",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autodelete",sendMessage:false,withoutTranscript:false}) + await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:autodelete-message").build("timeout",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message) + await opendiscord.actions.get("opendiscord:delete-ticket").run("autodelete",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autodelete",sendMessage:false,withoutTranscript:false}) count++ - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-autodeleted",1,"increase") + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-autodeleted",1,"increase") } } } @@ -463,21 +463,21 @@ const loadAutoCode = () => { })) //AUTODELETE LEAVE - opendiscord.code.add(new api.ODCode("openticket:autodelete-leave",0,() => { + opendiscord.code.add(new api.ODCode("opendiscord:autodelete-leave",0,() => { opendiscord.client.client.on("guildMemberRemove",async (member) => { for (const ticket of opendiscord.tickets.getAll()){ - if (ticket.get("openticket:opened-by").value == member.id){ + if (ticket.get("opendiscord:opened-by").value == member.id){ const channel = await opendiscord.tickets.getTicketChannel(ticket) if (!channel) return //ticket has been created by this user - const disableOnClaim = ticket.option.get("openticket:autodelete-disable-claim").value && ticket.get("openticket:claimed").value - const enabled = (disableOnClaim || !ticket.get("openticket:autodelete-enabled").value) ? false : ticket.option.get("openticket:autodelete-enable-leave") + const disableOnClaim = ticket.option.get("opendiscord:autodelete-disable-claim").value && ticket.get("opendiscord:claimed").value + const enabled = (disableOnClaim || !ticket.get("opendiscord:autodelete-enabled").value) ? false : ticket.option.get("opendiscord:autodelete-enable-leave") if (enabled){ //autodelete ticket - await channel.send((await opendiscord.builders.messages.getSafe("openticket:autodelete-message").build("leave",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message) - await opendiscord.actions.get("openticket:delete-ticket").run("autodelete",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autodelete",sendMessage:false,withoutTranscript:false}) - await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-autodeleted",1,"increase") + await channel.send((await opendiscord.builders.messages.getSafe("opendiscord:autodelete-message").build("leave",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket})).message) + await opendiscord.actions.get("opendiscord:delete-ticket").run("autodelete",{guild:channel.guild,channel,user:opendiscord.client.client.user,ticket,reason:"Autodelete",sendMessage:false,withoutTranscript:false}) + await opendiscord.stats.get("opendiscord:global").setStat("opendiscord:tickets-autodeleted",1,"increase") } } } @@ -485,10 +485,10 @@ const loadAutoCode = () => { })) //TICKET ANTI BUSY - opendiscord.code.add(new api.ODCode("openticket:ticket-anti-busy",-1,() => { + opendiscord.code.add(new api.ODCode("opendiscord:ticket-anti-busy",-1,() => { for (const ticket of opendiscord.tickets.getAll()){ - //free tickets from corruption due to openticket:busy variable - ticket.get("openticket:busy").value = false + //free tickets from corruption due to opendiscord:busy variable + ticket.get("opendiscord:busy").value = false } })) } \ No newline at end of file diff --git a/src/data/framework/commandLoader.ts b/src/data/framework/commandLoader.ts index fc9a82b..c62ccf3 100644 --- a/src/data/framework/commandLoader.ts +++ b/src/data/framework/commandLoader.ts @@ -5,7 +5,7 @@ const lang = opendiscord.languages export const loadAllSlashCommands = async () => { const commands = opendiscord.client.slashCommands - const generalConfig = opendiscord.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("opendiscord:general") if (!generalConfig) return const act = discord.ApplicationCommandType @@ -15,13 +15,13 @@ export const loadAllSlashCommands = async () => { //create panel choices const panelChoices : {name:string, value:string}[] = [] - opendiscord.configs.get("openticket:panels").data.forEach((panel) => { + opendiscord.configs.get("opendiscord:panels").data.forEach((panel) => { panelChoices.push({name:panel.name, value:panel.id}) }) //create ticket choices const ticketChoices : {name:string, value:string}[] = [] - opendiscord.configs.get("openticket:options").data.forEach((option) => { + opendiscord.configs.get("opendiscord:options").data.forEach((option) => { if (option.type != "ticket") return ticketChoices.push({name:option.name, value:option.id}) }) @@ -32,7 +32,7 @@ export const loadAllSlashCommands = async () => { } //HELP - if (allowedCommands.includes("help")) commands.add(new api.ODSlashCommand("openticket:help",{ + if (allowedCommands.includes("help")) commands.add(new api.ODSlashCommand("opendiscord:help",{ type:act.ChatInput, name:"help", description:lang.getTranslation("commands.help"), @@ -41,7 +41,7 @@ export const loadAllSlashCommands = async () => { })) //PANEL - if (allowedCommands.includes("panel")) commands.add(new api.ODSlashCommand("openticket:panel",{ + if (allowedCommands.includes("panel")) commands.add(new api.ODSlashCommand("opendiscord:panel",{ type:act.ChatInput, name:"panel", description:lang.getTranslation("commands.panel"), @@ -73,7 +73,7 @@ export const loadAllSlashCommands = async () => { })) //TICKET (when enabled) - if (allowedCommands.includes("ticket")) commands.add(new api.ODSlashCommand("openticket:ticket",{ + if (allowedCommands.includes("ticket")) commands.add(new api.ODSlashCommand("opendiscord:ticket",{ type:act.ChatInput, name:"ticket", description:lang.getTranslation("commands.ticket"), @@ -99,7 +99,7 @@ export const loadAllSlashCommands = async () => { })) //CLOSE - if (allowedCommands.includes("close")) commands.add(new api.ODSlashCommand("openticket:close",{ + if (allowedCommands.includes("close")) commands.add(new api.ODSlashCommand("opendiscord:close",{ type:act.ChatInput, name:"close", description:lang.getTranslation("commands.close"), @@ -116,7 +116,7 @@ export const loadAllSlashCommands = async () => { })) //DELETE - if (allowedCommands.includes("delete") && generalConfig.data.system.enableDeleteWithoutTranscript) commands.add(new api.ODSlashCommand("openticket:delete",{ + if (allowedCommands.includes("delete") && generalConfig.data.system.enableDeleteWithoutTranscript) commands.add(new api.ODSlashCommand("opendiscord:delete",{ type:act.ChatInput, name:"delete", description:lang.getTranslation("commands.delete"), @@ -137,7 +137,7 @@ export const loadAllSlashCommands = async () => { } ] })) - else if (allowedCommands.includes("delete")) commands.add(new api.ODSlashCommand("openticket:delete",{ + else if (allowedCommands.includes("delete")) commands.add(new api.ODSlashCommand("opendiscord:delete",{ type:act.ChatInput, name:"delete", description:lang.getTranslation("commands.delete"), @@ -154,7 +154,7 @@ export const loadAllSlashCommands = async () => { })) //REOPEN - if (allowedCommands.includes("reopen")) commands.add(new api.ODSlashCommand("openticket:reopen",{ + if (allowedCommands.includes("reopen")) commands.add(new api.ODSlashCommand("opendiscord:reopen",{ type:act.ChatInput, name:"reopen", description:lang.getTranslation("commands.reopen"), @@ -171,7 +171,7 @@ export const loadAllSlashCommands = async () => { })) //CLAIM - if (allowedCommands.includes("claim")) commands.add(new api.ODSlashCommand("openticket:claim",{ + if (allowedCommands.includes("claim")) commands.add(new api.ODSlashCommand("opendiscord:claim",{ type:act.ChatInput, name:"claim", description:lang.getTranslation("commands.claim"), @@ -194,7 +194,7 @@ export const loadAllSlashCommands = async () => { })) //UNCLAIM - if (allowedCommands.includes("unclaim")) commands.add(new api.ODSlashCommand("openticket:unclaim",{ + if (allowedCommands.includes("unclaim")) commands.add(new api.ODSlashCommand("opendiscord:unclaim",{ type:act.ChatInput, name:"unclaim", description:lang.getTranslation("commands.unclaim"), @@ -211,7 +211,7 @@ export const loadAllSlashCommands = async () => { })) //PIN - if (allowedCommands.includes("pin")) commands.add(new api.ODSlashCommand("openticket:pin",{ + if (allowedCommands.includes("pin")) commands.add(new api.ODSlashCommand("opendiscord:pin",{ type:act.ChatInput, name:"pin", description:lang.getTranslation("commands.pin"), @@ -228,7 +228,7 @@ export const loadAllSlashCommands = async () => { })) //UNPIN - if (allowedCommands.includes("unpin")) commands.add(new api.ODSlashCommand("openticket:unpin",{ + if (allowedCommands.includes("unpin")) commands.add(new api.ODSlashCommand("opendiscord:unpin",{ type:act.ChatInput, name:"unpin", description:lang.getTranslation("commands.unpin"), @@ -245,7 +245,7 @@ export const loadAllSlashCommands = async () => { })) //MOVE - if (allowedCommands.includes("move")) commands.add(new api.ODSlashCommand("openticket:move",{ + if (allowedCommands.includes("move")) commands.add(new api.ODSlashCommand("opendiscord:move",{ type:act.ChatInput, name:"move", description:lang.getTranslation("commands.move"), @@ -277,7 +277,7 @@ export const loadAllSlashCommands = async () => { })) //RENAME - if (allowedCommands.includes("rename")) commands.add(new api.ODSlashCommand("openticket:rename",{ + if (allowedCommands.includes("rename")) commands.add(new api.ODSlashCommand("opendiscord:rename",{ type:act.ChatInput, name:"rename", description:lang.getTranslation("commands.rename"), @@ -301,7 +301,7 @@ export const loadAllSlashCommands = async () => { })) //ADD - if (allowedCommands.includes("add")) commands.add(new api.ODSlashCommand("openticket:add",{ + if (allowedCommands.includes("add")) commands.add(new api.ODSlashCommand("opendiscord:add",{ type:act.ChatInput, name:"add", description:lang.getTranslation("commands.add"), @@ -324,7 +324,7 @@ export const loadAllSlashCommands = async () => { })) //REMOVE - if (allowedCommands.includes("remove")) commands.add(new api.ODSlashCommand("openticket:remove",{ + if (allowedCommands.includes("remove")) commands.add(new api.ODSlashCommand("opendiscord:remove",{ type:act.ChatInput, name:"remove", description:lang.getTranslation("commands.remove"), @@ -347,7 +347,7 @@ export const loadAllSlashCommands = async () => { })) //BLACKLIST - if (allowedCommands.includes("blacklist")) commands.add(new api.ODSlashCommand("openticket:blacklist",{ + if (allowedCommands.includes("blacklist")) commands.add(new api.ODSlashCommand("opendiscord:blacklist",{ type:act.ChatInput, name:"blacklist", description:lang.getTranslation("commands.blacklist"), @@ -414,7 +414,7 @@ export const loadAllSlashCommands = async () => { })) //STATS - if (allowedCommands.includes("stats")) commands.add(new api.ODSlashCommand("openticket:stats",{ + if (allowedCommands.includes("stats")) commands.add(new api.ODSlashCommand("opendiscord:stats",{ type:act.ChatInput, name:"stats", description:lang.getTranslation("commands.stats"), @@ -469,7 +469,7 @@ export const loadAllSlashCommands = async () => { })) //CLEAR - if (allowedCommands.includes("clear")) commands.add(new api.ODSlashCommand("openticket:clear",{ + if (allowedCommands.includes("clear")) commands.add(new api.ODSlashCommand("opendiscord:clear",{ type:act.ChatInput, name:"clear", description:lang.getTranslation("commands.clear"), @@ -496,7 +496,7 @@ export const loadAllSlashCommands = async () => { })) //AUTOCLOSE - if (allowedCommands.includes("autoclose")) commands.add(new api.ODSlashCommand("openticket:autoclose",{ + if (allowedCommands.includes("autoclose")) commands.add(new api.ODSlashCommand("opendiscord:autoclose",{ type:act.ChatInput, name:"autoclose", description:lang.getTranslation("commands.autoclose"), @@ -540,7 +540,7 @@ export const loadAllSlashCommands = async () => { })) //AUTODELETE - if (allowedCommands.includes("autodelete")) commands.add(new api.ODSlashCommand("openticket:autodelete",{ + if (allowedCommands.includes("autodelete")) commands.add(new api.ODSlashCommand("opendiscord:autodelete",{ type:act.ChatInput, name:"autodelete", description:lang.getTranslation("commands.autodelete"), @@ -586,7 +586,7 @@ export const loadAllSlashCommands = async () => { export const loadAllTextCommands = async () => { const commands = opendiscord.client.textCommands - const generalConfig = opendiscord.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("opendiscord:general") if (!generalConfig) return if (!generalConfig.data.textCommands) return @@ -594,13 +594,13 @@ export const loadAllTextCommands = async () => { //create panel choices const panelChoices : string[] = [] - opendiscord.configs.get("openticket:panels").data.forEach((panel) => { + opendiscord.configs.get("opendiscord:panels").data.forEach((panel) => { panelChoices.push(panel.id) }) //create ticket choices const ticketChoices : string[] = [] - opendiscord.configs.get("openticket:options").data.forEach((option) => { + opendiscord.configs.get("opendiscord:options").data.forEach((option) => { if (option.type != "ticket") return ticketChoices.push(option.id) }) @@ -611,7 +611,7 @@ export const loadAllTextCommands = async () => { } //HELP - if (allowedCommands.includes("help")) commands.add(new api.ODTextCommand("openticket:help",{ + if (allowedCommands.includes("help")) commands.add(new api.ODTextCommand("opendiscord:help",{ name:"help", prefix, dmPermission:true, @@ -620,7 +620,7 @@ export const loadAllTextCommands = async () => { })) //PANEL - if (allowedCommands.includes("panel")) commands.add(new api.ODTextCommand("openticket:panel",{ + if (allowedCommands.includes("panel")) commands.add(new api.ODTextCommand("opendiscord:panel",{ name:"panel", prefix, dmPermission:false, @@ -641,7 +641,7 @@ export const loadAllTextCommands = async () => { })) //CLOSE - if (allowedCommands.includes("close")) commands.add(new api.ODTextCommand("openticket:close",{ + if (allowedCommands.includes("close")) commands.add(new api.ODTextCommand("opendiscord:close",{ name:"close", prefix, dmPermission:false, @@ -658,7 +658,7 @@ export const loadAllTextCommands = async () => { })) //DELETE - if (allowedCommands.includes("delete")) commands.add(new api.ODTextCommand("openticket:delete",{ + if (allowedCommands.includes("delete")) commands.add(new api.ODTextCommand("opendiscord:delete",{ name:"delete", prefix, dmPermission:false, @@ -675,7 +675,7 @@ export const loadAllTextCommands = async () => { })) //REOPEN - if (allowedCommands.includes("reopen")) commands.add(new api.ODTextCommand("openticket:reopen",{ + if (allowedCommands.includes("reopen")) commands.add(new api.ODTextCommand("opendiscord:reopen",{ name:"reopen", prefix, dmPermission:false, @@ -692,7 +692,7 @@ export const loadAllTextCommands = async () => { })) //CLAIM - if (allowedCommands.includes("claim")) commands.add(new api.ODTextCommand("openticket:claim",{ + if (allowedCommands.includes("claim")) commands.add(new api.ODTextCommand("opendiscord:claim",{ name:"claim", prefix, dmPermission:false, @@ -714,7 +714,7 @@ export const loadAllTextCommands = async () => { })) //UNCLAIM - if (allowedCommands.includes("unclaim")) commands.add(new api.ODTextCommand("openticket:unclaim",{ + if (allowedCommands.includes("unclaim")) commands.add(new api.ODTextCommand("opendiscord:unclaim",{ name:"unclaim", prefix, dmPermission:false, @@ -731,7 +731,7 @@ export const loadAllTextCommands = async () => { })) //PIN - if (allowedCommands.includes("pin")) commands.add(new api.ODTextCommand("openticket:pin",{ + if (allowedCommands.includes("pin")) commands.add(new api.ODTextCommand("opendiscord:pin",{ name:"pin", prefix, dmPermission:false, @@ -748,7 +748,7 @@ export const loadAllTextCommands = async () => { })) //UNPIN - if (allowedCommands.includes("unpin")) commands.add(new api.ODTextCommand("openticket:unpin",{ + if (allowedCommands.includes("unpin")) commands.add(new api.ODTextCommand("opendiscord:unpin",{ name:"unpin", prefix, dmPermission:false, @@ -765,7 +765,7 @@ export const loadAllTextCommands = async () => { })) //MOVE - if (allowedCommands.includes("move")) commands.add(new api.ODTextCommand("openticket:move",{ + if (allowedCommands.includes("move")) commands.add(new api.ODTextCommand("opendiscord:move",{ name:"move", prefix, dmPermission:false, @@ -788,7 +788,7 @@ export const loadAllTextCommands = async () => { })) //RENAME - if (allowedCommands.includes("rename")) commands.add(new api.ODTextCommand("openticket:rename",{ + if (allowedCommands.includes("rename")) commands.add(new api.ODTextCommand("opendiscord:rename",{ name:"rename", prefix, dmPermission:false, @@ -811,7 +811,7 @@ export const loadAllTextCommands = async () => { })) //ADD - if (allowedCommands.includes("add")) commands.add(new api.ODTextCommand("openticket:add",{ + if (allowedCommands.includes("add")) commands.add(new api.ODTextCommand("opendiscord:add",{ name:"add", prefix, dmPermission:false, @@ -833,7 +833,7 @@ export const loadAllTextCommands = async () => { })) //REMOVE - if (allowedCommands.includes("remove")) commands.add(new api.ODTextCommand("openticket:remove",{ + if (allowedCommands.includes("remove")) commands.add(new api.ODTextCommand("opendiscord:remove",{ name:"remove", prefix, dmPermission:false, @@ -855,7 +855,7 @@ export const loadAllTextCommands = async () => { })) //BLACKLIST - if (allowedCommands.includes("blacklist")) commands.add(new api.ODTextCommand("openticket:blacklist-view",{ + if (allowedCommands.includes("blacklist")) commands.add(new api.ODTextCommand("opendiscord:blacklist-view",{ name:"blacklist view", prefix, dmPermission:false, @@ -863,7 +863,7 @@ export const loadAllTextCommands = async () => { allowBots:false })) - if (allowedCommands.includes("blacklist")) commands.add(new api.ODTextCommand("openticket:blacklist-add",{ + if (allowedCommands.includes("blacklist")) commands.add(new api.ODTextCommand("opendiscord:blacklist-add",{ name:"blacklist add", prefix, dmPermission:false, @@ -884,7 +884,7 @@ export const loadAllTextCommands = async () => { ] })) - if (allowedCommands.includes("blacklist")) commands.add(new api.ODTextCommand("openticket:blacklist-remove",{ + if (allowedCommands.includes("blacklist")) commands.add(new api.ODTextCommand("opendiscord:blacklist-remove",{ name:"blacklist remove", prefix, dmPermission:false, @@ -905,7 +905,7 @@ export const loadAllTextCommands = async () => { ] })) - if (allowedCommands.includes("blacklist")) commands.add(new api.ODTextCommand("openticket:blacklist-get",{ + if (allowedCommands.includes("blacklist")) commands.add(new api.ODTextCommand("opendiscord:blacklist-get",{ name:"blacklist get", prefix, dmPermission:false, @@ -921,7 +921,7 @@ export const loadAllTextCommands = async () => { })) //STATS - if (allowedCommands.includes("stats")) commands.add(new api.ODTextCommand("openticket:stats-global",{ + if (allowedCommands.includes("stats")) commands.add(new api.ODTextCommand("opendiscord:stats-global",{ name:"stats global", prefix, dmPermission:false, @@ -929,7 +929,7 @@ export const loadAllTextCommands = async () => { allowBots:false })) - if (allowedCommands.includes("stats")) commands.add(new api.ODTextCommand("openticket:stats-reset",{ + if (allowedCommands.includes("stats")) commands.add(new api.ODTextCommand("opendiscord:stats-reset",{ name:"stats reset", prefix, dmPermission:false, @@ -945,7 +945,7 @@ export const loadAllTextCommands = async () => { ] })) - if (allowedCommands.includes("stats")) commands.add(new api.ODTextCommand("openticket:stats-user",{ + if (allowedCommands.includes("stats")) commands.add(new api.ODTextCommand("opendiscord:stats-user",{ name:"stats user", prefix, dmPermission:false, @@ -960,7 +960,7 @@ export const loadAllTextCommands = async () => { ] })) - if (allowedCommands.includes("stats")) commands.add(new api.ODTextCommand("openticket:stats-ticket",{ + if (allowedCommands.includes("stats")) commands.add(new api.ODTextCommand("opendiscord:stats-ticket",{ name:"stats ticket", prefix, dmPermission:false, @@ -977,7 +977,7 @@ export const loadAllTextCommands = async () => { })) //CLEAR - if (allowedCommands.includes("clear")) commands.add(new api.ODTextCommand("openticket:clear",{ + if (allowedCommands.includes("clear")) commands.add(new api.ODTextCommand("opendiscord:clear",{ name:"clear", prefix, dmPermission:false, @@ -1004,7 +1004,7 @@ export const loadAllTextCommands = async () => { })) //AUTOCLOSE - if (allowedCommands.includes("autoclose")) commands.add(new api.ODTextCommand("openticket:autoclose-disable",{ + if (allowedCommands.includes("autoclose")) commands.add(new api.ODTextCommand("opendiscord:autoclose-disable",{ name:"autoclose disable", prefix, dmPermission:false, @@ -1020,7 +1020,7 @@ export const loadAllTextCommands = async () => { ] })) - if (allowedCommands.includes("autoclose")) commands.add(new api.ODTextCommand("openticket:autoclose-enable",{ + if (allowedCommands.includes("autoclose")) commands.add(new api.ODTextCommand("opendiscord:autoclose-enable",{ name:"autoclose enable", prefix, dmPermission:false, @@ -1045,7 +1045,7 @@ export const loadAllTextCommands = async () => { })) //AUTODELETE - if (allowedCommands.includes("autodelete")) commands.add(new api.ODTextCommand("openticket:autodelete-disable",{ + if (allowedCommands.includes("autodelete")) commands.add(new api.ODTextCommand("opendiscord:autodelete-disable",{ name:"autodelete disable", prefix, dmPermission:false, @@ -1061,7 +1061,7 @@ export const loadAllTextCommands = async () => { ] })) - if (allowedCommands.includes("autodelete")) commands.add(new api.ODTextCommand("openticket:autodelete-enable",{ + if (allowedCommands.includes("autodelete")) commands.add(new api.ODTextCommand("opendiscord:autodelete-enable",{ name:"autodelete enable", prefix, dmPermission:false, diff --git a/src/data/framework/configLoader.ts b/src/data/framework/configLoader.ts index aee1956..597f9c5 100644 --- a/src/data/framework/configLoader.ts +++ b/src/data/framework/configLoader.ts @@ -1,12 +1,12 @@ import {opendiscord, api, utilities} from "../../index" export const loadAllConfigs = async () => { - const devconfigFlag = opendiscord.flags.get("openticket:dev-config") + const devconfigFlag = opendiscord.flags.get("opendiscord:dev-config") const isDevconfig = devconfigFlag ? devconfigFlag.value : false - opendiscord.configs.add(new api.ODJsonConfig("openticket:general","general.json",(isDevconfig) ? "./devconfig/" : "./config/")) - opendiscord.configs.add(new api.ODJsonConfig("openticket:options","options.json",(isDevconfig) ? "./devconfig/" : "./config/")) - opendiscord.configs.add(new api.ODJsonConfig("openticket:panels","panels.json",(isDevconfig) ? "./devconfig/" : "./config/")) - opendiscord.configs.add(new api.ODJsonConfig("openticket:questions","questions.json",(isDevconfig) ? "./devconfig/" : "./config/")) - opendiscord.configs.add(new api.ODJsonConfig("openticket:transcripts","transcripts.json",(isDevconfig) ? "./devconfig/" : "./config/")) + opendiscord.configs.add(new api.ODJsonConfig("opendiscord:general","general.json",(isDevconfig) ? "./devconfig/" : "./config/")) + opendiscord.configs.add(new api.ODJsonConfig("opendiscord:options","options.json",(isDevconfig) ? "./devconfig/" : "./config/")) + opendiscord.configs.add(new api.ODJsonConfig("opendiscord:panels","panels.json",(isDevconfig) ? "./devconfig/" : "./config/")) + opendiscord.configs.add(new api.ODJsonConfig("opendiscord:questions","questions.json",(isDevconfig) ? "./devconfig/" : "./config/")) + opendiscord.configs.add(new api.ODJsonConfig("opendiscord:transcripts","transcripts.json",(isDevconfig) ? "./devconfig/" : "./config/")) } \ No newline at end of file diff --git a/src/data/framework/cooldownLoader.ts b/src/data/framework/cooldownLoader.ts index ca25eb3..2a431ac 100644 --- a/src/data/framework/cooldownLoader.ts +++ b/src/data/framework/cooldownLoader.ts @@ -8,10 +8,10 @@ export const loadAllCooldowns = async () => { } export const loadTicketOptionCooldown = (option:api.ODTicketOption) => { - if (option.get("openticket:cooldown-enabled").value){ + if (option.get("opendiscord:cooldown-enabled").value){ //option has cooldown - const minutes = option.get("openticket:cooldown-minutes").value + const minutes = option.get("opendiscord:cooldown-minutes").value const milliseconds = minutes*60000 - opendiscord.cooldowns.add(new api.ODTimeoutCooldown("openticket:option-cooldown_"+option.id.value,milliseconds)) + opendiscord.cooldowns.add(new api.ODTimeoutCooldown("opendiscord:option-cooldown_"+option.id.value,milliseconds)) } } \ No newline at end of file diff --git a/src/data/framework/databaseLoader.ts b/src/data/framework/databaseLoader.ts index 8b5d4ef..65baeef 100644 --- a/src/data/framework/databaseLoader.ts +++ b/src/data/framework/databaseLoader.ts @@ -1,7 +1,7 @@ import {opendiscord, api, utilities} from "../../index" import * as fjs from "formatted-json-stringify" -const devdatabaseFlag = opendiscord.flags.get("openticket:dev-database") +const devdatabaseFlag = opendiscord.flags.get("opendiscord:dev-database") const isDevdatabase = devdatabaseFlag ? devdatabaseFlag.value : false export const loadAllDatabases = async () => { @@ -46,8 +46,8 @@ const defaultOptionFormatter = new fjs.ArrayFormatter(null,true,new fjs.ObjectFo ]) ])) -export const defaultGlobalDatabase = new api.ODFormattedJsonDatabase("openticket:global","global.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") -export const defaultStatsDatabase = new api.ODFormattedJsonDatabase("openticket:stats","stats.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") -export const defaultTicketsDatabase = new api.ODFormattedJsonDatabase("openticket:tickets","tickets.json",defaultTicketFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") -export const defaultUsersDatabase = new api.ODFormattedJsonDatabase("openticket:users","users.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") -export const defaultOptionsDatabase = new api.ODFormattedJsonDatabase("openticket:options","options.json",defaultOptionFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") \ No newline at end of file +export const defaultGlobalDatabase = new api.ODFormattedJsonDatabase("opendiscord:global","global.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") +export const defaultStatsDatabase = new api.ODFormattedJsonDatabase("opendiscord:stats","stats.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") +export const defaultTicketsDatabase = new api.ODFormattedJsonDatabase("opendiscord:tickets","tickets.json",defaultTicketFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") +export const defaultUsersDatabase = new api.ODFormattedJsonDatabase("opendiscord:users","users.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") +export const defaultOptionsDatabase = new api.ODFormattedJsonDatabase("opendiscord:options","options.json",defaultOptionFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") \ No newline at end of file diff --git a/src/data/framework/flagLoader.ts b/src/data/framework/flagLoader.ts index 1e90e62..9f980ff 100644 --- a/src/data/framework/flagLoader.ts +++ b/src/data/framework/flagLoader.ts @@ -1,18 +1,18 @@ import {opendiscord, api, utilities} from "../../index" export const loadAllFlags = async () => { - opendiscord.flags.add(new api.ODFlag("openticket:no-migration","No Migration","Disable Open Ticket data migration on update!","--no-migration",["-nm"])) - opendiscord.flags.add(new api.ODFlag("openticket:dev-config","Developer Config","Use the configs in /devconfig/ instead of /config/!","--dev-config",["-dc"])) - opendiscord.flags.add(new api.ODFlag("openticket:dev-database","Developer Database","Use the databases in /devdatabase/ instead of /database/!","--dev-database",["-nd"])) - opendiscord.flags.add(new api.ODFlag("openticket:debug","Debug Mode","Couldn't you find the error? Try to check this out!","--debug",["-d"])) - opendiscord.flags.add(new api.ODFlag("openticket:crash","Crash On Error","Crash the bot on an unknown error!","--crash",["-cr"])) - opendiscord.flags.add(new api.ODFlag("openticket:no-transcripts","No HTML Transcripts","Disable uploading HTML transcripts (for debugging)","--no-transcripts",["-nt"])) - opendiscord.flags.add(new api.ODFlag("openticket:no-checker","No Config Checker","Disable the Config Checker (for debugging)","--no-checker",["-nc"])) - opendiscord.flags.add(new api.ODFlag("openticket:checker","Full Config Checker","Render the Config Checker with extra details!","--checker",["-c"])) - opendiscord.flags.add(new api.ODFlag("openticket:no-easter","No Easter Eggs","Disable little Open Ticket easter eggs hidden in the bot!","--no-easter",["-ne"])) - opendiscord.flags.add(new api.ODFlag("openticket:no-plugins","No Plugins","Disable all Open Ticket plugins!","--no-plugins",["-np"])) - opendiscord.flags.add(new api.ODFlag("openticket:soft-plugins","Soft Plugins","Don't crash the bot when a plugin crashes!","--soft-plugins",["-sp"])) - opendiscord.flags.add(new api.ODFlag("openticket:force-slash-update","Force Slash Update","Force update all slash commands.","--force-slash",["-fs"])) - opendiscord.flags.add(new api.ODFlag("openticket:no-compile","No Compile","Disable compilation of plugins & bot before starting.","--no-compile",[])) - opendiscord.flags.add(new api.ODFlag("openticket:compile-only","Compile Only","This description will never be shown because the bot wouldn't run when this flag is enabled :)","--compile-only",[])) + opendiscord.flags.add(new api.ODFlag("opendiscord:no-migration","No Migration","Disable Open Ticket data migration on update!","--no-migration",["-nm"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:dev-config","Developer Config","Use the configs in /devconfig/ instead of /config/!","--dev-config",["-dc"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:dev-database","Developer Database","Use the databases in /devdatabase/ instead of /database/!","--dev-database",["-nd"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:debug","Debug Mode","Couldn't you find the error? Try to check this out!","--debug",["-d"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:crash","Crash On Error","Crash the bot on an unknown error!","--crash",["-cr"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:no-transcripts","No HTML Transcripts","Disable uploading HTML transcripts (for debugging)","--no-transcripts",["-nt"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:no-checker","No Config Checker","Disable the Config Checker (for debugging)","--no-checker",["-nc"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:checker","Full Config Checker","Render the Config Checker with extra details!","--checker",["-c"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:no-easter","No Easter Eggs","Disable little Open Ticket easter eggs hidden in the bot!","--no-easter",["-ne"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:no-plugins","No Plugins","Disable all Open Ticket plugins!","--no-plugins",["-np"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:soft-plugins","Soft Plugins","Don't crash the bot when a plugin crashes!","--soft-plugins",["-sp"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:force-slash-update","Force Slash Update","Force update all slash commands.","--force-slash",["-fs"])) + opendiscord.flags.add(new api.ODFlag("opendiscord:no-compile","No Compile","Disable compilation of plugins & bot before starting.","--no-compile",[])) + opendiscord.flags.add(new api.ODFlag("opendiscord:compile-only","Compile Only","This description will never be shown because the bot wouldn't run when this flag is enabled :)","--compile-only",[])) } \ No newline at end of file diff --git a/src/data/framework/helpMenuLoader.ts b/src/data/framework/helpMenuLoader.ts index 4c6d7b1..914d1ef 100644 --- a/src/data/framework/helpMenuLoader.ts +++ b/src/data/framework/helpMenuLoader.ts @@ -5,18 +5,18 @@ const lang = opendiscord.languages export const loadAllHelpMenuCategories = async () => { const helpmenu = opendiscord.helpmenu - helpmenu.add(new api.ODHelpMenuCategory("openticket:general",5,utilities.emojiTitle("📎","General Commands"))) //TODO TRANSLATION!!! - helpmenu.add(new api.ODHelpMenuCategory("openticket:ticket-basic",4,utilities.emojiTitle("🎫","Basic Ticket Commands"))) //TODO TRANSLATION!!! - helpmenu.add(new api.ODHelpMenuCategory("openticket:ticket-advanced",4,utilities.emojiTitle("💡","Advanced Ticket Commands"))) //TODO TRANSLATION!!! - helpmenu.add(new api.ODHelpMenuCategory("openticket:ticket-user",3,utilities.emojiTitle("👤","User Ticket Commands"))) //TODO TRANSLATION!!! - helpmenu.add(new api.ODHelpMenuCategory("openticket:admin",2,utilities.emojiTitle("🚨","Admin Commands"))) //TODO TRANSLATION!!! - helpmenu.add(new api.ODHelpMenuCategory("openticket:advanced",1,utilities.emojiTitle("🚧","Advanced Commands"))) //TODO TRANSLATION!!! - helpmenu.add(new api.ODHelpMenuCategory("openticket:extra",0,utilities.emojiTitle("✨","Extra Commands"))) //TODO TRANSLATION!!! + helpmenu.add(new api.ODHelpMenuCategory("opendiscord:general",5,utilities.emojiTitle("📎","General Commands"))) //TODO TRANSLATION!!! + helpmenu.add(new api.ODHelpMenuCategory("opendiscord:ticket-basic",4,utilities.emojiTitle("🎫","Basic Ticket Commands"))) //TODO TRANSLATION!!! + helpmenu.add(new api.ODHelpMenuCategory("opendiscord:ticket-advanced",4,utilities.emojiTitle("💡","Advanced Ticket Commands"))) //TODO TRANSLATION!!! + helpmenu.add(new api.ODHelpMenuCategory("opendiscord:ticket-user",3,utilities.emojiTitle("👤","User Ticket Commands"))) //TODO TRANSLATION!!! + helpmenu.add(new api.ODHelpMenuCategory("opendiscord:admin",2,utilities.emojiTitle("🚨","Admin Commands"))) //TODO TRANSLATION!!! + helpmenu.add(new api.ODHelpMenuCategory("opendiscord:advanced",1,utilities.emojiTitle("🚧","Advanced Commands"))) //TODO TRANSLATION!!! + helpmenu.add(new api.ODHelpMenuCategory("opendiscord:extra",0,utilities.emojiTitle("✨","Extra Commands"))) //TODO TRANSLATION!!! } export const loadAllHelpMenuComponents = async () => { const helpmenu = opendiscord.helpmenu - const generalConfig = opendiscord.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("opendiscord:general") if (!generalConfig) return const prefix = generalConfig.data.prefix @@ -27,24 +27,24 @@ export const loadAllHelpMenuComponents = async () => { if (generalConfig.data.system.permissions[key] != "none") allowedCommands.push(key) } - const general = helpmenu.get("openticket:general") + const general = helpmenu.get("opendiscord:general") if (general){ - if (allowedCommands.includes("help")) general.add(new api.ODHelpMenuCommandComponent("openticket:help",1,{ + if (allowedCommands.includes("help")) general.add(new api.ODHelpMenuCommandComponent("opendiscord:help",1,{ textName:prefix+"help", textDescription:lang.getTranslation("helpMenu.help"), slashName:"/help", slashDescription:lang.getTranslation("helpMenu.help") })) - if (allowedCommands.includes("ticket")) general.add(new api.ODHelpMenuCommandComponent("openticket:ticket",0,{ + if (allowedCommands.includes("ticket")) general.add(new api.ODHelpMenuCommandComponent("opendiscord:ticket",0,{ slashName:"/ticket", slashDescription:lang.getTranslation("commands.ticket"), slashOptions:[{name:"id",optional:false}] })) } - const ticketBasic = helpmenu.get("openticket:ticket-basic") + const ticketBasic = helpmenu.get("opendiscord:ticket-basic") if (ticketBasic){ - if (allowedCommands.includes("close")) ticketBasic.add(new api.ODHelpMenuCommandComponent("openticket:close",10,{ + if (allowedCommands.includes("close")) ticketBasic.add(new api.ODHelpMenuCommandComponent("opendiscord:close",10,{ textName:prefix+"close", textDescription:lang.getTranslation("helpMenu.close"), slashName:"/close", @@ -53,7 +53,7 @@ export const loadAllHelpMenuComponents = async () => { slashOptions:[{name:"reason",optional:true}] })) if (enableDeleteWithoutTranscript){ - if (allowedCommands.includes("delete")) ticketBasic.add(new api.ODHelpMenuCommandComponent("openticket:delete",9,{ + if (allowedCommands.includes("delete")) ticketBasic.add(new api.ODHelpMenuCommandComponent("opendiscord:delete",9,{ textName:prefix+"delete", textDescription:lang.getTranslation("helpMenu.delete"), slashName:"/delete", @@ -62,7 +62,7 @@ export const loadAllHelpMenuComponents = async () => { slashOptions:[{name:"notranscript",optional:true},{name:"reason",optional:true}] })) }else{ - if (allowedCommands.includes("delete")) ticketBasic.add(new api.ODHelpMenuCommandComponent("openticket:delete",9,{ + if (allowedCommands.includes("delete")) ticketBasic.add(new api.ODHelpMenuCommandComponent("opendiscord:delete",9,{ textName:prefix+"delete", textDescription:lang.getTranslation("helpMenu.delete"), slashName:"/delete", @@ -71,7 +71,7 @@ export const loadAllHelpMenuComponents = async () => { slashOptions:[{name:"reason",optional:true}] })) } - if (allowedCommands.includes("reopen")) ticketBasic.add(new api.ODHelpMenuCommandComponent("openticket:reopen",8,{ + if (allowedCommands.includes("reopen")) ticketBasic.add(new api.ODHelpMenuCommandComponent("opendiscord:reopen",8,{ textName:prefix+"reopen", textDescription:lang.getTranslation("helpMenu.reopen"), slashName:"/reopen", @@ -81,9 +81,9 @@ export const loadAllHelpMenuComponents = async () => { })) } - const ticketAdvanced = helpmenu.get("openticket:ticket-advanced") + const ticketAdvanced = helpmenu.get("opendiscord:ticket-advanced") if (ticketAdvanced){ - if (allowedCommands.includes("pin")) ticketAdvanced.add(new api.ODHelpMenuCommandComponent("openticket:pin",5,{ + if (allowedCommands.includes("pin")) ticketAdvanced.add(new api.ODHelpMenuCommandComponent("opendiscord:pin",5,{ textName:prefix+"pin", textDescription:lang.getTranslation("helpMenu.pin"), slashName:"/pin", @@ -91,7 +91,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"reason",optional:true}], slashOptions:[{name:"reason",optional:true}] })) - if (allowedCommands.includes("unpin")) ticketAdvanced.add(new api.ODHelpMenuCommandComponent("openticket:unpin",4,{ + if (allowedCommands.includes("unpin")) ticketAdvanced.add(new api.ODHelpMenuCommandComponent("opendiscord:unpin",4,{ textName:prefix+"unpin", textDescription:lang.getTranslation("helpMenu.unpin"), slashName:"/unpin", @@ -99,7 +99,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"reason",optional:true}], slashOptions:[{name:"reason",optional:true}] })) - if (allowedCommands.includes("move")) ticketAdvanced.add(new api.ODHelpMenuCommandComponent("openticket:move",3,{ + if (allowedCommands.includes("move")) ticketAdvanced.add(new api.ODHelpMenuCommandComponent("opendiscord:move",3,{ textName:prefix+"move", textDescription:lang.getTranslation("helpMenu.move"), slashName:"/move", @@ -107,7 +107,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"id",optional:false},{name:"reason",optional:true}], slashOptions:[{name:"id",optional:false},{name:"reason",optional:true}] })) - if (allowedCommands.includes("rename")) ticketAdvanced.add(new api.ODHelpMenuCommandComponent("openticket:rename",2,{ + if (allowedCommands.includes("rename")) ticketAdvanced.add(new api.ODHelpMenuCommandComponent("opendiscord:rename",2,{ textName:prefix+"rename", textDescription:lang.getTranslation("helpMenu.rename"), slashName:"/rename", @@ -117,9 +117,9 @@ export const loadAllHelpMenuComponents = async () => { })) } - const ticketUser = helpmenu.get("openticket:ticket-channel") + const ticketUser = helpmenu.get("opendiscord:ticket-channel") if (ticketUser){ - if (allowedCommands.includes("claim")) ticketUser.add(new api.ODHelpMenuCommandComponent("openticket:claim",7,{ + if (allowedCommands.includes("claim")) ticketUser.add(new api.ODHelpMenuCommandComponent("opendiscord:claim",7,{ textName:prefix+"claim", textDescription:lang.getTranslation("helpMenu.claim"), slashName:"/claim", @@ -127,7 +127,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"user",optional:true},{name:"reason",optional:true}], slashOptions:[{name:"user",optional:true},{name:"reason",optional:true}] })) - if (allowedCommands.includes("unclaim")) ticketUser.add(new api.ODHelpMenuCommandComponent("openticket:unclaim",6,{ + if (allowedCommands.includes("unclaim")) ticketUser.add(new api.ODHelpMenuCommandComponent("opendiscord:unclaim",6,{ textName:prefix+"unclaim", textDescription:lang.getTranslation("helpMenu.unclaim"), slashName:"/unclaim", @@ -135,7 +135,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"reason",optional:true}], slashOptions:[{name:"reason",optional:true}] })) - if (allowedCommands.includes("add")) ticketUser.add(new api.ODHelpMenuCommandComponent("openticket:add",1,{ + if (allowedCommands.includes("add")) ticketUser.add(new api.ODHelpMenuCommandComponent("opendiscord:add",1,{ textName:prefix+"add", textDescription:lang.getTranslation("helpMenu.add"), slashName:"/add", @@ -143,7 +143,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"user",optional:false},{name:"reason",optional:true}], slashOptions:[{name:"user",optional:false},{name:"reason",optional:true}] })) - if (allowedCommands.includes("remove")) ticketUser.add(new api.ODHelpMenuCommandComponent("openticket:remove",0,{ + if (allowedCommands.includes("remove")) ticketUser.add(new api.ODHelpMenuCommandComponent("opendiscord:remove",0,{ textName:prefix+"remove", textDescription:lang.getTranslation("helpMenu.remove"), slashName:"/remove", @@ -153,9 +153,9 @@ export const loadAllHelpMenuComponents = async () => { })) } - const admin = helpmenu.get("openticket:admin") + const admin = helpmenu.get("opendiscord:admin") if (admin){ - if (allowedCommands.includes("panel")) admin.add(new api.ODHelpMenuCommandComponent("openticket:panel",4,{ + if (allowedCommands.includes("panel")) admin.add(new api.ODHelpMenuCommandComponent("opendiscord:panel",4,{ textName:prefix+"panel", textDescription:lang.getTranslation("helpMenu.panel"), slashName:"/panel", @@ -163,13 +163,13 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"id",optional:false}], slashOptions:[{name:"id",optional:false}] })) - if (allowedCommands.includes("blacklist")) admin.add(new api.ODHelpMenuCommandComponent("openticket:blacklist-view",3,{ + if (allowedCommands.includes("blacklist")) admin.add(new api.ODHelpMenuCommandComponent("opendiscord:blacklist-view",3,{ textName:prefix+"blacklist view", textDescription:lang.getTranslation("commands.blacklistView"), slashName:"/blacklist view", slashDescription:lang.getTranslation("commands.blacklistView") })) - if (allowedCommands.includes("blacklist")) admin.add(new api.ODHelpMenuCommandComponent("openticket:blacklist-add",2,{ + if (allowedCommands.includes("blacklist")) admin.add(new api.ODHelpMenuCommandComponent("opendiscord:blacklist-add",2,{ textName:prefix+"blacklist add", textDescription:lang.getTranslation("commands.blacklistAdd"), slashName:"/blacklist add", @@ -177,7 +177,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"user",optional:false},{name:"reason",optional:true}], slashOptions:[{name:"user",optional:false},{name:"reason",optional:true}] })) - if (allowedCommands.includes("blacklist")) admin.add(new api.ODHelpMenuCommandComponent("openticket:blacklist-remove",1,{ + if (allowedCommands.includes("blacklist")) admin.add(new api.ODHelpMenuCommandComponent("opendiscord:blacklist-remove",1,{ textName:prefix+"blacklist remove", textDescription:lang.getTranslation("commands.blacklistRemove"), slashName:"/blacklist remove", @@ -185,7 +185,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"user",optional:false},{name:"reason",optional:true}], slashOptions:[{name:"user",optional:false},{name:"reason",optional:true}] })) - if (allowedCommands.includes("blacklist")) admin.add(new api.ODHelpMenuCommandComponent("openticket:blacklist-get",0,{ + if (allowedCommands.includes("blacklist")) admin.add(new api.ODHelpMenuCommandComponent("opendiscord:blacklist-get",0,{ textName:prefix+"blacklist get", textDescription:lang.getTranslation("commands.blacklistGet"), slashName:"/blacklist get", @@ -195,15 +195,15 @@ export const loadAllHelpMenuComponents = async () => { })) } - const advanced = helpmenu.get("openticket:advanced") + const advanced = helpmenu.get("opendiscord:advanced") if (advanced){ - if (allowedCommands.includes("stats")) advanced.add(new api.ODHelpMenuCommandComponent("openticket:stats-global",5,{ + if (allowedCommands.includes("stats")) advanced.add(new api.ODHelpMenuCommandComponent("opendiscord:stats-global",5,{ textName:prefix+"stats global", textDescription:lang.getTranslation("commands.statsGlobal"), slashName:"/stats global", slashDescription:lang.getTranslation("commands.statsGlobal") })) - if (allowedCommands.includes("stats")) advanced.add(new api.ODHelpMenuCommandComponent("openticket:stats-ticket",4,{ + if (allowedCommands.includes("stats")) advanced.add(new api.ODHelpMenuCommandComponent("opendiscord:stats-ticket",4,{ textName:prefix+"stats ticket", textDescription:lang.getTranslation("commands.statsTicket"), slashName:"/stats ticket", @@ -211,7 +211,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"ticket",optional:false}], slashOptions:[{name:"ticket",optional:false}] })) - if (allowedCommands.includes("stats")) advanced.add(new api.ODHelpMenuCommandComponent("openticket:stats-user",2,{ + if (allowedCommands.includes("stats")) advanced.add(new api.ODHelpMenuCommandComponent("opendiscord:stats-user",2,{ textName:prefix+"stats user", textDescription:lang.getTranslation("commands.statsUser"), slashName:"/stats user", @@ -219,7 +219,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"user",optional:false}], slashOptions:[{name:"user",optional:false}] })) - if (allowedCommands.includes("stats")) advanced.add(new api.ODHelpMenuCommandComponent("openticket:stats-reset",2,{ + if (allowedCommands.includes("stats")) advanced.add(new api.ODHelpMenuCommandComponent("opendiscord:stats-reset",2,{ textName:prefix+"stats reset", textDescription:lang.getTranslation("commands.statsReset"), slashName:"/stats reset", @@ -227,7 +227,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"reason",optional:true}], slashOptions:[{name:"reason",optional:true}] })) - if (allowedCommands.includes("autoclose")) advanced.add(new api.ODHelpMenuCommandComponent("openticket:autoclose-disable",1,{ + if (allowedCommands.includes("autoclose")) advanced.add(new api.ODHelpMenuCommandComponent("opendiscord:autoclose-disable",1,{ textName:prefix+"autoclose disable", textDescription:lang.getTranslation("commands.autocloseDisable"), slashName:"/autoclose disable", @@ -235,7 +235,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"reason",optional:true}], slashOptions:[{name:"reason",optional:true}] })) - if (allowedCommands.includes("autoclose")) advanced.add(new api.ODHelpMenuCommandComponent("openticket:autoclose-enable",0,{ + if (allowedCommands.includes("autoclose")) advanced.add(new api.ODHelpMenuCommandComponent("opendiscord:autoclose-enable",0,{ textName:prefix+"autoclose enable", textDescription:lang.getTranslation("commands.autocloseEnable"), slashName:"/autoclose enable", @@ -243,7 +243,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"time",optional:false},{name:"reason",optional:true}], slashOptions:[{name:"time",optional:false},{name:"reason",optional:true}] })) - if (allowedCommands.includes("autodelete")) advanced.add(new api.ODHelpMenuCommandComponent("openticket:autodelete-disable",1,{ + if (allowedCommands.includes("autodelete")) advanced.add(new api.ODHelpMenuCommandComponent("opendiscord:autodelete-disable",1,{ textName:prefix+"autodelete disable", textDescription:lang.getTranslation("commands.autodeleteDisable"), slashName:"/autodelete disable", @@ -251,7 +251,7 @@ export const loadAllHelpMenuComponents = async () => { textOptions:[{name:"reason",optional:true}], slashOptions:[{name:"reason",optional:true}] })) - if (allowedCommands.includes("autodelete")) advanced.add(new api.ODHelpMenuCommandComponent("openticket:autodelete-enable",0,{ + if (allowedCommands.includes("autodelete")) advanced.add(new api.ODHelpMenuCommandComponent("opendiscord:autodelete-enable",0,{ textName:prefix+"autodelete enable", textDescription:lang.getTranslation("commands.autodeleteEnable"), slashName:"/autodelete enable", diff --git a/src/data/framework/languageLoader.ts b/src/data/framework/languageLoader.ts index 922ab19..ab200be 100644 --- a/src/data/framework/languageLoader.ts +++ b/src/data/framework/languageLoader.ts @@ -2,29 +2,29 @@ import {opendiscord, api, utilities} from "../../index" export const loadAllLanguages = async () => { //register languages - opendiscord.languages.add(new api.ODJsonLanguage("openticket:custom","custom.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:english","english.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:dutch","dutch.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:portuguese","portuguese.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:czech","czech.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:german","german.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:catalan","catalan.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:hungarian","hungarian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:spanish","spanish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:romanian","romanian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:ukrainian","ukrainian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:indonesian","indonesian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:italian","italian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:estonian","estonian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:finnish","finnish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:danish","danish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:thai","thai.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:turkish","turkish.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:french","french.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:arabic","arabic.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:hindi","hindi.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:lithuanian","lithuanian.json")) - opendiscord.languages.add(new api.ODJsonLanguage("openticket:polish","polish.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:custom","custom.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:english","english.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:dutch","dutch.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:portuguese","portuguese.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:czech","czech.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:german","german.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:catalan","catalan.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:hungarian","hungarian.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:spanish","spanish.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:romanian","romanian.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:ukrainian","ukrainian.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:indonesian","indonesian.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:italian","italian.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:estonian","estonian.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:finnish","finnish.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:danish","danish.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:thai","thai.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:turkish","turkish.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:french","french.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:arabic","arabic.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:hindi","hindi.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:lithuanian","lithuanian.json")) + opendiscord.languages.add(new api.ODJsonLanguage("opendiscord:polish","polish.json")) /** How to add more languages? * - Register the language to the manager (see above) diff --git a/src/data/framework/liveStatusLoader.ts b/src/data/framework/liveStatusLoader.ts index a698e38..5aaaa74 100644 --- a/src/data/framework/liveStatusLoader.ts +++ b/src/data/framework/liveStatusLoader.ts @@ -2,5 +2,5 @@ import {opendiscord, api, utilities} from "../../index" export const loadAllLiveStatusSources = async () => { //DEFAULT DJDJ DEV - opendiscord.livestatus.add(new api.ODLiveStatusUrlSource("openticket:default-djdj-dev","https://raw.githubusercontent.com/DJj123dj/open-ticket/refs/heads/dev/src/livestatus.json")) + opendiscord.livestatus.add(new api.ODLiveStatusUrlSource("opendiscord:default-djdj-dev","https://raw.githubusercontent.com/DJj123dj/open-ticket/refs/heads/dev/src/livestatus.json")) } \ No newline at end of file diff --git a/src/data/framework/permissionLoader.ts b/src/data/framework/permissionLoader.ts index 8fc855a..0b33ae4 100644 --- a/src/data/framework/permissionLoader.ts +++ b/src/data/framework/permissionLoader.ts @@ -2,7 +2,7 @@ import {opendiscord, api, utilities} from "../../index" import * as discord from "discord.js" export const loadAllPermissions = async () => { - const generalConfig = opendiscord.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("opendiscord:general") if (!generalConfig) return const mainServer = opendiscord.client.mainServer if (!mainServer) return @@ -10,14 +10,14 @@ export const loadAllPermissions = async () => { //DEVELOPER & OWNER const developer = (await opendiscord.client.client.application.fetch()).owner if (developer instanceof discord.User){ - opendiscord.permissions.add(new api.ODPermission("openticket:developer-"+developer.id,"global-user","developer",developer)) + opendiscord.permissions.add(new api.ODPermission("opendiscord:developer-"+developer.id,"global-user","developer",developer)) }else if (developer instanceof discord.Team){ developer.members.forEach((member) => { - opendiscord.permissions.add(new api.ODPermission("openticket:developer-"+member.user.id,"global-user","developer",member.user)) + opendiscord.permissions.add(new api.ODPermission("opendiscord:developer-"+member.user.id,"global-user","developer",member.user)) }) } const owner = (await mainServer.members.fetch(mainServer.ownerId)).user - opendiscord.permissions.add(new api.ODPermission("openticket:owner-"+owner.id,"global-user","owner",owner)) + opendiscord.permissions.add(new api.ODPermission("opendiscord:owner-"+owner.id,"global-user","owner",owner)) //GLOBAL ADMINS generalConfig.data.globalAdmins.forEach(async (admin) => { @@ -26,7 +26,7 @@ export const loadAllPermissions = async () => { {key:"roleid",value:admin} ]) - opendiscord.permissions.add(new api.ODPermission("openticket:global-admin-"+admin,"global-role","admin",role)) + opendiscord.permissions.add(new api.ODPermission("opendiscord:global-admin-"+admin,"global-role","admin",role)) }) //TICKET ADMINS @@ -35,17 +35,17 @@ export const loadAllPermissions = async () => { const channel = await opendiscord.client.fetchGuildTextChannel(mainServer,ticket.id.value) if (!channel) return - const admins = ticket.option.exists("openticket:admins") ? ticket.option.get("openticket:admins").value : [] - const readAdmins = ticket.option.exists("openticket:admins-readonly") ? ticket.option.get("openticket:admins-readonly").value : [] + const admins = ticket.option.exists("opendiscord:admins") ? ticket.option.get("opendiscord:admins").value : [] + const readAdmins = ticket.option.exists("opendiscord:admins-readonly") ? ticket.option.get("opendiscord:admins-readonly").value : [] for (const admin of admins.concat(readAdmins)){ - if (opendiscord.permissions.exists("openticket:ticket-admin_"+ticket.id.value+"_"+admin)) return + if (opendiscord.permissions.exists("opendiscord:ticket-admin_"+ticket.id.value+"_"+admin)) return const role = await mainServer.roles.fetch(admin) if (!role) return opendiscord.log("Unable to register permission for ticket admin!","error",[ {key:"roleid",value:admin} ]) - opendiscord.permissions.add(new api.ODPermission("openticket:ticket-admin_"+ticket.id.value+"_"+admin,"channel-role","support",role,channel)) + opendiscord.permissions.add(new api.ODPermission("opendiscord:ticket-admin_"+ticket.id.value+"_"+admin,"channel-role","support",role,channel)) } }catch(err){ process.emit("uncaughtException",err) @@ -60,26 +60,26 @@ export const addTicketPermissions = async (ticket:api.ODTicket) => { const channel = await opendiscord.client.fetchGuildTextChannel(mainServer,ticket.id.value) if (!channel) return - const admins = ticket.option.exists("openticket:admins") ? ticket.option.get("openticket:admins").value : [] - const readAdmins = ticket.option.exists("openticket:admins-readonly") ? ticket.option.get("openticket:admins-readonly").value : [] + const admins = ticket.option.exists("opendiscord:admins") ? ticket.option.get("opendiscord:admins").value : [] + const readAdmins = ticket.option.exists("opendiscord:admins-readonly") ? ticket.option.get("opendiscord:admins-readonly").value : [] for (const admin of admins.concat(readAdmins)){ - if (opendiscord.permissions.exists("openticket:ticket-admin_"+ticket.id.value+"_"+admin)) return + if (opendiscord.permissions.exists("opendiscord:ticket-admin_"+ticket.id.value+"_"+admin)) return const role = await mainServer.roles.fetch(admin) if (!role) return opendiscord.log("Unable to register permission for ticket admin!","error",[ {key:"roleid",value:admin} ]) - opendiscord.permissions.add(new api.ODPermission("openticket:ticket-admin_"+ticket.id.value+"_"+admin,"channel-role","support",role,channel)) + opendiscord.permissions.add(new api.ODPermission("opendiscord:ticket-admin_"+ticket.id.value+"_"+admin,"channel-role","support",role,channel)) } } export const removeTicketPermissions = async (ticket:api.ODTicket) => { - const admins = ticket.option.exists("openticket:admins") ? ticket.option.get("openticket:admins").value : [] - const readAdmins = ticket.option.exists("openticket:admins-readonly") ? ticket.option.get("openticket:admins-readonly").value : [] + const admins = ticket.option.exists("opendiscord:admins") ? ticket.option.get("opendiscord:admins").value : [] + const readAdmins = ticket.option.exists("opendiscord:admins-readonly") ? ticket.option.get("opendiscord:admins-readonly").value : [] admins.concat(readAdmins).forEach(async (admin) => { - if (!opendiscord.permissions.exists("openticket:ticket-admin_"+ticket.id.value+"_"+admin)) return - opendiscord.permissions.remove("openticket:ticket-admin_"+ticket.id.value+"_"+admin) + if (!opendiscord.permissions.exists("opendiscord:ticket-admin_"+ticket.id.value+"_"+admin)) return + opendiscord.permissions.remove("opendiscord:ticket-admin_"+ticket.id.value+"_"+admin) }) } \ No newline at end of file diff --git a/src/data/framework/postLoader.ts b/src/data/framework/postLoader.ts index 4338c5f..4098ee1 100644 --- a/src/data/framework/postLoader.ts +++ b/src/data/framework/postLoader.ts @@ -1,14 +1,14 @@ import {opendiscord, api, utilities} from "../../index" export const loadAllPosts = async () => { - const generalConfig = opendiscord.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("opendiscord:general") if (!generalConfig) return - const transcriptConfig = opendiscord.configs.get("openticket:transcripts") + const transcriptConfig = opendiscord.configs.get("opendiscord:transcripts") if (!transcriptConfig) return //LOGS CHANNEL - if (generalConfig.data.system.logs.enabled) opendiscord.posts.add(new api.ODPost("openticket:logs",generalConfig.data.system.logs.channel)) + if (generalConfig.data.system.logs.enabled) opendiscord.posts.add(new api.ODPost("opendiscord:logs",generalConfig.data.system.logs.channel)) //TRANSCRIPTS CHANNEL - if (transcriptConfig.data.general.enabled && transcriptConfig.data.general.enableChannel) opendiscord.posts.add(new api.ODPost("openticket:transcripts",transcriptConfig.data.general.channel)) + if (transcriptConfig.data.general.enabled && transcriptConfig.data.general.enableChannel) opendiscord.posts.add(new api.ODPost("opendiscord:transcripts",transcriptConfig.data.general.channel)) } \ No newline at end of file diff --git a/src/data/framework/progressBarLoader.ts b/src/data/framework/progressBarLoader.ts index 39a5a84..27795f4 100644 --- a/src/data/framework/progressBarLoader.ts +++ b/src/data/framework/progressBarLoader.ts @@ -25,43 +25,43 @@ export const loadAllProgressBarRenderers = async () => { //VALUE RENDERER const valueRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} valueRendererSettings.labelType = "value" - opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:value-renderer",valueRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:value-renderer",valueRendererSettings)) //FRACTION RENDERER const fractionRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} fractionRendererSettings.labelType = "fraction" - opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:fraction-renderer",fractionRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:fraction-renderer",fractionRendererSettings)) //PERCENTAGE RENDERER const percentageRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} percentageRendererSettings.labelType = "percentage" - opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:percentage-renderer",percentageRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:percentage-renderer",percentageRendererSettings)) //TIME MS RENDERER const timeMsRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} timeMsRendererSettings.labelType = "time-ms" - opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:time-ms-renderer",timeMsRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:time-ms-renderer",timeMsRendererSettings)) //TIME SEC RENDERER const timeSecRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} timeSecRendererSettings.labelType = "time-sec" - opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:time-sec-renderer",timeSecRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:time-sec-renderer",timeSecRendererSettings)) //TIME MIN RENDERER const timeMinRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} timeMinRendererSettings.labelType = "time-min" - opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:time-min-renderer",timeMinRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("opendiscord:time-min-renderer",timeMinRendererSettings)) } export const loadAllProgressBars = async () => { - const fractRenderer = opendiscord.progressbars.renderers.get("openticket:fraction-renderer") + const fractRenderer = opendiscord.progressbars.renderers.get("opendiscord:fraction-renderer") //SLASH COMMAND REMOVE (doesn't have correct amount yet) - opendiscord.progressbars.add(new api.ODManualProgressBar("openticket:slash-command-remove",fractRenderer.withAdditionalSettings({filledBarColor:"red"}),0,"max",null,"Commands Removed")) + opendiscord.progressbars.add(new api.ODManualProgressBar("opendiscord:slash-command-remove",fractRenderer.withAdditionalSettings({filledBarColor:"red"}),0,"max",null,"Commands Removed")) //SLASH COMMAND CREATE (doesn't have correct amount yet) - opendiscord.progressbars.add(new api.ODManualProgressBar("openticket:slash-command-create",fractRenderer.withAdditionalSettings({filledBarColor:"green"}),0,"max",null,"Commands Created")) + opendiscord.progressbars.add(new api.ODManualProgressBar("opendiscord:slash-command-create",fractRenderer.withAdditionalSettings({filledBarColor:"green"}),0,"max",null,"Commands Created")) //SLASH COMMAND UPDATE (doesn't have correct amount yet) - opendiscord.progressbars.add(new api.ODManualProgressBar("openticket:slash-command-update",fractRenderer.withAdditionalSettings({filledBarColor:"openticket"}),0,"max",null,"Commands Updated")) + opendiscord.progressbars.add(new api.ODManualProgressBar("opendiscord:slash-command-update",fractRenderer.withAdditionalSettings({filledBarColor:"openticket"}),0,"max",null,"Commands Updated")) } \ No newline at end of file diff --git a/src/data/framework/startScreenLoader.ts b/src/data/framework/startScreenLoader.ts index 48c4329..b80d7dc 100644 --- a/src/data/framework/startScreenLoader.ts +++ b/src/data/framework/startScreenLoader.ts @@ -3,7 +3,7 @@ import ansis from "ansis" export const loadAllStartScreenComponents = async () => { //LOGO - opendiscord.startscreen.add(new api.ODStartScreenLogoComponent("openticket:logo",1000,[ + opendiscord.startscreen.add(new api.ODStartScreenLogoComponent("opendiscord:logo",1000,[ " ██████╗ ██████╗ ███████╗███╗ ██╗ ████████╗██╗ ██████╗██╗ ██╗███████╗████████╗ ", " ██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ╚══██╔══╝██║██╔════╝██║ ██╔╝██╔════╝╚══██╔══╝ ", " ██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ ██║██║ █████╔╝ █████╗ ██║ ", @@ -14,34 +14,34 @@ export const loadAllStartScreenComponents = async () => { //HEADER const currentLanguageMetadata = opendiscord.languages.getLanguageMetadata() - opendiscord.startscreen.add(new api.ODStartScreenHeaderComponent("openticket:header",999,[ - {key:"Version",value:opendiscord.versions.get("openticket:version").toString()}, + opendiscord.startscreen.add(new api.ODStartScreenHeaderComponent("opendiscord:header",999,[ + {key:"Version",value:opendiscord.versions.get("opendiscord:version").toString()}, {key:"Support",value:"https://discord.dj-dj.be"}, {key:"Language",value:(currentLanguageMetadata ? currentLanguageMetadata.language : "Unknown")} ]," - ",{ align:"center", - width:opendiscord.startscreen.get("openticket:logo") + width:opendiscord.startscreen.get("opendiscord:logo") })) //FLAGS - opendiscord.startscreen.add(new api.ODStartScreenFlagsCategoryComponent("openticket:flags",4,opendiscord.flags.getAll())) + opendiscord.startscreen.add(new api.ODStartScreenFlagsCategoryComponent("opendiscord:flags",4,opendiscord.flags.getAll())) //PLUGINS - opendiscord.startscreen.add(new api.ODStartScreenPluginsCategoryComponent("openticket:plugins",3,opendiscord.plugins.getAll(),opendiscord.plugins.unknownCrashedPlugins)) + opendiscord.startscreen.add(new api.ODStartScreenPluginsCategoryComponent("opendiscord:plugins",3,opendiscord.plugins.getAll(),opendiscord.plugins.unknownCrashedPlugins)) //STATS - opendiscord.startscreen.add(new api.ODStartScreenPropertiesCategoryComponent("openticket:stats",2,"startup info",[ + opendiscord.startscreen.add(new api.ODStartScreenPropertiesCategoryComponent("opendiscord:stats",2,"startup info",[ {key:"status",value:ansis.bold(opendiscord.client.activity.getStatusType())+opendiscord.client.activity.text+" ("+opendiscord.client.activity.status+")"}, {key:"options",value:"loaded "+ansis.bold(opendiscord.options.getLength().toString())+" options!"}, {key:"panels",value:"loaded "+ansis.bold(opendiscord.panels.getLength().toString())+" panels!"}, {key:"tickets",value:"loaded "+ansis.bold(opendiscord.tickets.getLength().toString())+" tickets!"}, {key:"roles",value:"loaded "+ansis.bold(opendiscord.roles.getLength().toString())+" roles!"}, - {key:"help",value:ansis.bold(opendiscord.configs.get("openticket:general").data.prefix+"help")+" or "+ansis.bold("/help")} + {key:"help",value:ansis.bold(opendiscord.configs.get("opendiscord:general").data.prefix+"help")+" or "+ansis.bold("/help")} ])) //LIVESTATUS - opendiscord.startscreen.add(new api.ODStartScreenLiveStatusCategoryComponent("openticket:livestatus",1,opendiscord.livestatus)) + opendiscord.startscreen.add(new api.ODStartScreenLiveStatusCategoryComponent("opendiscord:livestatus",1,opendiscord.livestatus)) //LOGS - opendiscord.startscreen.add(new api.ODStartScreenLogCategoryComponent("openticket:logs",0)) + opendiscord.startscreen.add(new api.ODStartScreenLogCategoryComponent("opendiscord:logs",0)) } \ No newline at end of file diff --git a/src/data/framework/statLoader.ts b/src/data/framework/statLoader.ts index 22f5505..7f56020 100644 --- a/src/data/framework/statLoader.ts +++ b/src/data/framework/statLoader.ts @@ -5,48 +5,48 @@ const stats = opendiscord.stats const lang = opendiscord.languages export const loadAllStatScopes = async () => { - stats.add(new api.ODStatGlobalScope("openticket:global",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.global")))) - stats.add(new api.ODStatGlobalScope("openticket:system",utilities.emojiTitle("⚙️",lang.getTranslation("stats.scopes.system")))) - stats.add(new api.ODStatScope("openticket:user",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.user")))) - stats.add(new api.ODStatScope("openticket:ticket",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.ticket")))) - stats.add(new api.ODStatScope("openticket:participants",utilities.emojiTitle("👥",lang.getTranslation("stats.scopes.participants")))) + stats.add(new api.ODStatGlobalScope("opendiscord:global",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.global")))) + stats.add(new api.ODStatGlobalScope("opendiscord:system",utilities.emojiTitle("⚙️",lang.getTranslation("stats.scopes.system")))) + stats.add(new api.ODStatScope("opendiscord:user",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.user")))) + stats.add(new api.ODStatScope("opendiscord:ticket",utilities.emojiTitle("📊",lang.getTranslation("stats.scopes.ticket")))) + stats.add(new api.ODStatScope("opendiscord:participants",utilities.emojiTitle("👥",lang.getTranslation("stats.scopes.participants")))) } export const loadAllStats = async () => { - const generalConfig = opendiscord.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("opendiscord:general") if (!generalConfig) return - const global = stats.get("openticket:global") + const global = stats.get("opendiscord:global") if (global){ - global.add(new api.ODBasicStat("openticket:tickets-created",10,lang.getTranslation("stats.properties.ticketsCreated"),0)) - global.add(new api.ODBasicStat("openticket:tickets-closed",9,lang.getTranslation("stats.properties.ticketsClosed"),0)) - global.add(new api.ODBasicStat("openticket:tickets-deleted",8,lang.getTranslation("stats.properties.ticketsDeleted"),0)) - global.add(new api.ODBasicStat("openticket:tickets-reopened",7,lang.getTranslation("stats.properties.ticketsReopened"),0)) - global.add(new api.ODBasicStat("openticket:tickets-autoclosed",6,lang.getTranslation("stats.properties.ticketsAutoclosed"),0)) - global.add(new api.ODBasicStat("openticket:tickets-autodeleted",5,"Tickets Autodeleted",0)) //TODO TRANSLATION!!! - global.add(new api.ODBasicStat("openticket:tickets-claimed",4,lang.getTranslation("stats.properties.ticketsClaimed"),0)) - global.add(new api.ODBasicStat("openticket:tickets-pinned",3,lang.getTranslation("stats.properties.ticketsPinned"),0)) - global.add(new api.ODBasicStat("openticket:tickets-moved",2,lang.getTranslation("stats.properties.ticketsMoved"),0)) - global.add(new api.ODBasicStat("openticket:users-blacklisted",1,lang.getTranslation("stats.properties.usersBlacklisted"),0)) - global.add(new api.ODBasicStat("openticket:transcripts-created",0,lang.getTranslation("stats.properties.transcriptsCreated"),0)) + global.add(new api.ODBasicStat("opendiscord:tickets-created",10,lang.getTranslation("stats.properties.ticketsCreated"),0)) + global.add(new api.ODBasicStat("opendiscord:tickets-closed",9,lang.getTranslation("stats.properties.ticketsClosed"),0)) + global.add(new api.ODBasicStat("opendiscord:tickets-deleted",8,lang.getTranslation("stats.properties.ticketsDeleted"),0)) + global.add(new api.ODBasicStat("opendiscord:tickets-reopened",7,lang.getTranslation("stats.properties.ticketsReopened"),0)) + global.add(new api.ODBasicStat("opendiscord:tickets-autoclosed",6,lang.getTranslation("stats.properties.ticketsAutoclosed"),0)) + global.add(new api.ODBasicStat("opendiscord:tickets-autodeleted",5,"Tickets Autodeleted",0)) //TODO TRANSLATION!!! + global.add(new api.ODBasicStat("opendiscord:tickets-claimed",4,lang.getTranslation("stats.properties.ticketsClaimed"),0)) + global.add(new api.ODBasicStat("opendiscord:tickets-pinned",3,lang.getTranslation("stats.properties.ticketsPinned"),0)) + global.add(new api.ODBasicStat("opendiscord:tickets-moved",2,lang.getTranslation("stats.properties.ticketsMoved"),0)) + global.add(new api.ODBasicStat("opendiscord:users-blacklisted",1,lang.getTranslation("stats.properties.usersBlacklisted"),0)) + global.add(new api.ODBasicStat("opendiscord:transcripts-created",0,lang.getTranslation("stats.properties.transcriptsCreated"),0)) } - const system = stats.get("openticket:system") + const system = stats.get("opendiscord:system") if (system){ - system.add(new api.ODDynamicStat("openticket:startup-date",1,() => { + system.add(new api.ODDynamicStat("opendiscord:startup-date",1,() => { return lang.getTranslation("params.uppercase.startupDate")+": "+discord.time(opendiscord.processStartupDate,"f") })) - system.add(new api.ODDynamicStat("openticket:version",0,() => { - return lang.getTranslation("params.uppercase.version")+": `"+opendiscord.versions.get("openticket:version").toString()+"`" + system.add(new api.ODDynamicStat("opendiscord:version",0,() => { + return lang.getTranslation("params.uppercase.version")+": `"+opendiscord.versions.get("opendiscord:version").toString()+"`" })) } - const user = stats.get("openticket:user") + const user = stats.get("opendiscord:user") if (user){ - user.add(new api.ODDynamicStat("openticket:name",11,async (scopeId,guild,channel,user) => { + user.add(new api.ODDynamicStat("opendiscord:name",11,async (scopeId,guild,channel,user) => { return lang.getTranslation("params.uppercase.name")+": "+discord.userMention(scopeId) })) - user.add(new api.ODDynamicStat("openticket:role",10,async (scopeId,guild,channel,user) => { + user.add(new api.ODDynamicStat("opendiscord:role",10,async (scopeId,guild,channel,user) => { try{ const scopeMember = await guild.members.fetch(scopeId) if (!scopeMember) return "" @@ -62,67 +62,67 @@ export const loadAllStats = async () => { return "" } })) - user.add(new api.ODBasicStat("openticket:tickets-created",8,lang.getTranslation("stats.properties.ticketsCreated"),0)) - user.add(new api.ODBasicStat("openticket:tickets-closed",7,lang.getTranslation("stats.properties.ticketsClosed"),0)) - user.add(new api.ODBasicStat("openticket:tickets-deleted",6,lang.getTranslation("stats.properties.ticketsDeleted"),0)) - user.add(new api.ODBasicStat("openticket:tickets-reopened",5,lang.getTranslation("stats.properties.ticketsReopened"),0)) - user.add(new api.ODBasicStat("openticket:tickets-claimed",4,lang.getTranslation("stats.properties.ticketsClaimed"),0)) - user.add(new api.ODBasicStat("openticket:tickets-pinned",3,lang.getTranslation("stats.properties.ticketsPinned"),0)) - user.add(new api.ODBasicStat("openticket:tickets-moved",2,lang.getTranslation("stats.properties.ticketsMoved"),0)) - user.add(new api.ODBasicStat("openticket:users-blacklisted",1,lang.getTranslation("stats.properties.usersBlacklisted"),0)) - user.add(new api.ODBasicStat("openticket:transcripts-created",0,lang.getTranslation("stats.properties.transcriptsCreated"),0)) + user.add(new api.ODBasicStat("opendiscord:tickets-created",8,lang.getTranslation("stats.properties.ticketsCreated"),0)) + user.add(new api.ODBasicStat("opendiscord:tickets-closed",7,lang.getTranslation("stats.properties.ticketsClosed"),0)) + user.add(new api.ODBasicStat("opendiscord:tickets-deleted",6,lang.getTranslation("stats.properties.ticketsDeleted"),0)) + user.add(new api.ODBasicStat("opendiscord:tickets-reopened",5,lang.getTranslation("stats.properties.ticketsReopened"),0)) + user.add(new api.ODBasicStat("opendiscord:tickets-claimed",4,lang.getTranslation("stats.properties.ticketsClaimed"),0)) + user.add(new api.ODBasicStat("opendiscord:tickets-pinned",3,lang.getTranslation("stats.properties.ticketsPinned"),0)) + user.add(new api.ODBasicStat("opendiscord:tickets-moved",2,lang.getTranslation("stats.properties.ticketsMoved"),0)) + user.add(new api.ODBasicStat("opendiscord:users-blacklisted",1,lang.getTranslation("stats.properties.usersBlacklisted"),0)) + user.add(new api.ODBasicStat("opendiscord:transcripts-created",0,lang.getTranslation("stats.properties.transcriptsCreated"),0)) } - const ticket = stats.get("openticket:ticket") + const ticket = stats.get("opendiscord:ticket") if (ticket){ - ticket.add(new api.ODDynamicStat("openticket:name",5,async (scopeId,guild,channel,user) => { + ticket.add(new api.ODDynamicStat("opendiscord:name",5,async (scopeId,guild,channel,user) => { return lang.getTranslation("params.uppercase.ticket")+": "+discord.channelMention(scopeId) })) - ticket.add(new api.ODDynamicStat("openticket:status",4,async (scopeId,guild,channel,user) => { + ticket.add(new api.ODDynamicStat("opendiscord:status",4,async (scopeId,guild,channel,user) => { const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" - const closed = ticket.exists("openticket:closed") ? ticket.get("openticket:closed").value : false + const closed = ticket.exists("opendiscord:closed") ? ticket.get("opendiscord:closed").value : false return closed ? lang.getTranslation("params.uppercase.status")+": 🔒 `Closed`" : lang.getTranslation("params.uppercase.status")+": 🔓 `Open`" //TODO TRANSLATION!!! })) - ticket.add(new api.ODDynamicStat("openticket:claimed",3,async (scopeId,guild,channel,user) => { + ticket.add(new api.ODDynamicStat("opendiscord:claimed",3,async (scopeId,guild,channel,user) => { const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" - const claimed = ticket.exists("openticket:claimed") ? ticket.get("openticket:claimed").value : false + const claimed = ticket.exists("opendiscord:claimed") ? ticket.get("opendiscord:claimed").value : false return claimed ? lang.getTranslation("params.uppercase.claimed")+": 🟢 `Yes`" : lang.getTranslation("params.uppercase.claimed")+": 🔴 `No`" //TODO TRANSLATION!!! })) - ticket.add(new api.ODDynamicStat("openticket:pinned",2,async (scopeId,guild,channel,user) => { + ticket.add(new api.ODDynamicStat("opendiscord:pinned",2,async (scopeId,guild,channel,user) => { const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" - const pinned = ticket.exists("openticket:pinned") ? ticket.get("openticket:pinned").value : false + const pinned = ticket.exists("opendiscord:pinned") ? ticket.get("opendiscord:pinned").value : false return pinned ? lang.getTranslation("params.uppercase.pinned")+": 🟢 `Yes`" : lang.getTranslation("params.uppercase.pinned")+": 🔴 `No`" //TODO TRANSLATION!!! })) - ticket.add(new api.ODDynamicStat("openticket:creation-date",1,async (scopeId,guild,channel,user) => { + ticket.add(new api.ODDynamicStat("opendiscord:creation-date",1,async (scopeId,guild,channel,user) => { const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" - const rawDate = ticket.get("openticket:opened-on").value ?? new Date().getTime() + const rawDate = ticket.get("opendiscord:opened-on").value ?? new Date().getTime() return lang.getTranslation("params.uppercase.creationDate")+": "+discord.time(new Date(rawDate),"f") })) - ticket.add(new api.ODDynamicStat("openticket:creator",0,async (scopeId,guild,channel,user) => { + ticket.add(new api.ODDynamicStat("opendiscord:creator",0,async (scopeId,guild,channel,user) => { const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" - const creator = ticket.get("openticket:opened-by").value + const creator = ticket.get("opendiscord:opened-by").value return lang.getTranslation("params.uppercase.creator")+": "+ (creator ? discord.userMention(creator) : "`unknown`") })) } - const participants = stats.get("openticket:participants") + const participants = stats.get("opendiscord:participants") if (participants){ - participants.add(new api.ODDynamicStat("openticket:participants",0,async (scopeId,guild,channel,user) => { + participants.add(new api.ODDynamicStat("opendiscord:participants",0,async (scopeId,guild,channel,user) => { const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" - const participants = ticket.exists("openticket:participants") ? ticket.get("openticket:participants").value : [] + const participants = ticket.exists("opendiscord:participants") ? ticket.get("opendiscord:participants").value : [] return participants.map((p) => { return (p.type == "role") ? discord.roleMention(p.id) : discord.userMention(p.id) diff --git a/src/data/openticket/blacklistLoader.ts b/src/data/openticket/blacklistLoader.ts index 25e6d3e..6e8ed6a 100644 --- a/src/data/openticket/blacklistLoader.ts +++ b/src/data/openticket/blacklistLoader.ts @@ -1,10 +1,10 @@ import {opendiscord, api, utilities} from "../../index" export const loadAllBlacklistedUsers = async () => { - const userDatabase = opendiscord.databases.get("openticket:users") + const userDatabase = opendiscord.databases.get("opendiscord:users") if (!userDatabase) return - const users = await userDatabase.getCategory("openticket:blacklist") ?? [] + const users = await userDatabase.getCategory("opendiscord:blacklist") ?? [] users.forEach((user) => { if (typeof user.value == "string" || user.value === null) opendiscord.blacklist.add(new api.ODBlacklist(user.key,user.value)) }) diff --git a/src/data/openticket/optionLoader.ts b/src/data/openticket/optionLoader.ts index 138ba95..302f7d2 100644 --- a/src/data/openticket/optionLoader.ts +++ b/src/data/openticket/optionLoader.ts @@ -1,7 +1,7 @@ import {opendiscord, api, utilities} from "../../index" export const loadAllOptions = async () => { - const optionConfig = opendiscord.configs.get("openticket:options") + const optionConfig = opendiscord.configs.get("opendiscord:options") if (!optionConfig) return optionConfig.data.forEach((option) => { @@ -56,85 +56,85 @@ export const loadAllOptions = async () => { export const loadTicketOption = (option:api.ODJsonConfig_DefaultOptionTicketType): api.ODTicketOption => { return new api.ODTicketOption(option.id,[ - new api.ODOptionData("openticket:name",option.name), - new api.ODOptionData("openticket:description",option.description), + new api.ODOptionData("opendiscord:name",option.name), + new api.ODOptionData("opendiscord:description",option.description), - new api.ODOptionData("openticket:button-emoji",option.button.emoji), - new api.ODOptionData("openticket:button-label",option.button.label), - new api.ODOptionData("openticket:button-color",option.button.color), + new api.ODOptionData("opendiscord:button-emoji",option.button.emoji), + new api.ODOptionData("opendiscord:button-label",option.button.label), + new api.ODOptionData("opendiscord:button-color",option.button.color), - new api.ODOptionData("openticket:admins",option.ticketAdmins), - new api.ODOptionData("openticket:admins-readonly",option.readonlyAdmins), - new api.ODOptionData("openticket:allow-blacklisted-users",option.allowCreationByBlacklistedUsers), - new api.ODOptionData("openticket:questions",option.questions), + new api.ODOptionData("opendiscord:admins",option.ticketAdmins), + new api.ODOptionData("opendiscord:admins-readonly",option.readonlyAdmins), + new api.ODOptionData("opendiscord:allow-blacklisted-users",option.allowCreationByBlacklistedUsers), + new api.ODOptionData("opendiscord:questions",option.questions), - new api.ODOptionData("openticket:channel-prefix",option.channel.prefix), - new api.ODOptionData("openticket:channel-suffix",option.channel.suffix), - new api.ODOptionData("openticket:channel-category",option.channel.category), - new api.ODOptionData("openticket:channel-category-closed",option.channel.closedCategory), - new api.ODOptionData("openticket:channel-category-backup",option.channel.backupCategory), - new api.ODOptionData("openticket:channel-categories-claimed",option.channel.claimedCategory), - new api.ODOptionData("openticket:channel-description",option.channel.description), + new api.ODOptionData("opendiscord:channel-prefix",option.channel.prefix), + new api.ODOptionData("opendiscord:channel-suffix",option.channel.suffix), + new api.ODOptionData("opendiscord:channel-category",option.channel.category), + new api.ODOptionData("opendiscord:channel-category-closed",option.channel.closedCategory), + new api.ODOptionData("opendiscord:channel-category-backup",option.channel.backupCategory), + new api.ODOptionData("opendiscord:channel-categories-claimed",option.channel.claimedCategory), + new api.ODOptionData("opendiscord:channel-description",option.channel.description), - new api.ODOptionData("openticket:dm-message-enabled",option.dmMessage.enabled), - new api.ODOptionData("openticket:dm-message-text",option.dmMessage.text), - new api.ODOptionData("openticket:dm-message-embed",option.dmMessage.embed), + new api.ODOptionData("opendiscord:dm-message-enabled",option.dmMessage.enabled), + new api.ODOptionData("opendiscord:dm-message-text",option.dmMessage.text), + new api.ODOptionData("opendiscord:dm-message-embed",option.dmMessage.embed), - new api.ODOptionData("openticket:ticket-message-enabled",option.ticketMessage.enabled), - new api.ODOptionData("openticket:ticket-message-text",option.ticketMessage.text), - new api.ODOptionData("openticket:ticket-message-embed",option.ticketMessage.embed), - new api.ODOptionData("openticket:ticket-message-ping",option.ticketMessage.ping), + new api.ODOptionData("opendiscord:ticket-message-enabled",option.ticketMessage.enabled), + new api.ODOptionData("opendiscord:ticket-message-text",option.ticketMessage.text), + new api.ODOptionData("opendiscord:ticket-message-embed",option.ticketMessage.embed), + new api.ODOptionData("opendiscord:ticket-message-ping",option.ticketMessage.ping), - new api.ODOptionData("openticket:autoclose-enable-hours",option.autoclose.enableInactiveHours), - new api.ODOptionData("openticket:autoclose-enable-leave",option.autoclose.enableUserLeave), - new api.ODOptionData("openticket:autoclose-disable-claim",option.autoclose.disableOnClaim), - new api.ODOptionData("openticket:autoclose-hours",option.autoclose.inactiveHours), + new api.ODOptionData("opendiscord:autoclose-enable-hours",option.autoclose.enableInactiveHours), + new api.ODOptionData("opendiscord:autoclose-enable-leave",option.autoclose.enableUserLeave), + new api.ODOptionData("opendiscord:autoclose-disable-claim",option.autoclose.disableOnClaim), + new api.ODOptionData("opendiscord:autoclose-hours",option.autoclose.inactiveHours), - new api.ODOptionData("openticket:autodelete-enable-days",option.autodelete.enableInactiveDays), - new api.ODOptionData("openticket:autodelete-enable-leave",option.autodelete.enableUserLeave), - new api.ODOptionData("openticket:autodelete-disable-claim",option.autodelete.disableOnClaim), - new api.ODOptionData("openticket:autodelete-days",option.autodelete.inactiveDays), + new api.ODOptionData("opendiscord:autodelete-enable-days",option.autodelete.enableInactiveDays), + new api.ODOptionData("opendiscord:autodelete-enable-leave",option.autodelete.enableUserLeave), + new api.ODOptionData("opendiscord:autodelete-disable-claim",option.autodelete.disableOnClaim), + new api.ODOptionData("opendiscord:autodelete-days",option.autodelete.inactiveDays), - new api.ODOptionData("openticket:cooldown-enabled",option.cooldown.enabled), - new api.ODOptionData("openticket:cooldown-minutes",option.cooldown.cooldownMinutes), + new api.ODOptionData("opendiscord:cooldown-enabled",option.cooldown.enabled), + new api.ODOptionData("opendiscord:cooldown-minutes",option.cooldown.cooldownMinutes), - new api.ODOptionData("openticket:limits-enabled",option.limits.enabled), - new api.ODOptionData("openticket:limits-maximum-global",option.limits.globalMaximum), - new api.ODOptionData("openticket:limits-maximum-user",option.limits.userMaximum) + new api.ODOptionData("opendiscord:limits-enabled",option.limits.enabled), + new api.ODOptionData("opendiscord:limits-maximum-global",option.limits.globalMaximum), + new api.ODOptionData("opendiscord:limits-maximum-user",option.limits.userMaximum) ]) } export const loadWebsiteOption = (opt:api.ODJsonConfig_DefaultOptionWebsiteType): api.ODWebsiteOption => { return new api.ODWebsiteOption(opt.id,[ - new api.ODOptionData("openticket:name",opt.name), - new api.ODOptionData("openticket:description",opt.description), + new api.ODOptionData("opendiscord:name",opt.name), + new api.ODOptionData("opendiscord:description",opt.description), - new api.ODOptionData("openticket:button-emoji",opt.button.emoji), - new api.ODOptionData("openticket:button-label",opt.button.label), + new api.ODOptionData("opendiscord:button-emoji",opt.button.emoji), + new api.ODOptionData("opendiscord:button-label",opt.button.label), - new api.ODOptionData("openticket:url",opt.url) + new api.ODOptionData("opendiscord:url",opt.url) ]) } export const loadRoleOption = (opt:api.ODJsonConfig_DefaultOptionRoleType): api.ODRoleOption => { return new api.ODRoleOption(opt.id,[ - new api.ODOptionData("openticket:name",opt.name), - new api.ODOptionData("openticket:description",opt.description), + new api.ODOptionData("opendiscord:name",opt.name), + new api.ODOptionData("opendiscord:description",opt.description), - new api.ODOptionData("openticket:button-emoji",opt.button.emoji), - new api.ODOptionData("openticket:button-label",opt.button.label), - new api.ODOptionData("openticket:button-color",opt.button.color), + new api.ODOptionData("opendiscord:button-emoji",opt.button.emoji), + new api.ODOptionData("opendiscord:button-label",opt.button.label), + new api.ODOptionData("opendiscord:button-color",opt.button.color), - new api.ODOptionData("openticket:roles",opt.roles), - new api.ODOptionData("openticket:mode",opt.mode), - new api.ODOptionData("openticket:remove-roles-on-add",opt.removeRolesOnAdd), - new api.ODOptionData("openticket:add-on-join",opt.addOnMemberJoin) + new api.ODOptionData("opendiscord:roles",opt.roles), + new api.ODOptionData("opendiscord:mode",opt.mode), + new api.ODOptionData("opendiscord:remove-roles-on-add",opt.removeRolesOnAdd), + new api.ODOptionData("opendiscord:add-on-join",opt.addOnMemberJoin) ]) } export const loadTicketOptionSuffix = (option:api.ODTicketOption): api.ODOptionSuffix => { - const mode = option.get("openticket:channel-suffix").value - const globalDatabase = opendiscord.databases.get("openticket:global") + const mode = option.get("opendiscord:channel-suffix").value + const globalDatabase = opendiscord.databases.get("opendiscord:global") if (mode == "user-name") return new api.ODOptionUserNameSuffix(option.id.value,option) else if (mode == "random-number") return new api.ODOptionRandomNumberSuffix(option.id.value,option,globalDatabase) else if (mode == "random-hex") return new api.ODOptionRandomHexSuffix(option.id.value,option,globalDatabase) diff --git a/src/data/openticket/panelLoader.ts b/src/data/openticket/panelLoader.ts index 0b55c67..3820ae0 100644 --- a/src/data/openticket/panelLoader.ts +++ b/src/data/openticket/panelLoader.ts @@ -2,7 +2,7 @@ import {opendiscord, api, utilities} from "../../index" import * as discord from "discord.js" export const loadAllPanels = async () => { - const panelConfig = opendiscord.configs.get("openticket:panels") + const panelConfig = opendiscord.configs.get("opendiscord:panels") if (!panelConfig) return panelConfig.data.forEach((panel) => { @@ -23,28 +23,28 @@ export const loadAllPanels = async () => { export const loadPanel = (panel:api.ODJsonConfig_DefaultPanelType) => { return new api.ODPanel(panel.id,[ - new api.ODPanelData("openticket:name",panel.name), - new api.ODPanelData("openticket:options",panel.options), - new api.ODPanelData("openticket:dropdown",panel.dropdown), + new api.ODPanelData("opendiscord:name",panel.name), + new api.ODPanelData("opendiscord:options",panel.options), + new api.ODPanelData("opendiscord:dropdown",panel.dropdown), - new api.ODPanelData("openticket:text",panel.text), - new api.ODPanelData("openticket:embed",panel.embed), + new api.ODPanelData("opendiscord:text",panel.text), + new api.ODPanelData("opendiscord:embed",panel.embed), - new api.ODPanelData("openticket:dropdown-placeholder",panel.settings.dropdownPlaceholder), - new api.ODPanelData("openticket:enable-max-tickets-warning-text",panel.settings.enableMaxTicketsWarningInText), - new api.ODPanelData("openticket:enable-max-tickets-warning-embed",panel.settings.enableMaxTicketsWarningInEmbed), - new api.ODPanelData("openticket:describe-options-layout",panel.settings.describeOptionsLayout), - new api.ODPanelData("openticket:describe-options-custom-title",panel.settings.describeOptionsCustomTitle), - new api.ODPanelData("openticket:describe-options-in-text",panel.settings.describeOptionsInText), - new api.ODPanelData("openticket:describe-options-in-embed-fields",panel.settings.describeOptionsInEmbedFields), - new api.ODPanelData("openticket:describe-options-in-embed-description",panel.settings.describeOptionsInEmbedDescription), + new api.ODPanelData("opendiscord:dropdown-placeholder",panel.settings.dropdownPlaceholder), + new api.ODPanelData("opendiscord:enable-max-tickets-warning-text",panel.settings.enableMaxTicketsWarningInText), + new api.ODPanelData("opendiscord:enable-max-tickets-warning-embed",panel.settings.enableMaxTicketsWarningInEmbed), + new api.ODPanelData("opendiscord:describe-options-layout",panel.settings.describeOptionsLayout), + new api.ODPanelData("opendiscord:describe-options-custom-title",panel.settings.describeOptionsCustomTitle), + new api.ODPanelData("opendiscord:describe-options-in-text",panel.settings.describeOptionsInText), + new api.ODPanelData("opendiscord:describe-options-in-embed-fields",panel.settings.describeOptionsInEmbedFields), + new api.ODPanelData("opendiscord:describe-options-in-embed-description",panel.settings.describeOptionsInEmbedDescription), ]) } export function describePanelOptions(mode:"fields",panel:api.ODPanel): {name:string,value:string}[] export function describePanelOptions(mode:"text",panel:api.ODPanel): string export function describePanelOptions(mode:"fields"|"text", panel:api.ODPanel): {name:string,value:string}[]|string { - const layout = panel.get("openticket:describe-options-layout").value - const dropdownMode = panel.get("openticket:dropdown").value + const layout = panel.get("opendiscord:describe-options-layout").value + const dropdownMode = panel.get("opendiscord:dropdown").value const options: api.ODOption[] = [] let hasTicket = false let hasWebsite = false @@ -52,7 +52,7 @@ export function describePanelOptions(mode:"fields"|"text", panel:api.ODPanel): { let ticketOnly = true let websiteOnly = true let roleOnly = true - panel.get("openticket:options").value.forEach((id) => { + panel.get("opendiscord:options").value.forEach((id) => { const opt = opendiscord.options.get(id) if (opt){ if (opt instanceof api.ODTicketOption){ @@ -76,24 +76,24 @@ export function describePanelOptions(mode:"fields"|"text", panel:api.ODPanel): { //TODO TRANSLATION!!! const autotitle = (hasTicket && ticketOnly) ? "Select your ticket:" : ((hasRole && roleOnly) ? "Select your role:" : "Select your option:") - const title = (panel.get("openticket:describe-options-custom-title").value.length < 1) ? "__"+autotitle+"__\n" : "__"+panel.get("openticket:describe-options-custom-title").value+"__\n" + const title = (panel.get("opendiscord:describe-options-custom-title").value.length < 1) ? "__"+autotitle+"__\n" : "__"+panel.get("opendiscord:describe-options-custom-title").value+"__\n" if (mode == "fields") return options.map((opt) => { if (opt instanceof api.ODTicketOption){ //ticket option - const emoji = opt.exists("openticket:button-emoji") ? opt.get("openticket:button-emoji").value : "" - const name = opt.exists("openticket:name") ? opt.get("openticket:name").value : "``" - let description = opt.exists("openticket:description") ? opt.get("openticket:description").value : "``" + const emoji = opt.exists("opendiscord:button-emoji") ? opt.get("opendiscord:button-emoji").value : "" + const name = opt.exists("opendiscord:name") ? opt.get("opendiscord:name").value : "``" + let description = opt.exists("opendiscord:description") ? opt.get("opendiscord:description").value : "``" if (layout == "normal" || layout == "detailed"){ //TODO TRANSLATION!!! - if (opt.exists("openticket:cooldown-enabled") && opt.get("openticket:cooldown-enabled").value) description = description + "\nCooldown: `"+opt.get("openticket:cooldown-minutes").value+" min`" + if (opt.exists("opendiscord:cooldown-enabled") && opt.get("opendiscord:cooldown-enabled").value) description = description + "\nCooldown: `"+opt.get("opendiscord:cooldown-minutes").value+" min`" //TODO TRANSLATION!!! - if (opt.exists("openticket:limits-enabled") && opt.get("openticket:limits-enabled").value) description = description + "\nMax Tickets: `"+opt.get("openticket:limits-maximum-user").value+"`" + if (opt.exists("opendiscord:limits-enabled") && opt.get("opendiscord:limits-enabled").value) description = description + "\nMax Tickets: `"+opt.get("opendiscord:limits-maximum-user").value+"`" } if (layout == "detailed"){ //TODO TRANSLATION!!! - if (opt.exists("openticket:admins")) description = description + "\nAdmins: "+opt.get("openticket:admins").value.map((admin) => discord.roleMention(admin)).join(", ") + if (opt.exists("opendiscord:admins")) description = description + "\nAdmins: "+opt.get("opendiscord:admins").value.map((admin) => discord.roleMention(admin)).join(", ") } if (description == "") description = "``" @@ -101,22 +101,22 @@ export function describePanelOptions(mode:"fields"|"text", panel:api.ODPanel): { }else if (opt instanceof api.ODWebsiteOption){ //website option - const emoji = opt.exists("openticket:button-emoji") ? opt.get("openticket:button-emoji").value : "" - const name = opt.exists("openticket:name") ? opt.get("openticket:name").value : "``" - let description = opt.exists("openticket:description") ? opt.get("openticket:description").value : "``" + const emoji = opt.exists("opendiscord:button-emoji") ? opt.get("opendiscord:button-emoji").value : "" + const name = opt.exists("opendiscord:name") ? opt.get("opendiscord:name").value : "``" + let description = opt.exists("opendiscord:description") ? opt.get("opendiscord:description").value : "``" if (description == "") description = "``" return {name:utilities.emojiTitle(emoji,name),value:description} }else if (opt instanceof api.ODRoleOption){ //role option - const emoji = opt.exists("openticket:button-emoji") ? opt.get("openticket:button-emoji").value : "" - const name = opt.exists("openticket:name") ? opt.get("openticket:name").value : "``" - let description = opt.exists("openticket:description") ? opt.get("openticket:description").value : "``" + const emoji = opt.exists("opendiscord:button-emoji") ? opt.get("opendiscord:button-emoji").value : "" + const name = opt.exists("opendiscord:name") ? opt.get("opendiscord:name").value : "``" + let description = opt.exists("opendiscord:description") ? opt.get("opendiscord:description").value : "``" if (layout == "normal" || layout == "detailed"){ //TODO TRANSLATION!!! - if (opt.exists("openticket:roles")) description = description + "\nRoles: "+opt.get("openticket:roles").value.map((admin) => discord.roleMention(admin)).join(", ") + if (opt.exists("opendiscord:roles")) description = description + "\nRoles: "+opt.get("opendiscord:roles").value.map((admin) => discord.roleMention(admin)).join(", ") } if (description == "") description = "``" @@ -124,28 +124,28 @@ export function describePanelOptions(mode:"fields"|"text", panel:api.ODPanel): { }else{ //auto-generated plugin option - const emoji = opt.get("openticket:button-emoji") as api.ODOptionData|null - const name = opt.get("openticket:name") as api.ODOptionData|null - const description = opt.get("openticket:description") as api.ODOptionData|null + const emoji = opt.get("opendiscord:button-emoji") as api.ODOptionData|null + const name = opt.get("opendiscord:name") as api.ODOptionData|null + const description = opt.get("opendiscord:description") as api.ODOptionData|null return {name:utilities.emojiTitle((emoji ? emoji.value : ""),(name ? name.value : "`"+opt.id+"`")),value:((description && description.value) ? description.value : "``")} } }) else if (mode == "text") return title+options.map((opt) => { if (opt instanceof api.ODTicketOption){ //ticket option - const emoji = opt.exists("openticket:button-emoji") ? opt.get("openticket:button-emoji").value : "" - const name = opt.exists("openticket:name") ? opt.get("openticket:name").value : "``" - let description = opt.exists("openticket:description") ? opt.get("openticket:description").value : "``" + const emoji = opt.exists("opendiscord:button-emoji") ? opt.get("opendiscord:button-emoji").value : "" + const name = opt.exists("opendiscord:name") ? opt.get("opendiscord:name").value : "``" + let description = opt.exists("opendiscord:description") ? opt.get("opendiscord:description").value : "``" if (layout == "normal" || layout == "detailed"){ //TODO TRANSLATION!!! - if (opt.exists("openticket:cooldown-enabled") && opt.get("openticket:cooldown-enabled").value) description = description + "\nCooldown: `"+opt.get("openticket:cooldown-minutes").value+" min`" + if (opt.exists("opendiscord:cooldown-enabled") && opt.get("opendiscord:cooldown-enabled").value) description = description + "\nCooldown: `"+opt.get("opendiscord:cooldown-minutes").value+" min`" //TODO TRANSLATION!!! - if (opt.exists("openticket:limits-enabled") && opt.get("openticket:limits-enabled").value) description = description + "\nMax Tickets: `"+opt.get("openticket:limits-maximum-user").value+"`" + if (opt.exists("opendiscord:limits-enabled") && opt.get("opendiscord:limits-enabled").value) description = description + "\nMax Tickets: `"+opt.get("opendiscord:limits-maximum-user").value+"`" } if (layout == "detailed"){ //TODO TRANSLATION!!! - if (opt.exists("openticket:admins")) description = description + "\nAdmins: "+opt.get("openticket:admins").value.map((admin) => discord.roleMention(admin)).join(", ") + if (opt.exists("opendiscord:admins")) description = description + "\nAdmins: "+opt.get("opendiscord:admins").value.map((admin) => discord.roleMention(admin)).join(", ") } if (layout == "simple") return "**"+utilities.emojiTitle(emoji,name)+":** "+description @@ -153,22 +153,22 @@ export function describePanelOptions(mode:"fields"|"text", panel:api.ODPanel): { }else if (opt instanceof api.ODWebsiteOption){ //website option - const emoji = opt.exists("openticket:button-emoji") ? opt.get("openticket:button-emoji").value : "" - const name = opt.exists("openticket:name") ? opt.get("openticket:name").value : "``" - let description = opt.exists("openticket:description") ? opt.get("openticket:description").value : "``" + const emoji = opt.exists("opendiscord:button-emoji") ? opt.get("opendiscord:button-emoji").value : "" + const name = opt.exists("opendiscord:name") ? opt.get("opendiscord:name").value : "``" + let description = opt.exists("opendiscord:description") ? opt.get("opendiscord:description").value : "``" if (layout == "simple") return "**"+utilities.emojiTitle(emoji,name)+":** "+description else return "**"+utilities.emojiTitle(emoji,name)+"**\n"+description }else if (opt instanceof api.ODRoleOption){ //role option - const emoji = opt.exists("openticket:button-emoji") ? opt.get("openticket:button-emoji").value : "" - const name = opt.exists("openticket:name") ? opt.get("openticket:name").value : "``" - let description = opt.exists("openticket:description") ? opt.get("openticket:description").value : "``" + const emoji = opt.exists("opendiscord:button-emoji") ? opt.get("opendiscord:button-emoji").value : "" + const name = opt.exists("opendiscord:name") ? opt.get("opendiscord:name").value : "``" + let description = opt.exists("opendiscord:description") ? opt.get("opendiscord:description").value : "``" if (layout == "normal" || layout == "detailed"){ //TODO TRANSLATION!!! - if (opt.exists("openticket:roles")) description = description + "\nRoles: "+opt.get("openticket:roles").value.map((admin) => discord.roleMention(admin)).join(", ") + if (opt.exists("opendiscord:roles")) description = description + "\nRoles: "+opt.get("opendiscord:roles").value.map((admin) => discord.roleMention(admin)).join(", ") } if (layout == "simple") return "**"+utilities.emojiTitle(emoji,name)+":** "+description @@ -176,9 +176,9 @@ export function describePanelOptions(mode:"fields"|"text", panel:api.ODPanel): { }else{ //auto-generated plugin option - const emoji = opt.get("openticket:button-emoji") as api.ODOptionData|null - const name = opt.get("openticket:name") as api.ODOptionData|null - const description = opt.get("openticket:description") as api.ODOptionData|null + const emoji = opt.get("opendiscord:button-emoji") as api.ODOptionData|null + const name = opt.get("opendiscord:name") as api.ODOptionData|null + const description = opt.get("opendiscord:description") as api.ODOptionData|null if (layout == "simple") return "**"+utilities.emojiTitle((emoji ? emoji.value : ""),(name ? name.value : "`"+opt.id+"`"))+":** "+(description ? description.value : "``") else return "**"+utilities.emojiTitle((emoji ? emoji.value : ""),(name ? name.value : "`"+opt.id+"`"))+"**\n"+(description ? description.value : "``") diff --git a/src/data/openticket/questionLoader.ts b/src/data/openticket/questionLoader.ts index 7ee9a42..5a2f0be 100644 --- a/src/data/openticket/questionLoader.ts +++ b/src/data/openticket/questionLoader.ts @@ -1,7 +1,7 @@ import {opendiscord, api, utilities} from "../../index" export const loadAllQuestions = async () => { - const questionConfig = opendiscord.configs.get("openticket:questions") + const questionConfig = opendiscord.configs.get("opendiscord:questions") if (!questionConfig) return questionConfig.data.forEach((question) => { @@ -30,24 +30,24 @@ export const loadAllQuestions = async () => { export const loadShortQuestion = (option:api.ODJsonConfig_DefaultShortQuestionType) => { return new api.ODShortQuestion(option.id,[ - new api.ODQuestionData("openticket:name",option.name), - new api.ODQuestionData("openticket:required",option.required), - new api.ODQuestionData("openticket:placeholder",option.placeholder), + new api.ODQuestionData("opendiscord:name",option.name), + new api.ODQuestionData("opendiscord:required",option.required), + new api.ODQuestionData("opendiscord:placeholder",option.placeholder), - new api.ODQuestionData("openticket:length-enabled",option.length.enabled), - new api.ODQuestionData("openticket:length-min",option.length.min), - new api.ODQuestionData("openticket:length-max",option.length.max), + new api.ODQuestionData("opendiscord:length-enabled",option.length.enabled), + new api.ODQuestionData("opendiscord:length-min",option.length.min), + new api.ODQuestionData("opendiscord:length-max",option.length.max), ]) } export const loadParagraphQuestion = (option:api.ODJsonConfig_DefaultParagraphQuestionType) => { return new api.ODParagraphQuestion(option.id,[ - new api.ODQuestionData("openticket:name",option.name), - new api.ODQuestionData("openticket:required",option.required), - new api.ODQuestionData("openticket:placeholder",option.placeholder), + new api.ODQuestionData("opendiscord:name",option.name), + new api.ODQuestionData("opendiscord:required",option.required), + new api.ODQuestionData("opendiscord:placeholder",option.placeholder), - new api.ODQuestionData("openticket:length-enabled",option.length.enabled), - new api.ODQuestionData("openticket:length-min",option.length.min), - new api.ODQuestionData("openticket:length-max",option.length.max), + new api.ODQuestionData("opendiscord:length-enabled",option.length.enabled), + new api.ODQuestionData("opendiscord:length-min",option.length.min), + new api.ODQuestionData("opendiscord:length-max",option.length.max), ]) } \ No newline at end of file diff --git a/src/data/openticket/roleLoader.ts b/src/data/openticket/roleLoader.ts index 0714fc3..1db2c7a 100644 --- a/src/data/openticket/roleLoader.ts +++ b/src/data/openticket/roleLoader.ts @@ -10,9 +10,9 @@ export const loadAllRoles = async () => { export const loadRole = (option:api.ODRoleOption) => { return new api.ODRole(option.id,[ - new api.ODRoleData("openticket:roles",option.get("openticket:roles").value), - new api.ODRoleData("openticket:mode",option.get("openticket:mode").value), - new api.ODRoleData("openticket:remove-roles-on-add",option.get("openticket:remove-roles-on-add").value), - new api.ODRoleData("openticket:add-on-join",option.get("openticket:add-on-join").value) + new api.ODRoleData("opendiscord:roles",option.get("opendiscord:roles").value), + new api.ODRoleData("opendiscord:mode",option.get("opendiscord:mode").value), + new api.ODRoleData("opendiscord:remove-roles-on-add",option.get("opendiscord:remove-roles-on-add").value), + new api.ODRoleData("opendiscord:add-on-join",option.get("opendiscord:add-on-join").value) ]) } \ No newline at end of file diff --git a/src/data/openticket/ticketLoader.ts b/src/data/openticket/ticketLoader.ts index 9432b13..976322e 100644 --- a/src/data/openticket/ticketLoader.ts +++ b/src/data/openticket/ticketLoader.ts @@ -1,12 +1,12 @@ import {opendiscord, api, utilities} from "../../index" -const optionDatabase = opendiscord.databases.get("openticket:options") +const optionDatabase = opendiscord.databases.get("opendiscord:options") export const loadAllTickets = async () => { - const ticketDatabase = opendiscord.databases.get("openticket:tickets") + const ticketDatabase = opendiscord.databases.get("opendiscord:tickets") if (!ticketDatabase) return - const tickets = await ticketDatabase.getCategory("openticket:ticket") + const tickets = await ticketDatabase.getCategory("opendiscord:ticket") if (!tickets) return for (const ticket of tickets){ try { @@ -19,14 +19,14 @@ export const loadAllTickets = async () => { } export const loadTicket = async (ticket:api.ODTicketJson) => { - const backupOption = (await optionDatabase.exists("openticket:used-option",ticket.option)) ? api.ODTicketOption.fromJson(await optionDatabase.get("openticket:used-option",ticket.option) as api.ODOptionJson) : null + const backupOption = (await optionDatabase.exists("opendiscord:used-option",ticket.option)) ? api.ODTicketOption.fromJson(await optionDatabase.get("opendiscord:used-option",ticket.option) as api.ODOptionJson) : null const configOption = opendiscord.options.get(ticket.option) //check if option is of type "ticket" if (configOption && !(configOption instanceof api.ODTicketOption)) throw new api.ODSystemError("Unable to load ticket because option is not of 'ticket' type!") //manage backup option - if (configOption) await optionDatabase.set("openticket:used-option",configOption.id.value,configOption.toJson(opendiscord.versions.get("openticket:version"))) + if (configOption) await optionDatabase.set("opendiscord:used-option",configOption.id.value,configOption.toJson(opendiscord.versions.get("opendiscord:version"))) else if (backupOption) opendiscord.options.add(backupOption) else throw new api.ODSystemError("Unable to use backup option! Normal option not found in config!") diff --git a/src/data/openticket/transcriptLoader.ts b/src/data/openticket/transcriptLoader.ts index 16c437e..43c0278 100644 --- a/src/data/openticket/transcriptLoader.ts +++ b/src/data/openticket/transcriptLoader.ts @@ -3,7 +3,7 @@ import * as discord from "discord.js" const collector = opendiscord.transcripts.collector const messages = opendiscord.builders.messages -const transcriptConfig = opendiscord.configs.get("openticket:transcripts") +const transcriptConfig = opendiscord.configs.get("opendiscord:transcripts") const textConfig = transcriptConfig.data.textTranscriptStyle const htmlVersion = Buffer.from("b3BlbnRpY2tldFRSQU5TQ1JJUFQxMjM0","base64").toString("utf8") @@ -44,7 +44,7 @@ export const loadAllTranscriptCompilers = async () => { } //TEXT COMPILER - opendiscord.transcripts.add(new api.ODTranscriptCompiler<{contents:string}>("openticket:text-compiler",undefined,async (ticket,channel,user) => { + opendiscord.transcripts.add(new api.ODTranscriptCompiler<{contents:string}>("opendiscord:text-compiler",undefined,async (ticket,channel,user) => { //COMPILE const rawMessages = await collector.collectAllMessages(ticket) if (!rawMessages) return {ticket,channel,user,success:false,errorReason:"Unable to collect messages! Channel not found!",messages:null,data:null} @@ -104,10 +104,10 @@ export const loadAllTranscriptCompilers = async () => { const finalStats: string[] = [] - const creationDate = ticket.get("openticket:opened-on").value - const closeDate = ticket.get("openticket:closed-on").value - const claimDate = ticket.get("openticket:claimed-on").value - const pinDate = ticket.get("openticket:pinned-on").value + const creationDate = ticket.get("opendiscord:opened-on").value + const closeDate = ticket.get("opendiscord:closed-on").value + const claimDate = ticket.get("opendiscord:claimed-on").value + const pinDate = ticket.get("opendiscord:pinned-on").value const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") const closer = await opendiscord.tickets.getTicketUser(ticket,"closer") const claimer = await opendiscord.tickets.getTicketUser(ticket,"claimer") @@ -164,16 +164,16 @@ export const loadAllTranscriptCompilers = async () => { },async (result) => { //READY return { - channelMessage:await messages.getSafe("openticket:transcript-text-ready").build("channel",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("openticket:text-compiler")}), - creatorDmMessage:await messages.getSafe("openticket:transcript-text-ready").build("creator-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("openticket:text-compiler")}), - participantDmMessage:await messages.getSafe("openticket:transcript-text-ready").build("participant-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("openticket:text-compiler")}), - activeAdminDmMessage:await messages.getSafe("openticket:transcript-text-ready").build("active-admin-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("openticket:text-compiler")}), - everyAdminDmMessage:await messages.getSafe("openticket:transcript-text-ready").build("every-admin-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("openticket:text-compiler")}) + channelMessage:await messages.getSafe("opendiscord:transcript-text-ready").build("channel",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("opendiscord:text-compiler")}), + creatorDmMessage:await messages.getSafe("opendiscord:transcript-text-ready").build("creator-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("opendiscord:text-compiler")}), + participantDmMessage:await messages.getSafe("opendiscord:transcript-text-ready").build("participant-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("opendiscord:text-compiler")}), + activeAdminDmMessage:await messages.getSafe("opendiscord:transcript-text-ready").build("active-admin-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("opendiscord:text-compiler")}), + everyAdminDmMessage:await messages.getSafe("opendiscord:transcript-text-ready").build("every-admin-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("opendiscord:text-compiler")}) } })) //HTML COMPILER - opendiscord.transcripts.add(new api.ODTranscriptCompiler<{url:string}>("openticket:html-compiler",async (ticket,channel,user) => { + opendiscord.transcripts.add(new api.ODTranscriptCompiler<{url:string}>("opendiscord:html-compiler",async (ticket,channel,user) => { //INIT const req = new api.ODHTTPGetRequest("https://apis.dj-dj.be/transcripts/status.json",false) const res = await req.run() @@ -191,7 +191,7 @@ export const loadAllTranscriptCompilers = async () => { return {success:false,errorReason:"HTML Transcripts are currently unavailable due to JSON parse error!",pendingMessage:null} } - return {success:true,errorReason:null,pendingMessage:await messages.getSafe("openticket:transcript-html-progress").build("channel",{guild:channel.guild,channel,user,ticket,compiler:opendiscord.transcripts.get("openticket:html-compiler"),remaining:16000})} + return {success:true,errorReason:null,pendingMessage:await messages.getSafe("opendiscord:transcript-html-progress").build("channel",{guild:channel.guild,channel,user,ticket,compiler:opendiscord.transcripts.get("opendiscord:html-compiler"),remaining:16000})} },async (ticket,channel,user) => { //COMPILE const rawMessages = await collector.collectAllMessages(ticket) @@ -355,7 +355,7 @@ export const loadAllTranscriptCompilers = async () => { const htmlFinal: api.ODTranscriptHtmlV2Data = { version:"2", - otversion:opendiscord.versions.get("openticket:version").toString(true), + otversion:opendiscord.versions.get("opendiscord:version").toString(true), bot:{ name:opendiscord.client.client.user.displayName, id:opendiscord.client.client.user.id, @@ -410,7 +410,7 @@ export const loadAllTranscriptCompilers = async () => { claimedpfp:(claimer ? claimer.displayAvatarURL() : "https://transcripts.dj-dj.be/favicon.png"), closedtime:new Date().getTime(), - openedtime:ticket.get("openticket:opened-on").value ?? new Date().getTime(), + openedtime:ticket.get("opendiscord:opened-on").value ?? new Date().getTime(), //role colors are currently unused roleColors:[], @@ -474,11 +474,11 @@ export const loadAllTranscriptCompilers = async () => { //READY await utilities.timer(16000) //wait until transcript is ready return { - channelMessage:await messages.getSafe("openticket:transcript-html-ready").build("channel",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("openticket:html-compiler")}), - creatorDmMessage:await messages.getSafe("openticket:transcript-html-ready").build("creator-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("openticket:html-compiler")}), - participantDmMessage:await messages.getSafe("openticket:transcript-html-ready").build("participant-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("openticket:html-compiler")}), - activeAdminDmMessage:await messages.getSafe("openticket:transcript-html-ready").build("active-admin-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("openticket:html-compiler")}), - everyAdminDmMessage:await messages.getSafe("openticket:transcript-html-ready").build("every-admin-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("openticket:html-compiler")}) + channelMessage:await messages.getSafe("opendiscord:transcript-html-ready").build("channel",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("opendiscord:html-compiler")}), + creatorDmMessage:await messages.getSafe("opendiscord:transcript-html-ready").build("creator-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("opendiscord:html-compiler")}), + participantDmMessage:await messages.getSafe("opendiscord:transcript-html-ready").build("participant-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("opendiscord:html-compiler")}), + activeAdminDmMessage:await messages.getSafe("opendiscord:transcript-html-ready").build("active-admin-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("opendiscord:html-compiler")}), + everyAdminDmMessage:await messages.getSafe("opendiscord:transcript-html-ready").build("every-admin-dm",{guild:result.channel.guild,channel:result.channel,user:result.user,ticket:result.ticket,result,compiler:opendiscord.transcripts.get("opendiscord:html-compiler")}) } })) } diff --git a/src/index.ts b/src/index.ts index b5f5edc..383e087 100644 --- a/src/index.ts +++ b/src/index.ts @@ -111,7 +111,7 @@ const main = async () => { //load debug if (opendiscord.defaults.getDefault("debugLoading")){ - const debugFlag = opendiscord.flags.get("openticket:debug") + const debugFlag = opendiscord.flags.get("opendiscord:debug") opendiscord.debug.visible = (debugFlag) ? debugFlag.value : false } @@ -146,7 +146,7 @@ const main = async () => { } //UTILITY CONFIG - const generalConfig = opendiscord.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("opendiscord:general") if (opendiscord.defaults.getDefault("emojiTitleStyleLoading")){ //set emoji style based on config @@ -193,9 +193,9 @@ const main = async () => { //add available languages to list for config checker const languageList = opendiscord.defaults.getDefault("languageList") const languageIds = opendiscord.languages.getIds().map((id) => { - if (id.value.startsWith("openticket:")){ + if (id.value.startsWith("opendiscord:")){ //is open ticket language => return without prefix - return id.value.split("openticket:")[1] + return id.value.split("opendiscord:")[1] }else return id.value }) languageList.push(...languageIds) @@ -210,7 +210,7 @@ const main = async () => { if (languageId.includes(":")){ opendiscord.languages.setCurrentLanguage(languageId) }else{ - opendiscord.languages.setCurrentLanguage("openticket:"+languageId) + opendiscord.languages.setCurrentLanguage("opendiscord:"+languageId) } //set backup language @@ -253,8 +253,8 @@ const main = async () => { await opendiscord.events.get("afterCheckerTranslationsLoaded").emit([opendiscord.checkers.translation,opendiscord.checkers]) //render config checker - const advancedCheckerFlag = opendiscord.flags.get("openticket:checker") - const disableCheckerFlag = opendiscord.flags.get("openticket:no-checker") + const advancedCheckerFlag = opendiscord.flags.get("opendiscord:checker") + const disableCheckerFlag = opendiscord.flags.get("opendiscord:no-checker") await opendiscord.events.get("onCheckerRender").emit([opendiscord.checkers.renderer,opendiscord.checkers]) if (opendiscord.defaults.getDefault("checkerRendering") && !(disableCheckerFlag ? disableCheckerFlag.value : false)){ @@ -330,9 +330,9 @@ const main = async () => { ) //get token from config or env - const configToken = opendiscord.configs.get("openticket:general").data.token ? opendiscord.configs.get("openticket:general").data.token : "" + const configToken = opendiscord.configs.get("opendiscord:general").data.token ? opendiscord.configs.get("opendiscord:general").data.token : "" const envToken = opendiscord.env.getVariable("TOKEN") ? opendiscord.env.getVariable("TOKEN") : "" - const token = opendiscord.configs.get("openticket:general").data.tokenFromENV ? envToken : configToken + const token = opendiscord.configs.get("opendiscord:general").data.tokenFromENV ? envToken : configToken opendiscord.client.token = token } await opendiscord.events.get("onClientLoad").emit([opendiscord.client]) @@ -347,7 +347,7 @@ const main = async () => { //check if all servers are valid const botServers = client.getGuilds() - const generalConfig = opendiscord.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("opendiscord:general") const serverId = generalConfig.data.serverId ? generalConfig.data.serverId : "" if (!serverId) throw new api.ODSystemError("Server Id Missing!") @@ -417,9 +417,9 @@ const main = async () => { const updatableCmds = cmds.registered.filter((cmd) => cmd.requiresUpdate || opendiscord.defaults.getDefault("forceSlashCommandRegistration")).map((cmd) => cmd.instance) //init progress bars - const removeProgress = opendiscord.progressbars.get("openticket:slash-command-remove") - const createProgress = opendiscord.progressbars.get("openticket:slash-command-create") - const updateProgress = opendiscord.progressbars.get("openticket:slash-command-update") + const removeProgress = opendiscord.progressbars.get("opendiscord:slash-command-remove") + const createProgress = opendiscord.progressbars.get("opendiscord:slash-command-create") + const updateProgress = opendiscord.progressbars.get("opendiscord:slash-command-update") //remove unused cmds, create new cmds & update existing cmds if (opendiscord.defaults.getDefault("allowSlashCommandRemoval")) await opendiscord.client.slashCommands.removeUnusedCommands(removableCmds,undefined,removeProgress) @@ -732,7 +732,7 @@ const main = async () => { //load stat scopes opendiscord.log("Loading stats...","system") if (opendiscord.defaults.getDefault("statScopesLoading")){ - opendiscord.stats.useDatabase(opendiscord.databases.get("openticket:stats")) + opendiscord.stats.useDatabase(opendiscord.databases.get("opendiscord:stats")) await (await import("./data/framework/statLoader.js")).loadAllStatScopes() } await opendiscord.events.get("onStatScopeLoad").emit([opendiscord.stats])