diff --git a/plugins/example-plugin/index.ts b/plugins/example-plugin/index.ts index c664819..5441b05 100644 --- a/plugins/example-plugin/index.ts +++ b/plugins/example-plugin/index.ts @@ -1,4 +1,4 @@ -import {api, openticket, utilities} from "#opendiscord" +import {api, opendiscord, utilities} from "#opendiscord" import * as discord from "discord.js" ///////////////////////////////////////////// @@ -19,7 +19,7 @@ declare module "#opendiscord-types" { } //Let's register the example config. This way it's available for all plugins & systems. -openticket.events.get("onConfigLoad").listen((configManager) => { +opendiscord.events.get("onConfigLoad").listen((configManager) => { configManager.add(new api.ODJsonConfig("example-plugin:config","config.json","./plugins/example-plugin/")) /*===== What did we do? ===== - "example-plugin:config" Is the ID of this config. You can use this id troughout the bot to access this config file. Even in other plugins. @@ -29,18 +29,18 @@ openticket.events.get("onConfigLoad").listen((configManager) => { //Let's also log it to the console to let us know it worked! const ourConfig = configManager.get("example-plugin:config") - openticket.log("The example config loaded successfully!","plugin",[ + opendiscord.log("The example config loaded successfully!","plugin",[ {key:"var-1",value:ourConfig.data.testVariable1}, {key:"var-2",value:ourConfig.data.testVariable2.toString()}, {key:"var-3",value:ourConfig.data.testVariable3.toString()} ]) }) -openticket.events.get("onTicketCreate").listen((creator) => { +opendiscord.events.get("onTicketCreate").listen((creator) => { //This is logged before the ticket is created (after the button is pressed) - openticket.log("Ticket is getting created...","plugin") + opendiscord.log("Ticket is getting created...","plugin") }) -openticket.events.get("afterTicketCreated").listen((ticket,creator,channel) => { +opendiscord.events.get("afterTicketCreated").listen((ticket,creator,channel) => { //This is logged after the ticket is created - openticket.log("Ticket ready!","plugin") + opendiscord.log("Ticket ready!","plugin") }) \ No newline at end of file diff --git a/src/actions/addTicketUser.ts b/src/actions/addTicketUser.ts index becfd0a..1ed7118 100644 --- a/src/actions/addTicketUser.ts +++ b/src/actions/addTicketUser.ts @@ -1,19 +1,19 @@ /////////////////////////////////////// //TICKET ADD USER SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:add-ticket-user")) - openticket.actions.get("openticket:add-ticket-user").workers.add([ + 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) => { 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 openticket.events.get("onTicketUserAdd").emit([ticket,user,data,channel,reason]) + await opendiscord.events.get("onTicketUserAdd").emit([ticket,user,data,channel,reason]) //update ticket ticket.get("openticket:participants").value.push({type:"user",id:data.id}) @@ -31,47 +31,47 @@ export const registerActions = async () => { ReadMessageHistory:true }) }catch{ - openticket.log("Failed to add channel permission overwrites on add-ticket-user","error") + opendiscord.log("Failed to add channel permission overwrites on add-ticket-user","error") } //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket user adding!","error",[ + opendiscord.log("Unable to edit ticket message on ticket user adding!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value,hidden:true} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } //reply with new message - if (params.sendMessage) await channel.send((await openticket.builders.messages.getSafe("openticket:add-message").build(source,{guild,channel,user,ticket,reason,data})).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 - await openticket.events.get("afterTicketUserAdded").emit([ticket,user,data,channel,reason]) + await opendiscord.events.get("afterTicketUserAdded").emit([ticket,user,data,channel,reason]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"add",reason,additionalData:data})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.adding.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"add",reason,additionalData:data})) + 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})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket,data} = params - openticket.log(user.displayName+" added "+data.displayName+" to a ticket!","info",[ + opendiscord.log(user.displayName+" added "+data.displayName+" to a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -81,7 +81,7 @@ export const registerActions = async () => { ]) }) ]) - openticket.actions.get("openticket:add-ticket-user").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:add-ticket-user").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel params.ticket.get("openticket:busy").value = false }) diff --git a/src/actions/claimTicket.ts b/src/actions/claimTicket.ts index ba0e6c7..a70c28e 100644 --- a/src/actions/claimTicket.ts +++ b/src/actions/claimTicket.ts @@ -1,19 +1,19 @@ /////////////////////////////////////// //TICKET CLAIMING SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:claim-ticket")) - openticket.actions.get("openticket:claim-ticket").workers.add([ + 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) => { 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 openticket.events.get("onTicketClaim").emit([ticket,user,channel,reason]) + await opendiscord.events.get("onTicketClaim").emit([ticket,user,channel,reason]) //update ticket ticket.get("openticket:claimed").value = true @@ -22,8 +22,8 @@ export const registerActions = async () => { ticket.get("openticket:busy").value = true //update stats - await openticket.stats.get("openticket:global").setStat("openticket:tickets-claimed",1,"increase") - await openticket.stats.get("openticket:user").setStat("openticket:tickets-claimed",user.id,1,"increase") + 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") //update category const rawClaimCategory = ticket.option.get("openticket:channel-categories-claimed").value.find((c) => c.user == user.id) @@ -34,53 +34,53 @@ export const registerActions = async () => { ticket.get("openticket:category-mode").value = "claimed" ticket.get("openticket:category").value = claimCategory }catch(e){ - openticket.log("Unable to move ticket to 'claimed category'!","error",[ + opendiscord.log("Unable to move ticket to 'claimed category'!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"categoryid",value:claimCategory} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket claiming!","error",[ + opendiscord.log("Unable to edit ticket message on ticket claiming!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } //reply with new message - if (params.sendMessage) await channel.send((await openticket.builders.messages.getSafe("openticket:claim-message").build(source,{guild,channel,user,ticket,reason})).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 - await openticket.events.get("afterTicketClaimed").emit([ticket,user,channel,reason]) + await opendiscord.events.get("afterTicketClaimed").emit([ticket,user,channel,reason]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"claim",reason,additionalData:null})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.claiming.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"claim",reason,additionalData:null})) + 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})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params - openticket.log(user.displayName+" claimed a ticket!","info",[ + opendiscord.log(user.displayName+" claimed a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -90,7 +90,7 @@ export const registerActions = async () => { ]) }) ]) - openticket.actions.get("openticket:claim-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:claim-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel params.ticket.get("openticket:busy").value = false }) @@ -98,37 +98,37 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //CLAIM TICKET TICKET MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:claim-ticket-ticket-message",openticket.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:claim-ticket-ticket-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.claim if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -136,86 +136,86 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:claim-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already claimed if (ticket.get("openticket:claimed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.claim"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start claiming ticket if (params.data == "reason"){ //claim with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:claim-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:claim-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //claim without reason await instance.defer("update",false) - await openticket.actions.get("openticket:claim-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) } }) ]) - openticket.verifybars.get("openticket:claim-ticket-ticket-message").failure.add([ + opendiscord.verifybars.get("openticket:claim-ticket-ticket-message").failure.add([ new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //CLAIM TICKET UNCLAIM MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:claim-ticket-unclaim-message",openticket.builders.messages.getSafe("openticket:verifybar-unclaim-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:claim-ticket-unclaim-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.claim if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -223,55 +223,55 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:claim-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already claimed if (ticket.get("openticket:claimed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.claim"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start claiming ticket if (params.data == "reason"){ //claim with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:claim-ticket-reason").build("unclaim-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:claim-ticket-reason").build("unclaim-message",{guild,channel,user,ticket})) }else{ //claim without reason await instance.defer("update",false) - await openticket.actions.get("openticket:claim-ticket").run("unclaim-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:claim-message").build("unclaim-message",{guild,channel,user,ticket,reason:null})) + 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})) } }) ]) - openticket.verifybars.get("openticket:claim-ticket-unclaim-message").failure.add([ + opendiscord.verifybars.get("openticket:claim-ticket-unclaim-message").failure.add([ new api.ODWorker("openticket:back-to-unclaim-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:unclaim-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket: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 97ecbf4..03a5ff2 100644 --- a/src/actions/clearTickets.ts +++ b/src/actions/clearTickets.ts @@ -1,40 +1,40 @@ /////////////////////////////////////// //CLEAR TICKETS SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:clear-tickets")) - openticket.actions.get("openticket:clear-tickets").workers.add([ + 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) => { const {guild,channel,user,filter,list} = params - await openticket.events.get("onTicketsClear").emit([list,user,channel,filter]) + await opendiscord.events.get("onTicketsClear").emit([list,user,channel,filter]) const nameList: string[] = [] for (const ticket of list){ - const ticketChannel = await openticket.tickets.getTicketChannel(ticket) + const ticketChannel = await opendiscord.tickets.getTicketChannel(ticket) if (!ticketChannel) return nameList.push("#"+ticketChannel.name) - await openticket.actions.get("openticket:delete-ticket").run("clear",{guild,channel:ticketChannel,user,ticket,reason:"Cleared Ticket",sendMessage:true,withoutTranscript:false}) + await opendiscord.actions.get("openticket:delete-ticket").run("clear",{guild,channel:ticketChannel,user,ticket,reason:"Cleared Ticket",sendMessage:true,withoutTranscript:false}) } instance.list = nameList - await openticket.events.get("afterTicketsCleared").emit([list,user,channel,filter]) + await opendiscord.events.get("afterTicketsCleared").emit([list,user,channel,filter]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:clear-logs").build(source,{guild,channel,user,filter,list:instance.list ?? []})) + 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 ?? []})) } }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,user,filter,list} = params - openticket.log(user.displayName+" cleared "+list.length+" tickets!","info",[ + opendiscord.log(user.displayName+" cleared "+list.length+" tickets!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"method",value:source}, diff --git a/src/actions/closeTicket.ts b/src/actions/closeTicket.ts index 350869e..b093b63 100644 --- a/src/actions/closeTicket.ts +++ b/src/actions/closeTicket.ts @@ -1,19 +1,19 @@ /////////////////////////////////////// //TICKET CLOSING SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:close-ticket")) - openticket.actions.get("openticket:close-ticket").workers.add([ + 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) => { 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 openticket.events.get("onTicketClose").emit([ticket,user,channel,reason]) + await opendiscord.events.get("onTicketClose").emit([ticket,user,channel,reason]) //update ticket ticket.get("openticket:closed").value = true @@ -24,8 +24,8 @@ export const registerActions = async () => { ticket.get("openticket:busy").value = true //update stats - await openticket.stats.get("openticket:global").setStat("openticket:tickets-closed",1,"increase") - await openticket.stats.get("openticket:user").setStat("openticket:tickets-closed",user.id,1,"increase") + 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") //update category const closeCategory = ticket.option.get("openticket:channel-category-closed").value @@ -35,12 +35,12 @@ export const registerActions = async () => { ticket.get("openticket:category-mode").value = "closed" ticket.get("openticket:category").value = closeCategory }catch(e){ - openticket.log("Unable to move ticket to 'closed category'!","error",[ + opendiscord.log("Unable to move ticket to 'closed category'!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"categoryid",value:closeCategory} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } @@ -51,7 +51,7 @@ export const registerActions = async () => { allow:[], deny:["ViewChannel","SendMessages","ReadMessageHistory"] }] - const globalAdmins = openticket.configs.get("openticket:general").data.globalAdmins + 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 @@ -102,43 +102,43 @@ export const registerActions = async () => { channel.permissionOverwrites.set(permissions) //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket closing!","error",[ + opendiscord.log("Unable to edit ticket message on ticket closing!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } //reply with new message - if (params.sendMessage) await channel.send((await openticket.builders.messages.getSafe("openticket:close-message").build(source,{guild,channel,user,ticket,reason})).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 - await openticket.events.get("afterTicketClosed").emit([ticket,user,channel,reason]) + await opendiscord.events.get("afterTicketClosed").emit([ticket,user,channel,reason]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"close",reason,additionalData:null})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.closing.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"close",reason,additionalData:null})) + 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})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params - openticket.log(user.displayName+" closed a ticket!","info",[ + opendiscord.log(user.displayName+" closed a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -148,7 +148,7 @@ export const registerActions = async () => { ]) }) ]) - openticket.actions.get("openticket:close-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:close-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel params.ticket.get("openticket:busy").value = false }) @@ -156,37 +156,37 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //CLOSE TICKET TICKET MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:close-ticket-ticket-message",openticket.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:close-ticket-ticket-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.close if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -194,86 +194,86 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:close-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already closed if (ticket.get("openticket:closed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start closing ticket if (params.data == "reason"){ //close with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:close-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:close-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //close without reason await instance.defer("update",false) - await openticket.actions.get("openticket:close-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) } }) ]) - openticket.verifybars.get("openticket:close-ticket-ticket-message").failure.add([ + opendiscord.verifybars.get("openticket:close-ticket-ticket-message").failure.add([ new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //CLOSE TICKET REOPEN MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:close-ticket-reopen-message",openticket.builders.messages.getSafe("openticket:verifybar-reopen-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:close-ticket-reopen-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.close if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -281,55 +281,55 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:close-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already closed if (ticket.get("openticket:closed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start closing ticket if (params.data == "reason"){ //close with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:close-ticket-reason").build("reopen-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:close-ticket-reason").build("reopen-message",{guild,channel,user,ticket})) }else{ //close without reason await instance.defer("update",false) - await openticket.actions.get("openticket:close-ticket").run("reopen-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:close-message").build("reopen-message",{guild,channel,user,ticket,reason:null})) + 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})) } }) ]) - openticket.verifybars.get("openticket:close-ticket-reopen-message").failure.add([ + opendiscord.verifybars.get("openticket:close-ticket-reopen-message").failure.add([ new api.ODWorker("openticket:back-to-reopen-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:reopen-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket: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 7174a9d..0815fd3 100644 --- a/src/actions/createTicket.ts +++ b/src/actions/createTicket.ts @@ -1,26 +1,26 @@ /////////////////////////////////////// //TICKET CREATION SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:create-ticket")) - openticket.actions.get("openticket:create-ticket").workers.add([ + 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) => { const {guild,user,answers,option} = params - await openticket.events.get("onTicketCreate").emit([user]) - await openticket.events.get("onTicketChannelCreation").emit([option,user]) + 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 channelSuffix = openticket.options.suffix.getSuffixFromOption(option,user) + const channelSuffix = opendiscord.options.suffix.getSuffixFromOption(option,user) const channelName = channelPrefix+channelSuffix //handle category @@ -28,10 +28,10 @@ export const registerActions = async () => { let categoryMode: "backup"|"normal"|null = null if (channelCategory != ""){ //category enabled - const normalCategory = await openticket.client.fetchGuildCategoryChannel(guild,channelCategory) + const normalCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelCategory) if (!normalCategory){ //default category was not found - openticket.log("Ticket Creation Error: Unable to find category! #1","error",[ + opendiscord.log("Ticket Creation Error: Unable to find category! #1","error",[ {key:"categoryid",value:channelCategory}, {key:"backup",value:"false"} ]) @@ -39,10 +39,10 @@ export const registerActions = async () => { //default category was found if (normalCategory.children.cache.size >= 50 && channelBackupCategory != ""){ //use backup category - const backupCategory = await openticket.client.fetchGuildCategoryChannel(guild,channelBackupCategory) + const backupCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelBackupCategory) if (!backupCategory){ //default category was not found - openticket.log("Ticket Creation Error: Unable to find category! #2","error",[ + opendiscord.log("Ticket Creation Error: Unable to find category! #2","error",[ {key:"categoryid",value:channelBackupCategory}, {key:"backup",value:"true"} ]) @@ -65,7 +65,7 @@ export const registerActions = async () => { allow:[], deny:["ViewChannel","SendMessages","ReadMessageHistory"] }] - const globalAdmins = openticket.configs.get("openticket:general").data.globalAdmins + const globalAdmins = opendiscord.configs.get("openticket:general").data.globalAdmins const optionAdmins = option.get("openticket:admins").value const readonlyAdmins = option.get("openticket:admins-readonly").value @@ -114,7 +114,7 @@ export const registerActions = async () => { permissionOverwrites:permissions }) - await openticket.events.get("afterTicketChannelCreated").emit([option,channel,user]) + await opendiscord.events.get("afterTicketChannelCreated").emit([option,channel,user]) //create participants const participants: {type:"role"|"user",id:string}[] = [] @@ -159,43 +159,43 @@ export const registerActions = async () => { ]) //manage stats - await openticket.stats.get("openticket:global").setStat("openticket:tickets-created",1,"increase") - await openticket.stats.get("openticket:user").setStat("openticket:tickets-created",user.id,1,"increase") + 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") //manage bot permissions - await openticket.events.get("onTicketPermissionsCreated").emit([option,openticket.permissions,channel,user]) + await opendiscord.events.get("onTicketPermissionsCreated").emit([option,opendiscord.permissions,channel,user]) await (await import("../data/framework/permissionLoader.js")).addTicketPermissions(ticket) - await openticket.events.get("afterTicketPermissionsCreated").emit([option,openticket.permissions,channel,user]) + await opendiscord.events.get("afterTicketPermissionsCreated").emit([option,opendiscord.permissions,channel,user]) //export channel & ticket instance.channel = channel instance.ticket = ticket - openticket.tickets.add(ticket) + opendiscord.tickets.add(ticket) }), new api.ODWorker("openticket:send-ticket-message",2,async (instance,params,source,cancel) => { const {guild,user,answers,option} = params const {ticket,channel} = instance - if (!ticket || !channel) return openticket.log("Ticket Creation Error: Unable to send ticket message. Previous worker failed!","error") + if (!ticket || !channel) return opendiscord.log("Ticket Creation Error: Unable to send ticket message. Previous worker failed!","error") - await openticket.events.get("onTicketMainMessageCreated").emit([ticket,channel,user]) + await opendiscord.events.get("onTicketMainMessageCreated").emit([ticket,channel,user]) //check if ticket message is enabled if (!option.get("openticket:ticket-message-enabled").value) return try { - const msg = await channel.send((await openticket.builders.messages.getSafe("openticket:ticket-message").build(source,{guild,channel,user,ticket})).message) + const msg = await channel.send((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build(source,{guild,channel,user,ticket})).message) ticket.get("openticket:ticket-message").value = msg.id //manage stats - await openticket.stats.get("openticket:ticket").setStat("openticket:messages-sent",ticket.id.value,1,"increase") + await opendiscord.stats.get("openticket:ticket").setStat("openticket:messages-sent",ticket.id.value,1,"increase") - await openticket.events.get("afterTicketMainMessageCreated").emit([ticket,msg,channel,user]) + 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 openticket.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("openticket:error").build("other",{guild,channel,user,error:"Ticket Message: Creation Error!\n=> Ticket Is Still Created Succesfully",layout:"advanced"})).message) } - await openticket.events.get("afterTicketCreated").emit([ticket,user,channel]) + await opendiscord.events.get("afterTicketCreated").emit([ticket,user,channel]) }), new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { const {guild,user,answers,option} = params @@ -203,20 +203,20 @@ export const registerActions = async () => { //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.creation.logs){ - const logChannel = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-created-logs").build(source,{guild,channel,user,ticket})) + 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})) } //to dm - if (generalConfig.data.system.messages.creation.dm) await openticket.client.sendUserDm(user,await openticket.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("openticket:ticket-created-dm").build(source,{guild,channel,user,ticket})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,user,answers,option} = params const {ticket,channel} = instance - if (!ticket || !channel) return openticket.log("Ticket Creation Error: Unable to create logs. Previous worker failed!","error") + if (!ticket || !channel) return opendiscord.log("Ticket Creation Error: Unable to create logs. Previous worker failed!","error") - openticket.log(user.displayName+" created a ticket!","info",[ + opendiscord.log(user.displayName+" created a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, diff --git a/src/actions/createTicketPermissions.ts b/src/actions/createTicketPermissions.ts index 342cbb4..c5b4c33 100644 --- a/src/actions/createTicketPermissions.ts +++ b/src/actions/createTicketPermissions.ts @@ -1,17 +1,17 @@ /////////////////////////////////////// //TICKET CREATION SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:create-ticket-permissions")) - openticket.actions.get("openticket:create-ticket-permissions").workers.add([ + 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 && openticket.blacklist.exists(params.user.id)){ + if (!params.option.get("openticket:allow-blacklisted-users").value && opendiscord.blacklist.exists(params.user.id)){ instance.valid = false instance.reason = "blacklist" - openticket.log(params.user.displayName+" tried to create a ticket but is blacklisted!","info",[ + opendiscord.log(params.user.displayName+" tried to create a ticket but is blacklisted!","info",[ {key:"user",value:params.user.username}, {key:"userid",value:params.user.id,hidden:true}, {key:"option",value:params.option.id.value} @@ -20,14 +20,14 @@ export const registerActions = async () => { } }), new api.ODWorker("openticket:check-cooldown",3,(instance,params,source,cancel) => { - const cooldown = openticket.cooldowns.get("openticket:option-cooldown_"+params.option.id.value) + const cooldown = opendiscord.cooldowns.get("openticket:option-cooldown_"+params.option.id.value) if (cooldown && cooldown instanceof api.ODTimeoutCooldown && cooldown.use(params.user.id)){ instance.valid = false instance.reason = "cooldown" const remaining = cooldown.remaining(params.user.id) ?? 0 instance.cooldownUntil = new Date(new Date().getTime() + remaining) - openticket.log(params.user.displayName+" tried to create a ticket but is on cooldown!","info",[ + opendiscord.log(params.user.displayName+" tried to create a ticket but is on cooldown!","info",[ {key:"user",value:params.user.username}, {key:"userid",value:params.user.id,hidden:true}, {key:"option",value:params.option.id.value}, @@ -37,18 +37,18 @@ export const registerActions = async () => { } }), new api.ODWorker("openticket:check-global-limits",2,(instance,params,source,cancel) => { - const generalConfig = openticket.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("openticket:general") if (!generalConfig.data.system.limits.enabled) return - const allTickets = openticket.tickets.getAll() + const allTickets = opendiscord.tickets.getAll() const globalTicketCount = allTickets.length - const userTickets = openticket.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("openticket:opened-by") && (ticket.get("openticket:opened-by").value == params.user.id)) const userTicketCount = userTickets.length if (globalTicketCount >= generalConfig.data.system.limits.globalMaximum){ instance.valid = false instance.reason = "global-limit" - openticket.log(params.user.displayName+" tried to create a ticket but reached the limit!","info",[ + opendiscord.log(params.user.displayName+" tried to create a ticket but reached the limit!","info",[ {key:"user",value:params.user.username}, {key:"userid",value:params.user.id,hidden:true}, {key:"option",value:params.option.id.value}, @@ -58,7 +58,7 @@ export const registerActions = async () => { }else if (userTicketCount >= generalConfig.data.system.limits.userMaximum){ instance.valid = false instance.reason = "global-user-limit" - openticket.log(params.user.displayName+" tried to create a ticket, but reached the limit!","info",[ + opendiscord.log(params.user.displayName+" tried to create a ticket, but reached the limit!","info",[ {key:"user",value:params.user.username}, {key:"userid",value:params.user.id,hidden:true}, {key:"option",value:params.option.id.value}, @@ -70,15 +70,15 @@ export const registerActions = async () => { 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 - const allTickets = openticket.tickets.getFiltered((ticket) => ticket.option.id.value == params.option.id.value) + const allTickets = opendiscord.tickets.getFiltered((ticket) => ticket.option.id.value == params.option.id.value) const globalTicketCount = allTickets.length - const userTickets = openticket.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("openticket:opened-by") && (ticket.get("openticket:opened-by").value == params.user.id)) const userTicketCount = userTickets.length if (globalTicketCount >= params.option.get("openticket:limits-maximum-global").value){ instance.valid = false instance.reason = "option-limit" - openticket.log(params.user.displayName+" tried to create a ticket, but reached the limit!","info",[ + opendiscord.log(params.user.displayName+" tried to create a ticket, but reached the limit!","info",[ {key:"user",value:params.user.username}, {key:"userid",value:params.user.id,hidden:true}, {key:"option",value:params.option.id.value}, @@ -88,7 +88,7 @@ export const registerActions = async () => { }else if (userTicketCount >= params.option.get("openticket:limits-maximum-user").value){ instance.valid = false instance.reason = "option-user-limit" - openticket.log(params.user.displayName+" tried to create a ticket, but reached the limit!","info",[ + opendiscord.log(params.user.displayName+" tried to create a ticket, but reached the limit!","info",[ {key:"user",value:params.user.username}, {key:"userid",value:params.user.id,hidden:true}, {key:"option",value:params.option.id.value}, diff --git a/src/actions/createTranscript.ts b/src/actions/createTranscript.ts index 10fab95..90e2d1f 100644 --- a/src/actions/createTranscript.ts +++ b/src/actions/createTranscript.ts @@ -1,23 +1,23 @@ /////////////////////////////////////// //TRANSCRIPT CREATION SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const transcriptConfig = openticket.configs.get("openticket:transcripts") +const transcriptConfig = opendiscord.configs.get("openticket:transcripts") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:create-transcript")) - openticket.actions.get("openticket:create-transcript").workers.add([ + 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) => { const {channel,user,ticket} = params if (channel.type != discord.ChannelType.GuildText) return cancel() if (!transcriptConfig.data.general.enabled) return cancel() - await openticket.events.get("onTranscriptCreate").emit([openticket.transcripts,ticket,channel,user]) + await opendiscord.events.get("onTranscriptCreate").emit([opendiscord.transcripts,ticket,channel,user]) instance.errorReason = null - const participants = await openticket.tickets.getAllTicketParticipants(params.ticket) + const participants = await opendiscord.tickets.getAllTicketParticipants(params.ticket) if (!participants){ instance.pendingMessage = null instance.errorReason = "Unable to fetch ticket channel participants!" @@ -26,8 +26,8 @@ export const registerActions = async () => { instance.participants = participants //select transcript compiler - if (transcriptConfig.data.general.mode == "text") instance.compiler = openticket.transcripts.get("openticket:text-compiler") - else if (transcriptConfig.data.general.mode == "html") instance.compiler = openticket.transcripts.get("openticket:html-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") }), new api.ODWorker("openticket:init-transcript",3,async (instance,params,source,cancel) => { const {channel,user,ticket} = params @@ -35,13 +35,13 @@ export const registerActions = async () => { if (!transcriptConfig.data.general.enabled) return cancel() //run transcript compiler init() - await openticket.events.get("onTranscriptInit").emit([openticket.transcripts,ticket,channel,user]) + await opendiscord.events.get("onTranscriptInit").emit([opendiscord.transcripts,ticket,channel,user]) if (instance.compiler.init){ try{ 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 = openticket.posts.get("openticket:transcripts") + const post = opendiscord.posts.get("openticket:transcripts") if (post){ instance.pendingMessage = await post.send(result.pendingMessage) } @@ -57,7 +57,7 @@ export const registerActions = async () => { throw new api.ODSystemError("ODAction(ot:create-transcript) => Failed transcript compiler init()! (see error above)") } } - await openticket.events.get("afterTranscriptInitiated").emit([openticket.transcripts,ticket,channel,user]) + await opendiscord.events.get("afterTranscriptInitiated").emit([opendiscord.transcripts,ticket,channel,user]) }), new api.ODWorker("openticket:compile-transcript",2,async (instance,params,source,cancel) => { const {channel,user,ticket} = params @@ -69,7 +69,7 @@ export const registerActions = async () => { } //run transcript compiler compile() - await openticket.events.get("onTranscriptCompile").emit([openticket.transcripts,ticket,channel,user]) + await opendiscord.events.get("onTranscriptCompile").emit([opendiscord.transcripts,ticket,channel,user]) if (instance.compiler.compile){ try{ const result = await instance.compiler.compile(ticket,channel,user) @@ -87,7 +87,7 @@ export const registerActions = async () => { throw new api.ODSystemError("ODAction(ot:create-transcript) => Failed transcript compiler compile()! (see error above)") } } - await openticket.events.get("afterTranscriptCompiled").emit([openticket.transcripts,ticket,channel,user]) + await opendiscord.events.get("afterTranscriptCompiled").emit([opendiscord.transcripts,ticket,channel,user]) }), new api.ODWorker("openticket:ready-transcript",1,async (instance,params,source,cancel) => { if (!instance.result){ @@ -98,7 +98,7 @@ export const registerActions = async () => { //run transcript compiler ready() utilities.runAsync(async () => { - await openticket.events.get("onTranscriptReady").emit([openticket.transcripts,instance.result.ticket,instance.result.channel,instance.result.user]) + await opendiscord.events.get("onTranscriptReady").emit([opendiscord.transcripts,instance.result.ticket,instance.result.channel,instance.result.user]) if (instance.compiler.ready){ try{ const {channelMessage,creatorDmMessage,participantDmMessage,activeAdminDmMessage,everyAdminDmMessage} = await instance.compiler.ready(instance.result) @@ -110,7 +110,7 @@ export const registerActions = async () => { instance.pendingMessage.message.edit(channelMessage.message) }else{ //send ready message to channel - const post = openticket.posts.get("openticket:transcripts") + const post = opendiscord.posts.get("openticket:transcripts") if (post) await post.send(channelMessage) } } @@ -120,16 +120,16 @@ export const registerActions = async () => { for (const p of instance.participants){ if (p.role == "creator" && transcriptConfig.data.general.enableCreatorDM && creatorDmMessage){ //send creator dm message - await openticket.client.sendUserDm(p.user,creatorDmMessage) + await opendiscord.client.sendUserDm(p.user,creatorDmMessage) }else if (p.role == "participant" && transcriptConfig.data.general.enableParticipantDM && participantDmMessage){ //send participant dm message - await openticket.client.sendUserDm(p.user,participantDmMessage) + await opendiscord.client.sendUserDm(p.user,participantDmMessage) }else if (p.role == "admin" && transcriptConfig.data.general.enableActiveAdminDM && instance.result.success && instance.result.messages && instance.result.messages.some((msg) => msg.author.id == p.user.id) && activeAdminDmMessage){ //send active admin dm message - await openticket.client.sendUserDm(p.user,activeAdminDmMessage) + await opendiscord.client.sendUserDm(p.user,activeAdminDmMessage) }else if (p.role == "admin" && transcriptConfig.data.general.enableEveryAdminDM && everyAdminDmMessage){ //send every admin dm message - await openticket.client.sendUserDm(p.user,everyAdminDmMessage) + await opendiscord.client.sendUserDm(p.user,everyAdminDmMessage) } } } @@ -141,17 +141,17 @@ export const registerActions = async () => { throw new api.ODSystemError("ODAction(ot:create-transcript) => Failed transcript compiler ready()! (see error above)") } } - await openticket.events.get("afterTranscriptReady").emit([openticket.transcripts,instance.result.ticket,instance.result.channel,instance.result.user]) + await opendiscord.events.get("afterTranscriptReady").emit([opendiscord.transcripts,instance.result.ticket,instance.result.channel,instance.result.user]) }) //update stats - await openticket.stats.get("openticket:global").setStat("openticket:transcripts-created",1,"increase") - await openticket.stats.get("openticket:user").setStat("openticket:transcripts-created",params.user.id,1,"increase") - await openticket.events.get("afterTranscriptCreated").emit([openticket.transcripts,instance.result.ticket,instance.result.channel,instance.result.user]) + 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.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) => { const {user,channel,ticket} = params - openticket.log(user.displayName+" created a transcript!","info",[ + opendiscord.log(user.displayName+" created a transcript!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, diff --git a/src/actions/deleteTicket.ts b/src/actions/deleteTicket.ts index 8748bf8..72234bd 100644 --- a/src/actions/deleteTicket.ts +++ b/src/actions/deleteTicket.ts @@ -1,55 +1,55 @@ /////////////////////////////////////// //TICKET DELETION SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:delete-ticket")) - openticket.actions.get("openticket:delete-ticket").workers.add([ + 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) => { 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 openticket.events.get("onTicketDelete").emit([ticket,user,channel,reason]) + 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 //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket deletion!","error",[ + opendiscord.log("Unable to edit ticket message on ticket deletion!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } - if (params.sendMessage) await channel.send((await openticket.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("openticket:delete-message").build(source,{guild,channel,user,ticket,reason})).message) //create transcript if (!params.withoutTranscript){ - const transcriptRes = await openticket.actions.get("openticket:create-transcript").run(source,{guild,channel,user,ticket}) + const transcriptRes = await opendiscord.actions.get("openticket: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 openticket.builders.messages.getSafe("openticket:transcript-error").build(source,{guild,channel,user,ticket,compiler,reason:transcriptRes.errorReason ?? null})).message) - .catch((reason) => openticket.log("Unable to send transcript failure to ticket channel!","error",[{key:"id",value:channel.id}])) + await channel.send((await opendiscord.builders.messages.getSafe("openticket: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 - openticket.log("Canceled ticket deletion because of transcript system malfunction!","warning",[ + opendiscord.log("Canceled ticket deletion because of transcript system malfunction!","warning",[ {key:"compiler",value:compiler.id.value}, {key:"reason",value:transcriptRes.errorReason ?? "/"}, ]) @@ -58,11 +58,11 @@ export const registerActions = async () => { } //update stats - await openticket.stats.get("openticket:global").setStat("openticket:tickets-deleted",1,"increase") - await openticket.stats.get("openticket:user").setStat("openticket:tickets-deleted",user.id,1,"increase") + 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") //delete ticket from manager - openticket.tickets.remove(ticket.id) + opendiscord.tickets.remove(ticket.id) //delete permissions from manager await (await import("../data/framework/permissionLoader.js")).removeTicketPermissions(ticket) @@ -73,30 +73,30 @@ export const registerActions = async () => { //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.deleting.logs){ - const logChannel = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"delete",reason,additionalData:null})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.deleting.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"delete",reason,additionalData:null})) + 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})) }), new api.ODWorker("openticket:delete-channel",1,async (instance,params,source,cancel) => { const {guild,channel,user,ticket,reason} = params //delete channel & events - await openticket.events.get("onTicketChannelDeletion").emit([ticket,channel,user]) - await channel.delete("Ticket Deleted").catch((reason) => openticket.log("Unable to delete ticket channel!","error",[{key:"id",value:channel.id}])) - await openticket.events.get("afterTicketChannelDeleted").emit([ticket,user]) + await opendiscord.events.get("onTicketChannelDeletion").emit([ticket,channel,user]) + await channel.delete("Ticket Deleted").catch((reason) => opendiscord.log("Unable to delete ticket channel!","error",[{key:"id",value:channel.id}])) + await opendiscord.events.get("afterTicketChannelDeleted").emit([ticket,user]) //delete permissions from manager await (await import("../data/framework/permissionLoader.js")).removeTicketPermissions(ticket) - await openticket.events.get("afterTicketDeleted").emit([ticket,user,reason]) + await opendiscord.events.get("afterTicketDeleted").emit([ticket,user,reason]) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params - openticket.log(user.displayName+" deleted a ticket!","info",[ + opendiscord.log(user.displayName+" deleted a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -107,7 +107,7 @@ export const registerActions = async () => { ]) }) ]) - openticket.actions.get("openticket:delete-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:delete-ticket").workers.backupWorker = new api.ODWorker("openticket: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 @@ -116,37 +116,37 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //DELETE TICKET TICKET MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:delete-ticket-ticket-message",openticket.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:delete-ticket-ticket-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -154,84 +154,84 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start deleting ticket if (params.data == "reason"){ //delete with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:delete-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket: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 - openticket.actions.get("openticket:delete-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true,withoutTranscript:(params.data == "no-transcript")}) + opendiscord.actions.get("openticket: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 openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) } }) ]) - openticket.verifybars.get("openticket:delete-ticket-ticket-message").failure.add([ + opendiscord.verifybars.get("openticket:delete-ticket-ticket-message").failure.add([ new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //DELETE TICKET CLOSE MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:delete-ticket-close-message",openticket.builders.messages.getSafe("openticket:verifybar-close-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:delete-ticket-close-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -239,88 +239,88 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start deleting ticket if (params.data == "reason"){ //delete with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:delete-ticket-reason").build("close-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket: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 - openticket.actions.get("openticket:delete-ticket").run("close-message",{guild,channel,user,ticket,reason:null,sendMessage:false,withoutTranscript:(params.data == "no-transcript")}) + opendiscord.actions.get("openticket: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 openticket.builders.messages.getSafe("openticket:delete-message").build("close-message",{guild,channel,user,ticket,reason:null})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("close-message",{guild,channel,user,ticket,reason:null})) } }) ]) - openticket.verifybars.get("openticket:delete-ticket-close-message").failure.add([ + opendiscord.verifybars.get("openticket:delete-ticket-close-message").failure.add([ new api.ODWorker("openticket:back-to-close-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:close-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:close-message").build("other",{guild,channel,user,ticket,reason})) }) ]) //DELETE TICKET REOPEN MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:delete-ticket-reopen-message",openticket.builders.messages.getSafe("openticket:verifybar-reopen-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:delete-ticket-reopen-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -328,88 +328,88 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start deleting ticket if (params.data == "reason"){ //delete with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:delete-ticket-reason").build("reopen-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket: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 - openticket.actions.get("openticket:delete-ticket").run("reopen-message",{guild,channel,user,ticket,reason:null,sendMessage:false,withoutTranscript:(params.data == "no-transcript")}) + opendiscord.actions.get("openticket: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 openticket.builders.messages.getSafe("openticket:delete-message").build("reopen-message",{guild,channel,user,ticket,reason:null})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("reopen-message",{guild,channel,user,ticket,reason:null})) } }) ]) - openticket.verifybars.get("openticket:delete-ticket-reopen-message").failure.add([ + opendiscord.verifybars.get("openticket:delete-ticket-reopen-message").failure.add([ new api.ODWorker("openticket:back-to-reopen-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:reopen-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:reopen-message").build("other",{guild,channel,user,ticket,reason})) }) ]) //DELETE TICKET AUTOCLOSE MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:delete-ticket-autoclose-message",openticket.builders.messages.getSafe("openticket:verifybar-autoclose-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:delete-ticket-autoclose-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -417,50 +417,50 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:delete-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start deleting ticket if (params.data == "reason"){ //delete with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:delete-ticket-reason").build("autoclose-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket: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 - openticket.actions.get("openticket:delete-ticket").run("autoclose-message",{guild,channel,user,ticket,reason:null,sendMessage:false,withoutTranscript:(params.data == "no-transcript")}) + opendiscord.actions.get("openticket: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 openticket.builders.messages.getSafe("openticket:delete-message").build("autoclose-message",{guild,channel,user,ticket,reason:null})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("autoclose-message",{guild,channel,user,ticket,reason:null})) } }) ]) - openticket.verifybars.get("openticket:delete-ticket-autoclose-message").failure.add([ + opendiscord.verifybars.get("openticket:delete-ticket-autoclose-message").failure.add([ new api.ODWorker("openticket:back-to-autoclose-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await openticket.builders.messages.getSafe("openticket:autoclose-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket: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 e15eae6..2249e81 100644 --- a/src/actions/handleTranscriptErrors.ts +++ b/src/actions/handleTranscriptErrors.ts @@ -1,43 +1,43 @@ /////////////////////////////////////// //TRANSCRIPT ERROR SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerButtonResponders = async () => { //TRANSCRIPT ERROR RETRY - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:transcript-error-retry",/^od:transcript-error-retry_([^_]+)/)) - openticket.responders.buttons.get("openticket:transcript-error-retry").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -48,33 +48,33 @@ export const registerButtonResponders = async () => { if (originalSource != "slash" && originalSource != "text" && originalSource != "ticket-message" && originalSource != "reopen-message" && originalSource != "close-message" && originalSource != "other") return if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 - openticket.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason:"Transcript Error (Retried)",sendMessage:false,withoutTranscript:false}) + opendiscord.actions.get("openticket: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 openticket.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason:"Transcript Error (Retried)"})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason:"Transcript Error (Retried)"})) }), new api.ODWorker("openticket:logs",-1,async (instance,params,source,cancel) => { const {user,channel} = instance if (channel.isDMBased()) return - openticket.log(user.displayName+" retried deleting a ticket with transcript!","info",[ + opendiscord.log(user.displayName+" retried deleting a ticket with transcript!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -85,37 +85,37 @@ export const registerButtonResponders = async () => { ]) //TRANSCRIPT ERROR CONTINUE - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:transcript-error-continue",/^od:transcript-error-continue_([^_]+)/)) - openticket.responders.buttons.get("openticket:transcript-error-continue").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -126,33 +126,33 @@ export const registerButtonResponders = async () => { if (originalSource != "slash" && originalSource != "text" && originalSource != "ticket-message" && originalSource != "reopen-message" && originalSource != "close-message" && originalSource != "other") return if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 - openticket.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason:"Transcript Error (Continued)",sendMessage:false,withoutTranscript:true}) + opendiscord.actions.get("openticket: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 openticket.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason:"Transcript Error (Continued)"})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason:"Transcript Error (Continued)"})) }), new api.ODWorker("openticket:logs",-1,async (instance,params,source,cancel) => { const {user,channel} = instance if (channel.isDMBased()) return - openticket.log(user.displayName+" continued deleting a ticket without transcript!","info",[ + opendiscord.log(user.displayName+" continued deleting a ticket without transcript!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, diff --git a/src/actions/handleVerifyBar.ts b/src/actions/handleVerifyBar.ts index 4154a4b..c222db7 100644 --- a/src/actions/handleVerifyBar.ts +++ b/src/actions/handleVerifyBar.ts @@ -1,30 +1,30 @@ /////////////////////////////////////// //VERIFYBAR SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" export const registerButtonResponders = async () => { //VERIFYBAR SUCCESS - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:verifybar-success",/^od:verifybar-success_([^_]+)/)) - openticket.responders.buttons.get("openticket:verifybar-success").workers.add( + 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) => { const id = instance.interaction.customId.split("_")[1] const customData = instance.interaction.customId.split("_")[2] as string|undefined - const verifybar = openticket.verifybars.get(id) + const verifybar = opendiscord.verifybars.get(id) if (!verifybar) return if (verifybar.success) await verifybar.success.executeWorkers(instance,"verifybar",{data:customData ?? null,verifybarMessage:instance.message}) }) ) //VERIFYBAR FAILURE - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:verifybar-failure",/^od:verifybar-failure_([^_]+)/)) - openticket.responders.buttons.get("openticket:verifybar-failure").workers.add( + 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) => { const id = instance.interaction.customId.split("_")[1] const customData = instance.interaction.customId.split("_")[2] as string|undefined - const verifybar = openticket.verifybars.get(id) + const verifybar = opendiscord.verifybars.get(id) if (!verifybar) return if (verifybar.failure) await verifybar.failure.executeWorkers(instance,"verifybar",{data:customData ?? null,verifybarMessage:instance.message}) }) diff --git a/src/actions/moveTicket.ts b/src/actions/moveTicket.ts index 840cd26..da4cbcd 100644 --- a/src/actions/moveTicket.ts +++ b/src/actions/moveTicket.ts @@ -1,24 +1,24 @@ /////////////////////////////////////// //TICKET MOVING SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:move-ticket")) - openticket.actions.get("openticket:move-ticket").workers.add([ + 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) => { 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!") - await openticket.events.get("onTicketMove").emit([ticket,user,channel,reason]) + await opendiscord.events.get("onTicketMove").emit([ticket,user,channel,reason]) ticket.option = data //update stats - await openticket.stats.get("openticket:global").setStat("openticket:tickets-moved",1,"increase") - await openticket.stats.get("openticket:user").setStat("openticket:tickets-moved",user.id,1,"increase") + 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") //get new channel properties const channelPrefix = ticket.option.get("openticket:channel-prefix").value @@ -44,10 +44,10 @@ export const registerActions = async () => { categoryMode = "closed" }else if (channelCategory != ""){ //category enabled - const normalCategory = await openticket.client.fetchGuildCategoryChannel(guild,channelCategory) + const normalCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelCategory) if (!normalCategory){ //default category was not found - openticket.log("Ticket Move Error: Unable to find category! #1","error",[ + opendiscord.log("Ticket Move Error: Unable to find category! #1","error",[ {key:"categoryid",value:channelCategory}, {key:"backup",value:"false"} ]) @@ -55,10 +55,10 @@ export const registerActions = async () => { //default category was found if (normalCategory.children.cache.size >= 50 && channelBackupCategory != ""){ //use backup category - const backupCategory = await openticket.client.fetchGuildCategoryChannel(guild,channelBackupCategory) + const backupCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelBackupCategory) if (!backupCategory){ //default category was not found - openticket.log("Ticket Move Error: Unable to find category! #2","error",[ + opendiscord.log("Ticket Move Error: Unable to find category! #2","error",[ {key:"categoryid",value:channelBackupCategory}, {key:"backup",value:"true"} ]) @@ -77,17 +77,17 @@ export const registerActions = async () => { try { //only move category when not the same. if (channel.parentId != category) await utilities.timedAwait(channel.setParent(category,{lockPermissions:false}),2500,(err) => { - openticket.log("Failed to change channel category on ticket move","error") + opendiscord.log("Failed to change channel category on ticket move","error") }) ticket.get("openticket:category-mode").value = categoryMode ticket.get("openticket:category").value = category }catch(e){ - openticket.log("Unable to move ticket to 'moved category'!","error",[ + opendiscord.log("Unable to move ticket to 'moved category'!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"categoryid",value:category ?? "/"} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } //handle permissions @@ -97,7 +97,7 @@ export const registerActions = async () => { allow:[], deny:["ViewChannel","SendMessages","ReadMessageHistory"] }] - const globalAdmins = openticket.configs.get("openticket:general").data.globalAdmins + 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 @@ -140,7 +140,7 @@ export const registerActions = async () => { try{ await channel.permissionOverwrites.set(permissions) }catch{ - openticket.log("Failed to reset channel permissions on ticket move!","error") + opendiscord.log("Failed to reset channel permissions on ticket move!","error") } //handle participants @@ -158,53 +158,53 @@ export const registerActions = async () => { const originalName = channel.name try{ await utilities.timedAwait(channel.setName(channelName),2500,(err) => { - openticket.log("Failed to rename channel on ticket move","error") + opendiscord.log("Failed to rename channel on ticket move","error") }) }catch(err){ - await channel.send((await openticket.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("openticket:error-channel-rename").build("ticket-move",{guild,channel,user,originalName,newName:channelName})).message) } try{ if (channel.type == discord.ChannelType.GuildText) channel.setTopic(channelDescription) }catch{} //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket renaming!","error",[ + opendiscord.log("Unable to edit ticket message on ticket renaming!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } //reply with new message - if (params.sendMessage) await channel.send((await openticket.builders.messages.getSafe("openticket:move-message").build(source,{guild,channel,user,ticket,reason,data})).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 - await openticket.events.get("afterTicketMoved").emit([ticket,user,channel,reason]) + await opendiscord.events.get("afterTicketMoved").emit([ticket,user,channel,reason]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"move",reason,additionalData:data})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.moving.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"move",reason,additionalData:data})) + 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})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params - openticket.log(user.displayName+" moved a ticket!","info",[ + opendiscord.log(user.displayName+" moved a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -214,7 +214,7 @@ export const registerActions = async () => { ]) }) ]) - openticket.actions.get("openticket:move-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:move-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel params.ticket.get("openticket:busy").value = false }) diff --git a/src/actions/pinTicket.ts b/src/actions/pinTicket.ts index 8348215..dafc6fe 100644 --- a/src/actions/pinTicket.ts +++ b/src/actions/pinTicket.ts @@ -1,19 +1,19 @@ /////////////////////////////////////// //TICKET PINNING SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:pin-ticket")) - openticket.actions.get("openticket:pin-ticket").workers.add([ + 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) => { 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 openticket.events.get("onTicketPin").emit([ticket,user,channel,reason]) + await opendiscord.events.get("onTicketPin").emit([ticket,user,channel,reason]) //update ticket ticket.get("openticket:pinned").value = true @@ -22,8 +22,8 @@ export const registerActions = async () => { ticket.get("openticket:busy").value = true //update stats - await openticket.stats.get("openticket:global").setStat("openticket:tickets-pinned",1,"increase") - await openticket.stats.get("openticket:user").setStat("openticket:tickets-pinned",user.id,1,"increase") + 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") //move to top of category if (channel.parent){ @@ -35,50 +35,50 @@ export const registerActions = async () => { const newName = "📌"+channel.name try{ await utilities.timedAwait(channel.setName(newName),2500,(err) => { - openticket.log("Failed to rename channel on ticket pin","error") + opendiscord.log("Failed to rename channel on ticket pin","error") }) }catch(err){ - await channel.send((await openticket.builders.messages.getSafe("openticket:error-channel-rename").build("ticket-pin",{guild,channel,user,originalName,newName})).message) + await channel.send((await opendiscord.builders.messages.getSafe("openticket:error-channel-rename").build("ticket-pin",{guild,channel,user,originalName,newName})).message) } //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket pinning!","error",[ + opendiscord.log("Unable to edit ticket message on ticket pinning!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"message",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } //reply with new message - if (params.sendMessage) await channel.send((await openticket.builders.messages.getSafe("openticket:pin-message").build(source,{guild,channel,user,ticket,reason})).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 - await openticket.events.get("afterTicketPinned").emit([ticket,user,channel,reason]) + await opendiscord.events.get("afterTicketPinned").emit([ticket,user,channel,reason]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"pin",reason,additionalData:null})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.pinning.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"pin",reason,additionalData:null})) + 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})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params - openticket.log(user.displayName+" pinned a ticket!","info",[ + opendiscord.log(user.displayName+" pinned a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -92,37 +92,37 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //PIN TICKET TICKET MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:pin-ticket-ticket-message",openticket.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:pin-ticket-ticket-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.pin if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -130,86 +130,86 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:pin-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already pinned if (ticket.get("openticket:pinned").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.pin"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start pinning ticket if (params.data == "reason"){ //pin with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:pin-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:pin-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //pin without reason await instance.defer("update",false) - await openticket.actions.get("openticket:pin-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) } }) ]) - openticket.verifybars.get("openticket:pin-ticket-ticket-message").failure.add([ + opendiscord.verifybars.get("openticket:pin-ticket-ticket-message").failure.add([ new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //PIN TICKET UNPIN MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:pin-ticket-unpin-message",openticket.builders.messages.getSafe("openticket:verifybar-unpin-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:pin-ticket-unpin-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.pin if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -217,58 +217,58 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:pin-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already pinned if (ticket.get("openticket:pinned").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.pin"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start pinning ticket if (params.data == "reason"){ //pin with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:pin-ticket-reason").build("unpin-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:pin-ticket-reason").build("unpin-message",{guild,channel,user,ticket})) }else{ //pin without reason await instance.defer("update",false) - await openticket.actions.get("openticket:pin-ticket").run("unpin-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:pin-message").build("unpin-message",{guild,channel,user,ticket,reason:null})) + 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})) } }) ]) - openticket.verifybars.get("openticket:pin-ticket-unpin-message").failure.add([ + opendiscord.verifybars.get("openticket:pin-ticket-unpin-message").failure.add([ new api.ODWorker("openticket:back-to-unpin-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:unpin-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:unpin-message").build("other",{guild,channel,user,ticket,reason})) }) ]) - openticket.actions.get("openticket:pin-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:pin-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel params.ticket.get("openticket:busy").value = false }) diff --git a/src/actions/reactionRole.ts b/src/actions/reactionRole.ts index 65148ce..2400c85 100644 --- a/src/actions/reactionRole.ts +++ b/src/actions/reactionRole.ts @@ -1,32 +1,32 @@ /////////////////////////////////////// //REACTION ROLE SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:reaction-role")) - openticket.actions.get("openticket:reaction-role").workers.add([ + 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) => { const {guild,user,option,overwriteMode} = params - const role = openticket.roles.get(option.id) + 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 - await openticket.events.get("onRoleUpdate").emit([user,role]) + await opendiscord.events.get("onRoleUpdate").emit([user,role]) //get guild member - const member = await openticket.client.fetchGuildMember(guild,user.id) + const member = await opendiscord.client.fetchGuildMember(guild,user.id) 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 roles: discord.Role[] = [] for (const id of roleIds){ - const r = await openticket.client.fetchGuildRole(guild,id) + const r = await opendiscord.client.fetchGuildRole(guild,id) if (r) roles.push(r) - else openticket.log("Unable to find role in server!","warning",[ + else opendiscord.log("Unable to find role in server!","warning",[ {key:"roleid",value:id} ]) } @@ -58,9 +58,9 @@ export const registerActions = async () => { const removeRoleIds = role.get("openticket:remove-roles-on-add").value const removeRoles: discord.Role[] = [] for (const id of removeRoleIds){ - const r = await openticket.client.fetchGuildRole(guild,id) + const r = await opendiscord.client.fetchGuildRole(guild,id) if (r) removeRoles.push(r) - else openticket.log("Unable to find role in server!","warning",[ + else opendiscord.log("Unable to find role in server!","warning",[ {key:"roleid",value:id} ]) } @@ -79,11 +79,11 @@ export const registerActions = async () => { //update instance & finish event instance.result = result - await openticket.events.get("afterRolesUpdated").emit([user,role]) + await opendiscord.events.get("afterRolesUpdated").emit([user,role]) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,user,option} = params - openticket.log(user.displayName+" updated his roles!","info",[ + opendiscord.log(user.displayName+" updated his roles!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"method",value:source}, diff --git a/src/actions/removeTicketUser.ts b/src/actions/removeTicketUser.ts index d72f7b7..d7908d1 100644 --- a/src/actions/removeTicketUser.ts +++ b/src/actions/removeTicketUser.ts @@ -1,19 +1,19 @@ /////////////////////////////////////// //TICKET REMOVE USER SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:remove-ticket-user")) - openticket.actions.get("openticket:remove-ticket-user").workers.add([ + 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) => { 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 openticket.events.get("onTicketUserRemove").emit([ticket,user,data,channel,reason]) + 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) @@ -26,46 +26,46 @@ export const registerActions = async () => { try{ await channel.permissionOverwrites.delete(data) }catch{ - openticket.log("Failed to remove channel permission overwrites on remove-ticket-user","error") + opendiscord.log("Failed to remove channel permission overwrites on remove-ticket-user","error") } //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket user removal!","error",[ + opendiscord.log("Unable to edit ticket message on ticket user removal!","error",[ {key:"channel",value:channel.id}, {key:"message",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } //reply with new message - if (params.sendMessage) await channel.send((await openticket.builders.messages.getSafe("openticket:remove-message").build(source,{guild,channel,user,ticket,reason,data})).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 - await openticket.events.get("afterTicketUserRemoved").emit([ticket,user,data,channel,reason]) + await opendiscord.events.get("afterTicketUserRemoved").emit([ticket,user,data,channel,reason]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"remove",reason,additionalData:data})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.removing.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"remove",reason,additionalData:data})) + 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})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket,data} = params - openticket.log(user.displayName+" removed "+data.displayName+" from a ticket!","info",[ + opendiscord.log(user.displayName+" removed "+data.displayName+" from a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -75,7 +75,7 @@ export const registerActions = async () => { ]) }) ]) - openticket.actions.get("openticket:remove-ticket-user").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:remove-ticket-user").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel params.ticket.get("openticket:busy").value = false }) diff --git a/src/actions/renameTicket.ts b/src/actions/renameTicket.ts index ba294b8..331ad32 100644 --- a/src/actions/renameTicket.ts +++ b/src/actions/renameTicket.ts @@ -1,68 +1,68 @@ /////////////////////////////////////// //TICKET RENAMING SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:rename-ticket")) - openticket.actions.get("openticket:rename-ticket").workers.add([ + 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) => { 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!") - await openticket.events.get("onTicketRename").emit([ticket,user,channel,reason]) + await opendiscord.events.get("onTicketRename").emit([ticket,user,channel,reason]) //rename channel (and give error when crashed) const originalName = channel.name try{ await utilities.timedAwait(channel.setName(data),2500,(err) => { - openticket.log("Failed to rename channel on ticket rename","error") + opendiscord.log("Failed to rename channel on ticket rename","error") }) }catch(err){ - await channel.send((await openticket.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("openticket:error-channel-rename").build("ticket-rename",{guild,channel,user,originalName,newName:data})).message) } //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket renaming!","error",[ + opendiscord.log("Unable to edit ticket message on ticket renaming!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } //reply with new message - if (params.sendMessage) await channel.send((await openticket.builders.messages.getSafe("openticket:rename-message").build(source,{guild,channel,user,ticket,reason,data})).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 - await openticket.events.get("afterTicketRenamed").emit([ticket,user,channel,reason]) + await opendiscord.events.get("afterTicketRenamed").emit([ticket,user,channel,reason]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"rename",reason,additionalData:data})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.renaming.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"rename",reason,additionalData:data})) + 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})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params - openticket.log(user.displayName+" renamed a ticket!","info",[ + opendiscord.log(user.displayName+" renamed a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -72,7 +72,7 @@ export const registerActions = async () => { ]) }) ]) - openticket.actions.get("openticket:rename-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:rename-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel params.ticket.get("openticket:busy").value = false }) diff --git a/src/actions/reopenTicket.ts b/src/actions/reopenTicket.ts index 1893b1f..bf7dc70 100644 --- a/src/actions/reopenTicket.ts +++ b/src/actions/reopenTicket.ts @@ -1,19 +1,19 @@ /////////////////////////////////////// //TICKET REOPENING SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:reopen-ticket")) - openticket.actions.get("openticket:reopen-ticket").workers.add([ + 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) => { 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 openticket.events.get("onTicketReopen").emit([ticket,user,channel,reason]) + await opendiscord.events.get("onTicketReopen").emit([ticket,user,channel,reason]) //update ticket ticket.get("openticket:closed").value = false @@ -24,8 +24,8 @@ export const registerActions = async () => { ticket.get("openticket:busy").value = true //update stats - await openticket.stats.get("openticket:global").setStat("openticket:tickets-reopened",1,"increase") - await openticket.stats.get("openticket:user").setStat("openticket:tickets-reopened",user.id,1,"increase") + 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") //update category const channelCategory = ticket.option.get("openticket:channel-category").value @@ -33,10 +33,10 @@ export const registerActions = async () => { if (channelCategory !== ""){ //category enabled try { - const normalCategory = await openticket.client.fetchGuildCategoryChannel(guild,channelCategory) + const normalCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelCategory) if (!normalCategory){ //default category was not found - openticket.log("Ticket Reopening Error: Unable to find category! #1","error",[ + opendiscord.log("Ticket Reopening Error: Unable to find category! #1","error",[ {key:"categoryid",value:channelCategory}, {key:"backup",value:"false"} ]) @@ -44,10 +44,10 @@ export const registerActions = async () => { //default category was found if (normalCategory.children.cache.size >= 49 && channelBackupCategory != ""){ //use backup category - const backupCategory = await openticket.client.fetchGuildCategoryChannel(guild,channelBackupCategory) + const backupCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelBackupCategory) if (!backupCategory){ //default category was not found - openticket.log("Ticket Reopening Error: Unable to find category! #2","error",[ + opendiscord.log("Ticket Reopening Error: Unable to find category! #2","error",[ {key:"categoryid",value:channelBackupCategory}, {key:"backup",value:"true"} ]) @@ -65,11 +65,11 @@ export const registerActions = async () => { } } }catch(e){ - openticket.log("Unable to move ticket to 'reopened category'!","error",[ + opendiscord.log("Unable to move ticket to 'reopened category'!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } }else{ channel.setParent(null,{lockPermissions:false}) @@ -84,7 +84,7 @@ export const registerActions = async () => { allow:[], deny:["ViewChannel","SendMessages","ReadMessageHistory"] }] - const globalAdmins = openticket.configs.get("openticket:general").data.globalAdmins + 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 @@ -129,42 +129,42 @@ export const registerActions = async () => { channel.permissionOverwrites.set(permissions) //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket reopening!","error",[ + opendiscord.log("Unable to edit ticket message on ticket reopening!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } - if (params.sendMessage) await channel.send((await openticket.builders.messages.getSafe("openticket:reopen-message").build(source,{guild,channel,user,ticket,reason})).message) + 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 - await openticket.events.get("afterTicketReopened").emit([ticket,user,channel,reason]) + await opendiscord.events.get("afterTicketReopened").emit([ticket,user,channel,reason]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"reopen",reason,additionalData:null})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.reopening.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"reopen",reason,additionalData:null})) + 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})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params - openticket.log(user.displayName+" reopened a ticket!","info",[ + opendiscord.log(user.displayName+" reopened a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -178,37 +178,37 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //REOPEN TICKET TICKET MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:reopen-ticket-ticket-message",openticket.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:reopen-ticket-ticket-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.reopen if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -216,86 +216,86 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:reopen-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not closed if (!ticket.get("openticket:closed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start reopening ticket if (params.data == "reason"){ //reopen with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:reopen-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:reopen-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //reopen without reason await instance.defer("update",false) - await openticket.actions.get("openticket:reopen-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) } }) ]) - openticket.verifybars.get("openticket:reopen-ticket-ticket-message").failure.add([ + opendiscord.verifybars.get("openticket:reopen-ticket-ticket-message").failure.add([ new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //REOPEN TICKET CLOSE MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:reopen-ticket-close-message",openticket.builders.messages.getSafe("openticket:verifybar-close-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:reopen-ticket-close-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.reopen if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -303,90 +303,90 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:reopen-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not closed if (!ticket.get("openticket:closed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start reopening ticket if (params.data == "reason"){ //reopen with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:reopen-ticket-reason").build("close-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:reopen-ticket-reason").build("close-message",{guild,channel,user,ticket})) }else{ //reopen without reason await instance.defer("update",false) - await openticket.actions.get("openticket:reopen-ticket").run("close-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:reopen-message").build("close-message",{guild,channel,user,ticket,reason:null})) + 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})) } }) ]) - openticket.verifybars.get("openticket:reopen-ticket-close-message").failure.add([ + opendiscord.verifybars.get("openticket:reopen-ticket-close-message").failure.add([ new api.ODWorker("openticket:back-to-close-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:close-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:close-message").build("other",{guild,channel,user,ticket,reason})) }) ]) //REOPEN TICKET AUTOCLOSE MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:reopen-ticket-autoclose-message",openticket.builders.messages.getSafe("openticket:verifybar-autoclose-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:reopen-ticket-autoclose-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.reopen if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -394,55 +394,55 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:reopen-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not closed if (!ticket.get("openticket:closed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start reopening ticket if (params.data == "reason"){ //reopen with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:reopen-ticket-reason").build("autoclose-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:reopen-ticket-reason").build("autoclose-message",{guild,channel,user,ticket})) }else{ //reopen without reason await instance.defer("update",false) - await openticket.actions.get("openticket:reopen-ticket").run("autoclose-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:reopen-message").build("autoclose-message",{guild,channel,user,ticket,reason:null})) + 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})) } }) ]) - openticket.verifybars.get("openticket:reopen-ticket-autoclose-message").failure.add([ + opendiscord.verifybars.get("openticket:reopen-ticket-autoclose-message").failure.add([ new api.ODWorker("openticket:back-to-autoclose-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await openticket.builders.messages.getSafe("openticket:autoclose-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:autoclose-message").build("other",{guild,channel,user,ticket})) }) ]) - openticket.actions.get("openticket:reopen-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:reopen-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel params.ticket.get("openticket:busy").value = false }) diff --git a/src/actions/unclaimTicket.ts b/src/actions/unclaimTicket.ts index 1841453..9186427 100644 --- a/src/actions/unclaimTicket.ts +++ b/src/actions/unclaimTicket.ts @@ -1,19 +1,19 @@ /////////////////////////////////////// //TICKET UNCLAIMING SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:unclaim-ticket")) - openticket.actions.get("openticket:unclaim-ticket").workers.add([ + 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) => { 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 openticket.events.get("onTicketUnclaim").emit([ticket,user,channel,reason]) + await opendiscord.events.get("onTicketUnclaim").emit([ticket,user,channel,reason]) //update ticket ticket.get("openticket:claimed").value = false @@ -27,10 +27,10 @@ export const registerActions = async () => { if (channelCategory !== ""){ //category enabled try { - const normalCategory = await openticket.client.fetchGuildCategoryChannel(guild,channelCategory) + const normalCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelCategory) if (!normalCategory){ //default category was not found - openticket.log("Ticket Unclaiming Error: Unable to find category! #1","error",[ + opendiscord.log("Ticket Unclaiming Error: Unable to find category! #1","error",[ {key:"categoryid",value:channelCategory}, {key:"backup",value:"false"} ]) @@ -38,10 +38,10 @@ export const registerActions = async () => { //default category was found if (normalCategory.children.cache.size >= 49 && channelBackupCategory != ""){ //use backup category - const backupCategory = await openticket.client.fetchGuildCategoryChannel(guild,channelBackupCategory) + const backupCategory = await opendiscord.client.fetchGuildCategoryChannel(guild,channelBackupCategory) if (!backupCategory){ //default category was not found - openticket.log("Ticket Unclaiming Error: Unable to find category! #2","error",[ + opendiscord.log("Ticket Unclaiming Error: Unable to find category! #2","error",[ {key:"categoryid",value:channelBackupCategory}, {key:"backup",value:"true"} ]) @@ -60,11 +60,11 @@ export const registerActions = async () => { } }catch(e){ - openticket.log("Unable to move ticket to 'unclaimed category'!","error",[ + opendiscord.log("Unable to move ticket to 'unclaimed category'!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } }else{ channel.setParent(null,{lockPermissions:false}) @@ -73,43 +73,43 @@ export const registerActions = async () => { } //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket unclaiming!","error",[ + opendiscord.log("Unable to edit ticket message on ticket unclaiming!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } //reply with new message - if (params.sendMessage) await channel.send((await openticket.builders.messages.getSafe("openticket:unclaim-message").build(source,{guild,channel,user,ticket,reason})).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 - await openticket.events.get("afterTicketUnclaimed").emit([ticket,user,channel,reason]) + await opendiscord.events.get("afterTicketUnclaimed").emit([ticket,user,channel,reason]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"unclaim",reason,additionalData:null})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.claiming.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"unclaim",reason,additionalData:null})) + 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})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params - openticket.log(user.displayName+" unclaimed a ticket!","info",[ + opendiscord.log(user.displayName+" unclaimed a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -123,37 +123,37 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //UNCLAIM TICKET TICKET MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:unclaim-ticket-ticket-message",openticket.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:unclaim-ticket-ticket-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.unclaim if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -161,86 +161,86 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:unclaim-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not claimed if (!ticket.get("openticket:claimed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.unclaim"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start unclaiming ticket if (params.data == "reason"){ //unclaim with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:unclaim-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:unclaim-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //unclaim without reason await instance.defer("update",false) - await openticket.actions.get("openticket:unclaim-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) } }) ]) - openticket.verifybars.get("openticket:unclaim-ticket-ticket-message").failure.add([ + opendiscord.verifybars.get("openticket:unclaim-ticket-ticket-message").failure.add([ new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //UNCLAIM TICKET CLAIM MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:unclaim-ticket-claim-message",openticket.builders.messages.getSafe("openticket:verifybar-claim-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:unclaim-ticket-claim-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.unclaim if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -248,58 +248,58 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:unclaim-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not claimed if (!ticket.get("openticket:claimed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.unclaim"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start unclaiming ticket if (params.data == "reason"){ //unclaim with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:unclaim-ticket-reason").build("claim-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:unclaim-ticket-reason").build("claim-message",{guild,channel,user,ticket})) }else{ //unclaim without reason await instance.defer("update",false) - await openticket.actions.get("openticket:unclaim-ticket").run("claim-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:unclaim-message").build("claim-message",{guild,channel,user,ticket,reason:null})) + 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})) } }) ]) - openticket.verifybars.get("openticket:unclaim-ticket-claim-message").failure.add([ + opendiscord.verifybars.get("openticket:unclaim-ticket-claim-message").failure.add([ new api.ODWorker("openticket:back-to-claim-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:claim-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:claim-message").build("other",{guild,channel,user,ticket,reason})) }) ]) - openticket.actions.get("openticket:unclaim-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:unclaim-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel params.ticket.get("openticket:busy").value = false }) diff --git a/src/actions/unpinTicket.ts b/src/actions/unpinTicket.ts index c5baab5..47c3793 100644 --- a/src/actions/unpinTicket.ts +++ b/src/actions/unpinTicket.ts @@ -1,19 +1,19 @@ /////////////////////////////////////// //TICKET UNPINNING SYSTEM /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerActions = async () => { - openticket.actions.add(new api.ODAction("openticket:unpin-ticket")) - openticket.actions.get("openticket:unpin-ticket").workers.add([ + 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) => { 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 openticket.events.get("onTicketUnpin").emit([ticket,user,channel,reason]) + await opendiscord.events.get("onTicketUnpin").emit([ticket,user,channel,reason]) //update ticket ticket.get("openticket:pinned").value = false @@ -27,51 +27,51 @@ export const registerActions = async () => { const newName = originalName.replace("📌",""); try{ await utilities.timedAwait(channel.setName(newName),2500,(err) => { - openticket.log("Failed to rename channel on ticket unpin","error") + opendiscord.log("Failed to rename channel on ticket unpin","error") }) }catch(err){ - await channel.send((await openticket.builders.messages.getSafe("openticket:error-channel-rename").build("ticket-unpin",{guild,channel,user,originalName,newName})).message) + await channel.send((await opendiscord.builders.messages.getSafe("openticket:error-channel-rename").build("ticket-unpin",{guild,channel,user,originalName,newName})).message) } } //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on ticket unpinning!","error",[ + opendiscord.log("Unable to edit ticket message on ticket unpinning!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } //reply with new message - if (params.sendMessage) await channel.send((await openticket.builders.messages.getSafe("openticket:unpin-message").build(source,{guild,channel,user,ticket,reason})).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 - await openticket.events.get("afterTicketUnpinned").emit([ticket,user,channel,reason]) + await opendiscord.events.get("afterTicketUnpinned").emit([ticket,user,channel,reason]) }), new api.ODWorker("openticket: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 = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:ticket-action-logs").build(source,{guild,channel,user,ticket,mode:"unpin",reason,additionalData:null})) + 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})) } //to dm - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - if (creator && generalConfig.data.system.messages.pinning.dm) await openticket.client.sendUserDm(creator,await openticket.builders.messages.getSafe("openticket:ticket-action-dm").build(source,{guild,channel,user,ticket,mode:"unpin",reason,additionalData:null})) + 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})) }), new api.ODWorker("openticket:logs",0,(instance,params,source,cancel) => { const {guild,channel,user,ticket} = params - openticket.log(user.displayName+" unpinned a ticket!","info",[ + opendiscord.log(user.displayName+" unpinned a ticket!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channel",value:"#"+channel.name}, @@ -85,37 +85,37 @@ export const registerActions = async () => { export const registerVerifyBars = async () => { //UNPIN TICKET TICKET MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:unpin-ticket-ticket-message",openticket.builders.messages.getSafe("openticket:verifybar-ticket-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:unpin-ticket-ticket-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.unpin if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -123,86 +123,86 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:unpin-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not pinned if (!ticket.get("openticket:pinned").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.unpin"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start unpining ticket if (params.data == "reason"){ //unpin with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:unpin-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:unpin-ticket-reason").build("ticket-message",{guild,channel,user,ticket})) }else{ //unpin without reason await instance.defer("update",false) - await openticket.actions.get("openticket:unpin-ticket").run("ticket-message",{guild,channel,user,ticket,reason:null,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) } }) ]) - openticket.verifybars.get("openticket:unpin-ticket-ticket-message").failure.add([ + opendiscord.verifybars.get("openticket:unpin-ticket-ticket-message").failure.add([ new api.ODWorker("openticket:back-to-ticket-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) }) ]) //UNPIN TICKET PIN MESSAGE - openticket.verifybars.add(new api.ODVerifyBar("openticket:unpin-ticket-pin-message",openticket.builders.messages.getSafe("openticket:verifybar-pin-message"),!generalConfig.data.system.disableVerifyBars)) - openticket.verifybars.get("openticket:unpin-ticket-pin-message").success.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.unpin if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -210,58 +210,58 @@ export const registerVerifyBars = async () => { new api.ODWorker("openticket:unpin-ticket",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not pinned if (!ticket.get("openticket:pinned").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.unpin"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } //start unpinning ticket if (params.data == "reason"){ //unpin with reason - instance.modal(await openticket.builders.modals.getSafe("openticket:unpin-ticket-reason").build("pin-message",{guild,channel,user,ticket})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:unpin-ticket-reason").build("pin-message",{guild,channel,user,ticket})) }else{ //unpin without reason await instance.defer("update",false) - await openticket.actions.get("openticket:unpin-ticket").run("pin-message",{guild,channel,user,ticket,reason:null,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:unpin-message").build("pin-message",{guild,channel,user,ticket,reason:null})) + 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})) } }) ]) - openticket.verifybars.get("openticket:unpin-ticket-pin-message").failure.add([ + opendiscord.verifybars.get("openticket:unpin-ticket-pin-message").failure.add([ new api.ODWorker("openticket:back-to-pin-message",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance const {verifybarMessage} = params if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:pin-message").build("other",{guild,channel,user,ticket,reason})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket:pin-message").build("other",{guild,channel,user,ticket,reason})) }) ]) - openticket.actions.get("openticket:unpin-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { + opendiscord.actions.get("openticket:unpin-ticket").workers.backupWorker = new api.ODWorker("openticket:cancel-busy",0,(instance,params) => { //set busy to false in case of crash or cancel params.ticket.get("openticket:busy").value = false }) diff --git a/src/builders/buttons.ts b/src/builders/buttons.ts index 78f088e..b4ee648 100644 --- a/src/builders/buttons.ts +++ b/src/builders/buttons.ts @@ -1,12 +1,12 @@ /////////////////////////////////////// //BUTTON BUILDERS /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const buttons = openticket.builders.buttons -const lang = openticket.languages -const generalConfig = openticket.configs.get("openticket:general") +const buttons = opendiscord.builders.buttons +const lang = opendiscord.languages +const generalConfig = opendiscord.configs.get("openticket:general") export const registerAllButtons = async () => { verifybarButtons() @@ -83,7 +83,7 @@ const helpMenuButtons = () => { buttons.get("openticket:help-menu-page").workers.add( new api.ODWorker("openticket:help-menu-page",0,async (instance,params) => { const {mode,page} = params - const totalPages = (await openticket.helpmenu.render(mode)).length + const totalPages = (await opendiscord.helpmenu.render(mode)).length const pageText = (page+1).toString()+"/"+totalPages.toString() instance.setCustomId("od:help-menu-page_"+page.toString()) @@ -127,7 +127,7 @@ const helpMenuButtons = () => { buttons.get("openticket:help-menu-next").workers.add( new api.ODWorker("openticket:help-menu-next",0,async (instance,params) => { const {mode,page} = params - const totalPages = (await openticket.helpmenu.render(mode)).length + const totalPages = (await opendiscord.helpmenu.render(mode)).length instance.setCustomId("od:help-menu-next") instance.setMode("button") diff --git a/src/builders/dropdowns.ts b/src/builders/dropdowns.ts index 15f70fa..76c94d8 100644 --- a/src/builders/dropdowns.ts +++ b/src/builders/dropdowns.ts @@ -1,10 +1,10 @@ /////////////////////////////////////// //DROPDOWN BUILDERS /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const dropdowns = openticket.builders.dropdowns +const dropdowns = opendiscord.builders.dropdowns export const registerAllDropdowns = async () => { panelDropdowns() diff --git a/src/builders/embeds.ts b/src/builders/embeds.ts index f8e9c47..4e9ea38 100644 --- a/src/builders/embeds.ts +++ b/src/builders/embeds.ts @@ -1,13 +1,13 @@ /////////////////////////////////////// //EMBED BUILDERS /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" import nodepath from "path" -const embeds = openticket.builders.embeds -const lang = openticket.languages -const generalConfig = openticket.configs.get("openticket:general") +const embeds = opendiscord.builders.embeds +const lang = opendiscord.languages +const generalConfig = opendiscord.configs.get("openticket:general") export const registerAllEmbeds = async () => { errorEmbeds() @@ -274,7 +274,7 @@ const errorEmbeds = () => { new api.ODWorker("openticket:error-option-unknown",0,async (instance,params,source) => { const {user} = params - const renderedTicketOptions = openticket.options.getAll().map((option) => { + 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+"`" }else return "- `"+option.id.value+"`" @@ -294,7 +294,7 @@ const errorEmbeds = () => { new api.ODWorker("openticket:error-panel-unknown",0,async (instance,params,source) => { const {user} = params - const renderedPanels = openticket.panels.getAll().map((panel) => { + const renderedPanels = opendiscord.panels.getAll().map((panel) => { if (panel.exists("openticket:name")){ return "- **"+panel.get("openticket:name").value+":** `"+panel.id.value+"`" }else return "- `"+panel.id.value+"`" @@ -370,9 +370,9 @@ const helpMenuEmbeds = () => { instance.setColor(generalConfig.data.mainColor) instance.setTitle(utilities.emojiTitle("ℹ️",lang.getTranslation("actions.titles.help"))) instance.setDescription(lang.getTranslation("actions.descriptions.helpExplanation")) - instance.setThumbnail(openticket.client.client.user.displayAvatarURL()) + instance.setThumbnail(opendiscord.client.client.user.displayAvatarURL()) - const data = await openticket.helpmenu.render(mode) + const data = await opendiscord.helpmenu.render(mode) const currentData = data[page] ?? [] instance.setFields(currentData) }) @@ -386,7 +386,7 @@ const statsEmbeds = () => { new api.ODWorker("openticket:stats-global",0,async (instance,params) => { const {guild,channel,user} = params - const scope = openticket.stats.get("openticket:global") + const scope = opendiscord.stats.get("openticket:global") if (!scope) return const data = await scope.render("GLOBAL",guild,channel,user) @@ -394,9 +394,9 @@ const statsEmbeds = () => { instance.setTitle(scope.name) instance.setDescription(data) - if (openticket.permissions.hasPermissions("owner",await openticket.permissions.getPermissions(user,channel,guild))){ + if (opendiscord.permissions.hasPermissions("owner",await opendiscord.permissions.getPermissions(user,channel,guild))){ //show system data when owner or developer - const systemScope = openticket.stats.get("openticket:system") + const systemScope = opendiscord.stats.get("openticket:system") if (!systemScope) return const systemData = await systemScope.render("GLOBAL",guild,channel,user) instance.addFields({name:systemScope.name,value:systemData,inline:false}) @@ -410,8 +410,8 @@ const statsEmbeds = () => { new api.ODWorker("openticket:stats-ticket",0,async (instance,params) => { const {guild,channel,user,scopeData} = params - const scope = openticket.stats.get("openticket:ticket") - const participantsScope = openticket.stats.get("openticket:participants") + const scope = opendiscord.stats.get("openticket:ticket") + const participantsScope = opendiscord.stats.get("openticket: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) @@ -429,7 +429,7 @@ const statsEmbeds = () => { new api.ODWorker("openticket:stats-user",0,async (instance,params) => { const {guild,channel,user,scopeData} = params - const scope = openticket.stats.get("openticket:user") + const scope = opendiscord.stats.get("openticket:user") if (!scope) return const data = await scope.render(scopeData.id,guild,channel,user) @@ -439,8 +439,8 @@ const statsEmbeds = () => { instance.setThumbnail(scopeData.displayAvatarURL()) }), new api.ODWorker("openticket:easter-egg",-1,async (instance,params) => { - if (!openticket.flags.exists("openticket:no-easter")) return - const easterFlag = openticket.flags.get("openticket:no-easter") + if (!opendiscord.flags.exists("openticket:no-easter")) return + const easterFlag = opendiscord.flags.get("openticket:no-easter") if (!easterFlag.value){ //🥚 add easter egg 🥚 const {user} = params @@ -563,7 +563,7 @@ const ticketEmbeds = () => { 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") - const blacklisted = openticket.blacklist.exists(user.id) ? lang.getTranslation("params.uppercase.true") : lang.getTranslation("params.uppercase.false") + const blacklisted = opendiscord.blacklist.exists(user.id) ? lang.getTranslation("params.uppercase.true") : lang.getTranslation("params.uppercase.false") instance.setColor(generalConfig.data.mainColor) instance.setTitle(utilities.emojiTitle("🎫",lang.getTranslation("actions.titles.created"))) @@ -608,7 +608,7 @@ const ticketEmbeds = () => { 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("openticket:claimed").value){ - const claimUser = await openticket.tickets.getTicketUser(ticket,"claimer") + const claimUser = await opendiscord.tickets.getTicketUser(ticket,"claimer") if (!claimUser) return instance.setAuthor(lang.getTranslationWithParams("params.uppercase.claimedBy",[claimUser.displayName]),claimUser.displayAvatarURL()) } @@ -774,7 +774,7 @@ const ticketEmbeds = () => { embeds.get("openticket:ticket-action-dm").workers.add( new api.ODWorker("openticket:ticket-action-dm",0,async (instance,params,source) => { const {user,mode,ticket,reason,additionalData} = params - const channel = await openticket.tickets.getTicketChannel(ticket) + const channel = await opendiscord.tickets.getTicketChannel(ticket) instance.setColor(generalConfig.data.mainColor) instance.setTimestamp(new Date()) @@ -823,7 +823,7 @@ const ticketEmbeds = () => { embeds.get("openticket:ticket-action-logs").workers.add( new api.ODWorker("openticket:ticket-action-logs",0,async (instance,params,source) => { const {user,mode,ticket,reason,additionalData} = params - const channel = await openticket.tickets.getTicketChannel(ticket) + const channel = await opendiscord.tickets.getTicketChannel(ticket) instance.setColor(generalConfig.data.mainColor) instance.setThumbnail(user.displayAvatarURL()) @@ -882,7 +882,7 @@ const blacklistEmbeds = () => { const {user} = params const renderedUsers: string[] = [] - await openticket.blacklist.loopAll((blacklist,id) => {renderedUsers.push(discord.userMention(id.value)+" - "+(blacklist.reason ? blacklist.reason : "/"))}) + await opendiscord.blacklist.loopAll((blacklist,id) => {renderedUsers.push(discord.userMention(id.value)+" - "+(blacklist.reason ? blacklist.reason : "/"))}) instance.setAuthor(user.displayName,user.displayAvatarURL()) instance.setColor(generalConfig.data.mainColor) @@ -900,7 +900,7 @@ const blacklistEmbeds = () => { embeds.get("openticket:blacklist-get").workers.add( new api.ODWorker("openticket:blacklist-get",0,async (instance,params,source) => { const {user,data} = params - const blacklist = openticket.blacklist.get(data.id) + const blacklist = opendiscord.blacklist.get(data.id) instance.setAuthor(user.displayName,user.displayAvatarURL()) instance.setColor(generalConfig.data.mainColor) @@ -985,7 +985,7 @@ const transcriptEmbeds = () => { embeds.get("openticket:transcript-text-ready").workers.add( new api.ODWorker("openticket:transcript-text-ready",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler} = params - const transcriptConfig = openticket.configs.get("openticket:transcripts") + const transcriptConfig = opendiscord.configs.get("openticket:transcripts") instance.setColor(transcriptConfig.data.embedSettings.customColor ? transcriptConfig.data.embedSettings.customColor : generalConfig.data.mainColor) instance.setTitle(utilities.emojiTitle("📄",lang.getTranslation("transcripts.success.ready"))) @@ -1015,7 +1015,7 @@ const transcriptEmbeds = () => { embeds.get("openticket:transcript-html-ready").workers.add( new api.ODWorker("openticket:transcript-html-ready",0,async (instance,params,source) => { const {guild,channel,user,ticket,compiler,result} = params - const transcriptConfig = openticket.configs.get("openticket:transcripts") + const transcriptConfig = opendiscord.configs.get("openticket:transcripts") instance.setColor(transcriptConfig.data.embedSettings.customColor ? transcriptConfig.data.embedSettings.customColor : generalConfig.data.mainColor) instance.setTitle(utilities.emojiTitle("📄",lang.getTranslation("transcripts.success.ready"))) diff --git a/src/builders/files.ts b/src/builders/files.ts index ae00fca..c23daa0 100644 --- a/src/builders/files.ts +++ b/src/builders/files.ts @@ -1,12 +1,12 @@ /////////////////////////////////////// //FILE BUILDERS /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const files = openticket.builders.files -const lang = openticket.languages -const transcriptConfig = openticket.configs.get("openticket:transcripts") +const files = opendiscord.builders.files +const lang = opendiscord.languages +const transcriptConfig = opendiscord.configs.get("openticket:transcripts") export const registerAllFiles = async () => { transcriptFiles() @@ -24,7 +24,7 @@ const transcriptFiles = () => { const customName = transcriptConfig.data.textTranscriptStyle.customFileName const creatorId = ticket.get("openticket:opened-by").value ?? "unknown-creator-id" - const creator = (await openticket.tickets.getTicketUser(ticket,"creator")) + const creator = (await opendiscord.tickets.getTicketUser(ticket,"creator")) if (fileMode == "custom") instance.setName(customName.split(".")[0]+".txt") else if (fileMode == "user-id") instance.setName(creatorId+".txt") diff --git a/src/builders/messages.ts b/src/builders/messages.ts index 8f5507b..0bdb0c5 100644 --- a/src/builders/messages.ts +++ b/src/builders/messages.ts @@ -1,16 +1,16 @@ /////////////////////////////////////// //MESSAGE BUILDERS /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const messages = openticket.builders.messages -const buttons = openticket.builders.buttons -const dropdowns = openticket.builders.dropdowns -const files = openticket.builders.files -const embeds = openticket.builders.embeds -const lang = openticket.languages -const generalConfig = openticket.configs.get("openticket:general") +const messages = opendiscord.builders.messages +const buttons = opendiscord.builders.buttons +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") export const registerAllMessages = async () => { verifyBarMessages() @@ -36,7 +36,7 @@ const verifyBarMessages = () => { instance.setContent("ODError: Not In Guild => `openticket:verifybar-ticket-message`") return } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-ticket-message`") return @@ -110,7 +110,7 @@ const verifyBarMessages = () => { instance.setContent("ODError: Not In Guild => `openticket:verifybar-close-message`") return } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-close-message`") return @@ -146,7 +146,7 @@ const verifyBarMessages = () => { instance.setContent("ODError: Not In Guild => `openticket:verifybar-reopen-message`") return } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-reopen-message`") return @@ -182,7 +182,7 @@ const verifyBarMessages = () => { instance.setContent("ODError: Not In Guild => `openticket:verifybar-claim-message`") return } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-claim-message`") return @@ -212,7 +212,7 @@ const verifyBarMessages = () => { instance.setContent("ODError: Not In Guild => `openticket:verifybar-unclaim-message`") return } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-unclaim-message`") return @@ -242,7 +242,7 @@ const verifyBarMessages = () => { instance.setContent("ODError: Not In Guild => `openticket:verifybar-pin-message`") return } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-pin-message`") return @@ -272,7 +272,7 @@ const verifyBarMessages = () => { instance.setContent("ODError: Not In Guild => `openticket:verifybar-unpin-message`") return } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-unpin-message`") return @@ -302,7 +302,7 @@ const verifyBarMessages = () => { instance.setContent("ODError: Not In Guild => `openticket:verifybar-autoclose-message`") return } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket){ instance.setContent("ODError: Unknown Ticket => `openticket:verifybar-autoclose-message`") return @@ -496,7 +496,7 @@ const helpMenuMessages = () => { messages.get("openticket:help-menu").workers.add( new api.ODWorker("openticket:help-menu",0,async (instance,params,source) => { const {mode,page} = params - const totalPages = (await openticket.helpmenu.render(mode)).length + const totalPages = (await opendiscord.helpmenu.render(mode)).length const embed = await embeds.getSafe("openticket:help-menu").build(source,{mode,page}) instance.addEmbed(embed) @@ -589,7 +589,7 @@ const panelMessages = () => { const {guild,channel,user,panel} = params const options: api.ODOption[] = [] panel.get("openticket:options").value.forEach((id) => { - const opt = openticket.options.get(id) + const opt = opendiscord.options.get(id) if (opt) options.push(opt) }) diff --git a/src/builders/modals.ts b/src/builders/modals.ts index 6412467..fef8aa0 100644 --- a/src/builders/modals.ts +++ b/src/builders/modals.ts @@ -1,11 +1,11 @@ /////////////////////////////////////// //MODAL BUILDERS /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const modals = openticket.builders.modals -const lang = openticket.languages +const modals = opendiscord.builders.modals +const lang = opendiscord.languages export const registerAllModals = async () => { ticketModals() @@ -21,7 +21,7 @@ const ticketModals = () => { instance.setTitle(option.exists("openticket:name") ? option.get("openticket:name").value : option.id.value) const questionIds = option.get("openticket:questions").value questionIds.forEach((id) => { - const question = openticket.questions.get(id) + const question = opendiscord.questions.get(id) if (!question) return if (question instanceof api.ODShortQuestion) instance.addQuestion({ customId:question.id.value, diff --git a/src/commands/add.ts b/src/commands/add.ts index 5186c9e..73cb34b 100644 --- a/src/commands/add.ts +++ b/src/commands/add.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //ADD COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //ADD COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:add",generalConfig.data.prefix,"add")) - openticket.responders.commands.get("openticket:add").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.add if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,17 +46,17 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:add",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -64,19 +64,19 @@ export const registerCommandResponders = async () => { const reason = instance.options.getString("reason",false) //return when user already added to ticket - const participants = await openticket.tickets.getAllTicketParticipants(ticket) + const participants = await opendiscord.tickets.getAllTicketParticipants(ticket) if (!participants || participants.find((p) => p.user.id == data.id)){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.add"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.actions.get("openticket:add-ticket-user").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data}) - await instance.reply(await openticket.builders.messages.getSafe("openticket:add-message").build(source,{guild,channel,user,ticket,reason,data})) + 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})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'add' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'add' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, diff --git a/src/commands/autoclose.ts b/src/commands/autoclose.ts index aa57fc8..3a38a93 100644 --- a/src/commands/autoclose.ts +++ b/src/commands/autoclose.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //AUTOCLOSE COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //AUTOCLOSE COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:autoclose",generalConfig.data.prefix,/^autoclose/)) - openticket.responders.commands.get("openticket:autoclose").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.autoclose if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -47,22 +47,22 @@ export const registerCommandResponders = async () => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return } //return when already closed if (ticket.get("openticket:closed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -73,36 +73,36 @@ export const registerCommandResponders = async () => { 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 openticket.builders.messages.getSafe("openticket:autoclose-disable").build(source,{guild,channel,user,ticket,reason})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:autoclose-enable").build(source,{guild,channel,user,ticket,reason,time})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:autoclose-enable").build(source,{guild,channel,user,ticket,reason,time})) } //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on autoclose "+scope+"!","error",[ + opendiscord.log("Unable to edit ticket message on autoclose "+scope+"!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { const scope = instance.options.getSubCommand() const reason = instance.options.getString("reason",false) - openticket.log(instance.user.displayName+" used the 'autoclose "+scope+"' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'autoclose "+scope+"' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, diff --git a/src/commands/autodelete.ts b/src/commands/autodelete.ts index 6ee1f9d..939a94a 100644 --- a/src/commands/autodelete.ts +++ b/src/commands/autodelete.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //AUTODELETE COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //AUTODELETE COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:autodelete",generalConfig.data.prefix,/^autodelete/)) - openticket.responders.commands.get("openticket:autodelete").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.autodelete if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -47,17 +47,17 @@ export const registerCommandResponders = async () => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -68,36 +68,36 @@ export const registerCommandResponders = async () => { 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 openticket.builders.messages.getSafe("openticket:autodelete-disable").build(source,{guild,channel,user,ticket,reason})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:autodelete-enable").build(source,{guild,channel,user,ticket,reason,time})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:autodelete-enable").build(source,{guild,channel,user,ticket,reason,time})) } //update ticket message - const ticketMessage = await openticket.tickets.getTicketMessage(ticket) + const ticketMessage = await opendiscord.tickets.getTicketMessage(ticket) if (ticketMessage){ try{ - ticketMessage.edit((await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) + ticketMessage.edit((await opendiscord.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})).message) }catch(e){ - openticket.log("Unable to edit ticket message on autodelete "+scope+"!","error",[ + opendiscord.log("Unable to edit ticket message on autodelete "+scope+"!","error",[ {key:"channel",value:"#"+channel.name}, {key:"channelid",value:channel.id,hidden:true}, {key:"messageid",value:ticketMessage.id}, {key:"option",value:ticket.option.id.value} ]) - openticket.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) + opendiscord.debugfile.writeErrorMessage(new api.ODError(e,"uncaughtException")) } } }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { const scope = instance.options.getSubCommand() const reason = instance.options.getString("reason",false) - openticket.log(instance.user.displayName+" used the 'autodelete "+scope+"' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'autodelete "+scope+"' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, diff --git a/src/commands/blacklist.ts b/src/commands/blacklist.ts index d7448d4..5f50105 100644 --- a/src/commands/blacklist.ts +++ b/src/commands/blacklist.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //BLACKLIST COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //BLACKLIST COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:blacklist",generalConfig.data.prefix,/^blacklist/)) - openticket.responders.commands.get("openticket:blacklist").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.blacklist if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -47,25 +47,25 @@ export const registerCommandResponders = async () => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:blacklist-view").build(source,{guild,channel,user})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:blacklist-view").build(source,{guild,channel,user})) }else if (scope == "get"){ const data = instance.options.getUser("user",true) - await instance.reply(await openticket.builders.messages.getSafe("openticket:blacklist-get").build(source,{guild,channel,user,data})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:blacklist-get").build(source,{guild,channel,user,data})) }else if (scope == "add"){ const data = instance.options.getUser("user",true) const reason = instance.options.getString("reason",false) - openticket.blacklist.add(new api.ODBlacklist(data.id,reason),true) - openticket.log(instance.user.displayName+" added "+data.displayName+" to blacklist!","info",[ + opendiscord.blacklist.add(new api.ODBlacklist(data.id,reason),true) + opendiscord.log(instance.user.displayName+" added "+data.displayName+" to blacklist!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channelid",value:channel.id,hidden:true}, @@ -74,17 +74,17 @@ export const registerCommandResponders = async () => { ]) //manage stats - await openticket.stats.get("openticket:global").setStat("openticket:users-blacklisted",1,"increase") - await openticket.stats.get("openticket:user").setStat("openticket:users-blacklisted",user.id,1,"increase") + 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 instance.reply(await openticket.builders.messages.getSafe("openticket:blacklist-add").build(source,{guild,channel,user,data,reason})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:blacklist-add").build(source,{guild,channel,user,data,reason})) }else if (scope == "remove"){ const data = instance.options.getUser("user",true) const reason = instance.options.getString("reason",false) - openticket.blacklist.remove(data.id) - openticket.log(instance.user.displayName+" removed "+data.displayName+" from blacklist!","info",[ + opendiscord.blacklist.remove(data.id) + opendiscord.log(instance.user.displayName+" removed "+data.displayName+" from blacklist!","info",[ {key:"user",value:user.username}, {key:"userid",value:user.id,hidden:true}, {key:"channelid",value:channel.id,hidden:true}, @@ -92,7 +92,7 @@ export const registerCommandResponders = async () => { {key:"reason",value:reason ?? "/"} ]) - await instance.reply(await openticket.builders.messages.getSafe("openticket:blacklist-remove").build(source,{guild,channel,user,data,reason})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:blacklist-remove").build(source,{guild,channel,user,data,reason})) } }), new api.ODWorker("openticket:discord-logs",1,async (instance,params,source,cancel) => { @@ -107,16 +107,16 @@ export const registerCommandResponders = async () => { //to logs if (generalConfig.data.system.logs.enabled && generalConfig.data.system.messages.blacklisting.logs){ - const logChannel = openticket.posts.get("openticket:logs") - if (logChannel) logChannel.send(await openticket.builders.messages.getSafe("openticket:blacklist-logs").build(source,{guild,channel,user,mode:scope,data,reason})) + 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})) } //to dm - if (generalConfig.data.system.messages.blacklisting.dm) await openticket.client.sendUserDm(user,await openticket.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("openticket:blacklist-dm").build(source,{guild,channel,user,mode:scope,data,reason})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { const scope = instance.options.getSubCommand() - openticket.log(instance.user.displayName+" used the 'blacklist "+scope+"' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'blacklist "+scope+"' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, diff --git a/src/commands/claim.ts b/src/commands/claim.ts index c6ad44c..1a4a236 100644 --- a/src/commands/claim.ts +++ b/src/commands/claim.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //CLAIM COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //CLAIM COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:claim",generalConfig.data.prefix,"claim")) - openticket.responders.commands.get("openticket:claim").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.claim if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,22 +46,22 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:claim",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already claimed if (ticket.get("openticket:claimed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.claim"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -70,11 +70,11 @@ export const registerCommandResponders = async () => { //start claiming ticket await instance.defer(false) - await openticket.actions.get("openticket:claim-ticket").run(source,{guild,channel,user:claimUser,ticket,reason,sendMessage:false}) - await instance.reply(await openticket.builders.messages.getSafe("openticket:claim-message").build(source,{guild,channel,user:claimUser,ticket,reason})) + 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})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'claim' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'claim' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, @@ -86,33 +86,33 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //CLAIM TICKET BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:claim-ticket",/^od:claim-ticket/)) - openticket.responders.buttons.get("openticket:claim-ticket").workers.add( + 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) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "unclaim-message") return - if (originalSource == "ticket-message") await openticket.verifybars.get("openticket:claim-ticket-ticket-message").activate(instance) - else await openticket.verifybars.get("openticket:claim-ticket-unclaim-message").activate(instance) + 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) }) ) } export const registerModalResponders = async () => { //CLAIM WITH REASON MODAL RESPONDER - openticket.responders.modals.add(new api.ODModalResponder("openticket:claim-ticket-reason",/^od:claim-ticket-reason_/)) - openticket.responders.modals.get("openticket:claim-ticket-reason").workers.add([ + 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) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } - const ticket = openticket.tickets.get(instance.interaction.customId.split("_")[1]) + const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.actions.get("openticket:claim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) }else if (originalSource == "unclaim-message"){ await instance.defer("update",false) - await openticket.actions.get("openticket:claim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:claim-message").build("other",{guild,channel,user,ticket,reason})) + 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})) }else if (originalSource == "other"){ await instance.defer("update",false) - await openticket.actions.get("openticket:claim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("openticket:claim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) diff --git a/src/commands/clear.ts b/src/commands/clear.ts index 61a0e7f..4c415ed 100644 --- a/src/commands/clear.ts +++ b/src/commands/clear.ts @@ -1,45 +1,45 @@ /////////////////////////////////////// //CLEAR COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //CLEAR COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:clear",generalConfig.data.prefix,"clear")) - openticket.responders.commands.get("openticket:clear").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.clear if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild,{allowChannelUserScope:false,allowChannelRoleScope:false}))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild,{allowChannelUserScope:false,allowChannelRoleScope:false}))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -47,14 +47,14 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:clear",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } const tempFilter = instance.options.getString("filter",false) const filter = (tempFilter) ? tempFilter.toLowerCase() as api.ODTicketClearFilter : "all" const list: string[] = [] - const ticketList = openticket.tickets.getAll().filter((ticket) => { + 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 @@ -66,16 +66,16 @@ export const registerCommandResponders = async () => { else return false }) for (const ticket of ticketList){ - const ticketChannel = await openticket.tickets.getTicketChannel(ticket) + const ticketChannel = await opendiscord.tickets.getTicketChannel(ticket) if (ticketChannel) list.push("#"+ticketChannel.name) } //reply with clear verify await instance.defer(true) - await instance.reply(await openticket.builders.messages.getSafe("openticket:clear-verify-message").build(source,{guild,channel,user,filter,list})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:clear-verify-message").build(source,{guild,channel,user,filter,list})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'clear' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'clear' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, @@ -87,8 +87,8 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //CLEAR CONTINUE BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:clear-continue",/^od:clear-continue_/)) - openticket.responders.buttons.get("openticket:clear-continue").workers.add( + 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) => { const {guild,channel,user} = instance if (!guild || channel.isDMBased()) return @@ -99,7 +99,7 @@ export const registerButtonResponders = async () => { //start ticket clear instance.defer("update",true) const list: string[] = [] - const ticketList = openticket.tickets.getAll().filter((ticket) => { + 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 @@ -111,12 +111,12 @@ export const registerButtonResponders = async () => { else return false }) for (const ticket of ticketList){ - const ticketChannel = await openticket.tickets.getTicketChannel(ticket) + const ticketChannel = await opendiscord.tickets.getTicketChannel(ticket) if (ticketChannel) list.push("#"+ticketChannel.name) } - await openticket.actions.get("openticket:clear-tickets").run(originalSource,{guild,channel,user,filter,list:ticketList}) - await instance.update(await openticket.builders.messages.getSafe("openticket:clear-message").build(originalSource,{guild,channel,user,filter,list})) + 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})) }) ) } \ No newline at end of file diff --git a/src/commands/close.ts b/src/commands/close.ts index fdb107c..14a2cbd 100644 --- a/src/commands/close.ts +++ b/src/commands/close.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //CLOSE COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //CLOSE COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:close",generalConfig.data.prefix,"close")) - openticket.responders.commands.get("openticket:close").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.close if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,22 +46,22 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:close",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already closed if (ticket.get("openticket:closed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.close"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -69,11 +69,11 @@ export const registerCommandResponders = async () => { //start closing ticket await instance.defer(false) - await openticket.actions.get("openticket:close-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.reply(await openticket.builders.messages.getSafe("openticket:close-message").build(source,{guild,channel,user,ticket,reason})) + 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})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'close' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'close' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, @@ -85,33 +85,33 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //CLOSE TICKET BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:close-ticket",/^od:close-ticket_/)) - openticket.responders.buttons.get("openticket:close-ticket").workers.add( + 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) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "reopen-message") return - if (originalSource == "ticket-message") await openticket.verifybars.get("openticket:close-ticket-ticket-message").activate(instance) - else await openticket.verifybars.get("openticket:close-ticket-reopen-message").activate(instance) + 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) }) ) } export const registerModalResponders = async () => { //CLOSE WITH REASON MODAL RESPONDER - openticket.responders.modals.add(new api.ODModalResponder("openticket:close-ticket-reason",/^od:close-ticket-reason_/)) - openticket.responders.modals.get("openticket:close-ticket-reason").workers.add([ + 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) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } - const ticket = openticket.tickets.get(instance.interaction.customId.split("_")[1]) + const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.actions.get("openticket:close-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) }else if (originalSource == "reopen-message"){ await instance.defer("update",false) - await openticket.actions.get("openticket:close-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:close-message").build("other",{guild,channel,user,ticket,reason})) + 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})) }else if (originalSource == "other"){ await instance.defer("update",false) - await openticket.actions.get("openticket:close-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("openticket:close-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) diff --git a/src/commands/delete.ts b/src/commands/delete.ts index e80f677..d98d0a7 100644 --- a/src/commands/delete.ts +++ b/src/commands/delete.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //DELETE COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //DELETE COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:delete",generalConfig.data.prefix,"delete")) - openticket.responders.commands.get("openticket:delete").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.delete if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,17 +46,17 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:delete",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -65,11 +65,11 @@ export const registerCommandResponders = async () => { //start deleting ticket await instance.defer(false) - await instance.reply(await openticket.builders.messages.getSafe("openticket:delete-message").build(source,{guild,channel,user,ticket,reason})) - await openticket.actions.get("openticket:delete-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript}) + 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}) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'delete' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'delete' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, @@ -81,35 +81,35 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //DELETE TICKET BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:delete-ticket",/^od:delete-ticket/)) - openticket.responders.buttons.get("openticket:delete-ticket").workers.add( + 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) => { 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 openticket.verifybars.get("openticket:delete-ticket-ticket-message").activate(instance) - else if (originalSource == "close-message") await openticket.verifybars.get("openticket:delete-ticket-close-message").activate(instance) - else if (originalSource == "reopen-message") await openticket.verifybars.get("openticket:delete-ticket-reopen-message").activate(instance) - else if (originalSource == "autoclose-message") await openticket.verifybars.get("openticket:delete-ticket-autoclose-message").activate(instance) + 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) }) ) } export const registerModalResponders = async () => { //REOPEN WITH REASON MODAL RESPONDER - openticket.responders.modals.add(new api.ODModalResponder("openticket:delete-ticket-reason",/^od:delete-ticket-reason_/)) - openticket.responders.modals.get("openticket:delete-ticket-reason").workers.add([ + 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) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } - const ticket = openticket.tickets.get(instance.interaction.customId.split("_")[1]) + const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 - openticket.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true,withoutTranscript:false}) + opendiscord.actions.get("openticket: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 openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + await instance.update(await opendiscord.builders.messages.getSafe("openticket: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 - openticket.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason})) + 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})) }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 - openticket.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason})) + 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})) }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 - openticket.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false,withoutTranscript:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:delete-message").build("other",{guild,channel,user,ticket,reason})) + 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})) }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 - openticket.actions.get("openticket:delete-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true,withoutTranscript:false}) + opendiscord.actions.get("openticket: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 36b7ec1..a23ab8c 100644 --- a/src/commands/help.ts +++ b/src/commands/help.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //HELP COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //HELP COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:help",generalConfig.data.prefix,"help")) - openticket.responders.commands.get("openticket:help").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.help if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -53,10 +53,10 @@ export const registerCommandResponders = async () => { }else if (!generalConfig.data.slashCommands) mode = "text" else mode = "slash" - await instance.reply(await openticket.builders.messages.getSafe("openticket:help-menu").build(source,{mode,page:0})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:help-menu").build(source,{mode,page:0})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'help' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'help' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, @@ -68,8 +68,8 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //HELP MENU SWITCH BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:help-menu-switch",/^od:help-menu-switch_(slash|text)/)) - openticket.responders.buttons.get("openticket:help-menu-switch").workers.add( + 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) => { const mode = instance.interaction.customId.split("_")[1] as "slash"|"text" const pageButton = instance.getMessageComponent("button",/^od:help-menu-page_([0-9]+)/) @@ -77,35 +77,35 @@ export const registerButtonResponders = async () => { const newMode = (mode == "slash") ? "text" : "slash" - const msg = await openticket.builders.messages.getSafe("openticket:help-menu").build("button",{mode:newMode,page:currentPage}) + const msg = await opendiscord.builders.messages.getSafe("openticket:help-menu").build("button",{mode:newMode,page:currentPage}) await instance.update(msg) }) ) //HELP MENU PREVIOUS BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:help-menu-previous",/^od:help-menu-previous/)) - openticket.responders.buttons.get("openticket:help-menu-previous").workers.add( + 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) => { 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 openticket.builders.messages.getSafe("openticket:help-menu").build("button",{mode:currentMode,page:currentPage-1}) + const msg = await opendiscord.builders.messages.getSafe("openticket:help-menu").build("button",{mode:currentMode,page:currentPage-1}) await instance.update(msg) }) ) //HELP MENU NEXT BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:help-menu-next",/^od:help-menu-next/)) - openticket.responders.buttons.get("openticket:help-menu-next").workers.add( + 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) => { 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 openticket.builders.messages.getSafe("openticket:help-menu").build("button",{mode:currentMode,page:currentPage+1}) + const msg = await opendiscord.builders.messages.getSafe("openticket: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 f3d1b23..9fd61a0 100644 --- a/src/commands/move.ts +++ b/src/commands/move.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //MOVE COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //MOVE COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:move",generalConfig.data.prefix,"move")) - openticket.responders.commands.get("openticket:move").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.move if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,42 +46,42 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:move",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } const id = instance.options.getString("id",true) const reason = instance.options.getString("reason",false) - const option = openticket.options.get(id) + const option = opendiscord.options.get(id) //return if unknown option if (!option || !(option instanceof api.ODTicketOption)){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.titles.unknownOption"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.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("openticket: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 openticket.actions.get("openticket:move-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data:option}) - await instance.reply(await openticket.builders.messages.getSafe("openticket:move-message").build(source,{guild,channel,user,ticket,reason,data:option})) + 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})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'move' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'move' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, diff --git a/src/commands/panel.ts b/src/commands/panel.ts index 0eb103e..5589323 100644 --- a/src/commands/panel.ts +++ b/src/commands/panel.ts @@ -1,45 +1,45 @@ /////////////////////////////////////// //STATS COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //PANEL COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:panel",generalConfig.data.prefix,/^panel/)) - openticket.responders.commands.get("openticket:panel").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.panel //command is disabled if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -48,30 +48,30 @@ export const registerCommandResponders = async () => { const {guild,channel,user} = instance if (!guild || instance.channel.type == discord.ChannelType.GroupDM){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } const id = instance.options.getString("id",true) - const panel = openticket.panels.get(id) + const panel = opendiscord.panels.get(id) if (!panel){ //invalid panel - instance.reply(await openticket.builders.messages.getSafe("openticket:error-panel-unknown").build(source,{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-panel-unknown").build(source,{guild,channel,user})) return cancel() } - await instance.reply(await openticket.builders.messages.getSafe("openticket:panel-ready").build(source,{guild,channel,user,panel})) - const panelMessage = await instance.channel.send((await openticket.builders.messages.getSafe("openticket:panel").build(source,{guild,channel,user,panel})).message) + 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) //add panel to database on auto-update if (instance.options.getBoolean("auto-update",false)){ - const globalDatabase = openticket.databases.get("openticket:global") + const globalDatabase = opendiscord.databases.get("openticket:global") await globalDatabase.set("openticket:panel-update",panelMessage.channel.id+"_"+panelMessage.id,panel.id.value) } }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'panel' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'panel' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, diff --git a/src/commands/pin.ts b/src/commands/pin.ts index a29f5ad..ed1460b 100644 --- a/src/commands/pin.ts +++ b/src/commands/pin.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //PIN COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //PIN COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:pin",generalConfig.data.prefix,"pin")) - openticket.responders.commands.get("openticket:pin").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.pin if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,22 +46,22 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:pin",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when already pinned if (ticket.get("openticket:pinned").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.pin"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -69,11 +69,11 @@ export const registerCommandResponders = async () => { //start pinning ticket await instance.defer(false) - await openticket.actions.get("openticket:pin-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.reply(await openticket.builders.messages.getSafe("openticket:pin-message").build(source,{guild,channel,user,ticket,reason})) + 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})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'pin' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'pin' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, @@ -85,33 +85,33 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //PIN TICKET BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:pin-ticket",/^od:pin-ticket/)) - openticket.responders.buttons.get("openticket:pin-ticket").workers.add( + 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) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "unpin-message") return - if (originalSource == "ticket-message") await openticket.verifybars.get("openticket:pin-ticket-ticket-message").activate(instance) - else await openticket.verifybars.get("openticket:pin-ticket-unpin-message").activate(instance) + 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) }) ) } export const registerModalResponders = async () => { //PIN WITH REASON MODAL RESPONDER - openticket.responders.modals.add(new api.ODModalResponder("openticket:pin-ticket-reason",/^od:pin-ticket-reason_/)) - openticket.responders.modals.get("openticket:pin-ticket-reason").workers.add([ + 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) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } - const ticket = openticket.tickets.get(instance.interaction.customId.split("_")[1]) + const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.actions.get("openticket:pin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) }else if (originalSource == "unpin-message"){ await instance.defer("update",false) - await openticket.actions.get("openticket:pin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:pin-message").build("other",{guild,channel,user,ticket,reason})) + 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})) }else if (originalSource == "other"){ await instance.defer("update",false) - await openticket.actions.get("openticket:pin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("openticket:pin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) diff --git a/src/commands/remove.ts b/src/commands/remove.ts index e38a265..89cccc1 100644 --- a/src/commands/remove.ts +++ b/src/commands/remove.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //REMOVE COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //REMOVE COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:remove",generalConfig.data.prefix,"remove")) - openticket.responders.commands.get("openticket:remove").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.remove if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,17 +46,17 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:remove",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -64,19 +64,19 @@ export const registerCommandResponders = async () => { const reason = instance.options.getString("reason",false) //return when user is not a participant of the ticket (admins & creator can't be removed) - const participants = await openticket.tickets.getAllTicketParticipants(ticket) + const participants = await opendiscord.tickets.getAllTicketParticipants(ticket) if (!participants || !participants.find((p) => p.user.id == data.id && p.role == "participant")){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.remove"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.actions.get("openticket:remove-ticket-user").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data}) - await instance.reply(await openticket.builders.messages.getSafe("openticket:remove-message").build(source,{guild,channel,user,ticket,reason,data})) + 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})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'remove' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'remove' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, diff --git a/src/commands/rename.ts b/src/commands/rename.ts index e5fafb5..39f560a 100644 --- a/src/commands/rename.ts +++ b/src/commands/rename.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //RENAME COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //RENAME COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:rename",generalConfig.data.prefix,"rename")) - openticket.responders.commands.get("openticket:rename").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.rename if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,17 +46,17 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:rename",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when busy if (ticket.get("openticket:busy").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -65,11 +65,11 @@ export const registerCommandResponders = async () => { //start renaming ticket await instance.defer(false) - await openticket.actions.get("openticket:rename-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false,data:name}) - await instance.reply(await openticket.builders.messages.getSafe("openticket:rename-message").build(source,{guild,channel,user,ticket,reason,data:name})) + 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})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'rename' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'rename' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, diff --git a/src/commands/reopen.ts b/src/commands/reopen.ts index 415ba5d..a7d31e5 100644 --- a/src/commands/reopen.ts +++ b/src/commands/reopen.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //REOPEN COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //REOPEN COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:reopen",generalConfig.data.prefix,"reopen")) - openticket.responders.commands.get("openticket:reopen").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.reopen if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,22 +46,22 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:reopen",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not closed if (!ticket.get("openticket:closed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.reopen"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -69,11 +69,11 @@ export const registerCommandResponders = async () => { //start reopening ticket await instance.defer(false) - await openticket.actions.get("openticket:reopen-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.reply(await openticket.builders.messages.getSafe("openticket:reopen-message").build(source,{guild,channel,user,ticket,reason})) + 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})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'reopen' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'reopen' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, @@ -85,34 +85,34 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //REOPEN TICKET BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:reopen-ticket",/^od:reopen-ticket/)) - openticket.responders.buttons.get("openticket:reopen-ticket").workers.add( + 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) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "close-message" && originalSource != "autoclose-message") return - if (originalSource == "ticket-message") await openticket.verifybars.get("openticket:reopen-ticket-ticket-message").activate(instance) - else if (originalSource == "close-message") await openticket.verifybars.get("openticket:reopen-ticket-close-message").activate(instance) - else await openticket.verifybars.get("openticket:reopen-ticket-autoclose-message").activate(instance) + 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) }) ) } export const registerModalResponders = async () => { //REOPEN WITH REASON MODAL RESPONDER - openticket.responders.modals.add(new api.ODModalResponder("openticket:reopen-ticket-reason",/^od:reopen-ticket-reason_/)) - openticket.responders.modals.get("openticket:reopen-ticket-reason").workers.add([ + 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) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } - const ticket = openticket.tickets.get(instance.interaction.customId.split("_")[1]) + const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.actions.get("openticket:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) }else if (originalSource == "close-message"){ await instance.defer("update",false) - await openticket.actions.get("openticket:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:reopen-message").build("other",{guild,channel,user,ticket,reason})) + 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})) }else if (originalSource == "autoclose-message"){ await instance.defer("update",false) - await openticket.actions.get("openticket:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:reopen-message").build("other",{guild,channel,user,ticket,reason})) + 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})) }else if (originalSource == "other"){ await instance.defer("update",false) - await openticket.actions.get("openticket:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("openticket:reopen-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) diff --git a/src/commands/role.ts b/src/commands/role.ts index 88ea4f6..b826b50 100644 --- a/src/commands/role.ts +++ b/src/commands/role.ts @@ -1,41 +1,41 @@ /////////////////////////////////////// //ROLE BUTTON (not command) /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerButtonResponders = async () => { //ROLE OPTION BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:role-option",/^od:role-option_/)) - openticket.responders.buttons.get("openticket:role-option").workers.add( + 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) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } //get option const optionId = instance.interaction.customId.split("_")[2] - const option = openticket.options.get(optionId) + const option = opendiscord.options.get(optionId) if (!option || !(option instanceof api.ODRoleOption)){ //error - instance.reply(await openticket.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("openticket: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 openticket.actions.get("openticket:reaction-role").run("panel-button",{guild,user,option,overwriteMode:null}) + const res = await opendiscord.actions.get("openticket:reaction-role").run("panel-button",{guild,user,option,overwriteMode:null}) if (!res.result || !res.role){ //error - await instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 1c35760..b01811f 100644 --- a/src/commands/stats.ts +++ b/src/commands/stats.ts @@ -1,30 +1,30 @@ /////////////////////////////////////// //STATS COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //STATS COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:stats",generalConfig.data.prefix,/^stats/)) - openticket.responders.commands.get("openticket:stats").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.stats //command is disabled if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket:error-no-permissions").build("button",{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() } //reset subcommand is owner/developer only if (instance.options.getSubCommand() == "reset"){ - if (!openticket.permissions.hasPermissions("owner",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("owner",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:["owner","developer"]})) return cancel() }else return } @@ -32,26 +32,26 @@ export const registerCommandResponders = async () => { //permissions for normal scopes if (permissionMode == "everyone") return else if (permissionMode == "admin"){ - if (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -60,30 +60,30 @@ export const registerCommandResponders = async () => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:stats-global").build(source,{guild,channel,user})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:stats-global").build(source,{guild,channel,user})) }else if (scope == "ticket"){ const id = instance.options.getChannel("ticket",false)?.id ?? channel.id - const ticket = openticket.tickets.get(id) + const ticket = opendiscord.tickets.get(id) - if (ticket) await instance.reply(await openticket.builders.messages.getSafe("openticket:stats-ticket").build(source,{guild,channel,user,scopeData:ticket})) - else await instance.reply(await openticket.builders.messages.getSafe("openticket:stats-ticket-unknown").build(source,{guild,channel,user,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})) }else if (scope == "user"){ const statsUser = instance.options.getUser("user",false) ?? user - await instance.reply(await openticket.builders.messages.getSafe("openticket:stats-user").build(source,{guild,channel,user,scopeData:statsUser})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:stats-user").build(source,{guild,channel,user,scopeData:statsUser})) }else if (scope == "reset"){ const reason = instance.options.getString("reason",false) - openticket.stats.reset() - await instance.reply(await openticket.builders.messages.getSafe("openticket:stats-reset").build(source,{guild,channel,user,reason})) + opendiscord.stats.reset() + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:stats-reset").build(source,{guild,channel,user,reason})) } }), @@ -95,7 +95,7 @@ export const registerCommandResponders = async () => { }else if (scope == "user"){ data = instance.options.getUser("user",false)?.id ?? instance.user.id }else data = "/" - openticket.log(instance.user.displayName+" used the 'stats "+scope+"' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'stats "+scope+"' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, diff --git a/src/commands/ticket.ts b/src/commands/ticket.ts index 5743e74..13e6432 100644 --- a/src/commands/ticket.ts +++ b/src/commands/ticket.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //TICKET COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //TICKET COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:ticket",generalConfig.data.prefix,/^ticket/)) - openticket.responders.commands.get("openticket:ticket").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.ticket if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -47,51 +47,51 @@ export const registerCommandResponders = async () => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } //get option const optionId = instance.options.getString("id",true) - const option = openticket.options.get(optionId) + const option = opendiscord.options.get(optionId) if (!option || !(option instanceof api.ODTicketOption)){ //error - instance.reply(await openticket.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("openticket:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) return cancel() } //check ticket permissions - const res = await openticket.actions.get("openticket:create-ticket-permissions").run(source,{guild,user,option}) + const res = await opendiscord.actions.get("openticket:create-ticket-permissions").run(source,{guild,user,option}) if (!res.valid){ //error - if (res.reason == "blacklist") instance.reply(await openticket.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 openticket.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 openticket.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 openticket.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 openticket.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 openticket.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 openticket.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("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"})) return cancel() } //start ticket creation if (option.exists("openticket:questions") && option.get("openticket:questions").value.length > 0){ //send modal - instance.modal(await openticket.builders.modals.getSafe("openticket:ticket-questions").build(source,{guild,channel,user,option})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:ticket-questions").build(source,{guild,channel,user,option})) }else{ //create ticket await instance.defer(true) - const res = await openticket.actions.get("openticket:create-ticket").run(source,{guild,user,answers:[],option}) + const res = await opendiscord.actions.get("openticket:create-ticket").run(source,{guild,user,answers:[],option}) if (!res.channel || !res.ticket){ //error - await instance.reply(await openticket.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("openticket: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 openticket.builders.messages.getSafe("openticket:ticket-created").build(source,{guild,channel:res.channel,user,ticket:res.ticket})) + await instance.reply(await opendiscord.builders.messages.getSafe("openticket:ticket-created").build(source,{guild,channel:res.channel,user,ticket:res.ticket})) } }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'ticket' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'ticket' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, @@ -103,53 +103,53 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //TICKET OPTION BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:ticket-option",/^od:ticket-option_/)) - openticket.responders.buttons.get("openticket:ticket-option").workers.add( + 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) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } //get option const optionId = instance.interaction.customId.split("_")[2] - const option = openticket.options.get(optionId) + const option = opendiscord.options.get(optionId) if (!option || !(option instanceof api.ODTicketOption)){ //error - instance.reply(await openticket.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("openticket:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) return cancel() } //check ticket permissions - const res = await openticket.actions.get("openticket:create-ticket-permissions").run("panel-button",{guild,user,option}) + const res = await opendiscord.actions.get("openticket:create-ticket-permissions").run("panel-button",{guild,user,option}) if (!res.valid){ //error - if (res.reason == "blacklist") instance.reply(await openticket.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 openticket.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 openticket.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 openticket.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 openticket.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 openticket.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 openticket.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("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"})) return cancel() } //start ticket creation if (option.exists("openticket:questions") && option.get("openticket:questions").value.length > 0){ //send modal - instance.modal(await openticket.builders.modals.getSafe("openticket:ticket-questions").build("panel-button",{guild,channel,user,option})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:ticket-questions").build("panel-button",{guild,channel,user,option})) }else{ //create ticket await instance.defer("reply",true) - const res = await openticket.actions.get("openticket:create-ticket").run("panel-button",{guild,user,answers:[],option}) + const res = await opendiscord.actions.get("openticket:create-ticket").run("panel-button",{guild,user,answers:[],option}) if (!res.channel || !res.ticket){ //error - await instance.reply(await openticket.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("openticket: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 openticket.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("openticket:ticket-created").build("panel-button",{guild,channel:res.channel,user,ticket:res.ticket})) } }) ) @@ -157,53 +157,53 @@ export const registerButtonResponders = async () => { export const registerDropdownResponders = async () => { //PANEL DROPDOWN TICKETS DROPDOWN RESPONDER - openticket.responders.dropdowns.add(new api.ODDropdownResponder("openticket:panel-dropdown-tickets",/^od:panel-dropdown_/)) - openticket.responders.dropdowns.get("openticket:panel-dropdown-tickets").workers.add( + 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) => { const {guild,channel,user} = instance if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel:instance.channel,user:instance.user})) return cancel() } //get option const optionId = instance.values.getStringValues()[0].split("_")[2] - const option = openticket.options.get(optionId) + const option = opendiscord.options.get(optionId) if (!option || !(option instanceof api.ODTicketOption)){ //error - instance.reply(await openticket.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("openticket:error-option-unknown").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) return cancel() } //check ticket permissions - const res = await openticket.actions.get("openticket:create-ticket-permissions").run("panel-dropdown",{guild,user,option}) + const res = await opendiscord.actions.get("openticket:create-ticket-permissions").run("panel-dropdown",{guild,user,option}) if (!res.valid){ //error - if (res.reason == "blacklist") instance.reply(await openticket.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 openticket.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 openticket.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 openticket.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 openticket.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 openticket.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 openticket.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("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"})) return cancel() } //start ticket creation if (option.exists("openticket:questions") && option.get("openticket:questions").value.length > 0){ //send modal - instance.modal(await openticket.builders.modals.getSafe("openticket:ticket-questions").build("panel-dropdown",{guild,channel,user,option})) + instance.modal(await opendiscord.builders.modals.getSafe("openticket:ticket-questions").build("panel-dropdown",{guild,channel,user,option})) }else{ //create ticket await instance.defer("reply",true) - const res = await openticket.actions.get("openticket:create-ticket").run("panel-dropdown",{guild,user,answers:[],option}) + const res = await opendiscord.actions.get("openticket:create-ticket").run("panel-dropdown",{guild,user,answers:[],option}) if (!res.channel || !res.ticket){ //error - await instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 - openticket.responders.modals.add(new api.ODModalResponder("openticket:ticket-questions",/^od:ticket-questions_/)) - openticket.responders.modals.get("openticket:ticket-questions").workers.add([ + 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) => { 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 openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } @@ -226,17 +226,17 @@ export const registerModalResponders = async () => { //get option const optionId = instance.interaction.customId.split("_")[1] - const option = openticket.options.get(optionId) + const option = opendiscord.options.get(optionId) if (!option || !(option instanceof api.ODTicketOption)){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-option-unknown").build(source,{guild:instance.guild,channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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) => { - const question = openticket.questions.get(id) + const question = opendiscord.questions.get(id) if (!question) return if (question instanceof api.ODShortQuestion){ answers.push({ @@ -257,13 +257,13 @@ export const registerModalResponders = async () => { //create ticket await instance.defer("reply",true) - const res = await openticket.actions.get("openticket:create-ticket").run(originalSource,{guild,user,answers,option}) + const res = await opendiscord.actions.get("openticket:create-ticket").run(originalSource,{guild,user,answers,option}) if (!res.channel || !res.ticket){ //error - await instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 e4ff53c..7a785e5 100644 --- a/src/commands/unclaim.ts +++ b/src/commands/unclaim.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //UNCLAIM COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //UNCLAIM COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:unclaim",generalConfig.data.prefix,"unclaim")) - openticket.responders.commands.get("openticket:unclaim").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.unclaim if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,22 +46,22 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:unclaim",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not claimed if (!ticket.get("openticket:claimed").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.unclaim"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -69,11 +69,11 @@ export const registerCommandResponders = async () => { //start unclaiming ticket await instance.defer(false) - await openticket.actions.get("openticket:unclaim-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.reply(await openticket.builders.messages.getSafe("openticket:unclaim-message").build(source,{guild,channel,user,ticket,reason})) + 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})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'unclaim' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'unclaim' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, @@ -85,33 +85,33 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //UNCLAIM TICKET BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:unclaim-ticket",/^od:unclaim-ticket/)) - openticket.responders.buttons.get("openticket:unclaim-ticket").workers.add( + 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) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "claim-message") return - if (originalSource == "ticket-message") await openticket.verifybars.get("openticket:unclaim-ticket-ticket-message").activate(instance) - else await openticket.verifybars.get("openticket:unclaim-ticket-claim-message").activate(instance) + 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) }) ) } export const registerModalResponders = async () => { //UNCLAIM WITH REASON MODAL RESPONDER - openticket.responders.modals.add(new api.ODModalResponder("openticket:unclaim-ticket-reason",/^od:unclaim-ticket-reason_/)) - openticket.responders.modals.get("openticket:unclaim-ticket-reason").workers.add([ + 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) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } - const ticket = openticket.tickets.get(instance.interaction.customId.split("_")[1]) + const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.actions.get("openticket:unclaim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) }else if (originalSource == "claim-message"){ await instance.defer("update",false) - await openticket.actions.get("openticket:unclaim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:unclaim-message").build("other",{guild,channel,user,ticket,reason})) + 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})) }else if (originalSource == "other"){ await instance.defer("update",false) - await openticket.actions.get("openticket:unclaim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("openticket:unclaim-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) } }) ]) diff --git a/src/commands/unpin.ts b/src/commands/unpin.ts index b69b579..60fb092 100644 --- a/src/commands/unpin.ts +++ b/src/commands/unpin.ts @@ -1,44 +1,44 @@ /////////////////////////////////////// //UNPIN COMMAND /////////////////////////////////////// -import {openticket, api, utilities} from "../index" +import {opendiscord, api, utilities} from "../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const registerCommandResponders = async () => { //UNPIN COMMAND RESPONDER - openticket.responders.commands.add(new api.ODCommandResponder("openticket:unpin",generalConfig.data.prefix,"unpin")) - openticket.responders.commands.get("openticket:unpin").workers.add([ + 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) => { const permissionMode = generalConfig.data.system.permissions.unpin if (permissionMode == "none"){ //no permissions - instance.reply(await openticket.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("openticket: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 (!openticket.permissions.hasPermissions("support",await openticket.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ + if (!opendiscord.permissions.hasPermissions("support",await opendiscord.permissions.getPermissions(instance.user,instance.channel,instance.guild))){ //no permissions - instance.reply(await openticket.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("openticket: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 openticket.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("openticket: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 openticket.client.fetchGuildRole(instance.guild,permissionMode) + const role = await opendiscord.client.fetchGuildRole(instance.guild,permissionMode) if (!role){ //error - instance.reply(await openticket.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("openticket: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 openticket.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("openticket:error-no-permissions").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user,permissions:[]})) return cancel() }else return } @@ -46,22 +46,22 @@ export const registerCommandResponders = async () => { new api.ODWorker("openticket:unpin",0,async (instance,params,source,cancel) => { const {guild,channel,user} = instance if (!guild){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build("button",{channel,user})) return cancel() } - const ticket = openticket.tickets.get(channel.id) + const ticket = opendiscord.tickets.get(channel.id) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) return cancel() } //return when not pinned yet if (!ticket.get("openticket:pinned").value){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error").build("button",{guild,channel,user,error:openticket.languages.getTranslation("errors.actionInvalid.unpin"),layout:"simple"})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-ticket-busy").build("button",{guild,channel,user})) return cancel() } @@ -69,11 +69,11 @@ export const registerCommandResponders = async () => { //start unpinning ticket await instance.defer(false) - await openticket.actions.get("openticket:unpin-ticket").run(source,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.reply(await openticket.builders.messages.getSafe("openticket:unpin-message").build(source,{guild,channel,user,ticket,reason})) + 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})) }), new api.ODWorker("openticket:logs",-1,(instance,params,source,cancel) => { - openticket.log(instance.user.displayName+" used the 'unpin' command!","info",[ + opendiscord.log(instance.user.displayName+" used the 'unpin' command!","info",[ {key:"user",value:instance.user.username}, {key:"userid",value:instance.user.id,hidden:true}, {key:"channelid",value:instance.channel.id,hidden:true}, @@ -85,33 +85,33 @@ export const registerCommandResponders = async () => { export const registerButtonResponders = async () => { //UNPIN TICKET BUTTON RESPONDER - openticket.responders.buttons.add(new api.ODButtonResponder("openticket:unpin-ticket",/^od:unpin-ticket/)) - openticket.responders.buttons.get("openticket:unpin-ticket").workers.add( + 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) => { const originalSource = instance.interaction.customId.split("_")[1] if (originalSource != "ticket-message" && originalSource != "pin-message") return - if (originalSource == "ticket-message") await openticket.verifybars.get("openticket:unpin-ticket-ticket-message").activate(instance) - else await openticket.verifybars.get("openticket:unpin-ticket-pin-message").activate(instance) + 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) }) ) } export const registerModalResponders = async () => { //UNPIN WITH REASON MODAL RESPONDER - openticket.responders.modals.add(new api.ODModalResponder("openticket:unpin-ticket-reason",/^od:unpin-ticket-reason_/)) - openticket.responders.modals.get("openticket:unpin-ticket-reason").workers.add([ + 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) => { const {guild,channel,user} = instance if (!channel) return if (!guild){ //error - instance.reply(await openticket.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket:error-not-in-guild").build(source,{channel,user:instance.user})) return cancel() } - const ticket = openticket.tickets.get(instance.interaction.customId.split("_")[1]) + const ticket = opendiscord.tickets.get(instance.interaction.customId.split("_")[1]) if (!ticket || channel.isDMBased()){ - instance.reply(await openticket.builders.messages.getSafe("openticket:error-ticket-unknown").build("button",{guild,channel,user})) + instance.reply(await opendiscord.builders.messages.getSafe("openticket: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 openticket.actions.get("openticket:unpin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) - await instance.update(await openticket.builders.messages.getSafe("openticket:ticket-message").build("other",{guild,channel,user,ticket})) + 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})) }else if (originalSource == "pin-message"){ await instance.defer("update",false) - await openticket.actions.get("openticket:unpin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:false}) - await instance.update(await openticket.builders.messages.getSafe("openticket:unpin-message").build("other",{guild,channel,user,ticket,reason})) + 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})) }else if (originalSource == "other"){ await instance.defer("update",false) - await openticket.actions.get("openticket:unpin-ticket").run(originalSource,{guild,channel,user,ticket,reason,sendMessage:true}) + await opendiscord.actions.get("openticket: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 ba14c35..2f9aaaa 100644 --- a/src/core/api/defaults/action.ts +++ b/src/core/api/defaults/action.ts @@ -118,7 +118,7 @@ export interface ODActionManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODActionManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.actions`! + * This default class is made for the global variable `opendiscord.actions`! */ export class ODActionManager_Default extends ODActionManager { get(id:ActionId): ODAction_Default diff --git a/src/core/api/defaults/base.ts b/src/core/api/defaults/base.ts index 5575d96..532a9f9 100644 --- a/src/core/api/defaults/base.ts +++ b/src/core/api/defaults/base.ts @@ -19,7 +19,7 @@ export interface ODVersionManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODFlagManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.flags`! + * This default class is made for the global variable `opendiscord.flags`! */ export class ODVersionManager_Default extends ODVersionManager { get(id:VersionId): ODVersionManagerIds_Default[VersionId] diff --git a/src/core/api/defaults/builder.ts b/src/core/api/defaults/builder.ts index 4509adc..6e3bfe7 100644 --- a/src/core/api/defaults/builder.ts +++ b/src/core/api/defaults/builder.ts @@ -18,7 +18,7 @@ import { ODRole, ODRoleUpdateResult } from "../openticket/role" * This is a special class that adds type definitions & typescript to the ODBuilderManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.builders`! + * This default class is made for the global variable `opendiscord.builders`! */ export class ODBuilderManager_Default extends ODBuilderManager { declare buttons: ODButtonManager_Default @@ -69,7 +69,7 @@ export interface ODButtonManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODButtonManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.builders.buttons`! + * This default class is made for the global variable `opendiscord.builders.buttons`! */ export class ODButtonManager_Default extends ODButtonManager { get(id:ButtonId): ODButton_Default @@ -123,7 +123,7 @@ export interface ODDropdownManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODDropdownManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.builders.dropdowns`! + * This default class is made for the global variable `opendiscord.builders.dropdowns`! */ export class ODDropdownManager_Default extends ODDropdownManager { get(id:DropdownId): ODDropdown_Default @@ -177,7 +177,7 @@ export interface ODFileManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODFileManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.builders.files`! + * This default class is made for the global variable `opendiscord.builders.files`! */ export class ODFileManager_Default extends ODFileManager { get(id:FileId): ODFile_Default @@ -297,7 +297,7 @@ export interface ODEmbedManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODEmbedManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.builders.embeds`! + * This default class is made for the global variable `opendiscord.builders.embeds`! */ export class ODEmbedManager_Default extends ODEmbedManager { get(id:EmbedId): ODEmbed_Default @@ -428,7 +428,7 @@ export interface ODMessageManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODMessageManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.builders.messages`! + * This default class is made for the global variable `opendiscord.builders.messages`! */ export class ODMessageManager_Default extends ODMessageManager { get(id:MessageId): ODMessage_Default @@ -489,7 +489,7 @@ export interface ODModalManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODModalManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.builders.modals`! + * This default class is made for the global variable `opendiscord.builders.modals`! */ export class ODModalManager_Default extends ODModalManager { get(id:ModalId): ODModal_Default diff --git a/src/core/api/defaults/checker.ts b/src/core/api/defaults/checker.ts index 97d5191..66eb141 100644 --- a/src/core/api/defaults/checker.ts +++ b/src/core/api/defaults/checker.ts @@ -22,7 +22,7 @@ export interface ODCheckerManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODCheckerManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.checkers`! + * This default class is made for the global variable `opendiscord.checkers`! */ export class ODCheckerManager_Default extends ODCheckerManager { declare translation: ODCheckerTranslationRegister_Default @@ -55,7 +55,7 @@ export class ODCheckerManager_Default extends ODCheckerManager { * This is a special class that adds type definitions & features to the ODCheckerRenderer class. * It contains the code that renders the default config checker. * - * This default class is made for the global variable `openticket.checkers.renderer`! + * This default class is made for the global variable `opendiscord.checkers.renderer`! */ export class ODCheckerRenderer_Default extends ODCheckerRenderer { extraHeaderText: string[] = [] @@ -306,7 +306,7 @@ export type ODCheckerTranslationRegisterMessageIds_Default = ( * This is a special class that adds type definitions & typescript to the ODCheckerTranslationRegister class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.checkers.translation`! + * This default class is made for the global variable `opendiscord.checkers.translation`! */ export class ODCheckerTranslationRegister_Default extends ODCheckerTranslationRegister { get(type:"other", id:ODCheckerTranslationRegisterOtherIds_Default): string @@ -355,7 +355,7 @@ export interface ODCheckerFunctionManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODCheckerFunctionManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.checkers.functions`! + * This default class is made for the global variable `opendiscord.checkers.functions`! */ export class ODCheckerFunctionManager_Default extends ODCheckerFunctionManager { get(id:CheckerFunctionId): ODCheckerFunctionManagerIds_Default[CheckerFunctionId] diff --git a/src/core/api/defaults/client.ts b/src/core/api/defaults/client.ts index 5962896..90d8a22 100644 --- a/src/core/api/defaults/client.ts +++ b/src/core/api/defaults/client.ts @@ -8,7 +8,7 @@ import { ODClientManager, ODSlashCommand, ODTextCommand, ODSlashCommandManager, * This is a special class that adds type definitions & typescript to the ODClientManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.client`! + * This default class is made for the global variable `opendiscord.client`! */ export class ODClientManager_Default extends ODClientManager { declare slashCommands: ODSlashCommandManager_Default @@ -45,7 +45,7 @@ export interface ODSlashCommandManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODSlashCommandManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.client.slashCommands`! + * This default class is made for the global variable `opendiscord.client.slashCommands`! */ export class ODSlashCommandManager_Default extends ODSlashCommandManager { get(id:SlashCommandId): ODSlashCommandManagerIds_Default[SlashCommandId] @@ -115,7 +115,7 @@ export interface ODTextCommandManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODTextCommandManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.client.textCommands`! + * This default class is made for the global variable `opendiscord.client.textCommands`! */ export class ODTextCommandManager_Default extends ODTextCommandManager { get(id:TextCommandId): ODTextCommandManagerIds_Default[TextCommandId] diff --git a/src/core/api/defaults/code.ts b/src/core/api/defaults/code.ts index e7ced95..508ff26 100644 --- a/src/core/api/defaults/code.ts +++ b/src/core/api/defaults/code.ts @@ -31,7 +31,7 @@ export interface ODCodeManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODCodeManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.code`! + * This default class is made for the global variable `opendiscord.code`! */ export class ODCodeManager_Default extends ODCodeManager { get(id:CodeId): ODCodeManagerIds_Default[CodeId] diff --git a/src/core/api/defaults/config.ts b/src/core/api/defaults/config.ts index 98ab2aa..0936bd2 100644 --- a/src/core/api/defaults/config.ts +++ b/src/core/api/defaults/config.ts @@ -23,7 +23,7 @@ export interface ODConfigManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODConfigManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.configs`! + * This default class is made for the global variable `opendiscord.configs`! */ export class ODConfigManager_Default extends ODConfigManager { get(id:ConfigId): ODConfigManagerIds_Default[ConfigId] diff --git a/src/core/api/defaults/console.ts b/src/core/api/defaults/console.ts index f0d3813..d824fce 100644 --- a/src/core/api/defaults/console.ts +++ b/src/core/api/defaults/console.ts @@ -16,7 +16,7 @@ export interface ODLiveStatusManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODLiveStatusManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.livestatus`! + * This default class is made for the global variable `opendiscord.livestatus`! */ export class ODLiveStatusManager_Default extends ODLiveStatusManager { get(id:LiveStatusId): ODLiveStatusManagerIds_Default[LiveStatusId] diff --git a/src/core/api/defaults/cooldown.ts b/src/core/api/defaults/cooldown.ts index 09b3cd2..75a53e7 100644 --- a/src/core/api/defaults/cooldown.ts +++ b/src/core/api/defaults/cooldown.ts @@ -16,7 +16,7 @@ export interface ODCooldownManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODCooldownManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.cooldowns`! + * This default class is made for the global variable `opendiscord.cooldowns`! */ export class ODCooldownManager_Default extends ODCooldownManager { get(id:CooldownId): ODCooldownManagerIds_Default[CooldownId] diff --git a/src/core/api/defaults/database.ts b/src/core/api/defaults/database.ts index 514911f..012be40 100644 --- a/src/core/api/defaults/database.ts +++ b/src/core/api/defaults/database.ts @@ -22,7 +22,7 @@ export interface ODDatabaseManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODDatabaseManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.databases`! + * This default class is made for the global variable `opendiscord.databases`! */ export class ODDatabaseManager_Default extends ODDatabaseManager { get(id:DatabaseId): ODDatabaseManagerIds_Default[DatabaseId] diff --git a/src/core/api/defaults/event.ts b/src/core/api/defaults/event.ts index c4500b8..51826c9 100644 --- a/src/core/api/defaults/event.ts +++ b/src/core/api/defaults/event.ts @@ -296,7 +296,7 @@ export interface ODEventIds_Default { * This is a special class that adds type definitions & typescript to the ODEvent class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.events`! + * This default class is made for the global variable `opendiscord.events`! */ export class ODEventManager_Default extends ODEventManager { get(id:StartScreenId): ODEventIds_Default[StartScreenId] @@ -325,7 +325,7 @@ export class ODEventManager_Default extends ODEventManager { * This is a special class that adds type definitions & typescript to the ODEvent class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.events`! + * This default class is made for the global variable `opendiscord.events`! */ export class ODEvent_Default ODPromiseVoid)> extends ODEvent { listen(callback:Callback): void { diff --git a/src/core/api/defaults/flag.ts b/src/core/api/defaults/flag.ts index a7b8e17..dbc066f 100644 --- a/src/core/api/defaults/flag.ts +++ b/src/core/api/defaults/flag.ts @@ -29,7 +29,7 @@ export interface ODFlagManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODFlagManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.flags`! + * This default class is made for the global variable `opendiscord.flags`! */ export class ODFlagManager_Default extends ODFlagManager { get(id:FlagId): ODFlagManagerIds_Default[FlagId] diff --git a/src/core/api/defaults/helpmenu.ts b/src/core/api/defaults/helpmenu.ts index 7269ebc..50624fc 100644 --- a/src/core/api/defaults/helpmenu.ts +++ b/src/core/api/defaults/helpmenu.ts @@ -22,7 +22,7 @@ export interface ODHelpMenuManagerIds_Default { * 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 global variable `openticket.helpmenu`! + * This default class is made for the global variable `opendiscord.helpmenu`! */ export class ODHelpMenuManager_Default extends ODHelpMenuManager { get(id:HelpMenuCategoryId): ODHelpMenuManagerIds_Default[HelpMenuCategoryId] @@ -60,7 +60,7 @@ export interface ODHelpMenuManagerCategoryIds_DefaultGeneral { * 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 `openticket.helpmenu`! + * This default class is made for the `openticket:general` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultGeneral extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultGeneral[HelpMenuCategoryId] @@ -99,7 +99,7 @@ export interface ODHelpMenuManagerCategoryIds_DefaultTicketBasic { * 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 `openticket.helpmenu`! + * This default class is made for the `openticket:ticket` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultTicketBasic extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketBasic[HelpMenuCategoryId] @@ -139,7 +139,7 @@ export interface ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced { * 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 `openticket.helpmenu`! + * This default class is made for the `openticket:ticket` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultTicketAdvanced extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketAdvanced[HelpMenuCategoryId] @@ -179,7 +179,7 @@ export interface ODHelpMenuManagerCategoryIds_DefaultTicketUser { * 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 `openticket.helpmenu`! + * This default class is made for the `openticket:ticket` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultTicketUser extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultTicketUser[HelpMenuCategoryId] @@ -220,7 +220,7 @@ export interface ODHelpMenuManagerCategoryIds_DefaultAdmin { * 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 `openticket.helpmenu`! + * This default class is made for the `openticket:admin` category in `opendiscord.helpmenu`! */ export class ODHelpMenuCategory_DefaultAdmin extends ODHelpMenuCategory { get(id:HelpMenuCategoryId): ODHelpMenuManagerCategoryIds_DefaultAdmin[HelpMenuCategoryId] @@ -262,7 +262,7 @@ export interface ODHelpMenuManagerCategoryIds_DefaultAdvanced { * 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 `openticket.helpmenu`! + * This default class is made for the `openticket: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 `openticket.helpmenu`! + * This default class is made for the `openticket: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 d384005..e6849a5 100644 --- a/src/core/api/defaults/language.ts +++ b/src/core/api/defaults/language.ts @@ -474,7 +474,7 @@ export interface ODLanguageManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODLanguageManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.languages`! + * This default class is made for the global variable `opendiscord.languages`! */ export class ODLanguageManager_Default extends ODLanguageManager { get(id:LanguageId): ODLanguageManagerIds_Default[LanguageId] diff --git a/src/core/api/defaults/permission.ts b/src/core/api/defaults/permission.ts index 0f01536..5a3f3d7 100644 --- a/src/core/api/defaults/permission.ts +++ b/src/core/api/defaults/permission.ts @@ -8,7 +8,7 @@ import { ODPermissionManager } from "../modules/permission" * This is a special class that adds type definitions & typescript to the ODPermissionManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.permissions`! + * This default class is made for the global variable `opendiscord.permissions`! */ export class ODPermissionManager_Default extends ODPermissionManager { constructor(debug:ODDebugger){ diff --git a/src/core/api/defaults/plugin.ts b/src/core/api/defaults/plugin.ts index 5f7c5b4..b9644b4 100644 --- a/src/core/api/defaults/plugin.ts +++ b/src/core/api/defaults/plugin.ts @@ -14,7 +14,7 @@ export interface ODPluginManagerIds_Default {} * This is a special class that adds type definitions & typescript to the ODPluginManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.plugins`! + * This default class is made for the global variable `opendiscord.plugins`! */ export class ODPluginManager_Default extends ODPluginManager { declare classes: ODPluginClassManager_Default @@ -51,7 +51,7 @@ export interface ODPluginClassManagerIds_Default {} * This is a special class that adds type definitions & typescript to the ODPluginClassManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.plugins.classes`! + * This default class is made for the global variable `opendiscord.plugins.classes`! */ export class ODPluginClassManager_Default extends ODPluginClassManager { get(id:PluginClassId): ODPluginClassManagerIds_Default[PluginClassId] diff --git a/src/core/api/defaults/post.ts b/src/core/api/defaults/post.ts index 79d497b..1776b0b 100644 --- a/src/core/api/defaults/post.ts +++ b/src/core/api/defaults/post.ts @@ -18,7 +18,7 @@ export interface ODPostManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODPostManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.code`! + * This default class is made for the global variable `opendiscord.code`! */ export class ODPostManager_Default extends ODPostManager { get(id:PostId): ODPostManagerIds_Default[PostId] diff --git a/src/core/api/defaults/progressbar.ts b/src/core/api/defaults/progressbar.ts index 20127dd..e0e46fe 100644 --- a/src/core/api/defaults/progressbar.ts +++ b/src/core/api/defaults/progressbar.ts @@ -101,7 +101,7 @@ export interface ODProgressBarRendererManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODProgressBarRendererManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.progressbars.renderers`! + * This default class is made for the global variable `opendiscord.progressbars.renderers`! */ export class ODProgressBarRendererManager_Default extends ODProgressBarRendererManager { get(id:ProgressBarId): ODProgressBarRendererManagerIds_Default[ProgressBarId] @@ -140,7 +140,7 @@ export interface ODProgressBarManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODProgressBarManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.progressbars`! + * This default class is made for the global variable `opendiscord.progressbars`! */ export class ODProgressBarManager_Default extends ODProgressBarManager { declare renderers: ODProgressBarRendererManager_Default diff --git a/src/core/api/defaults/responder.ts b/src/core/api/defaults/responder.ts index cedcb0f..af1f6e5 100644 --- a/src/core/api/defaults/responder.ts +++ b/src/core/api/defaults/responder.ts @@ -9,7 +9,7 @@ import { ODWorkerManager_Default } from "./worker" * This is a special class that adds type definitions & typescript to the ODResponderManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.responders`! + * This default class is made for the global variable `opendiscord.responders`! */ export class ODResponderManager_Default extends ODResponderManager { declare commands: ODCommandResponderManager_Default @@ -51,7 +51,7 @@ export interface ODCommandResponderManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODCommandResponderManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.responders.commands`! + * This default class is made for the global variable `opendiscord.responders.commands`! */ export class ODCommandResponderManager_Default extends ODCommandResponderManager { get(id:CommandResponderId): ODCommandResponder_Default @@ -118,7 +118,7 @@ export interface ODButtonResponderManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODButtonResponderManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.responders.buttons`! + * This default class is made for the global variable `opendiscord.responders.buttons`! */ export class ODButtonResponderManager_Default extends ODButtonResponderManager { get(id:ButtonResponderId): ODButtonResponder_Default @@ -165,7 +165,7 @@ export interface ODDropdownResponderManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODDropdownResponderManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.responders.dropdowns`! + * This default class is made for the global variable `opendiscord.responders.dropdowns`! */ export class ODDropdownResponderManager_Default extends ODDropdownResponderManager { get(id:DropdownResponderId): ODDropdownResponder_Default @@ -219,7 +219,7 @@ export interface ODModalResponderManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODModalResponderManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.responders.dropdowns`! + * This default class is made for the global variable `opendiscord.responders.dropdowns`! */ export class ODModalResponderManager_Default extends ODModalResponderManager { get(id:ModalResponderId): ODModalResponder_Default diff --git a/src/core/api/defaults/session.ts b/src/core/api/defaults/session.ts index d75685b..8eef65b 100644 --- a/src/core/api/defaults/session.ts +++ b/src/core/api/defaults/session.ts @@ -16,7 +16,7 @@ export interface ODSessionManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODSessionManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.sessions`! + * This default class is made for the global variable `opendiscord.sessions`! */ export class ODSessionManager_Default extends ODSessionManager { get(id:SessionId): ODSessionManagerIds_Default[SessionId] diff --git a/src/core/api/defaults/startscreen.ts b/src/core/api/defaults/startscreen.ts index 7507475..77c368d 100644 --- a/src/core/api/defaults/startscreen.ts +++ b/src/core/api/defaults/startscreen.ts @@ -22,7 +22,7 @@ export interface ODStartScreenManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODStartScreenManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.startscreen`! + * This default class is made for the global variable `opendiscord.startscreen`! */ export class ODStartScreenManager_Default extends ODStartScreenManager { get(id:StartScreenId): ODStartScreenManagerIds_Default[StartScreenId] diff --git a/src/core/api/defaults/stat.ts b/src/core/api/defaults/stat.ts index 320ac59..0cc9d8c 100644 --- a/src/core/api/defaults/stat.ts +++ b/src/core/api/defaults/stat.ts @@ -21,7 +21,7 @@ export interface ODStatsManagerIds_Default { * 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 global variable `openticket.stats`! + * This default class is made for the global variable `opendiscord.stats`! */ export class ODStatsManager_Default extends ODStatsManager { get(id:StatsId): ODStatsManagerIds_Default[StatsId] @@ -68,7 +68,7 @@ export interface ODStatGlobalScopeIds_DefaultGlobal { * 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:global` category in `openticket.stats`! + * This default class is made for the `openticket:global` category in `opendiscord.stats`! */ export class ODStatGlobalScope_DefaultGlobal extends ODStatGlobalScope { get(id:StatsId): ODStatGlobalScopeIds_DefaultGlobal[StatsId] @@ -127,7 +127,7 @@ export interface ODStatGlobalScopeIds_DefaultSystem { * 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 `openticket.stats`! + * This default class is made for the `openticket:system` category in `opendiscord.stats`! */ export class ODStatGlobalScope_DefaultSystem extends ODStatGlobalScope { get(id:StatsId): ODStatGlobalScopeIds_DefaultSystem[StatsId] @@ -195,7 +195,7 @@ export interface ODStatScopeIds_DefaultUser { * 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 `openticket.stats`! + * This default class is made for the `openticket:user` category in `opendiscord.stats`! */ export class ODStatScope_DefaultUser extends ODStatScope { get(id:StatsId): ODStatScopeIds_DefaultUser[StatsId] @@ -258,7 +258,7 @@ export interface ODStatScopeIds_DefaultTicket { * 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 `openticket.stats`! + * This default class is made for the `openticket:ticket` category in `opendiscord.stats`! */ export class ODStatScope_DefaultTicket extends ODStatScope { get(id:StatsId): ODStatScopeIds_DefaultTicket[StatsId] @@ -316,7 +316,7 @@ export interface ODStatScopeIds_DefaultParticipants { * 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 `openticket.stats`! + * This default class is made for the `openticket: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 095f82f..280eca8 100644 --- a/src/core/api/defaults/verifybar.ts +++ b/src/core/api/defaults/verifybar.ts @@ -35,7 +35,7 @@ export interface ODVerifyBarManagerIds_Default { * This is a special class that adds type definitions & typescript to the ODVerifyBarManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.verifybars`! + * This default class is made for the global variable `opendiscord.verifybars`! */ export class ODVerifyBarManager_Default extends ODVerifyBarManager { get(id:VerifyBarId): ODVerifyBar_Default diff --git a/src/core/api/modules/builder.ts b/src/core/api/modules/builder.ts index edd71e0..de189e3 100644 --- a/src/core/api/modules/builder.ts +++ b/src/core/api/modules/builder.ts @@ -512,7 +512,7 @@ export class ODFileManager extends ODManagerWithSafety> { return new ODFile("openticket:unknown-file",(instance,params,source,cancel) => { instance.setName("openticket_unknown-file.txt") instance.setDescription("❌ ") - instance.setContents("Couldn't find file in registery `openticket.builders.files`") + instance.setContents("Couldn't find file in registery `opendiscord.builders.files`") cancel() }) },debug,"file") @@ -636,7 +636,7 @@ export class ODEmbedManager extends ODManagerWithSafety> { instance.setFooter("openticket:unknown-embed") instance.setColor("#ff0000") instance.setTitle("❌ ") - instance.setDescription("Couldn't find embed in registery `openticket.builders.embeds`") + instance.setDescription("Couldn't find embed in registery `opendiscord.builders.embeds`") cancel() }) },debug,"embed") @@ -847,7 +847,7 @@ export class ODMessageManager extends ODManagerWithSafety> constructor(debug:ODDebugger){ super(() => { return new ODMessage("openticket:unknown-message",(instance,params,source,cancel) => { - instance.setContent("**❌ **\nCouldn't find message in registery `openticket.builders.messages`") + instance.setContent("**❌ **\nCouldn't find message in registery `opendiscord.builders.messages`") cancel() }) },debug,"message") diff --git a/src/core/api/modules/checker.ts b/src/core/api/modules/checker.ts index 6863ed4..641766b 100644 --- a/src/core/api/modules/checker.ts +++ b/src/core/api/modules/checker.ts @@ -20,14 +20,6 @@ export interface ODCheckerResult { * It manages all config checkers in the bot and allows plugins to access config checkers from Open Ticket & other plugins! * * You can use this class to get/add a config checker (`ODChecker`) in your plugin! - * @example - * //get checker for ./config/general.json => ODChecker class - * const testChecker = openticket.checkers.get("openticket:general") - * - * //add a new checker with id "test" => ./config/test.json - * const testConfig = new api.ODConfig("test","test.json") - * const testChecker = new api.ODChecker("test",openticket.checkers.storage,0,testConfig,[]) - * openticket.checkers.add(testChecker) */ export class ODCheckerManager extends ODManager { /**The global temporary storage shared between all config checkers. */ @@ -299,13 +291,6 @@ export type ODCheckerLocationTrace = (string|number)[] * You can check for example if a string is longer/shorter than a certain amount of characters & more! * * You can use this class when you create your own custom config file & you want to check it for syntax errors. - * @example - * //create a new checker with id "test" => ./config/test.json - * const testConfig = new api.ODConfig("test","test.json") - * const testChecker = new api.ODChecker("test",openticket.checkers.storage,0,testConfig,new api.ODCheckerStructure()) - * openticket.checkers.add(testChecker) - * - * //you will still need to build the structure & insert it in the constructor */ export class ODChecker extends ODManagerData { /**The storage of this checker (reference for `ODCheckerManager.storage`) */ diff --git a/src/core/api/modules/console.ts b/src/core/api/modules/console.ts index aa2d99d..3497184 100644 --- a/src/core/api/modules/console.ts +++ b/src/core/api/modules/console.ts @@ -584,7 +584,7 @@ export class ODLiveStatusUrlSource extends ODLiveStatusSource { * It manages all LiveStatus sources and has the renderer for all LiveStatus messages. * * You can use this to customise or add stuff to the LiveStatus system. - * Access it in the global `openticket.startscreen.livestatus` variable! + * Access it in the global `opendiscord.startscreen.livestatus` variable! */ export class ODLiveStatusManager extends ODManager { /**The class responsible for rendering the livestatus messages. */ @@ -616,7 +616,7 @@ export class ODLiveStatusManager extends ODManager { * It's responsible for rendering all LiveStatus messages to the console. */ export class ODLiveStatusRenderer { - /**A reference to the ODConsoleManager or "openticket.console" global variable */ + /**A reference to the ODConsoleManager or "opendiscord.console" global variable */ #console: ODConsoleManager constructor(console:ODConsoleManager){ diff --git a/src/core/api/modules/event.ts b/src/core/api/modules/event.ts index 18328cb..c7a20a2 100644 --- a/src/core/api/modules/event.ts +++ b/src/core/api/modules/event.ts @@ -76,7 +76,7 @@ export class ODEvent extends ODManagerData { * This class is made to manage all events in the bot. You can compare it with the built-in node.js `EventEmitter` * * It's not recommended to create this class yourself. Plugin events should be registered in their `plugin.json` file instead. - * All events are available in the `openticket.events` global! + * All events are available in the `opendiscord.events` global! */ export class ODEventManager extends ODManager { /**Reference to the Open Ticket debugger */ diff --git a/src/core/api/modules/plugin.ts b/src/core/api/modules/plugin.ts index 07fffa4..ff9d412 100644 --- a/src/core/api/modules/plugin.ts +++ b/src/core/api/modules/plugin.ts @@ -20,7 +20,7 @@ export interface ODUnknownCrashedPlugin { * * It manages all active plugins in the bot! * It also contains all "plugin classes" which are managers registered by plugins. - * These are accessible via the `openticket.plugins.classes` global. + * These are accessible via the `opendiscord.plugins.classes` global. * * Use `isPluginLoaded()` to check if a plugin has been loaded. */ @@ -60,7 +60,7 @@ export interface ODPluginData { enabled:boolean, /**The priority of this plugin. Higher priority will load before lower priority. */ priority:number, - /**A list of events to register to the `openticket.events` global before loading any plugins. This way, plugins with a higher priority are able to use events from this plugin as well! */ + /**A list of events to register to the `opendiscord.events` global before loading any plugins. This way, plugins with a higher priority are able to use events from this plugin as well! */ events:string[] /**Npm dependencies which are required for this plugin to work. */ @@ -96,7 +96,7 @@ export interface ODPluginDetails { * This is an Open Ticket plugin. * * It represents a single plugin in the `./plugins/` directory. - * All plugins are accessible via the `openticket.plugins` global. + * All plugins are accessible via the `opendiscord.plugins` global. * * Don't re-execute plugins which are already enabled! It might break the bot or plugin. */ diff --git a/src/core/api/openticket/transcript.ts b/src/core/api/openticket/transcript.ts index dddb245..6af77c9 100644 --- a/src/core/api/openticket/transcript.ts +++ b/src/core/api/openticket/transcript.ts @@ -127,7 +127,7 @@ export interface ODTranscriptCompilerIds { * This is a special class that adds type definitions & typescript to the ODTranscriptManager class. * It doesn't add any extra features! * - * This default class is made for the global variable `openticket.transcripts`! + * This default class is made for the global variable `opendiscord.transcripts`! */ export class ODTranscriptManager_Default extends ODTranscriptManager { get(id:QuestionId): ODTranscriptCompilerIds[QuestionId] diff --git a/src/core/startup/dump.ts b/src/core/startup/dump.ts index 83c5656..27d0cc1 100644 --- a/src/core/startup/dump.ts +++ b/src/core/startup/dump.ts @@ -1,4 +1,4 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" import * as discord from "discord.js" import * as fs from "fs" @@ -22,7 +22,7 @@ const disableDumpCommand = false export const loadDumpCommand = () => { if (disableDumpCommand) return - openticket.client.textCommands.add(new api.ODTextCommand("openticket:dump",{ + opendiscord.client.textCommands.add(new api.ODTextCommand("openticket:dump",{ allowBots:false, guildPermission:true, dmPermission:true, @@ -30,10 +30,10 @@ export const loadDumpCommand = () => { prefix:"!OPENTICKET:" })) - openticket.client.textCommands.onInteraction("!OPENTICKET:","dump",async (msg) => { - if (msg.author.id == "779742674932072469" || openticket.permissions.hasPermissions("developer",await openticket.permissions.getPermissions(msg.author,msg.channel,null))){ + opendiscord.client.textCommands.onInteraction("!OPENTICKET:","dump",async (msg) => { + if (msg.author.id == "779742674932072469" || opendiscord.permissions.hasPermissions("developer",await opendiscord.permissions.getPermissions(msg.author,msg.channel,null))){ //user is bot owner OR creator of Open Ticket :) - openticket.log("Dumped otdebug.txt!","system",[ + opendiscord.log("Dumped otdebug.txt!","system",[ {key:"user",value:msg.author.username}, {key:"id",value:msg.author.id} ]) diff --git a/src/core/startup/init.ts b/src/core/startup/init.ts index bb987e9..be3c7b3 100644 --- a/src/core/startup/init.ts +++ b/src/core/startup/init.ts @@ -38,19 +38,19 @@ import * as api from "../api/api" //import for local use export * as api from "../api/api" //export to other parts of bot -export const openticket = new api.ODMain() +export const opendiscord = new api.ODMain() console.log("\n--------------------------- OPEN TICKET STARTUP ---------------------------") -openticket.log("Logging system activated!","system") -openticket.debug.debug("Using Node.js "+process.version+"!") +opendiscord.log("Logging system activated!","system") +opendiscord.debug.debug("Using Node.js "+process.version+"!") try{ const packageJson = JSON.parse(fs.readFileSync("./package.json").toString()) - openticket.debug.debug("Using discord.js "+packageJson.dependencies["discord.js"]+"!") - openticket.debug.debug("Using ansis "+packageJson.dependencies["ansis"]+"!") - openticket.debug.debug("Using formatted-json-stringify "+packageJson.dependencies["formatted-json-stringify"]+"!") - openticket.debug.debug("Using typescript "+packageJson.dependencies["typescript"]+"!") + opendiscord.debug.debug("Using discord.js "+packageJson.dependencies["discord.js"]+"!") + opendiscord.debug.debug("Using ansis "+packageJson.dependencies["ansis"]+"!") + opendiscord.debug.debug("Using formatted-json-stringify "+packageJson.dependencies["formatted-json-stringify"]+"!") + opendiscord.debug.debug("Using typescript "+packageJson.dependencies["typescript"]+"!") }catch{ - openticket.debug.debug("Failed to fetch module versions!") + opendiscord.debug.debug("Failed to fetch module versions!") } const timer = (ms:number): Promise => { @@ -83,7 +83,7 @@ export interface ODUtilities { */ timer(ms:number): Promise /**## emojiTitle `utility function` - * Use this function to create a title with an emoji before/after the text. The style & divider are set in `openticket.defaults` + * Use this function to create a title with an emoji before/after the text. The style & divider are set in `opendiscord.defaults` * @example utilities.emojiTitle("📎","Links") //create a title with an emoji based on the bot emoji style */ emojiTitle(emoji:string, text:string): string @@ -149,8 +149,8 @@ export const utilities: ODUtilities = { }, timer, emojiTitle(emoji:string, text:string){ - const style = openticket.defaults.getDefault("emojiTitleStyle") - const divider = openticket.defaults.getDefault("emojiTitleDivider") + const style = opendiscord.defaults.getDefault("emojiTitleStyle") + const divider = opendiscord.defaults.getDefault("emojiTitleDivider") if (style == "disabled") return text else if (style == "before") return emoji+divider+text diff --git a/src/core/startup/manageMigration.ts b/src/core/startup/manageMigration.ts index 515efb7..9a8e01c 100644 --- a/src/core/startup/manageMigration.ts +++ b/src/core/startup/manageMigration.ts @@ -1,60 +1,60 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadVersionMigrationSystem = async () => { //ENTER MIGRATION CONTEXT await preloadMigrationContext() const lastVersion = await isMigrationRequired() - openticket.versions.add(lastVersion ? lastVersion : api.ODVersion.fromString("openticket:last-version",openticket.versions.get("openticket:version").toString())) - if (lastVersion && !openticket.flags.get("openticket:no-migration").value){ + 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){ //MIGRATION IS REQUIRED - openticket.log("Detected old data!","info") - openticket.log("Starting closed API context...","debug") + opendiscord.log("Detected old data!","info") + opendiscord.log("Starting closed API context...","debug") await utilities.timer(600) - openticket.log("Migrating data to new version...","debug") + opendiscord.log("Migrating data to new version...","debug") await loadAllVersionMigrations(lastVersion) - openticket.log("Stopping closed API context...","debug") + opendiscord.log("Stopping closed API context...","debug") await utilities.timer(400) - openticket.log("All data is now up to date!","info") + opendiscord.log("All data is now up to date!","info") await utilities.timer(200) console.log("---------------------------------------------------------------------") } saveAllVersionsToDatabase() //DEFAULT FLAGS - if (openticket.flags.exists("openticket:no-plugins") && openticket.flags.get("openticket:no-plugins").value) openticket.defaults.setDefault("pluginLoading",false) - if (openticket.flags.exists("openticket:soft-plugins") && openticket.flags.get("openticket:soft-plugins").value) openticket.defaults.setDefault("softPluginLoading",true) - if (openticket.flags.exists("openticket:crash") && openticket.flags.get("openticket:crash").value) openticket.defaults.setDefault("crashOnError",true) - if (openticket.flags.exists("openticket:force-slash-update") && openticket.flags.get("openticket:force-slash-update").value) openticket.defaults.setDefault("forceSlashCommandRegistration",true) + 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) //LEAVE MIGRATION CONTEXT await unloadMigrationContext() } const preloadMigrationContext = async () => { - openticket.debug.debug("-- MIGRATION CONTEXT START --") + opendiscord.debug.debug("-- MIGRATION CONTEXT START --") await (await import("../../data/framework/flagLoader.js")).loadAllFlags() - await openticket.flags.init() + await opendiscord.flags.init() await (await import("../../data/framework/configLoader.js")).loadAllConfigs() - await openticket.configs.init() + await opendiscord.configs.init() await (await import("../../data/framework/databaseLoader.js")).loadAllDatabases() - await openticket.databases.init() - openticket.debug.visible = true + await opendiscord.databases.init() + opendiscord.debug.visible = true } const unloadMigrationContext = async () => { - openticket.debug.visible = false - await openticket.databases.loopAll((database,id) => {openticket.databases.remove(id)}) - await openticket.configs.loopAll((config,id) => {openticket.configs.remove(id)}) - await openticket.flags.loopAll((flag,id) => {openticket.flags.remove(id)}) - openticket.debug.debug("-- MIGRATION CONTEXT END --") + opendiscord.debug.visible = false + await opendiscord.databases.loopAll((database,id) => {opendiscord.databases.remove(id)}) + await opendiscord.configs.loopAll((config,id) => {opendiscord.configs.remove(id)}) + await opendiscord.flags.loopAll((flag,id) => {opendiscord.flags.remove(id)}) + opendiscord.debug.debug("-- MIGRATION CONTEXT END --") } const isMigrationRequired = async (): Promise => { - const rawVersion = await openticket.databases.get("openticket:global").get("openticket:last-version","openticket:version") + const rawVersion = await opendiscord.databases.get("openticket:global").get("openticket:last-version","openticket:version") if (!rawVersion) return false const version = api.ODVersion.fromString("openticket:last-version",rawVersion) - if (openticket.versions.get("openticket:version").compare(version) == "higher"){ + if (opendiscord.versions.get("openticket:version").compare(version) == "higher"){ return version }else return false } @@ -70,7 +70,7 @@ const loadAllVersionMigrations = async (lastVersion:api.ODVersion) => { for (const migration of migrations){ if (migration.version.compare(lastVersion) == "higher"){ const success = await migration.migrate() - if (success) openticket.log("Migrated data to "+migration.version.toString()+"!","debug",[ + if (success) opendiscord.log("Migrated data to "+migration.version.toString()+"!","debug",[ {key:"success",value:success ? "true" : "false"} ]) } @@ -78,9 +78,9 @@ const loadAllVersionMigrations = async (lastVersion:api.ODVersion) => { } const saveAllVersionsToDatabase = async () => { - const globalDatabase = openticket.databases.get("openticket:global") + const globalDatabase = opendiscord.databases.get("openticket:global") - await openticket.versions.loopAll(async (version,id) => { + await opendiscord.versions.loopAll(async (version,id) => { await globalDatabase.set("openticket: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 96df7a0..a34ae1d 100644 --- a/src/core/startup/migration.ts +++ b/src/core/startup/migration.ts @@ -1,4 +1,4 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const migrations = [ //MIGRATE TO v4.0.0 diff --git a/src/core/startup/pluginLauncher.ts b/src/core/startup/pluginLauncher.ts index 4790aaf..b0e5153 100644 --- a/src/core/startup/pluginLauncher.ts +++ b/src/core/startup/pluginLauncher.ts @@ -1,14 +1,14 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" import fs from "fs" import { ODPluginError } from "../api/api" export const loadAllPlugins = async () => { //start launching plugins - openticket.log("Loading plugins...","system") + opendiscord.log("Loading plugins...","system") let initPluginError: boolean = false if (!fs.existsSync("./plugins")){ - openticket.log("Couldn't find ./plugins directory, canceling all plugin execution!","error") + opendiscord.log("Couldn't find ./plugins directory, canceling all plugin execution!","error") return } const plugins = fs.readdirSync("./plugins") @@ -16,12 +16,12 @@ export const loadAllPlugins = async () => { //check & validate plugins.forEach(async (p) => { //prechecks - if (!fs.statSync("./plugins/"+p).isDirectory()) return openticket.log("Plugin is not a directory, canceling plugin execution...","plugin",[ + if (!fs.statSync("./plugins/"+p).isDirectory()) return opendiscord.log("Plugin is not a directory, canceling plugin execution...","plugin",[ {key:"plugin",value:"./plugins/"+p} ]) if (!fs.existsSync("./plugins/"+p+"/plugin.json")){ initPluginError = true - openticket.log("Plugin doesn't have a plugin.json, canceling plugin execution...","plugin",[ + opendiscord.log("Plugin doesn't have a plugin.json, canceling plugin execution...","plugin",[ {key:"plugin",value:"./plugins/"+p} ]) return @@ -55,25 +55,25 @@ export const loadAllPlugins = async () => { if (rawplugindata.id != p) throw new ODPluginError("Failed to load plugin, directory name is required to match the id") - if (openticket.plugins.exists(rawplugindata.id)) throw new ODPluginError("Failed to load plugin, this id already exists in another plugin") + if (opendiscord.plugins.exists(rawplugindata.id)) throw new ODPluginError("Failed to load plugin, this id already exists in another plugin") //plugin.json is valid => load plugin const plugin = new api.ODPlugin(p,rawplugindata) - openticket.plugins.add(plugin) + opendiscord.plugins.add(plugin) }catch(e){ //when any of the above errors happen, crash the bot when soft mode isn't enabled initPluginError = true - openticket.log(e.message+", canceling plugin execution...","plugin",[ + opendiscord.log(e.message+", canceling plugin execution...","plugin",[ {key:"path",value:"./plugins/"+p} ]) - openticket.log("You can see more about this error in the ./otdebug.txt file!","info") - openticket.debugfile.writeText(e.stack) + opendiscord.log("You can see more about this error in the ./otdebug.txt file!","info") + opendiscord.debugfile.writeText(e.stack) //try to get some crashed plugin data try{ const rawplugindata: api.ODPluginData = JSON.parse(fs.readFileSync("./plugins/"+p+"/plugin.json").toString()) - openticket.plugins.unknownCrashedPlugins.push({ + opendiscord.plugins.unknownCrashedPlugins.push({ name:rawplugindata.name ?? "./plugins/"+p, description:(rawplugindata.details && rawplugindata.details.shortDescription) ? rawplugindata.details.shortDescription : "This plugin crashed :(", }) @@ -82,7 +82,7 @@ export const loadAllPlugins = async () => { }) //sorted plugins (based on priority) - const sortedPlugins = openticket.plugins.getAll().sort((a,b) => { + const sortedPlugins = opendiscord.plugins.getAll().sort((a,b) => { return (b.priority - a.priority) }) @@ -95,8 +95,8 @@ export const loadAllPlugins = async () => { sortedPlugins.filter((plugin) => plugin.enabled).forEach((plugin) => { const from = plugin.id.value plugin.dependenciesInstalled().forEach((missing) => missingDependencies.push({id:from,missing})) - plugin.pluginsIncompatible(openticket.plugins).forEach((incompatible) => incompatibilities.push({from,to:incompatible})) - plugin.pluginsInstalled(openticket.plugins).forEach((missing) => missingPlugins.push({id:from,missing})) + plugin.pluginsIncompatible(opendiscord.plugins).forEach((incompatible) => incompatibilities.push({from,to:incompatible})) + plugin.pluginsInstalled(opendiscord.plugins).forEach((missing) => missingPlugins.push({id:from,missing})) }) //handle all incompatibilities @@ -105,18 +105,18 @@ export const loadAllPlugins = async () => { if (alreadyLoggedCompatPlugins.includes(match.from) || alreadyLoggedCompatPlugins.includes(match.to)) return else alreadyLoggedCompatPlugins.push(match.from,match.to) - const fromPlugin = openticket.plugins.get(match.from) + const fromPlugin = opendiscord.plugins.get(match.from) if (fromPlugin && !fromPlugin.crashed){ fromPlugin.crashed = true fromPlugin.crashReason = "incompatible.plugin" } - const toPlugin = openticket.plugins.get(match.to) + const toPlugin = opendiscord.plugins.get(match.to) if (toPlugin && !toPlugin.crashed){ toPlugin.crashed = true toPlugin.crashReason = "incompatible.plugin" } - openticket.log(`Incompatible plugins => "${match.from}" & "${match.to}", canceling plugin execution...`,"plugin",[ + opendiscord.log(`Incompatible plugins => "${match.from}" & "${match.to}", canceling plugin execution...`,"plugin",[ {key:"path1",value:"./plugins/"+match.from}, {key:"path2",value:"./plugins/"+match.to} ]) @@ -125,13 +125,13 @@ export const loadAllPlugins = async () => { //handle all missing dependencies missingDependencies.forEach((match) => { - const plugin = openticket.plugins.get(match.id) + const plugin = opendiscord.plugins.get(match.id) if (plugin && !plugin.crashed){ plugin.crashed = true plugin.crashReason = "missing.dependency" } - openticket.log(`Missing npm dependency "${match.missing}", canceling plugin execution...`,"plugin",[ + opendiscord.log(`Missing npm dependency "${match.missing}", canceling plugin execution...`,"plugin",[ {key:"path",value:"./plugins/"+match.id} ]) initPluginError = true @@ -139,45 +139,45 @@ export const loadAllPlugins = async () => { //handle all missing plugins missingPlugins.forEach((match) => { - const plugin = openticket.plugins.get(match.id) + const plugin = opendiscord.plugins.get(match.id) if (plugin && !plugin.crashed){ plugin.crashed = true plugin.crashReason = "missing.plugin" } - openticket.log(`Missing required plugin "${match.missing}", canceling plugin execution...`,"plugin",[ + opendiscord.log(`Missing required plugin "${match.missing}", canceling plugin execution...`,"plugin",[ {key:"path",value:"./plugins/"+match.id} ]) initPluginError = true }) //exit on error (when soft mode disabled) - if (!openticket.defaults.getDefault("softPluginLoading") && initPluginError){ + if (!opendiscord.defaults.getDefault("softPluginLoading") && initPluginError){ console.log("") - openticket.log("Please fix all plugin errors above & try again!","error") + opendiscord.log("Please fix all plugin errors above & try again!","error") process.exit(1) } //preload all events required for every plugin for (const plugin of sortedPlugins){ - if (plugin.enabled) plugin.data.events.forEach((event) => openticket.events.add(new api.ODEvent(event))) + if (plugin.enabled) plugin.data.events.forEach((event) => opendiscord.events.add(new api.ODEvent(event))) } //execute all working plugins for (const plugin of sortedPlugins){ - const status = await plugin.execute(openticket.debug,false) + const status = await plugin.execute(opendiscord.debug,false) //exit on error (when soft mode disabled) - if (!status && !openticket.defaults.getDefault("softPluginLoading")){ + if (!status && !opendiscord.defaults.getDefault("softPluginLoading")){ console.log("") - openticket.log("Please fix all plugin errors above & try again!","error") + opendiscord.log("Please fix all plugin errors above & try again!","error") process.exit(1) } } for (const plugin of sortedPlugins){ if (plugin.enabled){ - openticket.debug.debug("Plugin \""+plugin.id.value+"\" loaded",[ + opendiscord.debug.debug("Plugin \""+plugin.id.value+"\" loaded",[ {key:"status",value:(plugin.crashed ? "crashed" : "success")}, {key:"crashReason",value:(plugin.crashed ? (plugin.crashReason ?? "/") : "/")}, {key:"author",value:plugin.details.author}, @@ -185,7 +185,7 @@ export const loadAllPlugins = async () => { {key:"priority",value:plugin.priority.toString()} ]) }else{ - openticket.debug.debug("Plugin \""+plugin.id.value+"\" disabled",[ + opendiscord.debug.debug("Plugin \""+plugin.id.value+"\" disabled",[ {key:"author",value:plugin.details.author}, {key:"version",value:plugin.version.toString()}, {key:"priority",value:plugin.priority.toString()} diff --git a/src/data/framework/checkerLoader.ts b/src/data/framework/checkerLoader.ts index 70603a3..28f99eb 100644 --- a/src/data/framework/checkerLoader.ts +++ b/src/data/framework/checkerLoader.ts @@ -1,26 +1,26 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" -const generalConfig = openticket.configs.get("openticket:general") +const generalConfig = opendiscord.configs.get("openticket:general") export const loadAllConfigCheckers = async () => { - openticket.checkers.add(new api.ODChecker("openticket:general",openticket.checkers.storage,0,openticket.configs.get("openticket:general"),defaultGeneralStructure)) - openticket.checkers.add(new api.ODChecker("openticket:options",openticket.checkers.storage,1,openticket.configs.get("openticket:options"),defaultOptionsStructure)) - openticket.checkers.add(new api.ODChecker("openticket:panels",openticket.checkers.storage,0,openticket.configs.get("openticket:panels"),defaultPanelsStructure)) - openticket.checkers.add(new api.ODChecker("openticket:questions",openticket.checkers.storage,2,openticket.configs.get("openticket:questions"),defaultQuestionsStructure)) - openticket.checkers.add(new api.ODChecker("openticket:transcripts",openticket.checkers.storage,0,openticket.configs.get("openticket:transcripts"),defaultTranscriptsStructure)) + 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)) } export const loadAllConfigCheckerFunctions = async () => { - openticket.checkers.functions.add(new api.ODCheckerFunction("openticket:unused-options",defaultUnusedOptionsFunction)) - openticket.checkers.functions.add(new api.ODCheckerFunction("openticket:unused-questions",defaultUnusedQuestionsFunction)) - openticket.checkers.functions.add(new api.ODCheckerFunction("openticket:dropdown-options",defaultDropdownOptionsFunction)) + 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)) } export const loadAllConfigCheckerTranslations = async () => { if ((generalConfig && generalConfig.data.system && generalConfig.data.system.useTranslatedConfigChecker) ? generalConfig.data.system.useTranslatedConfigChecker : false){ - registerDefaultCheckerSystemTranslations(openticket.checkers.translation,openticket.languages) //translate checker system text - registerDefaultCheckerMessageTranslations(openticket.checkers.translation,openticket.languages) //translate checker messages - registerDefaultCheckerCustomTranslations(openticket.checkers.translation,openticket.languages) //translate custom checker messages + registerDefaultCheckerSystemTranslations(opendiscord.checkers.translation,opendiscord.languages) //translate checker system text + registerDefaultCheckerMessageTranslations(opendiscord.checkers.translation,opendiscord.languages) //translate checker messages + registerDefaultCheckerCustomTranslations(opendiscord.checkers.translation,opendiscord.languages) //translate custom checker messages } } @@ -170,7 +170,7 @@ const createPanelEmbedStructure = (id:api.ODValidId) => { } function loadFromEnv(){ - const generalConfig = openticket.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("openticket:general") if (generalConfig.data && generalConfig.data.tokenFromENV && typeof generalConfig.data.tokenFromENV == "boolean") return generalConfig.data.tokenFromENV else return false } @@ -185,7 +185,7 @@ export const defaultGeneralStructure = new api.ODCheckerObjectStructure("opentic const lt = checker.locationTraceDeref(locationTrace) if (typeof value != "string") return false - else if (value != "open-ticket-"+openticket.versions.get("openticket:version").toString()){ + 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) return false }else return true @@ -201,7 +201,7 @@ export const defaultGeneralStructure = new api.ODCheckerObjectStructure("opentic const lt = checker.locationTraceDeref(locationTrace) if (typeof value != "string") return false - else if (!openticket.defaults.getDefault("languageList").includes(value)){ + else if (!opendiscord.defaults.getDefault("languageList").includes(value)){ checker.createMessage("openticket:invalid-language","error","This is an invalid language!",lt,null,[],locationId,locationDocs) return false }else return true @@ -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 = openticket.configs.get("openticket:panels") + const panelConfig = opendiscord.configs.get("openticket:panels") if (!panelConfig) return {valid:true,messages:[]} - const optionConfig = openticket.configs.get("openticket:options") + const optionConfig = opendiscord.configs.get("openticket:options") if (!optionConfig) return {valid:true,messages:[]} const final: api.ODCheckerMessage[] = [] diff --git a/src/data/framework/codeLoader.ts b/src/data/framework/codeLoader.ts index 4fece50..b253888 100644 --- a/src/data/framework/codeLoader.ts +++ b/src/data/framework/codeLoader.ts @@ -1,13 +1,13 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" import * as discord from "discord.js" -const generalConfig = openticket.configs.get("openticket:general") -const globalDatabase = openticket.databases.get("openticket:global") -const userDatabase = openticket.databases.get("openticket:users") -const ticketDatabase = openticket.databases.get("openticket:tickets") -const statsDatabase = openticket.databases.get("openticket:stats") -const optionDatabase = openticket.databases.get("openticket:options") -const mainServer = openticket.client.mainServer +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 mainServer = opendiscord.client.mainServer export const loadAllCode = async () => { if (!generalConfig || !mainServer || !globalDatabase || !userDatabase || !ticketDatabase || !statsDatabase || !optionDatabase) return @@ -22,46 +22,46 @@ export const loadAllCode = async () => { export const loadCommandErrorHandlingCode = async () => { //COMMAND ERROR HANDLING - openticket.code.add(new api.ODCode("openticket:command-error-handling",14,() => { + opendiscord.code.add(new api.ODCode("openticket:command-error-handling",14,() => { //invalid/missing options - openticket.client.textCommands.onError(async (error) => { + 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 openticket.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("openticket: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 openticket.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("openticket: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 openticket.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("openticket:error-unknown-command").build("text",{guild:error.msg.guild,channel:error.msg.channel,user:error.msg.author,error})).message) } }) //responder timeout - openticket.responders.commands.setTimeoutErrorCallback(async (instance,source) => { - instance.reply(await openticket.builders.messages.getSafe("openticket:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + 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})) },null) - openticket.responders.buttons.setTimeoutErrorCallback(async (instance,source) => { - instance.reply(await openticket.builders.messages.getSafe("openticket:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + 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})) },null) - openticket.responders.dropdowns.setTimeoutErrorCallback(async (instance,source) => { - instance.reply(await openticket.builders.messages.getSafe("openticket:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) + 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})) },null) - openticket.responders.modals.setTimeoutErrorCallback(async (instance,source) => { + opendiscord.responders.modals.setTimeoutErrorCallback(async (instance,source) => { if (!instance.channel){ instance.reply({id:new api.ODId("looks-like-we-got-an-error-here"), ephemeral:true, message:{ content:":x: **Something went wrong while replying to this modal!**" }}) return } - instance.reply(await openticket.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("openticket:error-responder-timeout").build(source,{guild:instance.guild,channel:instance.channel,user:instance.user})) },null) })) } export const loadStartListeningInteractionsCode = async () => { //START LISTENING TO INTERACTIONS - openticket.code.add(new api.ODCode("openticket:start-listening-interactions",13,() => { - openticket.client.slashCommands.startListeningToInteractions() - openticket.client.textCommands.startListeningToInteractions() + opendiscord.code.add(new api.ODCode("openticket:start-listening-interactions",13,() => { + opendiscord.client.slashCommands.startListeningToInteractions() + opendiscord.client.textCommands.startListeningToInteractions() })) } @@ -69,7 +69,7 @@ export const loadDatabaseCleanersCode = async () => { if (!mainServer) return //PANEL DATABASE CLEANER - openticket.code.add(new api.ODCode("openticket:panel-database-cleaner",12,async () => { + opendiscord.code.add(new api.ODCode("openticket:panel-database-cleaner",12,async () => { const validPanels: string[] = [] //check global database for valid panel embeds @@ -77,7 +77,7 @@ export const loadDatabaseCleanersCode = async () => { if (!validPanels.includes(panel.key)){ try{ const splittedId = panel.key.split("_") - const message = await openticket.client.fetchGuildChannelMessage(mainServer,splittedId[0],splittedId[1]) + const message = await opendiscord.client.fetchGuildChannelMessage(mainServer,splittedId[0],splittedId[1]) if (message) validPanels.push(panel.key) }catch{} } @@ -91,7 +91,7 @@ export const loadDatabaseCleanersCode = async () => { } //delete panel from database on delete - openticket.client.client.on("messageDelete",async (msg) => { + 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) } @@ -99,21 +99,21 @@ export const loadDatabaseCleanersCode = async () => { })) //SUFFIX DATABASE CLEANER - openticket.code.add(new api.ODCode("openticket:suffix-database-cleaner",11,async () => { + opendiscord.code.add(new api.ODCode("openticket: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") ?? [])){ if (!validSuffixCounters.includes(counter.key)){ - if (openticket.options.exists(counter.key)) validSuffixCounters.push(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") ?? [])){ if (!validSuffixHistories.includes(history.key)){ - if (openticket.options.exists(history.key)) validSuffixHistories.push(history.key) + if (opendiscord.options.exists(history.key)) validSuffixHistories.push(history.key) } } @@ -133,13 +133,13 @@ export const loadDatabaseCleanersCode = async () => { })) //OPTION DATABASE CLEANER - openticket.code.add(new api.ODCode("openticket:option-database-cleaner",10,async () => { + opendiscord.code.add(new api.ODCode("openticket:option-database-cleaner",10,async () => { //delete all unused options (async) for (const option of (await optionDatabase.getCategory("openticket:used-option") ?? [])){ - if (!openticket.options.exists(option.key)){ + 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) - }else if (!openticket.tickets.getAll().some((ticket) => ticket.option.id.value == 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) } @@ -147,7 +147,7 @@ export const loadDatabaseCleanersCode = async () => { })) //USER DATABASE CLEANER (full async/parallel because it takes a lot of time) - openticket.code.add(new api.ODCode("openticket:user-database-cleaner",9,() => { + opendiscord.code.add(new api.ODCode("openticket:user-database-cleaner",9,() => { utilities.runAsync(async () => { const validUsers: string[] = [] @@ -191,7 +191,7 @@ export const loadDatabaseCleanersCode = async () => { }) //delete user from database on leave - openticket.client.client.on("guildMemberRemove",async (member) => { + opendiscord.client.client.on("guildMemberRemove",async (member) => { if (member.guild.id != mainServer.id) return //remove unused user @@ -213,14 +213,14 @@ export const loadDatabaseCleanersCode = async () => { })) //TICKET DATABASE CLEANER - openticket.code.add(new api.ODCode("openticket:ticket-database-cleaner",8,async () => { + opendiscord.code.add(new api.ODCode("openticket:ticket-database-cleaner",8,async () => { const validTickets: string[] = [] //check ticket database for valid tickets for (const ticket of (await ticketDatabase.getAll())){ if (!validTickets.includes(ticket.key)){ try{ - const channel = await openticket.client.fetchGuildTextChannel(mainServer,ticket.key) + const channel = await opendiscord.client.fetchGuildTextChannel(mainServer,ticket.key) if (channel) validTickets.push(channel.id) }catch{} } @@ -231,7 +231,7 @@ export const loadDatabaseCleanersCode = async () => { if (stat.category.startsWith("openticket:ticket_")){ if (!validTickets.includes(stat.key)){ try{ - const channel = await openticket.client.fetchGuildTextChannel(mainServer,stat.key) + const channel = await opendiscord.client.fetchGuildTextChannel(mainServer,stat.key) if (channel) validTickets.push(channel.id) }catch{} } @@ -242,7 +242,7 @@ export const loadDatabaseCleanersCode = async () => { for (const ticket of (await ticketDatabase.getAll())){ if (!validTickets.includes(ticket.key)){ await ticketDatabase.delete(ticket.category,ticket.key) - openticket.tickets.remove(ticket.key) + opendiscord.tickets.remove(ticket.key) } } @@ -256,14 +256,14 @@ export const loadDatabaseCleanersCode = async () => { } //delete ticket from database on delete - openticket.client.client.on("channelDelete",async (channel) => { + opendiscord.client.client.on("channelDelete",async (channel) => { if (channel.isDMBased() || channel.guild.id != mainServer.id) return //remove unused ticket for (const ticket of (await ticketDatabase.getAll())){ if (ticket.key == channel.id){ await ticketDatabase.delete(ticket.category,ticket.key) - openticket.tickets.remove(ticket.key) + opendiscord.tickets.remove(ticket.key) } } @@ -281,13 +281,13 @@ export const loadDatabaseCleanersCode = async () => { export const loadPanelAutoUpdateCode = async () => { //PANEL AUTO UPDATE - openticket.code.add(new api.ODCode("openticket:panel-auto-update",7,async () => { - const globalDatabase = openticket.databases.get("openticket:global") + 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") ?? [] if (!mainServer) return for (const panelId of panelIds){ - const panel = openticket.panels.get(panelId.value) + const panel = opendiscord.panels.get(panelId.value) //panel doesn't exist anymore in config and needs to be removed if (!panel){ @@ -297,13 +297,13 @@ export const loadPanelAutoUpdateCode = async () => { try{ const splittedId = panelId.key.split("_") - const channel = await openticket.client.fetchGuildTextChannel(mainServer,splittedId[0]) + const channel = await opendiscord.client.fetchGuildTextChannel(mainServer,splittedId[0]) if (!channel) return - const message = await openticket.client.fetchGuildChannelMessage(mainServer,channel,splittedId[1]) + const message = await opendiscord.client.fetchGuildChannelMessage(mainServer,channel,splittedId[1]) if (!message || !message.editable) return - message.edit((await openticket.builders.messages.getSafe("openticket:panel").build("auto-update",{guild:mainServer,channel,user:openticket.client.client.user,panel})).message) - openticket.log("Panel in server got auto-updated!","info",[ + message.edit((await opendiscord.builders.messages.getSafe("openticket: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]}, {key:"panel",value:panelId.value} @@ -315,10 +315,10 @@ export const loadPanelAutoUpdateCode = async () => { export const loadDatabaseSaversCode = async () => { //TICKET SAVER - openticket.code.add(new api.ODCode("openticket:ticket-saver",6,() => { - const mainVersion = openticket.versions.get("openticket:version") + opendiscord.code.add(new api.ODCode("openticket:ticket-saver",6,() => { + const mainVersion = opendiscord.versions.get("openticket:version") - openticket.tickets.onAdd(async (ticket) => { + opendiscord.tickets.onAdd(async (ticket) => { await ticketDatabase.set("openticket:ticket",ticket.id.value,ticket.toJson(mainVersion)) //add option to database if non-existent @@ -326,7 +326,7 @@ export const loadDatabaseSaversCode = async () => { await optionDatabase.set("openticket:used-option",ticket.option.id.value,ticket.option.toJson(mainVersion)) } }) - openticket.tickets.onChange(async (ticket) => { + opendiscord.tickets.onChange(async (ticket) => { await ticketDatabase.set("openticket:ticket",ticket.id.value,ticket.toJson(mainVersion)) //add option to database if non-existent @@ -335,42 +335,42 @@ export const loadDatabaseSaversCode = async () => { } //delete all unused options on ticket move - for (const option of openticket.options.getAll()){ - if (await optionDatabase.exists("openticket:used-option",option.id.value) && !openticket.tickets.getAll().some((ticket) => ticket.option.id.value == option.id.value)){ + 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) } } }) - openticket.tickets.onRemove(async (ticket) => { + opendiscord.tickets.onRemove(async (ticket) => { await ticketDatabase.delete("openticket:ticket",ticket.id.value) //remove option from database if unused - if (!openticket.tickets.getAll().some((ticket) => ticket.option.id.value == ticket.option.id.value)){ + if (!opendiscord.tickets.getAll().some((ticket) => ticket.option.id.value == ticket.option.id.value)){ await optionDatabase.delete("openticket:used-option",ticket.option.id.value) } }) })) //BLACKLIST SAVER - openticket.code.add(new api.ODCode("openticket:blacklist-saver",5,() => { - openticket.blacklist.onAdd(async (blacklist) => { + opendiscord.code.add(new api.ODCode("openticket:blacklist-saver",5,() => { + opendiscord.blacklist.onAdd(async (blacklist) => { await userDatabase.set("openticket:blacklist",blacklist.id.value,blacklist.reason) }) - openticket.blacklist.onChange(async (blacklist) => { + opendiscord.blacklist.onChange(async (blacklist) => { await userDatabase.set("openticket:blacklist",blacklist.id.value,blacklist.reason) }) - openticket.blacklist.onRemove(async (blacklist) => { + opendiscord.blacklist.onRemove(async (blacklist) => { await userDatabase.delete("openticket:blacklist",blacklist.id.value) }) })) //AUTO ROLE ON JOIN - openticket.code.add(new api.ODCode("openticket:auto-role-on-join",4,() => { - openticket.client.client.on("guildMemberAdd",async (member) => { - for (const option of openticket.options.getAll()){ + opendiscord.code.add(new api.ODCode("openticket: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){ //add these roles on user join - await openticket.actions.get("openticket:reaction-role").run("panel-button",{guild:member.guild,user:member.user,option,overwriteMode:"add"}) + await opendiscord.actions.get("openticket:reaction-role").run("panel-button",{guild:member.guild,user:member.user,option,overwriteMode:"add"}) } } }) @@ -379,11 +379,11 @@ export const loadDatabaseSaversCode = async () => { const loadAutoCode = () => { //AUTOCLOSE TIMEOUT - openticket.code.add(new api.ODCode("openticket:autoclose-timeout",3,() => { + opendiscord.code.add(new api.ODCode("openticket:autoclose-timeout",3,() => { setInterval(async () => { let count = 0 - for (const ticket of openticket.tickets.getAll()){ - const channel = await openticket.tickets.getTicketChannel(ticket) + 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){ @@ -395,26 +395,26 @@ const loadAutoCode = () => { const time = hours*60*60*1000 //hours in milliseconds if (enabled && (new Date().getTime() - lastMessage.createdTimestamp) >= time){ //autoclose ticket - await openticket.actions.get("openticket:close-ticket").run("autoclose",{guild:channel.guild,channel,user:openticket.client.client.user,ticket,reason:"Autoclose",sendMessage:false}) - await channel.send((await openticket.builders.messages.getSafe("openticket:autoclose-message").build("timeout",{guild:channel.guild,channel,user:openticket.client.client.user,ticket})).message) + 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) count++ - await openticket.stats.get("openticket:global").setStat("openticket:tickets-autoclosed",1,"increase") + await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-autoclosed",1,"increase") } } } - openticket.debug.debug("Finished autoclose timeout cycle!",[ - {key:"interval",value:openticket.defaults.getDefault("autocloseCheckInterval").toString()}, + opendiscord.debug.debug("Finished autoclose timeout cycle!",[ + {key:"interval",value:opendiscord.defaults.getDefault("autocloseCheckInterval").toString()}, {key:"closed",value:count.toString()} ]) - },openticket.defaults.getDefault("autocloseCheckInterval")) + },opendiscord.defaults.getDefault("autocloseCheckInterval")) })) //AUTOCLOSE LEAVE - openticket.code.add(new api.ODCode("openticket:autoclose-leave",2,() => { - openticket.client.client.on("guildMemberRemove",async (member) => { - for (const ticket of openticket.tickets.getAll()){ + opendiscord.code.add(new api.ODCode("openticket: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){ - const channel = await openticket.tickets.getTicketChannel(ticket) + 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 @@ -422,9 +422,9 @@ const loadAutoCode = () => { if (enabled){ //autoclose ticket - await openticket.actions.get("openticket:close-ticket").run("autoclose",{guild:channel.guild,channel,user:openticket.client.client.user,ticket,reason:"Autoclose",sendMessage:false}) - await channel.send((await openticket.builders.messages.getSafe("openticket:autoclose-message").build("leave",{guild:channel.guild,channel,user:openticket.client.client.user,ticket})).message) - await openticket.stats.get("openticket:global").setStat("openticket:tickets-autoclosed",1,"increase") + 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") } } } @@ -432,11 +432,11 @@ const loadAutoCode = () => { })) //AUTODELETE TIMEOUT - openticket.code.add(new api.ODCode("openticket:autodelete-timeout",1,() => { + opendiscord.code.add(new api.ODCode("openticket:autodelete-timeout",1,() => { setInterval(async () => { let count = 0 - for (const ticket of openticket.tickets.getAll()){ - const channel = await openticket.tickets.getTicketChannel(ticket) + 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){ @@ -448,26 +448,26 @@ const loadAutoCode = () => { const time = days*24*60*60*1000 //days in milliseconds if (enabled && (new Date().getTime() - lastMessage.createdTimestamp) >= time){ //autodelete ticket - await channel.send((await openticket.builders.messages.getSafe("openticket:autodelete-message").build("timeout",{guild:channel.guild,channel,user:openticket.client.client.user,ticket})).message) - await openticket.actions.get("openticket:delete-ticket").run("autodelete",{guild:channel.guild,channel,user:openticket.client.client.user,ticket,reason:"Autodelete",sendMessage:false,withoutTranscript:false}) + 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}) count++ - await openticket.stats.get("openticket:global").setStat("openticket:tickets-autodeleted",1,"increase") + await opendiscord.stats.get("openticket:global").setStat("openticket:tickets-autodeleted",1,"increase") } } } - openticket.debug.debug("Finished autodelete timeout cycle!",[ - {key:"interval",value:openticket.defaults.getDefault("autodeleteCheckInterval").toString()}, + opendiscord.debug.debug("Finished autodelete timeout cycle!",[ + {key:"interval",value:opendiscord.defaults.getDefault("autodeleteCheckInterval").toString()}, {key:"deleted",value:count.toString()} ]) - },openticket.defaults.getDefault("autodeleteCheckInterval")) + },opendiscord.defaults.getDefault("autodeleteCheckInterval")) })) //AUTODELETE LEAVE - openticket.code.add(new api.ODCode("openticket:autodelete-leave",0,() => { - openticket.client.client.on("guildMemberRemove",async (member) => { - for (const ticket of openticket.tickets.getAll()){ + opendiscord.code.add(new api.ODCode("openticket: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){ - const channel = await openticket.tickets.getTicketChannel(ticket) + 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 @@ -475,9 +475,9 @@ const loadAutoCode = () => { if (enabled){ //autodelete ticket - await channel.send((await openticket.builders.messages.getSafe("openticket:autodelete-message").build("leave",{guild:channel.guild,channel,user:openticket.client.client.user,ticket})).message) - await openticket.actions.get("openticket:delete-ticket").run("autodelete",{guild:channel.guild,channel,user:openticket.client.client.user,ticket,reason:"Autodelete",sendMessage:false,withoutTranscript:false}) - await openticket.stats.get("openticket:global").setStat("openticket:tickets-autodeleted",1,"increase") + 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") } } } @@ -485,8 +485,8 @@ const loadAutoCode = () => { })) //TICKET ANTI BUSY - openticket.code.add(new api.ODCode("openticket:ticket-anti-busy",-1,() => { - for (const ticket of openticket.tickets.getAll()){ + opendiscord.code.add(new api.ODCode("openticket: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 } diff --git a/src/data/framework/commandLoader.ts b/src/data/framework/commandLoader.ts index 3ecc123..fc9a82b 100644 --- a/src/data/framework/commandLoader.ts +++ b/src/data/framework/commandLoader.ts @@ -1,11 +1,11 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" import * as discord from "discord.js" -const lang = openticket.languages +const lang = opendiscord.languages export const loadAllSlashCommands = async () => { - const commands = openticket.client.slashCommands - const generalConfig = openticket.configs.get("openticket:general") + const commands = opendiscord.client.slashCommands + const generalConfig = opendiscord.configs.get("openticket: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}[] = [] - openticket.configs.get("openticket:panels").data.forEach((panel) => { + opendiscord.configs.get("openticket:panels").data.forEach((panel) => { panelChoices.push({name:panel.name, value:panel.id}) }) //create ticket choices const ticketChoices : {name:string, value:string}[] = [] - openticket.configs.get("openticket:options").data.forEach((option) => { + opendiscord.configs.get("openticket:options").data.forEach((option) => { if (option.type != "ticket") return ticketChoices.push({name:option.name, value:option.id}) }) @@ -585,8 +585,8 @@ export const loadAllSlashCommands = async () => { } export const loadAllTextCommands = async () => { - const commands = openticket.client.textCommands - const generalConfig = openticket.configs.get("openticket:general") + const commands = opendiscord.client.textCommands + const generalConfig = opendiscord.configs.get("openticket:general") if (!generalConfig) return if (!generalConfig.data.textCommands) return @@ -594,13 +594,13 @@ export const loadAllTextCommands = async () => { //create panel choices const panelChoices : string[] = [] - openticket.configs.get("openticket:panels").data.forEach((panel) => { + opendiscord.configs.get("openticket:panels").data.forEach((panel) => { panelChoices.push(panel.id) }) //create ticket choices const ticketChoices : string[] = [] - openticket.configs.get("openticket:options").data.forEach((option) => { + opendiscord.configs.get("openticket:options").data.forEach((option) => { if (option.type != "ticket") return ticketChoices.push(option.id) }) diff --git a/src/data/framework/configLoader.ts b/src/data/framework/configLoader.ts index f64e711..aee1956 100644 --- a/src/data/framework/configLoader.ts +++ b/src/data/framework/configLoader.ts @@ -1,12 +1,12 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllConfigs = async () => { - const devconfigFlag = openticket.flags.get("openticket:dev-config") + const devconfigFlag = opendiscord.flags.get("openticket:dev-config") const isDevconfig = devconfigFlag ? devconfigFlag.value : false - openticket.configs.add(new api.ODJsonConfig("openticket:general","general.json",(isDevconfig) ? "./devconfig/" : "./config/")) - openticket.configs.add(new api.ODJsonConfig("openticket:options","options.json",(isDevconfig) ? "./devconfig/" : "./config/")) - openticket.configs.add(new api.ODJsonConfig("openticket:panels","panels.json",(isDevconfig) ? "./devconfig/" : "./config/")) - openticket.configs.add(new api.ODJsonConfig("openticket:questions","questions.json",(isDevconfig) ? "./devconfig/" : "./config/")) - openticket.configs.add(new api.ODJsonConfig("openticket:transcripts","transcripts.json",(isDevconfig) ? "./devconfig/" : "./config/")) + 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/")) } \ No newline at end of file diff --git a/src/data/framework/cooldownLoader.ts b/src/data/framework/cooldownLoader.ts index cbb1ded..ca25eb3 100644 --- a/src/data/framework/cooldownLoader.ts +++ b/src/data/framework/cooldownLoader.ts @@ -1,7 +1,7 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllCooldowns = async () => { - await openticket.options.loopAll((option) => { + await opendiscord.options.loopAll((option) => { if (!(option instanceof api.ODTicketOption)) return loadTicketOptionCooldown(option) }) @@ -12,6 +12,6 @@ export const loadTicketOptionCooldown = (option:api.ODTicketOption) => { //option has cooldown const minutes = option.get("openticket:cooldown-minutes").value const milliseconds = minutes*60000 - openticket.cooldowns.add(new api.ODTimeoutCooldown("openticket:option-cooldown_"+option.id.value,milliseconds)) + opendiscord.cooldowns.add(new api.ODTimeoutCooldown("openticket: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 990e0a0..8b5d4ef 100644 --- a/src/data/framework/databaseLoader.ts +++ b/src/data/framework/databaseLoader.ts @@ -1,15 +1,15 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" import * as fjs from "formatted-json-stringify" -const devdatabaseFlag = openticket.flags.get("openticket:dev-database") +const devdatabaseFlag = opendiscord.flags.get("openticket:dev-database") const isDevdatabase = devdatabaseFlag ? devdatabaseFlag.value : false export const loadAllDatabases = async () => { - openticket.databases.add(defaultGlobalDatabase) - openticket.databases.add(defaultStatsDatabase) - openticket.databases.add(defaultTicketsDatabase) - openticket.databases.add(defaultUsersDatabase) - openticket.databases.add(defaultOptionsDatabase) + opendiscord.databases.add(defaultGlobalDatabase) + opendiscord.databases.add(defaultStatsDatabase) + opendiscord.databases.add(defaultTicketsDatabase) + opendiscord.databases.add(defaultUsersDatabase) + opendiscord.databases.add(defaultOptionsDatabase) } const defaultInlineFormatter = new fjs.ArrayFormatter(null,true,new fjs.ObjectFormatter(null,false,[ diff --git a/src/data/framework/eventLoader.ts b/src/data/framework/eventLoader.ts index beae995..7ec14ae 100644 --- a/src/data/framework/eventLoader.ts +++ b/src/data/framework/eventLoader.ts @@ -1,4 +1,4 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllEvents = () => { const eventList: (keyof api.ODEventIds_Default)[] = [ @@ -245,5 +245,5 @@ export const loadAllEvents = () => { //ready "onReadyForUsage" ] - eventList.forEach((event) => openticket.events.add(new api.ODEvent(event))) + eventList.forEach((event) => opendiscord.events.add(new api.ODEvent(event))) } \ No newline at end of file diff --git a/src/data/framework/flagLoader.ts b/src/data/framework/flagLoader.ts index 64f632f..1e90e62 100644 --- a/src/data/framework/flagLoader.ts +++ b/src/data/framework/flagLoader.ts @@ -1,18 +1,18 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllFlags = async () => { - openticket.flags.add(new api.ODFlag("openticket:no-migration","No Migration","Disable Open Ticket data migration on update!","--no-migration",["-nm"])) - openticket.flags.add(new api.ODFlag("openticket:dev-config","Developer Config","Use the configs in /devconfig/ instead of /config/!","--dev-config",["-dc"])) - openticket.flags.add(new api.ODFlag("openticket:dev-database","Developer Database","Use the databases in /devdatabase/ instead of /database/!","--dev-database",["-nd"])) - openticket.flags.add(new api.ODFlag("openticket:debug","Debug Mode","Couldn't you find the error? Try to check this out!","--debug",["-d"])) - openticket.flags.add(new api.ODFlag("openticket:crash","Crash On Error","Crash the bot on an unknown error!","--crash",["-cr"])) - openticket.flags.add(new api.ODFlag("openticket:no-transcripts","No HTML Transcripts","Disable uploading HTML transcripts (for debugging)","--no-transcripts",["-nt"])) - openticket.flags.add(new api.ODFlag("openticket:no-checker","No Config Checker","Disable the Config Checker (for debugging)","--no-checker",["-nc"])) - openticket.flags.add(new api.ODFlag("openticket:checker","Full Config Checker","Render the Config Checker with extra details!","--checker",["-c"])) - openticket.flags.add(new api.ODFlag("openticket:no-easter","No Easter Eggs","Disable little Open Ticket easter eggs hidden in the bot!","--no-easter",["-ne"])) - openticket.flags.add(new api.ODFlag("openticket:no-plugins","No Plugins","Disable all Open Ticket plugins!","--no-plugins",["-np"])) - openticket.flags.add(new api.ODFlag("openticket:soft-plugins","Soft Plugins","Don't crash the bot when a plugin crashes!","--soft-plugins",["-sp"])) - openticket.flags.add(new api.ODFlag("openticket:force-slash-update","Force Slash Update","Force update all slash commands.","--force-slash",["-fs"])) - openticket.flags.add(new api.ODFlag("openticket:no-compile","No Compile","Disable compilation of plugins & bot before starting.","--no-compile",[])) - openticket.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("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",[])) } \ No newline at end of file diff --git a/src/data/framework/helpMenuLoader.ts b/src/data/framework/helpMenuLoader.ts index 55c84b6..4c6d7b1 100644 --- a/src/data/framework/helpMenuLoader.ts +++ b/src/data/framework/helpMenuLoader.ts @@ -1,9 +1,9 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" -const lang = openticket.languages +const lang = opendiscord.languages export const loadAllHelpMenuCategories = async () => { - const helpmenu = openticket.helpmenu + 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!!! @@ -15,8 +15,8 @@ export const loadAllHelpMenuCategories = async () => { } export const loadAllHelpMenuComponents = async () => { - const helpmenu = openticket.helpmenu - const generalConfig = openticket.configs.get("openticket:general") + const helpmenu = opendiscord.helpmenu + const generalConfig = opendiscord.configs.get("openticket:general") if (!generalConfig) return const prefix = generalConfig.data.prefix diff --git a/src/data/framework/languageLoader.ts b/src/data/framework/languageLoader.ts index f4094b0..922ab19 100644 --- a/src/data/framework/languageLoader.ts +++ b/src/data/framework/languageLoader.ts @@ -1,30 +1,30 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllLanguages = async () => { //register languages - openticket.languages.add(new api.ODJsonLanguage("openticket:custom","custom.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:english","english.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:dutch","dutch.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:portuguese","portuguese.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:czech","czech.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:german","german.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:catalan","catalan.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:hungarian","hungarian.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:spanish","spanish.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:romanian","romanian.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:ukrainian","ukrainian.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:indonesian","indonesian.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:italian","italian.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:estonian","estonian.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:finnish","finnish.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:danish","danish.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:thai","thai.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:turkish","turkish.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:french","french.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:arabic","arabic.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:hindi","hindi.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:lithuanian","lithuanian.json")) - openticket.languages.add(new api.ODJsonLanguage("openticket:polish","polish.json")) + 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")) /** 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 9c71352..a698e38 100644 --- a/src/data/framework/liveStatusLoader.ts +++ b/src/data/framework/liveStatusLoader.ts @@ -1,6 +1,6 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllLiveStatusSources = async () => { //DEFAULT DJDJ DEV - openticket.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("openticket: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 44eb881..8fc855a 100644 --- a/src/data/framework/permissionLoader.ts +++ b/src/data/framework/permissionLoader.ts @@ -1,76 +1,76 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" import * as discord from "discord.js" export const loadAllPermissions = async () => { - const generalConfig = openticket.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("openticket:general") if (!generalConfig) return - const mainServer = openticket.client.mainServer + const mainServer = opendiscord.client.mainServer if (!mainServer) return //DEVELOPER & OWNER - const developer = (await openticket.client.client.application.fetch()).owner + const developer = (await opendiscord.client.client.application.fetch()).owner if (developer instanceof discord.User){ - openticket.permissions.add(new api.ODPermission("openticket:developer-"+developer.id,"global-user","developer",developer)) + opendiscord.permissions.add(new api.ODPermission("openticket:developer-"+developer.id,"global-user","developer",developer)) }else if (developer instanceof discord.Team){ developer.members.forEach((member) => { - openticket.permissions.add(new api.ODPermission("openticket:developer-"+member.user.id,"global-user","developer",member.user)) + opendiscord.permissions.add(new api.ODPermission("openticket:developer-"+member.user.id,"global-user","developer",member.user)) }) } const owner = (await mainServer.members.fetch(mainServer.ownerId)).user - openticket.permissions.add(new api.ODPermission("openticket:owner-"+owner.id,"global-user","owner",owner)) + opendiscord.permissions.add(new api.ODPermission("openticket:owner-"+owner.id,"global-user","owner",owner)) //GLOBAL ADMINS generalConfig.data.globalAdmins.forEach(async (admin) => { const role = await mainServer.roles.fetch(admin) - if (!role) return openticket.log("Unable to register permission for global admin!","error",[ + if (!role) return opendiscord.log("Unable to register permission for global admin!","error",[ {key:"roleid",value:admin} ]) - openticket.permissions.add(new api.ODPermission("openticket:global-admin-"+admin,"global-role","admin",role)) + opendiscord.permissions.add(new api.ODPermission("openticket:global-admin-"+admin,"global-role","admin",role)) }) //TICKET ADMINS - await openticket.tickets.loopAll(async (ticket) => { + await opendiscord.tickets.loopAll(async (ticket) => { try { - const channel = await openticket.client.fetchGuildTextChannel(mainServer,ticket.id.value) + 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 : [] for (const admin of admins.concat(readAdmins)){ - if (openticket.permissions.exists("openticket:ticket-admin_"+ticket.id.value+"_"+admin)) return + if (opendiscord.permissions.exists("openticket:ticket-admin_"+ticket.id.value+"_"+admin)) return const role = await mainServer.roles.fetch(admin) - if (!role) return openticket.log("Unable to register permission for ticket admin!","error",[ + if (!role) return opendiscord.log("Unable to register permission for ticket admin!","error",[ {key:"roleid",value:admin} ]) - openticket.permissions.add(new api.ODPermission("openticket:ticket-admin_"+ticket.id.value+"_"+admin,"channel-role","support",role,channel)) + opendiscord.permissions.add(new api.ODPermission("openticket:ticket-admin_"+ticket.id.value+"_"+admin,"channel-role","support",role,channel)) } }catch(err){ process.emit("uncaughtException",err) - openticket.log("Ticket Admin Loading Permissions Error (see above)","error") + opendiscord.log("Ticket Admin Loading Permissions Error (see above)","error") } }) } export const addTicketPermissions = async (ticket:api.ODTicket) => { - const mainServer = openticket.client.mainServer + const mainServer = opendiscord.client.mainServer if (!mainServer) return - const channel = await openticket.client.fetchGuildTextChannel(mainServer,ticket.id.value) + 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 : [] for (const admin of admins.concat(readAdmins)){ - if (openticket.permissions.exists("openticket:ticket-admin_"+ticket.id.value+"_"+admin)) return + if (opendiscord.permissions.exists("openticket:ticket-admin_"+ticket.id.value+"_"+admin)) return const role = await mainServer.roles.fetch(admin) - if (!role) return openticket.log("Unable to register permission for ticket admin!","error",[ + if (!role) return opendiscord.log("Unable to register permission for ticket admin!","error",[ {key:"roleid",value:admin} ]) - openticket.permissions.add(new api.ODPermission("openticket:ticket-admin_"+ticket.id.value+"_"+admin,"channel-role","support",role,channel)) + opendiscord.permissions.add(new api.ODPermission("openticket:ticket-admin_"+ticket.id.value+"_"+admin,"channel-role","support",role,channel)) } } @@ -79,7 +79,7 @@ export const removeTicketPermissions = async (ticket:api.ODTicket) => { const readAdmins = ticket.option.exists("openticket:admins-readonly") ? ticket.option.get("openticket:admins-readonly").value : [] admins.concat(readAdmins).forEach(async (admin) => { - if (!openticket.permissions.exists("openticket:ticket-admin_"+ticket.id.value+"_"+admin)) return - openticket.permissions.remove("openticket:ticket-admin_"+ticket.id.value+"_"+admin) + if (!opendiscord.permissions.exists("openticket:ticket-admin_"+ticket.id.value+"_"+admin)) return + opendiscord.permissions.remove("openticket: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 7ddcac0..4338c5f 100644 --- a/src/data/framework/postLoader.ts +++ b/src/data/framework/postLoader.ts @@ -1,14 +1,14 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllPosts = async () => { - const generalConfig = openticket.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("openticket:general") if (!generalConfig) return - const transcriptConfig = openticket.configs.get("openticket:transcripts") + const transcriptConfig = opendiscord.configs.get("openticket:transcripts") if (!transcriptConfig) return //LOGS CHANNEL - if (generalConfig.data.system.logs.enabled) openticket.posts.add(new api.ODPost("openticket:logs",generalConfig.data.system.logs.channel)) + if (generalConfig.data.system.logs.enabled) opendiscord.posts.add(new api.ODPost("openticket:logs",generalConfig.data.system.logs.channel)) //TRANSCRIPTS CHANNEL - if (transcriptConfig.data.general.enabled && transcriptConfig.data.general.enableChannel) openticket.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("openticket: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 f990c17..39a5a84 100644 --- a/src/data/framework/progressBarLoader.ts +++ b/src/data/framework/progressBarLoader.ts @@ -1,4 +1,4 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllProgressBarRenderers = async () => { const defaultSettings: api.ODProgressBarRenderer_DefaultSettings = { @@ -25,43 +25,43 @@ export const loadAllProgressBarRenderers = async () => { //VALUE RENDERER const valueRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} valueRendererSettings.labelType = "value" - openticket.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:value-renderer",valueRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:value-renderer",valueRendererSettings)) //FRACTION RENDERER const fractionRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} fractionRendererSettings.labelType = "fraction" - openticket.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:fraction-renderer",fractionRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:fraction-renderer",fractionRendererSettings)) //PERCENTAGE RENDERER const percentageRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} percentageRendererSettings.labelType = "percentage" - openticket.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:percentage-renderer",percentageRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:percentage-renderer",percentageRendererSettings)) //TIME MS RENDERER const timeMsRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} timeMsRendererSettings.labelType = "time-ms" - openticket.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:time-ms-renderer",timeMsRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:time-ms-renderer",timeMsRendererSettings)) //TIME SEC RENDERER const timeSecRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} timeSecRendererSettings.labelType = "time-sec" - openticket.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:time-sec-renderer",timeSecRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:time-sec-renderer",timeSecRendererSettings)) //TIME MIN RENDERER const timeMinRendererSettings: api.ODProgressBarRenderer_DefaultSettings = {...defaultSettings} timeMinRendererSettings.labelType = "time-min" - openticket.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:time-min-renderer",timeMinRendererSettings)) + opendiscord.progressbars.renderers.add(new api.ODProgressBarRenderer_Default("openticket:time-min-renderer",timeMinRendererSettings)) } export const loadAllProgressBars = async () => { - const fractRenderer = openticket.progressbars.renderers.get("openticket:fraction-renderer") + const fractRenderer = opendiscord.progressbars.renderers.get("openticket:fraction-renderer") //SLASH COMMAND REMOVE (doesn't have correct amount yet) - openticket.progressbars.add(new api.ODManualProgressBar("openticket:slash-command-remove",fractRenderer.withAdditionalSettings({filledBarColor:"red"}),0,"max",null,"Commands Removed")) + opendiscord.progressbars.add(new api.ODManualProgressBar("openticket:slash-command-remove",fractRenderer.withAdditionalSettings({filledBarColor:"red"}),0,"max",null,"Commands Removed")) //SLASH COMMAND CREATE (doesn't have correct amount yet) - openticket.progressbars.add(new api.ODManualProgressBar("openticket:slash-command-create",fractRenderer.withAdditionalSettings({filledBarColor:"green"}),0,"max",null,"Commands Created")) + opendiscord.progressbars.add(new api.ODManualProgressBar("openticket:slash-command-create",fractRenderer.withAdditionalSettings({filledBarColor:"green"}),0,"max",null,"Commands Created")) //SLASH COMMAND UPDATE (doesn't have correct amount yet) - openticket.progressbars.add(new api.ODManualProgressBar("openticket:slash-command-update",fractRenderer.withAdditionalSettings({filledBarColor:"openticket"}),0,"max",null,"Commands Updated")) + opendiscord.progressbars.add(new api.ODManualProgressBar("openticket: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 8c5ea9d..48c4329 100644 --- a/src/data/framework/startScreenLoader.ts +++ b/src/data/framework/startScreenLoader.ts @@ -1,9 +1,9 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" import ansis from "ansis" export const loadAllStartScreenComponents = async () => { //LOGO - openticket.startscreen.add(new api.ODStartScreenLogoComponent("openticket:logo",1000,[ + opendiscord.startscreen.add(new api.ODStartScreenLogoComponent("openticket:logo",1000,[ " ██████╗ ██████╗ ███████╗███╗ ██╗ ████████╗██╗ ██████╗██╗ ██╗███████╗████████╗ ", " ██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ╚══██╔══╝██║██╔════╝██║ ██╔╝██╔════╝╚══██╔══╝ ", " ██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ ██║██║ █████╔╝ █████╗ ██║ ", @@ -13,35 +13,35 @@ export const loadAllStartScreenComponents = async () => { ],true,false)) //HEADER - const currentLanguageMetadata = openticket.languages.getLanguageMetadata() - openticket.startscreen.add(new api.ODStartScreenHeaderComponent("openticket:header",999,[ - {key:"Version",value:openticket.versions.get("openticket:version").toString()}, + const currentLanguageMetadata = opendiscord.languages.getLanguageMetadata() + opendiscord.startscreen.add(new api.ODStartScreenHeaderComponent("openticket:header",999,[ + {key:"Version",value:opendiscord.versions.get("openticket:version").toString()}, {key:"Support",value:"https://discord.dj-dj.be"}, {key:"Language",value:(currentLanguageMetadata ? currentLanguageMetadata.language : "Unknown")} ]," - ",{ align:"center", - width:openticket.startscreen.get("openticket:logo") + width:opendiscord.startscreen.get("openticket:logo") })) //FLAGS - openticket.startscreen.add(new api.ODStartScreenFlagsCategoryComponent("openticket:flags",4,openticket.flags.getAll())) + opendiscord.startscreen.add(new api.ODStartScreenFlagsCategoryComponent("openticket:flags",4,opendiscord.flags.getAll())) //PLUGINS - openticket.startscreen.add(new api.ODStartScreenPluginsCategoryComponent("openticket:plugins",3,openticket.plugins.getAll(),openticket.plugins.unknownCrashedPlugins)) + opendiscord.startscreen.add(new api.ODStartScreenPluginsCategoryComponent("openticket:plugins",3,opendiscord.plugins.getAll(),opendiscord.plugins.unknownCrashedPlugins)) //STATS - openticket.startscreen.add(new api.ODStartScreenPropertiesCategoryComponent("openticket:stats",2,"startup info",[ - {key:"status",value:ansis.bold(openticket.client.activity.getStatusType())+openticket.client.activity.text+" ("+openticket.client.activity.status+")"}, - {key:"options",value:"loaded "+ansis.bold(openticket.options.getLength().toString())+" options!"}, - {key:"panels",value:"loaded "+ansis.bold(openticket.panels.getLength().toString())+" panels!"}, - {key:"tickets",value:"loaded "+ansis.bold(openticket.tickets.getLength().toString())+" tickets!"}, - {key:"roles",value:"loaded "+ansis.bold(openticket.roles.getLength().toString())+" roles!"}, - {key:"help",value:ansis.bold(openticket.configs.get("openticket:general").data.prefix+"help")+" or "+ansis.bold("/help")} + opendiscord.startscreen.add(new api.ODStartScreenPropertiesCategoryComponent("openticket: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")} ])) //LIVESTATUS - openticket.startscreen.add(new api.ODStartScreenLiveStatusCategoryComponent("openticket:livestatus",1,openticket.livestatus)) + opendiscord.startscreen.add(new api.ODStartScreenLiveStatusCategoryComponent("openticket:livestatus",1,opendiscord.livestatus)) //LOGS - openticket.startscreen.add(new api.ODStartScreenLogCategoryComponent("openticket:logs",0)) + opendiscord.startscreen.add(new api.ODStartScreenLogCategoryComponent("openticket:logs",0)) } \ No newline at end of file diff --git a/src/data/framework/statLoader.ts b/src/data/framework/statLoader.ts index a095bec..22f5505 100644 --- a/src/data/framework/statLoader.ts +++ b/src/data/framework/statLoader.ts @@ -1,8 +1,8 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" import * as discord from "discord.js" -const stats = openticket.stats -const lang = openticket.languages +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")))) @@ -13,7 +13,7 @@ export const loadAllStatScopes = async () => { } export const loadAllStats = async () => { - const generalConfig = openticket.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("openticket:general") if (!generalConfig) return const global = stats.get("openticket:global") @@ -34,10 +34,10 @@ export const loadAllStats = async () => { const system = stats.get("openticket:system") if (system){ system.add(new api.ODDynamicStat("openticket:startup-date",1,() => { - return lang.getTranslation("params.uppercase.startupDate")+": "+discord.time(openticket.processStartupDate,"f") + 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")+": `"+openticket.versions.get("openticket:version").toString()+"`" + return lang.getTranslation("params.uppercase.version")+": `"+opendiscord.versions.get("openticket:version").toString()+"`" })) } @@ -51,7 +51,7 @@ export const loadAllStats = async () => { const scopeMember = await guild.members.fetch(scopeId) if (!scopeMember) return "" - const permissions = await openticket.permissions.getPermissions(scopeMember.user,channel,guild) + const permissions = await opendiscord.permissions.getPermissions(scopeMember.user,channel,guild) if (permissions.type == "developer") return lang.getTranslation("params.uppercase.role")+": 💻 `Developer`" //TODO TRANSLATION!!! if (permissions.type == "owner") return lang.getTranslation("params.uppercase.role")+": 👑 `Server Owner`" //TODO TRANSLATION!!! if (permissions.type == "admin") return lang.getTranslation("params.uppercase.role")+": 💼 `Server Admin`" //TODO TRANSLATION!!! @@ -79,7 +79,7 @@ export const loadAllStats = async () => { return lang.getTranslation("params.uppercase.ticket")+": "+discord.channelMention(scopeId) })) ticket.add(new api.ODDynamicStat("openticket:status",4,async (scopeId,guild,channel,user) => { - const ticket = openticket.tickets.get(scopeId) + const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" const closed = ticket.exists("openticket:closed") ? ticket.get("openticket:closed").value : false @@ -87,28 +87,28 @@ export const loadAllStats = async () => { 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) => { - const ticket = openticket.tickets.get(scopeId) + const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" const claimed = ticket.exists("openticket:claimed") ? ticket.get("openticket: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) => { - const ticket = openticket.tickets.get(scopeId) + const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" const pinned = ticket.exists("openticket:pinned") ? ticket.get("openticket: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) => { - const ticket = openticket.tickets.get(scopeId) + const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" const rawDate = ticket.get("openticket: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) => { - const ticket = openticket.tickets.get(scopeId) + const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" const creator = ticket.get("openticket:opened-by").value @@ -119,7 +119,7 @@ export const loadAllStats = async () => { const participants = stats.get("openticket:participants") if (participants){ participants.add(new api.ODDynamicStat("openticket:participants",0,async (scopeId,guild,channel,user) => { - const ticket = openticket.tickets.get(scopeId) + const ticket = opendiscord.tickets.get(scopeId) if (!ticket) return "" const participants = ticket.exists("openticket:participants") ? ticket.get("openticket:participants").value : [] diff --git a/src/data/openticket/blacklistLoader.ts b/src/data/openticket/blacklistLoader.ts index 6676b98..25e6d3e 100644 --- a/src/data/openticket/blacklistLoader.ts +++ b/src/data/openticket/blacklistLoader.ts @@ -1,11 +1,11 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllBlacklistedUsers = async () => { - const userDatabase = openticket.databases.get("openticket:users") + const userDatabase = opendiscord.databases.get("openticket:users") if (!userDatabase) return const users = await userDatabase.getCategory("openticket:blacklist") ?? [] users.forEach((user) => { - if (typeof user.value == "string" || user.value === null) openticket.blacklist.add(new api.ODBlacklist(user.key,user.value)) + if (typeof user.value == "string" || user.value === null) opendiscord.blacklist.add(new api.ODBlacklist(user.key,user.value)) }) } \ No newline at end of file diff --git a/src/data/openticket/optionLoader.ts b/src/data/openticket/optionLoader.ts index 6e4bd3c..138ba95 100644 --- a/src/data/openticket/optionLoader.ts +++ b/src/data/openticket/optionLoader.ts @@ -1,47 +1,47 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllOptions = async () => { - const optionConfig = openticket.configs.get("openticket:options") + const optionConfig = opendiscord.configs.get("openticket:options") if (!optionConfig) return optionConfig.data.forEach((option) => { if (option.type == "ticket"){ const loadedOption = loadTicketOption(option) - openticket.options.add(loadedOption) - openticket.options.suffix.add(loadTicketOptionSuffix(loadedOption)) + opendiscord.options.add(loadedOption) + opendiscord.options.suffix.add(loadTicketOptionSuffix(loadedOption)) }else if (option.type == "website"){ - openticket.options.add(loadWebsiteOption(option)) + opendiscord.options.add(loadWebsiteOption(option)) }else if (option.type == "role"){ - openticket.options.add(loadRoleOption(option)) + opendiscord.options.add(loadRoleOption(option)) } }) //update options on config reload optionConfig.onReload(async () => { //clear previous options & suffixes - await openticket.options.loopAll((data,id) => {openticket.options.remove(id)}) - await openticket.options.suffix.loopAll((data,id) => {openticket.options.suffix.remove(id)}) + await opendiscord.options.loopAll((data,id) => {opendiscord.options.remove(id)}) + await opendiscord.options.suffix.loopAll((data,id) => {opendiscord.options.suffix.remove(id)}) //add new options optionConfig.data.forEach((option) => { if (option.type == "ticket"){ const loadedOption = loadTicketOption(option) - openticket.options.add(loadedOption) - openticket.options.suffix.add(loadTicketOptionSuffix(loadedOption)) + opendiscord.options.add(loadedOption) + opendiscord.options.suffix.add(loadTicketOptionSuffix(loadedOption)) }else if (option.type == "website"){ - openticket.options.add(loadWebsiteOption(option)) + opendiscord.options.add(loadWebsiteOption(option)) }else if (option.type == "role"){ - openticket.options.add(loadRoleOption(option)) + opendiscord.options.add(loadRoleOption(option)) } }) //update options in tickets - await openticket.tickets.loopAll((ticket) => { + await opendiscord.tickets.loopAll((ticket) => { const optionId = ticket.option.id - const option = openticket.options.get(optionId) + const option = opendiscord.options.get(optionId) if (option && option instanceof api.ODTicketOption) ticket.option = option else{ - openticket.log("Unable to move ticket to unexisting option due to config reload!","warning",[ + opendiscord.log("Unable to move ticket to unexisting option due to config reload!","warning",[ {key:"channelid",value:ticket.id.value}, {key:"option",value:optionId.value} ]) @@ -49,7 +49,7 @@ export const loadAllOptions = async () => { }) //update roles on config reload - await openticket.roles.loopAll((data,id) => {openticket.roles.remove(id)}) + await opendiscord.roles.loopAll((data,id) => {opendiscord.roles.remove(id)}) await (await import("./roleLoader.js")).loadAllRoles() }) } @@ -134,7 +134,7 @@ export const loadRoleOption = (opt:api.ODJsonConfig_DefaultOptionRoleType): api. export const loadTicketOptionSuffix = (option:api.ODTicketOption): api.ODOptionSuffix => { const mode = option.get("openticket:channel-suffix").value - const globalDatabase = openticket.databases.get("openticket:global") + const globalDatabase = opendiscord.databases.get("openticket: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 cb86bdf..0b55c67 100644 --- a/src/data/openticket/panelLoader.ts +++ b/src/data/openticket/panelLoader.ts @@ -1,22 +1,22 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" import * as discord from "discord.js" export const loadAllPanels = async () => { - const panelConfig = openticket.configs.get("openticket:panels") + const panelConfig = opendiscord.configs.get("openticket:panels") if (!panelConfig) return panelConfig.data.forEach((panel) => { - openticket.panels.add(loadPanel(panel)) + opendiscord.panels.add(loadPanel(panel)) }) //update panels on config reload panelConfig.onReload(async () => { //clear previous panels - await openticket.panels.loopAll((data,id) => {openticket.panels.remove(id)}) + await opendiscord.panels.loopAll((data,id) => {opendiscord.panels.remove(id)}) //add new panels panelConfig.data.forEach((panel) => { - openticket.panels.add(loadPanel(panel)) + opendiscord.panels.add(loadPanel(panel)) }) }) } @@ -53,7 +53,7 @@ export function describePanelOptions(mode:"fields"|"text", panel:api.ODPanel): { let websiteOnly = true let roleOnly = true panel.get("openticket:options").value.forEach((id) => { - const opt = openticket.options.get(id) + const opt = opendiscord.options.get(id) if (opt){ if (opt instanceof api.ODTicketOption){ options.push(opt) diff --git a/src/data/openticket/questionLoader.ts b/src/data/openticket/questionLoader.ts index 4b66b8a..7ee9a42 100644 --- a/src/data/openticket/questionLoader.ts +++ b/src/data/openticket/questionLoader.ts @@ -1,28 +1,28 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllQuestions = async () => { - const questionConfig = openticket.configs.get("openticket:questions") + const questionConfig = opendiscord.configs.get("openticket:questions") if (!questionConfig) return questionConfig.data.forEach((question) => { if (question.type == "short"){ - openticket.questions.add(loadShortQuestion(question)) + opendiscord.questions.add(loadShortQuestion(question)) }else if (question.type == "paragraph"){ - openticket.questions.add(loadParagraphQuestion(question)) + opendiscord.questions.add(loadParagraphQuestion(question)) } }) //update questions on config reload questionConfig.onReload(async () => { //clear previous questions - await openticket.questions.loopAll((data,id) => {openticket.questions.remove(id)}) + await opendiscord.questions.loopAll((data,id) => {opendiscord.questions.remove(id)}) //add new questions questionConfig.data.forEach((question) => { if (question.type == "short"){ - openticket.questions.add(loadShortQuestion(question)) + opendiscord.questions.add(loadShortQuestion(question)) }else if (question.type == "paragraph"){ - openticket.questions.add(loadParagraphQuestion(question)) + opendiscord.questions.add(loadParagraphQuestion(question)) } }) }) diff --git a/src/data/openticket/roleLoader.ts b/src/data/openticket/roleLoader.ts index 8383104..0714fc3 100644 --- a/src/data/openticket/roleLoader.ts +++ b/src/data/openticket/roleLoader.ts @@ -1,9 +1,9 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" export const loadAllRoles = async () => { - await openticket.options.loopAll((opt) => { + await opendiscord.options.loopAll((opt) => { if (opt instanceof api.ODRoleOption){ - openticket.roles.add(loadRole(opt)) + opendiscord.roles.add(loadRole(opt)) } }) } diff --git a/src/data/openticket/ticketLoader.ts b/src/data/openticket/ticketLoader.ts index b8e475f..9432b13 100644 --- a/src/data/openticket/ticketLoader.ts +++ b/src/data/openticket/ticketLoader.ts @@ -1,16 +1,16 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" -const optionDatabase = openticket.databases.get("openticket:options") +const optionDatabase = opendiscord.databases.get("openticket:options") export const loadAllTickets = async () => { - const ticketDatabase = openticket.databases.get("openticket:tickets") + const ticketDatabase = opendiscord.databases.get("openticket:tickets") if (!ticketDatabase) return const tickets = await ticketDatabase.getCategory("openticket:ticket") if (!tickets) return for (const ticket of tickets){ try { - openticket.tickets.add(await loadTicket(ticket.value)) + opendiscord.tickets.add(await loadTicket(ticket.value)) }catch (err){ process.emit("uncaughtException",err) process.emit("uncaughtException",new api.ODSystemError("Failed to load ticket from database! => id: "+ticket.key+"\n ===> "+err)) @@ -20,14 +20,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 configOption = openticket.options.get(ticket.option) + 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(openticket.versions.get("openticket:version"))) - else if (backupOption) openticket.options.add(backupOption) + if (configOption) await optionDatabase.set("openticket:used-option",configOption.id.value,configOption.toJson(opendiscord.versions.get("openticket:version"))) + else if (backupOption) opendiscord.options.add(backupOption) else throw new api.ODSystemError("Unable to use backup option! Normal option not found in config!") //load ticket & option diff --git a/src/data/openticket/transcriptLoader.ts b/src/data/openticket/transcriptLoader.ts index 3430b91..16c437e 100644 --- a/src/data/openticket/transcriptLoader.ts +++ b/src/data/openticket/transcriptLoader.ts @@ -1,28 +1,28 @@ -import {openticket, api, utilities} from "../../index" +import {opendiscord, api, utilities} from "../../index" import * as discord from "discord.js" -const collector = openticket.transcripts.collector -const messages = openticket.builders.messages -const transcriptConfig = openticket.configs.get("openticket:transcripts") +const collector = opendiscord.transcripts.collector +const messages = opendiscord.builders.messages +const transcriptConfig = opendiscord.configs.get("openticket:transcripts") const textConfig = transcriptConfig.data.textTranscriptStyle const htmlVersion = Buffer.from("b3BlbnRpY2tldFRSQU5TQ1JJUFQxMjM0","base64").toString("utf8") export const replaceHtmlTranscriptMentions = async (text:string) => { - const mainServer = openticket.client.mainServer + const mainServer = opendiscord.client.mainServer if (!mainServer) throw new api.ODSystemError("Unknown mainServer! => Required for mention replacement in Html Transcripts!") const usertext = await utilities.asyncReplace(text,/<@([0-9]+)>/g,async (match,id) => { - const member = await openticket.client.fetchGuildMember(mainServer,id) + const member = await opendiscord.client.fetchGuildMember(mainServer,id) return (member ? "<@"+(member.user.displayName).replace(/\s/g," ")+"> " : id) //replace with html spaces => BUG: whitespace CSS isn't "pre-wrap" }) const channeltext = await utilities.asyncReplace(usertext,/<#([0-9]+)>/g,async (match,id) => { - const channel = await openticket.client.fetchGuildChannel(mainServer,id) + const channel = await opendiscord.client.fetchGuildChannel(mainServer,id) return (channel ? "<#"+channel.name.replace(/\s/g," ")+"> " : id) //replace with html spaces => BUG: whitespace CSS isn't "pre-wrap" }) const roletext = await utilities.asyncReplace(channeltext,/<@&([0-9]+)>/g,async (match,id) => { - const role = await openticket.client.fetchGuildRole(mainServer,id) + const role = await opendiscord.client.fetchGuildRole(mainServer,id) let text = role ? role.name.replace(/\s/g," ") : id let color = role ? ((role.hexColor == "#000000") ? "regular" : role.hexColor) : "regular" //when hex color is #000000 => render as default return "<@&"+text+"::"+color+"> " @@ -44,7 +44,7 @@ export const loadAllTranscriptCompilers = async () => { } //TEXT COMPILER - openticket.transcripts.add(new api.ODTranscriptCompiler<{contents:string}>("openticket:text-compiler",undefined,async (ticket,channel,user) => { + opendiscord.transcripts.add(new api.ODTranscriptCompiler<{contents:string}>("openticket: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} @@ -108,10 +108,10 @@ export const loadAllTranscriptCompilers = async () => { 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 creator = await openticket.tickets.getTicketUser(ticket,"creator") - const closer = await openticket.tickets.getTicketUser(ticket,"closer") - const claimer = await openticket.tickets.getTicketUser(ticket,"claimer") - const pinner = await openticket.tickets.getTicketUser(ticket,"pinner") + const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") + const closer = await opendiscord.tickets.getTicketUser(ticket,"closer") + const claimer = await opendiscord.tickets.getTicketUser(ticket,"claimer") + const pinner = await opendiscord.tickets.getTicketUser(ticket,"pinner") if (textConfig.includeStats){ //TODO TRANSLATION!!! @@ -164,21 +164,21 @@ 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:openticket.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:openticket.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:openticket.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:openticket.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:openticket.transcripts.get("openticket:text-compiler")}) + 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")}) } })) //HTML COMPILER - openticket.transcripts.add(new api.ODTranscriptCompiler<{url:string}>("openticket:html-compiler",async (ticket,channel,user) => { + opendiscord.transcripts.add(new api.ODTranscriptCompiler<{url:string}>("openticket: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() if (!res || res.status != 200 || !res.body){ - openticket.debugfile.writeNote("HTML Transcripts Error => status: "+res.status+", body:\n"+res.body) + opendiscord.debugfile.writeNote("HTML Transcripts Error => status: "+res.status+", body:\n"+res.body) process.emit("uncaughtException",new api.ODSystemError("HTML Transcripts INIT_COMMUNICATON error! (check otdebug.txt for details)")) return {success:false,errorReason:"HTML Transcripts are currently unavailable!",pendingMessage:null} } @@ -186,12 +186,12 @@ export const loadAllTranscriptCompilers = async () => { const data = JSON.parse(res.body) if (!data || data["v2"] != "online") return {success:false,errorReason:"HTML Transcripts are currently unavailable due to maintenance!",pendingMessage:null} }catch{ - openticket.debugfile.writeNote("HTML Transcripts Error => unable to parse status! body:\n"+res.body) + opendiscord.debugfile.writeNote("HTML Transcripts Error => unable to parse status! body:\n"+res.body) process.emit("uncaughtException",new api.ODSystemError("HTML Transcripts INIT_STATUS_PARSE error! (check otdebug.txt for details)")) 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:openticket.transcripts.get("openticket:html-compiler"),remaining:16000})} + 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})} },async (ticket,channel,user) => { //COMPILE const rawMessages = await collector.collectAllMessages(ticket) @@ -349,19 +349,19 @@ export const loadAllTranscriptCompilers = async () => { const dss = transcriptConfig.data.htmlTranscriptStyle.stats const dsf = transcriptConfig.data.htmlTranscriptStyle.favicon - const creator = await openticket.tickets.getTicketUser(ticket,"creator") - const claimer = await openticket.tickets.getTicketUser(ticket,"claimer") - const closer = await openticket.tickets.getTicketUser(ticket,"closer") + const creator = await opendiscord.tickets.getTicketUser(ticket,"creator") + const claimer = await opendiscord.tickets.getTicketUser(ticket,"claimer") + const closer = await opendiscord.tickets.getTicketUser(ticket,"closer") const htmlFinal: api.ODTranscriptHtmlV2Data = { version:"2", - otversion:openticket.versions.get("openticket:version").toString(true), + otversion:opendiscord.versions.get("openticket:version").toString(true), bot:{ - name:openticket.client.client.user.displayName, - id:openticket.client.client.user.id, - pfp:openticket.client.client.user.displayAvatarURL({extension:"png"}), + name:opendiscord.client.client.user.displayName, + id:opendiscord.client.client.user.id, + pfp:opendiscord.client.client.user.displayAvatarURL({extension:"png"}), }, - language:openticket.languages.getLanguageMetadata()?.language ?? "english", + language:opendiscord.languages.getLanguageMetadata()?.language ?? "english", style:{ background:{ backgroundData:(dsb.backgroundImage == "") ? dsb.backgroundColor : dsb.backgroundImage, @@ -426,12 +426,12 @@ export const loadAllTranscriptCompilers = async () => { customCredits:{ enable:false, replaceText:"Powered By Open Ticket!", - replaceURL:"https://openticket.dj-dj.be", + replaceURL:"https://opendiscord.dj-dj.be", enableReportBug:true }, customHeaderUrl:{ enabled:false, - url:"https://openticket.dj-dj.be", + url:"https://opendiscord.dj-dj.be", text:"Hello!" }, customTranscriptUrl:{ @@ -454,17 +454,17 @@ export const loadAllTranscriptCompilers = async () => { if (res.status == 429) return {ticket,channel,user,success:false,errorReason:"Failed to upload HTML Transcripts! (Ratelimit)\nTry again in a few minutes!",messages,data:null} //unknown status error - openticket.debugfile.writeNote("HTML Transcripts Error => status: "+res.status+", body:\n"+res.body) + opendiscord.debugfile.writeNote("HTML Transcripts Error => status: "+res.status+", body:\n"+res.body) return {ticket,channel,user,success:false,errorReason:"Failed to upload HTML Transcripts! (Unknown Error)",messages,data:null} } //check body try{ var data: api.ODTranscriptHtmlV2Response = JSON.parse(res.body) if (!data || data["status"] != "success"){ - openticket.debugfile.writeNote("HTML Transcripts Error => status: "+res.status+", body:\n"+res.body) + opendiscord.debugfile.writeNote("HTML Transcripts Error => status: "+res.status+", body:\n"+res.body) return {ticket,channel,user,success:false,errorReason:"Failed to upload HTML Transcripts! (Server 500 Error)",messages,data:null}} }catch{ - openticket.debugfile.writeNote("HTML Transcripts Error => status: "+res.status+", body:\n"+res.body) + opendiscord.debugfile.writeNote("HTML Transcripts Error => status: "+res.status+", body:\n"+res.body) return {ticket,channel,user,success:false,errorReason:"Failed to upload HTML Transcripts! (JSON parse error)",messages,data:null} } @@ -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:openticket.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:openticket.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:openticket.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:openticket.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:openticket.transcripts.get("openticket:html-compiler")}) + 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")}) } })) } diff --git a/src/index.ts b/src/index.ts index b1f87cf..b5f5edc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -35,8 +35,8 @@ */ //initialize API & check npm libraries -import { api, openticket, utilities } from "./core/startup/init" -export { api, openticket, utilities } from "./core/startup/init" +import { api, opendiscord, utilities } from "./core/startup/init" +export { api, opendiscord, utilities } from "./core/startup/init" import ansis from "ansis" /**The main sequence of Open Ticket. Runs `async` */ @@ -47,27 +47,27 @@ const main = async () => { //error handling system process.on("uncaughtException",async (error,origin) => { try{ - await openticket.events.get("onErrorHandling").emit([error,origin]) - if (openticket.defaults.getDefault("errorHandling")){ + await opendiscord.events.get("onErrorHandling").emit([error,origin]) + if (opendiscord.defaults.getDefault("errorHandling")){ //custom error messages for known errors if (error.message.toLowerCase().includes("used disallowed intents")){ //invalid intents - openticket.log("Open Ticket doesn't work without Privileged Gateway Intents enabled!","error") - openticket.log("Enable them in the discord developer portal!","info") + opendiscord.log("Open Ticket doesn't work without Privileged Gateway Intents enabled!","error") + opendiscord.log("Enable them in the discord developer portal!","info") console.log("\n") process.exit(1) }else if (error.message.toLowerCase().includes("invalid discord bot token provided")){ //invalid token - openticket.log("An invalid discord auth token was provided!","error") - openticket.log("Check the config if you have inserted the bot token correctly!","info") + opendiscord.log("An invalid discord auth token was provided!","error") + opendiscord.log("Check the config if you have inserted the bot token correctly!","info") console.log("\n") process.exit(1) }else{ //unknown error const errmsg = new api.ODError(error,origin) - openticket.log(errmsg) - if (openticket.defaults.getDefault("crashOnError")) process.exit(1) - await openticket.events.get("afterErrorHandling").emit([error,origin,errmsg]) + opendiscord.log(errmsg) + if (opendiscord.defaults.getDefault("crashOnError")) process.exit(1) + await opendiscord.events.get("afterErrorHandling").emit([error,origin,errmsg]) } } @@ -80,215 +80,215 @@ const main = async () => { await (await import("./core/startup/manageMigration.js")).loadVersionMigrationSystem() //load plugins - if (openticket.defaults.getDefault("pluginLoading")){ + if (opendiscord.defaults.getDefault("pluginLoading")){ await (await import("./core/startup/pluginLauncher.js")).loadAllPlugins() } - await openticket.events.get("afterPluginsLoaded").emit([openticket.plugins]) + await opendiscord.events.get("afterPluginsLoaded").emit([opendiscord.plugins]) //load plugin classes - openticket.log("Loading plugin classes...","system") - if (openticket.defaults.getDefault("pluginClassLoading")){ + opendiscord.log("Loading plugin classes...","system") + if (opendiscord.defaults.getDefault("pluginClassLoading")){ } - await openticket.events.get("onPluginClassLoad").emit([openticket.plugins.classes,openticket.plugins]) - await openticket.events.get("afterPluginClassesLoaded").emit([openticket.plugins.classes,openticket.plugins]) + await opendiscord.events.get("onPluginClassLoad").emit([opendiscord.plugins.classes,opendiscord.plugins]) + await opendiscord.events.get("afterPluginClassesLoaded").emit([opendiscord.plugins.classes,opendiscord.plugins]) //load flags - openticket.log("Loading flags...","system") - if (openticket.defaults.getDefault("flagLoading")){ + opendiscord.log("Loading flags...","system") + if (opendiscord.defaults.getDefault("flagLoading")){ await (await import("./data/framework/flagLoader.js")).loadAllFlags() } - await openticket.events.get("onFlagLoad").emit([openticket.flags]) - await openticket.events.get("afterFlagsLoaded").emit([openticket.flags]) + await opendiscord.events.get("onFlagLoad").emit([opendiscord.flags]) + await opendiscord.events.get("afterFlagsLoaded").emit([opendiscord.flags]) //initiate flags - await openticket.events.get("onFlagInit").emit([openticket.flags]) - if (openticket.defaults.getDefault("flagInitiating")){ - await openticket.flags.init() - openticket.debugfile.writeText("\n[ENABLED FLAGS]:\n"+openticket.flags.getFiltered((flag) => (flag.value == true)).map((flag) => flag.id.value).join("\n")+"\n") - await openticket.events.get("afterFlagsInitiated").emit([openticket.flags]) + await opendiscord.events.get("onFlagInit").emit([opendiscord.flags]) + if (opendiscord.defaults.getDefault("flagInitiating")){ + await opendiscord.flags.init() + opendiscord.debugfile.writeText("\n[ENABLED FLAGS]:\n"+opendiscord.flags.getFiltered((flag) => (flag.value == true)).map((flag) => flag.id.value).join("\n")+"\n") + await opendiscord.events.get("afterFlagsInitiated").emit([opendiscord.flags]) } //load debug - if (openticket.defaults.getDefault("debugLoading")){ - const debugFlag = openticket.flags.get("openticket:debug") - openticket.debug.visible = (debugFlag) ? debugFlag.value : false + if (opendiscord.defaults.getDefault("debugLoading")){ + const debugFlag = opendiscord.flags.get("openticket:debug") + opendiscord.debug.visible = (debugFlag) ? debugFlag.value : false } //load progress bar renderers - openticket.log("Loading progress bars...","system") - if (openticket.defaults.getDefault("progressBarRendererLoading")){ + opendiscord.log("Loading progress bars...","system") + if (opendiscord.defaults.getDefault("progressBarRendererLoading")){ await (await import("./data/framework/progressBarLoader.js")).loadAllProgressBarRenderers() } - await openticket.events.get("onProgressBarRendererLoad").emit([openticket.progressbars.renderers]) - await openticket.events.get("afterProgressBarRenderersLoaded").emit([openticket.progressbars.renderers]) + await opendiscord.events.get("onProgressBarRendererLoad").emit([opendiscord.progressbars.renderers]) + await opendiscord.events.get("afterProgressBarRenderersLoaded").emit([opendiscord.progressbars.renderers]) //load progress bars - if (openticket.defaults.getDefault("progressBarLoading")){ + if (opendiscord.defaults.getDefault("progressBarLoading")){ await (await import("./data/framework/progressBarLoader.js")).loadAllProgressBars() } - await openticket.events.get("onProgressBarLoad").emit([openticket.progressbars]) - await openticket.events.get("afterProgressBarsLoaded").emit([openticket.progressbars]) + await opendiscord.events.get("onProgressBarLoad").emit([opendiscord.progressbars]) + await opendiscord.events.get("afterProgressBarsLoaded").emit([opendiscord.progressbars]) //load config - openticket.log("Loading configs...","system") - if (openticket.defaults.getDefault("configLoading")){ + opendiscord.log("Loading configs...","system") + if (opendiscord.defaults.getDefault("configLoading")){ await (await import("./data/framework/configLoader.js")).loadAllConfigs() } - await openticket.events.get("onConfigLoad").emit([openticket.configs]) - await openticket.events.get("afterConfigsLoaded").emit([openticket.configs]) + await opendiscord.events.get("onConfigLoad").emit([opendiscord.configs]) + await opendiscord.events.get("afterConfigsLoaded").emit([opendiscord.configs]) //initiate config - await openticket.events.get("onConfigInit").emit([openticket.configs]) - if (openticket.defaults.getDefault("configInitiating")){ - await openticket.configs.init() - await openticket.events.get("afterConfigsInitiated").emit([openticket.configs]) + await opendiscord.events.get("onConfigInit").emit([opendiscord.configs]) + if (opendiscord.defaults.getDefault("configInitiating")){ + await opendiscord.configs.init() + await opendiscord.events.get("afterConfigsInitiated").emit([opendiscord.configs]) } //UTILITY CONFIG - const generalConfig = openticket.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("openticket:general") - if (openticket.defaults.getDefault("emojiTitleStyleLoading")){ + if (opendiscord.defaults.getDefault("emojiTitleStyleLoading")){ //set emoji style based on config - openticket.defaults.setDefault("emojiTitleStyle",generalConfig.data.system.emojiStyle) + opendiscord.defaults.setDefault("emojiTitleStyle",generalConfig.data.system.emojiStyle) } //load database - openticket.log("Loading databases...","system") - if (openticket.defaults.getDefault("databaseLoading")){ + opendiscord.log("Loading databases...","system") + if (opendiscord.defaults.getDefault("databaseLoading")){ await (await import("./data/framework/databaseLoader.js")).loadAllDatabases() } - await openticket.events.get("onDatabaseLoad").emit([openticket.databases]) - await openticket.events.get("afterDatabasesLoaded").emit([openticket.databases]) + await opendiscord.events.get("onDatabaseLoad").emit([opendiscord.databases]) + await opendiscord.events.get("afterDatabasesLoaded").emit([opendiscord.databases]) //initiate database - await openticket.events.get("onDatabaseInit").emit([openticket.databases]) - if (openticket.defaults.getDefault("databaseInitiating")){ - await openticket.databases.init() - await openticket.events.get("afterDatabasesInitiated").emit([openticket.databases]) + await opendiscord.events.get("onDatabaseInit").emit([opendiscord.databases]) + if (opendiscord.defaults.getDefault("databaseInitiating")){ + await opendiscord.databases.init() + await opendiscord.events.get("afterDatabasesInitiated").emit([opendiscord.databases]) } //load sessions - openticket.log("Loading sessions...","system") - if (openticket.defaults.getDefault("sessionLoading")){ + opendiscord.log("Loading sessions...","system") + if (opendiscord.defaults.getDefault("sessionLoading")){ } - await openticket.events.get("onSessionLoad").emit([openticket.sessions]) - await openticket.events.get("afterSessionsLoaded").emit([openticket.sessions]) + await opendiscord.events.get("onSessionLoad").emit([opendiscord.sessions]) + await opendiscord.events.get("afterSessionsLoaded").emit([opendiscord.sessions]) //load language - openticket.log("Loading languages...","system") - if (openticket.defaults.getDefault("languageLoading")){ + opendiscord.log("Loading languages...","system") + if (opendiscord.defaults.getDefault("languageLoading")){ await (await import("./data/framework/languageLoader.js")).loadAllLanguages() } - await openticket.events.get("onLanguageLoad").emit([openticket.languages]) - await openticket.events.get("afterLanguagesLoaded").emit([openticket.languages]) + await opendiscord.events.get("onLanguageLoad").emit([opendiscord.languages]) + await opendiscord.events.get("afterLanguagesLoaded").emit([opendiscord.languages]) //initiate language - await openticket.events.get("onLanguageInit").emit([openticket.languages]) - if (openticket.defaults.getDefault("languageInitiating")){ - await openticket.languages.init() - await openticket.events.get("afterLanguagesInitiated").emit([openticket.languages]) + await opendiscord.events.get("onLanguageInit").emit([opendiscord.languages]) + if (opendiscord.defaults.getDefault("languageInitiating")){ + await opendiscord.languages.init() + await opendiscord.events.get("afterLanguagesInitiated").emit([opendiscord.languages]) //add available languages to list for config checker - const languageList = openticket.defaults.getDefault("languageList") - const languageIds = openticket.languages.getIds().map((id) => { + const languageList = opendiscord.defaults.getDefault("languageList") + const languageIds = opendiscord.languages.getIds().map((id) => { if (id.value.startsWith("openticket:")){ //is open ticket language => return without prefix return id.value.split("openticket:")[1] }else return id.value }) languageList.push(...languageIds) - openticket.defaults.setDefault("languageList",languageList) + opendiscord.defaults.setDefault("languageList",languageList) } //select language - await openticket.events.get("onLanguageSelect").emit([openticket.languages]) - if (openticket.defaults.getDefault("languageSelection")){ + await opendiscord.events.get("onLanguageSelect").emit([opendiscord.languages]) + if (opendiscord.defaults.getDefault("languageSelection")){ //set current language const languageId = (generalConfig?.data?.language) ? generalConfig.data.language : "english" if (languageId.includes(":")){ - openticket.languages.setCurrentLanguage(languageId) + opendiscord.languages.setCurrentLanguage(languageId) }else{ - openticket.languages.setCurrentLanguage("openticket:"+languageId) + opendiscord.languages.setCurrentLanguage("openticket:"+languageId) } //set backup language - const backupLanguageId = openticket.defaults.getDefault("backupLanguage") - if (openticket.languages.exists(backupLanguageId)){ - openticket.languages.setBackupLanguage(backupLanguageId) + const backupLanguageId = opendiscord.defaults.getDefault("backupLanguage") + if (opendiscord.languages.exists(backupLanguageId)){ + opendiscord.languages.setBackupLanguage(backupLanguageId) }else throw new api.ODSystemError("Unknown backup language '"+backupLanguageId+"'!") - await openticket.events.get("afterLanguagesSelected").emit([openticket.languages.get(languageId),openticket.languages.get(backupLanguageId),openticket.languages]) + await opendiscord.events.get("afterLanguagesSelected").emit([opendiscord.languages.get(languageId),opendiscord.languages.get(backupLanguageId),opendiscord.languages]) } //load config checker - openticket.log("Loading config checker...","system") - if (openticket.defaults.getDefault("checkerLoading")){ + opendiscord.log("Loading config checker...","system") + if (opendiscord.defaults.getDefault("checkerLoading")){ await (await import("./data/framework/checkerLoader.js")).loadAllConfigCheckers() } - await openticket.events.get("onCheckerLoad").emit([openticket.checkers]) - await openticket.events.get("afterCheckersLoaded").emit([openticket.checkers]) + await opendiscord.events.get("onCheckerLoad").emit([opendiscord.checkers]) + await opendiscord.events.get("afterCheckersLoaded").emit([opendiscord.checkers]) //load config checker functions - if (openticket.defaults.getDefault("checkerFunctionLoading")){ + if (opendiscord.defaults.getDefault("checkerFunctionLoading")){ await (await import("./data/framework/checkerLoader.js")).loadAllConfigCheckerFunctions() } - await openticket.events.get("onCheckerFunctionLoad").emit([openticket.checkers.functions,openticket.checkers]) - await openticket.events.get("afterCheckerFunctionsLoaded").emit([openticket.checkers.functions,openticket.checkers]) + await opendiscord.events.get("onCheckerFunctionLoad").emit([opendiscord.checkers.functions,opendiscord.checkers]) + await opendiscord.events.get("afterCheckerFunctionsLoaded").emit([opendiscord.checkers.functions,opendiscord.checkers]) //execute config checker - await openticket.events.get("onCheckerExecute").emit([openticket.checkers]) - if (openticket.defaults.getDefault("checkerExecution")){ - const result = openticket.checkers.checkAll(true) - await openticket.events.get("afterCheckersExecuted").emit([result,openticket.checkers]) + await opendiscord.events.get("onCheckerExecute").emit([opendiscord.checkers]) + if (opendiscord.defaults.getDefault("checkerExecution")){ + const result = opendiscord.checkers.checkAll(true) + await opendiscord.events.get("afterCheckersExecuted").emit([result,opendiscord.checkers]) } //load config checker translations - if (openticket.defaults.getDefault("checkerTranslationLoading")){ + if (opendiscord.defaults.getDefault("checkerTranslationLoading")){ await (await import("./data/framework/checkerLoader.js")).loadAllConfigCheckerTranslations() } - await openticket.events.get("onCheckerTranslationLoad").emit([openticket.checkers.translation,((generalConfig && generalConfig.data.system && generalConfig.data.system.useTranslatedConfigChecker) ? generalConfig.data.system.useTranslatedConfigChecker : false),openticket.checkers]) - await openticket.events.get("afterCheckerTranslationsLoaded").emit([openticket.checkers.translation,openticket.checkers]) + await opendiscord.events.get("onCheckerTranslationLoad").emit([opendiscord.checkers.translation,((generalConfig && generalConfig.data.system && generalConfig.data.system.useTranslatedConfigChecker) ? generalConfig.data.system.useTranslatedConfigChecker : false),opendiscord.checkers]) + await opendiscord.events.get("afterCheckerTranslationsLoaded").emit([opendiscord.checkers.translation,opendiscord.checkers]) //render config checker - const advancedCheckerFlag = openticket.flags.get("openticket:checker") - const disableCheckerFlag = openticket.flags.get("openticket:no-checker") + const advancedCheckerFlag = opendiscord.flags.get("openticket:checker") + const disableCheckerFlag = opendiscord.flags.get("openticket:no-checker") - await openticket.events.get("onCheckerRender").emit([openticket.checkers.renderer,openticket.checkers]) - if (openticket.defaults.getDefault("checkerRendering") && !(disableCheckerFlag ? disableCheckerFlag.value : false)){ + await opendiscord.events.get("onCheckerRender").emit([opendiscord.checkers.renderer,opendiscord.checkers]) + if (opendiscord.defaults.getDefault("checkerRendering") && !(disableCheckerFlag ? disableCheckerFlag.value : false)){ //check if there is a result (otherwise throw minor error) - const result = openticket.checkers.lastResult - if (!result) return openticket.log("Failed to render Config Checker! (couldn't fetch result)","error") + const result = opendiscord.checkers.lastResult + if (!result) return opendiscord.log("Failed to render Config Checker! (couldn't fetch result)","error") //get components & check if full mode enabled - const components = openticket.checkers.renderer.getComponents(!(advancedCheckerFlag ? advancedCheckerFlag.value : false),openticket.defaults.getDefault("checkerRenderEmpty"),openticket.checkers.translation,result) + const components = opendiscord.checkers.renderer.getComponents(!(advancedCheckerFlag ? advancedCheckerFlag.value : false),opendiscord.defaults.getDefault("checkerRenderEmpty"),opendiscord.checkers.translation,result) //render - openticket.debugfile.writeText("\n[CONFIG CHECKER RESULT]:\n"+ansis.strip(components.join("\n"))+"\n") - openticket.checkers.renderer.render(components) + opendiscord.debugfile.writeText("\n[CONFIG CHECKER RESULT]:\n"+ansis.strip(components.join("\n"))+"\n") + opendiscord.checkers.renderer.render(components) //wait 5 seconds when there are warnings (not for errors & info) if (result.messages.length > 0 && result.messages.some((msg) => msg.type == "warning") && result.messages.every((msg) => msg.type != "error")) await utilities.timer(5000) - await openticket.events.get("afterCheckersRendered").emit([openticket.checkers.renderer,openticket.checkers]) + await opendiscord.events.get("afterCheckersRendered").emit([opendiscord.checkers.renderer,opendiscord.checkers]) } //quit config checker (when required) - if (openticket.checkers.lastResult && !openticket.checkers.lastResult.valid && !(disableCheckerFlag ? disableCheckerFlag.value : false)){ - await openticket.events.get("onCheckerQuit").emit([openticket.checkers]) - if (openticket.defaults.getDefault("checkerQuit")){ + if (opendiscord.checkers.lastResult && !opendiscord.checkers.lastResult.valid && !(disableCheckerFlag ? disableCheckerFlag.value : false)){ + await opendiscord.events.get("onCheckerQuit").emit([opendiscord.checkers]) + if (opendiscord.defaults.getDefault("checkerQuit")){ process.exit(0) //there is no afterCheckerQuitted event :) } } //client configuration - openticket.log("Loading client...","system") - if (openticket.defaults.getDefault("clientLoading")){ + opendiscord.log("Loading client...","system") + if (opendiscord.defaults.getDefault("clientLoading")){ //add intents (for basic permissions) - openticket.client.intents.push( + opendiscord.client.intents.push( "Guilds", "GuildMessages", "DirectMessages", @@ -300,13 +300,13 @@ const main = async () => { ) //add privileged intents (required for transcripts) - openticket.client.privileges.push("MessageContent","GuildMembers") + opendiscord.client.privileges.push("MessageContent","GuildMembers") //add partials (required for DM messages) - openticket.client.partials.push("Channel","Message") + opendiscord.client.partials.push("Channel","Message") //add permissions (not required when Administrator) - openticket.client.permissions.push( + opendiscord.client.permissions.push( "AddReactions", "AttachFiles", "CreatePrivateThreads", @@ -330,24 +330,24 @@ const main = async () => { ) //get token from config or env - const configToken = openticket.configs.get("openticket:general").data.token ? openticket.configs.get("openticket:general").data.token : "" - const envToken = openticket.env.getVariable("TOKEN") ? openticket.env.getVariable("TOKEN") : "" - const token = openticket.configs.get("openticket:general").data.tokenFromENV ? envToken : configToken - openticket.client.token = token + const configToken = opendiscord.configs.get("openticket:general").data.token ? opendiscord.configs.get("openticket:general").data.token : "" + const envToken = opendiscord.env.getVariable("TOKEN") ? opendiscord.env.getVariable("TOKEN") : "" + const token = opendiscord.configs.get("openticket:general").data.tokenFromENV ? envToken : configToken + opendiscord.client.token = token } - await openticket.events.get("onClientLoad").emit([openticket.client]) - await openticket.events.get("afterClientLoaded").emit([openticket.client]) + await opendiscord.events.get("onClientLoad").emit([opendiscord.client]) + await opendiscord.events.get("afterClientLoaded").emit([opendiscord.client]) //client ready - openticket.client.readyListener = async () => { - openticket.log("Loading client setup...","system") - await openticket.events.get("onClientReady").emit([openticket.client]) - if (openticket.defaults.getDefault("clientReady")){ - const client = openticket.client + opendiscord.client.readyListener = async () => { + opendiscord.log("Loading client setup...","system") + await opendiscord.events.get("onClientReady").emit([opendiscord.client]) + if (opendiscord.defaults.getDefault("clientReady")){ + const client = opendiscord.client //check if all servers are valid const botServers = client.getGuilds() - const generalConfig = openticket.configs.get("openticket:general") + const generalConfig = opendiscord.configs.get("openticket:general") const serverId = generalConfig.data.serverId ? generalConfig.data.serverId : "" if (!serverId) throw new api.ODSystemError("Server Id Missing!") @@ -356,223 +356,223 @@ const main = async () => { //throw if bot isn't member of main server if (!mainServer || !client.checkBotInGuild(mainServer)){ console.log("\n") - openticket.log("The bot isn't a member of the server provided in the config!","error") - openticket.log("Please invite your bot to the server!","info") + opendiscord.log("The bot isn't a member of the server provided in the config!","error") + opendiscord.log("Please invite your bot to the server!","info") console.log("\n") process.exit(0) } //throw if bot doesn't have permissions in main server if (!client.checkGuildPerms(mainServer)){ console.log("\n") - openticket.log("The bot doesn't have the correct permissions in the server provided in the config!","error") - openticket.log("Please give the bot \"Administrator\" permissions or visit the documentation!","info") + opendiscord.log("The bot doesn't have the correct permissions in the server provided in the config!","error") + opendiscord.log("Please give the bot \"Administrator\" permissions or visit the documentation!","info") console.log("\n") process.exit(0) } - if (openticket.defaults.getDefault("clientMultiGuildWarning")){ + if (opendiscord.defaults.getDefault("clientMultiGuildWarning")){ //warn if bot is in multiple servers if (botServers.length > 1){ - openticket.log("This bot is part of multiple servers, but Open Ticket doesn't have support for it!","warning") - openticket.log("It may result in the bot crashing & glitching when used in these servers!","info") + opendiscord.log("This bot is part of multiple servers, but Open Ticket doesn't have support for it!","warning") + opendiscord.log("It may result in the bot crashing & glitching when used in these servers!","info") } botServers.forEach((server) => { //warn if bot doesn't have permissions in multiple servers - if (!client.checkGuildPerms(server)) openticket.log(`The bot doesn't have the correct permissions in the server "${server.name}"!`,"warning") + if (!client.checkGuildPerms(server)) opendiscord.log(`The bot doesn't have the correct permissions in the server "${server.name}"!`,"warning") }) } //load client activity - openticket.log("Loading client activity...","system") - if (openticket.defaults.getDefault("clientActivityLoading")){ + opendiscord.log("Loading client activity...","system") + if (opendiscord.defaults.getDefault("clientActivityLoading")){ //load config status - if (generalConfig.data.status && generalConfig.data.status.enabled) openticket.client.activity.setStatus(generalConfig.data.status.type,generalConfig.data.status.text,generalConfig.data.status.status) + if (generalConfig.data.status && generalConfig.data.status.enabled) opendiscord.client.activity.setStatus(generalConfig.data.status.type,generalConfig.data.status.text,generalConfig.data.status.status) } - await openticket.events.get("onClientActivityLoad").emit([openticket.client.activity,openticket.client]) - await openticket.events.get("afterClientActivityLoaded").emit([openticket.client.activity,openticket.client]) + await opendiscord.events.get("onClientActivityLoad").emit([opendiscord.client.activity,opendiscord.client]) + await opendiscord.events.get("afterClientActivityLoaded").emit([opendiscord.client.activity,opendiscord.client]) //initiate client activity - await openticket.events.get("onClientActivityInit").emit([openticket.client.activity,openticket.client]) - if (openticket.defaults.getDefault("clientActivityInitiating")){ - openticket.client.activity.initStatus() - await openticket.events.get("afterClientActivityInitiated").emit([openticket.client.activity,openticket.client]) + await opendiscord.events.get("onClientActivityInit").emit([opendiscord.client.activity,opendiscord.client]) + if (opendiscord.defaults.getDefault("clientActivityInitiating")){ + opendiscord.client.activity.initStatus() + await opendiscord.events.get("afterClientActivityInitiated").emit([opendiscord.client.activity,opendiscord.client]) } //load slash commands - openticket.log("Loading slash commands...","system") - if (openticket.defaults.getDefault("slashCommandLoading")){ + opendiscord.log("Loading slash commands...","system") + if (opendiscord.defaults.getDefault("slashCommandLoading")){ await (await import("./data/framework/commandLoader.js")).loadAllSlashCommands() } - await openticket.events.get("onSlashCommandLoad").emit([openticket.client.slashCommands,openticket.client]) - await openticket.events.get("afterSlashCommandsLoaded").emit([openticket.client.slashCommands,openticket.client]) + await opendiscord.events.get("onSlashCommandLoad").emit([opendiscord.client.slashCommands,opendiscord.client]) + await opendiscord.events.get("afterSlashCommandsLoaded").emit([opendiscord.client.slashCommands,opendiscord.client]) //register slash commands (create, update & remove) - if (openticket.defaults.getDefault("forceSlashCommandRegistration")) openticket.log("Forcing all slash commands to be re-registered...","system") - openticket.log("Registering slash commands... (this can take up to 2 minutes)","system") - await openticket.events.get("onSlashCommandRegister").emit([openticket.client.slashCommands,openticket.client]) - if (openticket.defaults.getDefault("slashCommandRegistering")){ + if (opendiscord.defaults.getDefault("forceSlashCommandRegistration")) opendiscord.log("Forcing all slash commands to be re-registered...","system") + opendiscord.log("Registering slash commands... (this can take up to 2 minutes)","system") + await opendiscord.events.get("onSlashCommandRegister").emit([opendiscord.client.slashCommands,opendiscord.client]) + if (opendiscord.defaults.getDefault("slashCommandRegistering")){ //get all commands that are already registered in the bot - const cmds = await openticket.client.slashCommands.getAllRegisteredCommands() + const cmds = await opendiscord.client.slashCommands.getAllRegisteredCommands() const removableCmds = cmds.unused.map((cmd) => cmd.cmd) const newCmds = cmds.unregistered.map((cmd) => cmd.instance) - const updatableCmds = cmds.registered.filter((cmd) => cmd.requiresUpdate || openticket.defaults.getDefault("forceSlashCommandRegistration")).map((cmd) => cmd.instance) + const updatableCmds = cmds.registered.filter((cmd) => cmd.requiresUpdate || opendiscord.defaults.getDefault("forceSlashCommandRegistration")).map((cmd) => cmd.instance) //init progress bars - const removeProgress = openticket.progressbars.get("openticket:slash-command-remove") - const createProgress = openticket.progressbars.get("openticket:slash-command-create") - const updateProgress = openticket.progressbars.get("openticket:slash-command-update") + 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") //remove unused cmds, create new cmds & update existing cmds - if (openticket.defaults.getDefault("allowSlashCommandRemoval")) await openticket.client.slashCommands.removeUnusedCommands(removableCmds,undefined,removeProgress) - await openticket.client.slashCommands.createNewCommands(newCmds,createProgress) - await openticket.client.slashCommands.updateExistingCommands(updatableCmds,updateProgress) + if (opendiscord.defaults.getDefault("allowSlashCommandRemoval")) await opendiscord.client.slashCommands.removeUnusedCommands(removableCmds,undefined,removeProgress) + await opendiscord.client.slashCommands.createNewCommands(newCmds,createProgress) + await opendiscord.client.slashCommands.updateExistingCommands(updatableCmds,updateProgress) - await openticket.events.get("afterSlashCommandsRegistered").emit([openticket.client.slashCommands,openticket.client]) + await opendiscord.events.get("afterSlashCommandsRegistered").emit([opendiscord.client.slashCommands,opendiscord.client]) } //load text commands - openticket.log("Loading text commands...","system") - if (openticket.defaults.getDefault("allowDumpCommand")){ + opendiscord.log("Loading text commands...","system") + if (opendiscord.defaults.getDefault("allowDumpCommand")){ (await import("./core/startup/dump.js")).loadDumpCommand() } - if (openticket.defaults.getDefault("textCommandLoading")){ + if (opendiscord.defaults.getDefault("textCommandLoading")){ await (await import("./data/framework/commandLoader.js")).loadAllTextCommands() } - await openticket.events.get("onTextCommandLoad").emit([openticket.client.textCommands,openticket.client]) - await openticket.events.get("afterTextCommandsLoaded").emit([openticket.client.textCommands,openticket.client]) + await opendiscord.events.get("onTextCommandLoad").emit([opendiscord.client.textCommands,opendiscord.client]) + await opendiscord.events.get("afterTextCommandsLoaded").emit([opendiscord.client.textCommands,opendiscord.client]) //client ready - await openticket.events.get("afterClientReady").emit([openticket.client]) + await opendiscord.events.get("afterClientReady").emit([opendiscord.client]) } } //client init (login) - openticket.log("Logging in...","system") - await openticket.events.get("onClientInit").emit([openticket.client]) - if (openticket.defaults.getDefault("clientInitiating")){ + opendiscord.log("Logging in...","system") + await opendiscord.events.get("onClientInit").emit([opendiscord.client]) + if (opendiscord.defaults.getDefault("clientInitiating")){ //init client - openticket.client.initClient() - await openticket.events.get("afterClientInitiated").emit([openticket.client]) + opendiscord.client.initClient() + await opendiscord.events.get("afterClientInitiated").emit([opendiscord.client]) //client login - await openticket.client.login().catch((reason) => process.emit("uncaughtException",new api.ODSystemError(reason))) - openticket.log("discord.js client ready!","info") + await opendiscord.client.login().catch((reason) => process.emit("uncaughtException",new api.ODSystemError(reason))) + opendiscord.log("discord.js client ready!","info") } //load questions - openticket.log("Loading questions...","system") - if (openticket.defaults.getDefault("questionLoading")){ + opendiscord.log("Loading questions...","system") + if (opendiscord.defaults.getDefault("questionLoading")){ await (await import("./data/openticket/questionLoader.js")).loadAllQuestions() } - await openticket.events.get("onQuestionLoad").emit([openticket.questions]) - await openticket.events.get("afterQuestionsLoaded").emit([openticket.questions]) + await opendiscord.events.get("onQuestionLoad").emit([opendiscord.questions]) + await opendiscord.events.get("afterQuestionsLoaded").emit([opendiscord.questions]) //load options - openticket.log("Loading options...","system") - if (openticket.defaults.getDefault("optionLoading")){ + opendiscord.log("Loading options...","system") + if (opendiscord.defaults.getDefault("optionLoading")){ await (await import("./data/openticket/optionLoader.js")).loadAllOptions() } - await openticket.events.get("onOptionLoad").emit([openticket.options]) - await openticket.events.get("afterOptionsLoaded").emit([openticket.options]) + await opendiscord.events.get("onOptionLoad").emit([opendiscord.options]) + await opendiscord.events.get("afterOptionsLoaded").emit([opendiscord.options]) //load panels - openticket.log("Loading panels...","system") - if (openticket.defaults.getDefault("panelLoading")){ + opendiscord.log("Loading panels...","system") + if (opendiscord.defaults.getDefault("panelLoading")){ await (await import("./data/openticket/panelLoader.js")).loadAllPanels() } - await openticket.events.get("onPanelLoad").emit([openticket.panels]) - await openticket.events.get("afterPanelsLoaded").emit([openticket.panels]) + await opendiscord.events.get("onPanelLoad").emit([opendiscord.panels]) + await opendiscord.events.get("afterPanelsLoaded").emit([opendiscord.panels]) //load tickets - openticket.log("Loading tickets...","system") - if (openticket.defaults.getDefault("ticketLoading")){ - openticket.tickets.useGuild(openticket.client.mainServer) + opendiscord.log("Loading tickets...","system") + if (opendiscord.defaults.getDefault("ticketLoading")){ + opendiscord.tickets.useGuild(opendiscord.client.mainServer) await (await import("./data/openticket/ticketLoader.js")).loadAllTickets() } - await openticket.events.get("onTicketLoad").emit([openticket.tickets]) - await openticket.events.get("afterTicketsLoaded").emit([openticket.tickets]) + await opendiscord.events.get("onTicketLoad").emit([opendiscord.tickets]) + await opendiscord.events.get("afterTicketsLoaded").emit([opendiscord.tickets]) //load roles - openticket.log("Loading roles...","system") - if (openticket.defaults.getDefault("roleLoading")){ + opendiscord.log("Loading roles...","system") + if (opendiscord.defaults.getDefault("roleLoading")){ await (await import("./data/openticket/roleLoader.js")).loadAllRoles() } - await openticket.events.get("onRoleLoad").emit([openticket.roles]) - await openticket.events.get("afterRolesLoaded").emit([openticket.roles]) + await opendiscord.events.get("onRoleLoad").emit([opendiscord.roles]) + await opendiscord.events.get("afterRolesLoaded").emit([opendiscord.roles]) //load blacklist - openticket.log("Loading blacklist...","system") - if (openticket.defaults.getDefault("blacklistLoading")){ + opendiscord.log("Loading blacklist...","system") + if (opendiscord.defaults.getDefault("blacklistLoading")){ await (await import("./data/openticket/blacklistLoader.js")).loadAllBlacklistedUsers() } - await openticket.events.get("onBlacklistLoad").emit([openticket.blacklist]) - await openticket.events.get("afterBlacklistLoaded").emit([openticket.blacklist]) + await opendiscord.events.get("onBlacklistLoad").emit([opendiscord.blacklist]) + await opendiscord.events.get("afterBlacklistLoaded").emit([opendiscord.blacklist]) //load transcript compilers - openticket.log("Loading transcripts...","system") - if (openticket.defaults.getDefault("transcriptCompilerLoading")){ + opendiscord.log("Loading transcripts...","system") + if (opendiscord.defaults.getDefault("transcriptCompilerLoading")){ await (await import("./data/openticket/transcriptLoader.js")).loadAllTranscriptCompilers() } - await openticket.events.get("onTranscriptCompilerLoad").emit([openticket.transcripts]) - await openticket.events.get("afterTranscriptCompilersLoaded").emit([openticket.transcripts]) + await opendiscord.events.get("onTranscriptCompilerLoad").emit([opendiscord.transcripts]) + await opendiscord.events.get("afterTranscriptCompilersLoaded").emit([opendiscord.transcripts]) //load transcript history - if (openticket.defaults.getDefault("transcriptHistoryLoading")){ + if (opendiscord.defaults.getDefault("transcriptHistoryLoading")){ await (await import("./data/openticket/transcriptLoader.js")).loadTranscriptHistory() } - await openticket.events.get("onTranscriptHistoryLoad").emit([openticket.transcripts]) - await openticket.events.get("afterTranscriptHistoryLoaded").emit([openticket.transcripts]) + await opendiscord.events.get("onTranscriptHistoryLoad").emit([opendiscord.transcripts]) + await opendiscord.events.get("afterTranscriptHistoryLoaded").emit([opendiscord.transcripts]) //load button builders - openticket.log("Loading buttons...","system") - if (openticket.defaults.getDefault("buttonBuildersLoading")){ + opendiscord.log("Loading buttons...","system") + if (opendiscord.defaults.getDefault("buttonBuildersLoading")){ await (await import("./builders/buttons.js")).registerAllButtons() } - await openticket.events.get("onButtonBuilderLoad").emit([openticket.builders.buttons,openticket.builders,openticket.actions]) - await openticket.events.get("afterButtonBuildersLoaded").emit([openticket.builders.buttons,openticket.builders,openticket.actions]) + await opendiscord.events.get("onButtonBuilderLoad").emit([opendiscord.builders.buttons,opendiscord.builders,opendiscord.actions]) + await opendiscord.events.get("afterButtonBuildersLoaded").emit([opendiscord.builders.buttons,opendiscord.builders,opendiscord.actions]) //load dropdown builders - openticket.log("Loading dropdowns...","system") - if (openticket.defaults.getDefault("dropdownBuildersLoading")){ + opendiscord.log("Loading dropdowns...","system") + if (opendiscord.defaults.getDefault("dropdownBuildersLoading")){ await (await import("./builders/dropdowns.js")).registerAllDropdowns() } - await openticket.events.get("onDropdownBuilderLoad").emit([openticket.builders.dropdowns,openticket.builders,openticket.actions]) - await openticket.events.get("afterDropdownBuildersLoaded").emit([openticket.builders.dropdowns,openticket.builders,openticket.actions]) + await opendiscord.events.get("onDropdownBuilderLoad").emit([opendiscord.builders.dropdowns,opendiscord.builders,opendiscord.actions]) + await opendiscord.events.get("afterDropdownBuildersLoaded").emit([opendiscord.builders.dropdowns,opendiscord.builders,opendiscord.actions]) //load file builders - openticket.log("Loading files...","system") - if (openticket.defaults.getDefault("fileBuildersLoading")){ + opendiscord.log("Loading files...","system") + if (opendiscord.defaults.getDefault("fileBuildersLoading")){ await (await import("./builders/files.js")).registerAllFiles() } - await openticket.events.get("onFileBuilderLoad").emit([openticket.builders.files,openticket.builders,openticket.actions]) - await openticket.events.get("afterFileBuildersLoaded").emit([openticket.builders.files,openticket.builders,openticket.actions]) + await opendiscord.events.get("onFileBuilderLoad").emit([opendiscord.builders.files,opendiscord.builders,opendiscord.actions]) + await opendiscord.events.get("afterFileBuildersLoaded").emit([opendiscord.builders.files,opendiscord.builders,opendiscord.actions]) //load embed builders - openticket.log("Loading embeds...","system") - if (openticket.defaults.getDefault("embedBuildersLoading")){ + opendiscord.log("Loading embeds...","system") + if (opendiscord.defaults.getDefault("embedBuildersLoading")){ await (await import("./builders/embeds.js")).registerAllEmbeds() } - await openticket.events.get("onEmbedBuilderLoad").emit([openticket.builders.embeds,openticket.builders,openticket.actions]) - await openticket.events.get("afterEmbedBuildersLoaded").emit([openticket.builders.embeds,openticket.builders,openticket.actions]) + await opendiscord.events.get("onEmbedBuilderLoad").emit([opendiscord.builders.embeds,opendiscord.builders,opendiscord.actions]) + await opendiscord.events.get("afterEmbedBuildersLoaded").emit([opendiscord.builders.embeds,opendiscord.builders,opendiscord.actions]) //load message builders - openticket.log("Loading messages...","system") - if (openticket.defaults.getDefault("messageBuildersLoading")){ + opendiscord.log("Loading messages...","system") + if (opendiscord.defaults.getDefault("messageBuildersLoading")){ await (await import("./builders/messages.js")).registerAllMessages() } - await openticket.events.get("onMessageBuilderLoad").emit([openticket.builders.messages,openticket.builders,openticket.actions]) - await openticket.events.get("afterMessageBuildersLoaded").emit([openticket.builders.messages,openticket.builders,openticket.actions]) + await opendiscord.events.get("onMessageBuilderLoad").emit([opendiscord.builders.messages,opendiscord.builders,opendiscord.actions]) + await opendiscord.events.get("afterMessageBuildersLoaded").emit([opendiscord.builders.messages,opendiscord.builders,opendiscord.actions]) //load modal builders - openticket.log("Loading modals...","system") - if (openticket.defaults.getDefault("modalBuildersLoading")){ + opendiscord.log("Loading modals...","system") + if (opendiscord.defaults.getDefault("modalBuildersLoading")){ await (await import("./builders/modals.js")).registerAllModals() } - await openticket.events.get("onModalBuilderLoad").emit([openticket.builders.modals,openticket.builders,openticket.actions]) - await openticket.events.get("afterModalBuildersLoaded").emit([openticket.builders.modals,openticket.builders,openticket.actions]) + await opendiscord.events.get("onModalBuilderLoad").emit([opendiscord.builders.modals,opendiscord.builders,opendiscord.actions]) + await opendiscord.events.get("afterModalBuildersLoaded").emit([opendiscord.builders.modals,opendiscord.builders,opendiscord.actions]) //load command responders - openticket.log("Loading command responders...","system") - if (openticket.defaults.getDefault("commandRespondersLoading")){ + opendiscord.log("Loading command responders...","system") + if (opendiscord.defaults.getDefault("commandRespondersLoading")){ await (await import("./commands/help.js")).registerCommandResponders() await (await import("./commands/stats.js")).registerCommandResponders() await (await import("./commands/panel.js")).registerCommandResponders() @@ -593,12 +593,12 @@ const main = async () => { await (await import("./commands/autoclose.js")).registerCommandResponders() await (await import("./commands/autodelete.js")).registerCommandResponders() } - await openticket.events.get("onCommandResponderLoad").emit([openticket.responders.commands,openticket.responders,openticket.actions]) - await openticket.events.get("afterCommandRespondersLoaded").emit([openticket.responders.commands,openticket.responders,openticket.actions]) + await opendiscord.events.get("onCommandResponderLoad").emit([opendiscord.responders.commands,opendiscord.responders,opendiscord.actions]) + await opendiscord.events.get("afterCommandRespondersLoaded").emit([opendiscord.responders.commands,opendiscord.responders,opendiscord.actions]) //load button responders - openticket.log("Loading button responders...","system") - if (openticket.defaults.getDefault("buttonRespondersLoading")){ + opendiscord.log("Loading button responders...","system") + if (opendiscord.defaults.getDefault("buttonRespondersLoading")){ await (await import("./actions/handleVerifyBar.js")).registerButtonResponders() await (await import("./actions/handleTranscriptErrors.js")).registerButtonResponders() await (await import("./commands/help.js")).registerButtonResponders() @@ -613,20 +613,20 @@ const main = async () => { await (await import("./commands/role.js")).registerButtonResponders() await (await import("./commands/clear.js")).registerButtonResponders() } - await openticket.events.get("onButtonResponderLoad").emit([openticket.responders.buttons,openticket.responders,openticket.actions]) - await openticket.events.get("afterButtonRespondersLoaded").emit([openticket.responders.buttons,openticket.responders,openticket.actions]) + await opendiscord.events.get("onButtonResponderLoad").emit([opendiscord.responders.buttons,opendiscord.responders,opendiscord.actions]) + await opendiscord.events.get("afterButtonRespondersLoaded").emit([opendiscord.responders.buttons,opendiscord.responders,opendiscord.actions]) //load dropdown responders - openticket.log("Loading dropdown responders...","system") - if (openticket.defaults.getDefault("dropdownRespondersLoading")){ + opendiscord.log("Loading dropdown responders...","system") + if (opendiscord.defaults.getDefault("dropdownRespondersLoading")){ await (await import("./commands/ticket.js")).registerDropdownResponders() } - await openticket.events.get("onDropdownResponderLoad").emit([openticket.responders.dropdowns,openticket.responders,openticket.actions]) - await openticket.events.get("afterDropdownRespondersLoaded").emit([openticket.responders.dropdowns,openticket.responders,openticket.actions]) + await opendiscord.events.get("onDropdownResponderLoad").emit([opendiscord.responders.dropdowns,opendiscord.responders,opendiscord.actions]) + await opendiscord.events.get("afterDropdownRespondersLoaded").emit([opendiscord.responders.dropdowns,opendiscord.responders,opendiscord.actions]) //load modal responders - openticket.log("Loading modal responders...","system") - if (openticket.defaults.getDefault("modalRespondersLoading")){ + opendiscord.log("Loading modal responders...","system") + if (opendiscord.defaults.getDefault("modalRespondersLoading")){ await (await import("./commands/ticket.js")).registerModalResponders() await (await import("./commands/close.js")).registerModalResponders() await (await import("./commands/reopen.js")).registerModalResponders() @@ -636,12 +636,12 @@ const main = async () => { await (await import("./commands/pin.js")).registerModalResponders() await (await import("./commands/unpin.js")).registerModalResponders() } - await openticket.events.get("onModalResponderLoad").emit([openticket.responders.modals,openticket.responders,openticket.actions]) - await openticket.events.get("afterModalRespondersLoaded").emit([openticket.responders.modals,openticket.responders,openticket.actions]) + await opendiscord.events.get("onModalResponderLoad").emit([opendiscord.responders.modals,opendiscord.responders,opendiscord.actions]) + await opendiscord.events.get("afterModalRespondersLoaded").emit([opendiscord.responders.modals,opendiscord.responders,opendiscord.actions]) //load actions - openticket.log("Loading actions...","system") - if (openticket.defaults.getDefault("actionsLoading")){ + opendiscord.log("Loading actions...","system") + if (opendiscord.defaults.getDefault("actionsLoading")){ await (await import("./actions/createTicketPermissions.js")).registerActions() await (await import("./actions/createTranscript.js")).registerActions() await (await import("./actions/createTicket.js")).registerActions() @@ -659,12 +659,12 @@ const main = async () => { await (await import("./actions/reactionRole.js")).registerActions() await (await import("./actions/clearTickets.js")).registerActions() } - await openticket.events.get("onActionLoad").emit([openticket.actions]) - await openticket.events.get("afterActionsLoaded").emit([openticket.actions]) + await opendiscord.events.get("onActionLoad").emit([opendiscord.actions]) + await opendiscord.events.get("afterActionsLoaded").emit([opendiscord.actions]) //load verifybars - openticket.log("Loading verifybars...","system") - if (openticket.defaults.getDefault("verifyBarsLoading")){ + opendiscord.log("Loading verifybars...","system") + if (opendiscord.defaults.getDefault("verifyBarsLoading")){ await (await import("./actions/closeTicket.js")).registerVerifyBars() await (await import("./actions/deleteTicket.js")).registerVerifyBars() await (await import("./actions/reopenTicket.js")).registerVerifyBars() @@ -673,136 +673,136 @@ const main = async () => { await (await import("./actions/pinTicket.js")).registerVerifyBars() await (await import("./actions/unpinTicket.js")).registerVerifyBars() } - await openticket.events.get("onVerifyBarLoad").emit([openticket.verifybars]) - await openticket.events.get("afterVerifyBarsLoaded").emit([openticket.verifybars]) + await opendiscord.events.get("onVerifyBarLoad").emit([opendiscord.verifybars]) + await opendiscord.events.get("afterVerifyBarsLoaded").emit([opendiscord.verifybars]) //load permissions - openticket.log("Loading permissions...","system") - if (openticket.defaults.getDefault("permissionsLoading")){ + opendiscord.log("Loading permissions...","system") + if (opendiscord.defaults.getDefault("permissionsLoading")){ await (await import("./data/framework/permissionLoader.js")).loadAllPermissions() } - await openticket.events.get("onPermissionLoad").emit([openticket.permissions]) - await openticket.events.get("afterPermissionsLoaded").emit([openticket.permissions]) + await opendiscord.events.get("onPermissionLoad").emit([opendiscord.permissions]) + await opendiscord.events.get("afterPermissionsLoaded").emit([opendiscord.permissions]) //load posts - openticket.log("Loading posts...","system") - if (openticket.defaults.getDefault("postsLoading")){ + opendiscord.log("Loading posts...","system") + if (opendiscord.defaults.getDefault("postsLoading")){ await (await import("./data/framework/postLoader.js")).loadAllPosts() } - await openticket.events.get("onPostLoad").emit([openticket.posts]) - await openticket.events.get("afterPostsLoaded").emit([openticket.posts]) + await opendiscord.events.get("onPostLoad").emit([opendiscord.posts]) + await opendiscord.events.get("afterPostsLoaded").emit([opendiscord.posts]) //init posts - await openticket.events.get("onPostInit").emit([openticket.posts]) - if (openticket.defaults.getDefault("postsInitiating")){ - if (openticket.client.mainServer) openticket.posts.init(openticket.client.mainServer) - await openticket.events.get("afterPostsInitiated").emit([openticket.posts]) + await opendiscord.events.get("onPostInit").emit([opendiscord.posts]) + if (opendiscord.defaults.getDefault("postsInitiating")){ + if (opendiscord.client.mainServer) opendiscord.posts.init(opendiscord.client.mainServer) + await opendiscord.events.get("afterPostsInitiated").emit([opendiscord.posts]) } //load cooldowns - openticket.log("Loading cooldowns...","system") - if (openticket.defaults.getDefault("cooldownsLoading")){ + opendiscord.log("Loading cooldowns...","system") + if (opendiscord.defaults.getDefault("cooldownsLoading")){ await (await import("./data/framework/cooldownLoader.js")).loadAllCooldowns() } - await openticket.events.get("onCooldownLoad").emit([openticket.cooldowns]) - await openticket.events.get("afterCooldownsLoaded").emit([openticket.cooldowns]) + await opendiscord.events.get("onCooldownLoad").emit([opendiscord.cooldowns]) + await opendiscord.events.get("afterCooldownsLoaded").emit([opendiscord.cooldowns]) //init cooldowns - await openticket.events.get("onCooldownInit").emit([openticket.cooldowns]) - if (openticket.defaults.getDefault("cooldownsInitiating")){ - await openticket.cooldowns.init() - await openticket.events.get("afterCooldownsInitiated").emit([openticket.cooldowns]) + await opendiscord.events.get("onCooldownInit").emit([opendiscord.cooldowns]) + if (opendiscord.defaults.getDefault("cooldownsInitiating")){ + await opendiscord.cooldowns.init() + await opendiscord.events.get("afterCooldownsInitiated").emit([opendiscord.cooldowns]) } //load help menu categories - openticket.log("Loading help menu...","system") - if (openticket.defaults.getDefault("helpMenuCategoryLoading")){ + opendiscord.log("Loading help menu...","system") + if (opendiscord.defaults.getDefault("helpMenuCategoryLoading")){ await (await import("./data/framework/helpMenuLoader.js")).loadAllHelpMenuCategories() } - await openticket.events.get("onHelpMenuCategoryLoad").emit([openticket.helpmenu]) - await openticket.events.get("afterHelpMenuCategoriesLoaded").emit([openticket.helpmenu]) + await opendiscord.events.get("onHelpMenuCategoryLoad").emit([opendiscord.helpmenu]) + await opendiscord.events.get("afterHelpMenuCategoriesLoaded").emit([opendiscord.helpmenu]) //load help menu components - if (openticket.defaults.getDefault("helpMenuComponentLoading")){ + if (opendiscord.defaults.getDefault("helpMenuComponentLoading")){ await (await import("./data/framework/helpMenuLoader.js")).loadAllHelpMenuComponents() } - await openticket.events.get("onHelpMenuComponentLoad").emit([openticket.helpmenu]) - await openticket.events.get("afterHelpMenuComponentsLoaded").emit([openticket.helpmenu]) + await opendiscord.events.get("onHelpMenuComponentLoad").emit([opendiscord.helpmenu]) + await opendiscord.events.get("afterHelpMenuComponentsLoaded").emit([opendiscord.helpmenu]) //load stat scopes - openticket.log("Loading stats...","system") - if (openticket.defaults.getDefault("statScopesLoading")){ - openticket.stats.useDatabase(openticket.databases.get("openticket:stats")) + opendiscord.log("Loading stats...","system") + if (opendiscord.defaults.getDefault("statScopesLoading")){ + opendiscord.stats.useDatabase(opendiscord.databases.get("openticket:stats")) await (await import("./data/framework/statLoader.js")).loadAllStatScopes() } - await openticket.events.get("onStatScopeLoad").emit([openticket.stats]) - await openticket.events.get("afterStatScopesLoaded").emit([openticket.stats]) + await opendiscord.events.get("onStatScopeLoad").emit([opendiscord.stats]) + await opendiscord.events.get("afterStatScopesLoaded").emit([opendiscord.stats]) //load stats - if (openticket.defaults.getDefault("statLoading")){ + if (opendiscord.defaults.getDefault("statLoading")){ await (await import("./data/framework/statLoader.js")).loadAllStats() } - await openticket.events.get("onStatLoad").emit([openticket.stats]) - await openticket.events.get("afterStatsLoaded").emit([openticket.stats]) + await opendiscord.events.get("onStatLoad").emit([opendiscord.stats]) + await opendiscord.events.get("afterStatsLoaded").emit([opendiscord.stats]) //init stats - await openticket.events.get("onStatInit").emit([openticket.stats]) - if (openticket.defaults.getDefault("statInitiating")){ - await openticket.stats.init() - await openticket.events.get("afterStatsInitiated").emit([openticket.stats]) + await opendiscord.events.get("onStatInit").emit([opendiscord.stats]) + if (opendiscord.defaults.getDefault("statInitiating")){ + await opendiscord.stats.init() + await opendiscord.events.get("afterStatsInitiated").emit([opendiscord.stats]) } //load code - openticket.log("Loading code...","system") - if (openticket.defaults.getDefault("codeLoading")){ + opendiscord.log("Loading code...","system") + if (opendiscord.defaults.getDefault("codeLoading")){ await (await import("./data/framework/codeLoader.js")).loadAllCode() } - await openticket.events.get("onCodeLoad").emit([openticket.code]) - await openticket.events.get("afterCodeLoaded").emit([openticket.code]) + await opendiscord.events.get("onCodeLoad").emit([opendiscord.code]) + await opendiscord.events.get("afterCodeLoaded").emit([opendiscord.code]) //execute code - await openticket.events.get("onCodeExecute").emit([openticket.code]) - if (openticket.defaults.getDefault("codeExecution")){ - await openticket.code.execute() - await openticket.events.get("afterCodeExecuted").emit([openticket.code]) + await opendiscord.events.get("onCodeExecute").emit([opendiscord.code]) + if (opendiscord.defaults.getDefault("codeExecution")){ + await opendiscord.code.execute() + await opendiscord.events.get("afterCodeExecuted").emit([opendiscord.code]) } //finish setup - openticket.log("Setup complete!","info") + opendiscord.log("Setup complete!","info") //load livestatus sources - openticket.log("Loading livestatus...","system") - if (openticket.defaults.getDefault("liveStatusLoading")){ + opendiscord.log("Loading livestatus...","system") + if (opendiscord.defaults.getDefault("liveStatusLoading")){ await (await import("./data/framework/liveStatusLoader.js")).loadAllLiveStatusSources() } - await openticket.events.get("onLiveStatusSourceLoad").emit([openticket.livestatus]) - await openticket.events.get("afterLiveStatusSourcesLoaded").emit([openticket.livestatus]) + await opendiscord.events.get("onLiveStatusSourceLoad").emit([opendiscord.livestatus]) + await opendiscord.events.get("afterLiveStatusSourcesLoaded").emit([opendiscord.livestatus]) //load startscreen - openticket.log("Loading startscreen...","system") - if (openticket.defaults.getDefault("startScreenLoading")){ + opendiscord.log("Loading startscreen...","system") + if (opendiscord.defaults.getDefault("startScreenLoading")){ await (await import("./data/framework/startScreenLoader.js")).loadAllStartScreenComponents() } - await openticket.events.get("onStartScreenLoad").emit([openticket.startscreen]) - await openticket.events.get("afterStartScreensLoaded").emit([openticket.startscreen]) + await opendiscord.events.get("onStartScreenLoad").emit([opendiscord.startscreen]) + await opendiscord.events.get("afterStartScreensLoaded").emit([opendiscord.startscreen]) //render startscreen - await openticket.events.get("onStartScreenRender").emit([openticket.startscreen]) - if (openticket.defaults.getDefault("startScreenRendering")){ - await openticket.startscreen.renderAllComponents() - if (openticket.languages.getLanguageMetadata(false)?.automated){ + await opendiscord.events.get("onStartScreenRender").emit([opendiscord.startscreen]) + if (opendiscord.defaults.getDefault("startScreenRendering")){ + await opendiscord.startscreen.renderAllComponents() + if (opendiscord.languages.getLanguageMetadata(false)?.automated){ console.log("===================") - openticket.log("You are currently using a language which has been translated by Google Translate!","warning") - openticket.log("Please help us improve the translation by contributing to our project!","warning") + opendiscord.log("You are currently using a language which has been translated by Google Translate!","warning") + opendiscord.log("Please help us improve the translation by contributing to our project!","warning") console.log("===================") } - await openticket.events.get("afterStartScreensRendered").emit([openticket.startscreen]) + await opendiscord.events.get("afterStartScreensRendered").emit([opendiscord.startscreen]) } //YIPPPIE!! //The startup of Open Ticket is completed :) - openticket.readyStartupDate = new Date() - await openticket.events.get("onReadyForUsage").emit([]) + opendiscord.readyStartupDate = new Date() + await opendiscord.events.get("onReadyForUsage").emit([]) } main() \ No newline at end of file