From 15825d0da6529d4d5c0e4d0c06c6475766476466 Mon Sep 17 00:00:00 2001 From: DJj123dj <80536295+DJj123dj@users.noreply.github.com> Date: Thu, 23 Jun 2022 16:07:49 +0200 Subject: [PATCH] most of the files now support translation v2.1.0 push 8 --- commands/add.js | 6 +-- commands/close.js | 4 +- commands/delete.js | 4 +- commands/help.js | 6 +-- commands/remove.js | 6 +-- commands/rename.js | 6 +-- commands/reopen.js | 4 +- commands/ticket.js | 4 +- core/errorLogSystem.js | 26 ++++++++---- core/slashSystem/slashEnable.js | 2 +- core/ticketOpener.js | 2 + index.js | 73 +++++++++++---------------------- language/english.json | 4 +- 13 files changed, 68 insertions(+), 79 deletions(-) diff --git a/commands/add.js b/commands/add.js index e67daf0..0b37e29 100644 --- a/commands/add.js +++ b/commands/add.js @@ -9,7 +9,7 @@ module.exports = () => { client.on("messageCreate",msg => { if (!msg.content.startsWith(config.prefix+"add")) return var user = msg.mentions.users.first() - if (!user) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage("Missing Argument ``:\n`"+config.prefix+"add `")]}) + if (!user) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage(l.errors.missingArgsDescription+" ``:\n`"+config.prefix+"add `")]}) if (!msg.member.permissions.has("MANAGE_CHANNELS") && !msg.member.permissions.has("ADMINISTRATOR")){ return msg.channel.send({embeds:[bot.errorLog.noPermsMessage]}) @@ -21,7 +21,7 @@ module.exports = () => { if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]}) msg.channel.permissionOverwrites.create(user.id, { VIEW_CHANNEL:true, ADD_REACTIONS:true,ATTACH_FILES:true, EMBED_LINKS:true, SEND_MESSAGES:true}) - msg.channel.send({embeds:[bot.errorLog.success("User Added!",user.tag+" is added to this ticket")]}) + msg.channel.send({embeds:[bot.errorLog.success(l.commands.userAddedTitle,l.commands.userAddedDescription.replace("{0}",user.tag))]}) var loguser = msg.mentions.users.first() log("command","someone used the 'add' command",[{key:"user",value:msg.author.tag}]) @@ -48,7 +48,7 @@ module.exports = () => { if (firstmsg == undefined || firstmsg.author.id != client.user.id) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) interaction.channel.permissionOverwrites.create(user.id, { VIEW_CHANNEL:true, ADD_REACTIONS:true,ATTACH_FILES:true, EMBED_LINKS:true, SEND_MESSAGES:true}) - interaction.reply({embeds:[bot.errorLog.success("User Added!",user.tag+" is added to this ticket")]}) + interaction.reply({embeds:[bot.errorLog.success(l.commands.userAddedTitle,l.commands.userAddedDescription.replace("{0}",user.tag))]}) var loguser = user log("command","someone used the 'add' command",[{key:"user",value:interaction.user.tag}]) diff --git a/commands/close.js b/commands/close.js index 2c033c2..1a4eb0a 100644 --- a/commands/close.js +++ b/commands/close.js @@ -24,7 +24,7 @@ module.exports = () => { .setEmoji("🔒") ]) - msg.channel.send({embeds:[bot.errorLog.success("Close this ticket!","You can close this ticket by clicking on the button below!")],components:[closebutton]}) + msg.channel.send({embeds:[bot.errorLog.success(l.commands.closeTitle,l.commands.closeDescription)],components:[closebutton]}) log("command","someone used the 'close' command",[{key:"user",value:msg.author.tag}]) @@ -51,7 +51,7 @@ module.exports = () => { .setEmoji("🔒") ]) - interaction.reply({embeds:[bot.errorLog.success("Close this ticket!","You can close this ticket by clicking on the button below!")],components:[closebutton]}) + interaction.reply({embeds:[bot.errorLog.success(l.commands.closeTitle,l.commands.closeDescription)],components:[closebutton]}) log("command","someone used the 'close' command",[{key:"user",value:interaction.user.tag}]) diff --git a/commands/delete.js b/commands/delete.js index f10186f..706581a 100644 --- a/commands/delete.js +++ b/commands/delete.js @@ -24,7 +24,7 @@ module.exports = () => { .setEmoji("❌") ]) - msg.channel.send({embeds:[bot.errorLog.success("Delete this ticket!","You can delete this ticket by clicking on the button below!")],components:[closebutton]}) + msg.channel.send({embeds:[bot.errorLog.success(l.commands.deleteTitle,l.commands.deleteDescription)],components:[closebutton]}) log("command","someone used the 'delete' command",[{key:"user",value:msg.author.tag}]) @@ -51,7 +51,7 @@ module.exports = () => { .setEmoji("❌") ]) - interaction.reply({embeds:[bot.errorLog.success("Delete this ticket!","You can delete this ticket by clicking on the button below!")],components:[closebutton]}) + interaction.reply({embeds:[bot.errorLog.success(l.commands.deleteTitle,l.commands.deleteDescription)],components:[closebutton]}) log("command","someone used the 'close' command",[{key:"user",value:interaction.user.tag}]) diff --git a/commands/help.js b/commands/help.js index e700382..cd34d3d 100644 --- a/commands/help.js +++ b/commands/help.js @@ -8,11 +8,11 @@ const l = bot.language module.exports = () => { const helpEmbed = new discord.MessageEmbed() .setColor(config.main_color) - .setTitle("Help Menu:") + .setTitle(l.helpMenu.title) const prefix = config.prefix - const header = config.system.ticket_channel ? "**Go to <#"+config.system.ticket_channel+"> to create a ticket!**\n\n" : "**Run the command `/new` or `/ticket` to create a ticket!**\n\n" - helpEmbed.setDescription(header+"`"+prefix+"msg ` ➜ _Spawn an embed with buttons. (admin only)_\n\n`"+prefix+"rename ` ➜ _Rename a ticket. (no spaces)_\n`"+prefix+"close` ➜ _Close a ticket._\n`"+prefix+"delete` ➜ _Delete a ticket._\n`"+prefix+"reopen` ➜ _Re-Open a ticket after it was closed._\n\n`"+prefix+"add ` ➜ _Add a user to the ticket._\n`"+prefix+"remove ` ➜ _Remove a user from the ticket._`") + const header = config.system.ticket_channel ? l.helpMenu.header1.replace("{0}","<#"+config.system.ticket_channel+">") : l.helpMenu.header2 + helpEmbed.setDescription(header+"`"+prefix+"msg ` ➜ _"+l.helpMenu.msgCmd+"_\n\n`"+prefix+"rename ` ➜ _"+l.helpMenu.renameCmd+"_\n`"+prefix+"close` ➜ _"+l.helpMenu.closeCmd+"_\n`"+prefix+"delete` ➜ _"+l.helpMenu.deleteCmd+"_\n`"+prefix+"reopen` ➜ _"+l.helpMenu.reopenCmd+"_\n\n`"+prefix+"add ` ➜ _"+l.helpMenu.addCmd+"_\n`"+prefix+"remove ` ➜ _"+l.helpMenu.removeCmd+"_`") if (config.credits) helpEmbed.setFooter({text:"Open-Ticket by DJdj Development | view on github for source code",iconURL:"https://raw.githubusercontent.com/DJj123dj/open-ticket/main/logo.png"}) diff --git a/commands/remove.js b/commands/remove.js index 0d90524..737a614 100644 --- a/commands/remove.js +++ b/commands/remove.js @@ -9,7 +9,7 @@ module.exports = () => { client.on("messageCreate",msg => { if (!msg.content.startsWith(config.prefix+"remove")) return var user = msg.mentions.users.first() - if (!user) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage("Missing Argument ``:\n`"+config.prefix+"remove `")]}) + if (!user) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage(l.errors.missingArgsDescription+" ``:\n`"+config.prefix+"remove `")]}) if (!msg.member.permissions.has("MANAGE_CHANNELS") && !msg.member.permissions.has("ADMINISTRATOR")){ return msg.channel.send({embeds:[bot.errorLog.noPermsMessage]}) @@ -21,7 +21,7 @@ module.exports = () => { if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]}) msg.channel.permissionOverwrites.delete(user.id) - msg.channel.send({embeds:[bot.errorLog.success("User removed!",user.tag+" is removed from this ticket")]}) + msg.channel.send({embeds:[bot.errorLog.success(l.commands.userRemovedTitle,l.commands.userRemovedDescription.replace("{0}",user.tag))]}) var loguser = msg.mentions.users.first() @@ -50,7 +50,7 @@ module.exports = () => { if (firstmsg == undefined || firstmsg.author.id != client.user.id) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) interaction.channel.permissionOverwrites.delete(user.id) - interaction.reply({embeds:[bot.errorLog.success("User removed!",user.tag+" is removed from this ticket")]}) + interaction.reply({embeds:[bot.errorLog.success(l.commands.userRemovedTitle,l.commands.userRemovedDescription.replace("{0}",user.tag))]}) var loguser = user diff --git a/commands/rename.js b/commands/rename.js index ebc0d43..84f3cd5 100644 --- a/commands/rename.js +++ b/commands/rename.js @@ -21,7 +21,7 @@ module.exports = () => { var newname = msg.content.split(config.prefix+"rename")[1].substring(1) - if (!newname) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage("Missing Argument ``:\n`"+config.prefix+"rename `")]}) + if (!newname) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage(l.errors.missingArgsDescription+" ``:\n`"+config.prefix+"rename `")]}) var name = msg.channel.name var prefix = "" @@ -35,7 +35,7 @@ module.exports = () => { if (!prefix) prefix = "noprefix-" msg.channel.setName(prefix+newname) - msg.channel.send({embeds:[bot.errorLog.success("The name has changed!","Warning: you can only change the channel name 2 times per minute!\n(this is due discord rate limits)")]}) + msg.channel.send({embeds:[bot.errorLog.success(l.commands.renameTitle,l.commands.renameWarning)]}) log("command","someone used the 'rename' command",[{key:"user",value:msg.author.tag}]) log("system","ticket renamed",[{key:"user",value:msg.author.tag},{key:"ticket",value:name},{key:"newname",value:newname}]) @@ -73,7 +73,7 @@ module.exports = () => { if (!prefix) prefix = "noprefix-" interaction.channel.setName(prefix+newname) - interaction.reply({embeds:[bot.errorLog.success("The name has changed!","Warning: you can only change the channel name 2 times per minute!\n(this is due discord rate limits)")]}) + interaction.reply({embeds:[bot.errorLog.success(l.commands.renameTitle,l.commands.renameWarning)]}) log("command","someone used the 'rename' command",[{key:"user",value:interaction.user.tag}]) log("system","ticket renamed",[{key:"user",value:interaction.user.tag},{key:"ticket",value:name},{key:"newname",value:newname}]) diff --git a/commands/reopen.js b/commands/reopen.js index c39c840..87273a0 100644 --- a/commands/reopen.js +++ b/commands/reopen.js @@ -23,7 +23,7 @@ module.exports = () => { if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]}) - msg.channel.send({embeds:[bot.errorLog.success("Re-Open this ticket!","You can re-open this ticket by clicking on the button below!")],components:[reopenCommandBar]}) + msg.channel.send({embeds:[bot.errorLog.success(l.commands.reopenTitle,l.commands.reopenDescription)],components:[reopenCommandBar]}) log("command","someone used the 'reopen' command",[{key:"user",value:msg.author.tag}]) @@ -40,7 +40,7 @@ module.exports = () => { if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]}) - interaction.reply({embeds:[bot.errorLog.success("Re-Open this ticket!","You can re-open this ticket by clicking on the button below!")],components:[reopenCommandBar]}) + interaction.reply({embeds:[bot.errorLog.success(l.commands.reopenTitle,l.commands.reopenDescription)],components:[reopenCommandBar]}) log("command","someone used the 'reopen' command",[{key:"user",value:interaction.user.tag}]) diff --git a/commands/ticket.js b/commands/ticket.js index f7fea85..5f31171 100644 --- a/commands/ticket.js +++ b/commands/ticket.js @@ -22,7 +22,7 @@ module.exports = () => { const id = msg.content.split(config.prefix+"msg")[1].substring(1) ? msg.content.split(config.prefix+"msg")[1].substring(1) : false - if (!id) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage("Missing Argument ``:\n`"+config.prefix+"msg `")]}) + if (!id) return msg.channel.send({embeds:[bot.errorLog.invalidArgsMessage(l.errors.missingArgsDescription+" ``:\n`"+config.prefix+"msg `")]}) if (!msgIds.includes(id)) return msg.channel.send({embeds:[bot.errorLog.invalidIdChooseFromList(msgIds)]}) @@ -50,7 +50,7 @@ module.exports = () => { const {embed,componentRows} = require("../core/ticketMessageEmbed").createEmbed(id) - interaction.reply({content:"The embed is in the message below!"}) + interaction.reply({content:l.commands.ticketWarning}) interaction.channel.send({embeds:[embed],components:componentRows}) log("command","someone used the 'msg' command",[{key:"user",value:interaction.user.tag},{key:"id",value:id}]) diff --git a/core/errorLogSystem.js b/core/errorLogSystem.js index 2b8b9d1..c9476f9 100644 --- a/core/errorLogSystem.js +++ b/core/errorLogSystem.js @@ -11,14 +11,14 @@ const embed = discord.MessageEmbed exports.noPermsMessage = new embed() .setColor("RED") - .setTitle(":x: No Permissions! :x:") - .setDescription("You don't have the correct roles to run this command!\nYou need the `ADMINISTRATOR` permission or be in the list of allowed roles!") + .setTitle(":x: "+l.errors.noPermsTitle+" :x:") + .setDescription(l.errors.noPermsDescription) /**@param {String} message */ exports.invalidArgsMessage = (message) => { var x = new embed() .setColor("RED") - .setTitle(":x: Invalid Arguments! :x:") + .setTitle(":x: "+l.errors.missingArgsTitle+" :x:") .setDescription(message) return x @@ -28,7 +28,7 @@ exports.invalidArgsMessage = (message) => { exports.serverError = (message) => { var x = new embed() .setColor("ORANGE") - .setTitle(":warning: Bot Error! :warning:") + .setTitle(":warning: "+l.errors.boterror+" :warning:") .setDescription(message) return x @@ -38,15 +38,15 @@ exports.serverError = (message) => { exports.invalidIdChooseFromList = (list) => { var x = new embed() .setColor("RED") - .setTitle(":x: Invalid ID :x:") - .setDescription("Choose one of the id's below:\n`"+list.join("`\n`")+"`") + .setTitle(":x: "+l.errors.chooseFromListTitle+" :x:") + .setDescription(l.errors.chooseFromListDescription+"\n`"+list.join("`\n`")+"`") return x } exports.notInATicket = new embed() .setColor("RED") - .setTitle(":x: You are not in a ticket! :x:") - .setDescription("This command doesn't work outside tickets!") + .setTitle(":x: "+l.errors.notInTicketTitle+" :x:") + .setDescription(l.errors.notInTicketDescription) /**@param {String} message @param {String} title */ @@ -79,6 +79,12 @@ exports.custom = (title,message,emoji,color) => { return x } +const normalLog = (debugString) => { + const fs = require("fs") + const content = fs.existsSync("./openticketdebug.txt") ? fs.readFileSync("./openticketdebug.txt").toString() : "==========================\n\n==========================" + fs.writeFileSync("./openticketdebug.txt",content+"\nSYSTEM: "+debugString) +} + /** * * @param {"system"|"command"|"info"} type @@ -104,4 +110,8 @@ exports.log = async (type,message,params) => { }else if (type == "system"){ console.log(chalk.green("[system] ")+message+" "+chalk.yellow(parameters)) } + + const cd = new Date() + const months = ["January","February","March","April","May","June","July","August","September","October","November","December"] + normalLog("["+cd.getDate()+" "+months[cd.getMonth()-1]+" "+cd.getFullYear()+" - "+cd.getSeconds()+":"+cd.getMinutes()+":"+cd.getHours()+"] ["+type+"] "+message+" "+parameters) } \ No newline at end of file diff --git a/core/slashSystem/slashEnable.js b/core/slashSystem/slashEnable.js index 5fd1a48..446de3d 100644 --- a/core/slashSystem/slashEnable.js +++ b/core/slashSystem/slashEnable.js @@ -181,7 +181,7 @@ module.exports = async () => { readystats++ }) - //rename + //reopen client.application.commands.create({ name:"reopen", description:"Reopen this ticket.", diff --git a/core/ticketOpener.js b/core/ticketOpener.js index 43ef70f..cfce27e 100644 --- a/core/ticketOpener.js +++ b/core/ticketOpener.js @@ -48,6 +48,8 @@ module.exports = () => { //ticketoptions from config const currentTicketOptions = getconfigoptions.getOptionsById(customId) + if (currentTicketOptions.type != "ticket") return interaction.reply({embeds:bot.errorLog.serverError("This option isn't a ticket!")}) + if (currentTicketOptions == false || currentTicketOptions.type != "ticket") return interaction.reply({embeds:[bot.errorLog.serverError("This option is not a ticket but another type!")]}) if (interaction.isButton()){ diff --git a/index.js b/index.js index 9cb4394..973c6bf 100644 --- a/index.js +++ b/index.js @@ -14,6 +14,9 @@ if (process.argv[2]){ }else{var isDev = false} exports.developerMode = isDev +const language = require("./core/languageManager").language +exports.language = language + if (isDev){ try { var config = require('./devConfig.json') @@ -26,15 +29,12 @@ exports.config = config exports.errorLog = require("./core/errorLogSystem") const log = this.errorLog.log -const language = require("./core/languageManager").language -exports.language = language - client.on('ready',async () => { const chalk = await (await import("chalk")).default if (!process.argv[2].startsWith("slash")){ console.log(chalk.red("WELCOME TO OPEN TICKET!")) - log("info","open ticket ready") + log("info","open ticket ready",[{key:"version",value:require("./package.json").version}]) console.log(chalk.blue("\n\nlogs:")+"\n============") if (config.status.enabled){ @@ -89,52 +89,27 @@ if (process.argv[2] && !process.argv[2].startsWith("slash")){ } - -//===================================================================== -//===================================================================== -//ERROR DEBUG MODE: turn not on exept when you know what you are doing! -var errorDebugMode = false -//ERROR DEBUG MODE: turn not on exept when you know what you are doing! -//===================================================================== -//===================================================================== - - - -if (!errorDebugMode){ - process.on("uncaughtException",async (error,origin) => { - const chalk = await (await import("chalk")).default - console.log(chalk.red("\nOPEN TICKET ERROR: ")+error+"\n"+chalk.green("\nCreate a ticket in our support server for more information!\nIf you do this, you might help us to avoid a future bug!\n")) - }) +const debugLog = (debugString) => { + const content = fs.existsSync("./openticketdebug.txt") ? fs.readFileSync("./openticketdebug.txt").toString() : "==========================\n\n==========================" + fs.writeFileSync("./openticketdebug.txt",content+"\nDEBUG: "+debugString) } -if (errorDebugMode) { - const debugLog = (debugString) => { - const content = fs.existsSync("./openticketdebug.txt") ? fs.readFileSync("./openticketdebug.txt").toString() : "==========================\n\n==========================" - fs.writeFileSync("./openticketdebug.txt",content+"\nDEBUG: "+debugString) - } - const errorLog = (errorString,stack) => { - const content = fs.existsSync("./openticketdebug.txt") ? fs.readFileSync("./openticketdebug.txt").toString() : "==========================\n\n==========================" - fs.writeFileSync("./openticketdebug.txt",content+"\nERROR: "+errorString+" STACK: "+stack) - } - - client.on("debug", async (message) => { - if (message.startsWith("Provided token:")){ - debugLog("Provided token: ***********bot token is invisible**************...") - return - } - debugLog(message) - }); - - const asyncfunction = async () => { - const chalk = await (await import("chalk")).default - console.log("\n\nopen-ticket debug:\n"+chalk.bgYellow("ENTERING DEBUG MODE:")) - } - asyncfunction() - - process.on("uncaughtException",async (error,origin) => { - const chalk = await (await import("chalk")).default - console.log(chalk.red("\nMAIN ERROR: ")+"this error is saved in the debug file!") - errorLog(error.name+": "+error.message+" | origin: "+origin,error.stack) - }) +const errorLog = (errorString,stack) => { + const content = fs.existsSync("./openticketdebug.txt") ? fs.readFileSync("./openticketdebug.txt").toString() : "==========================\n\n==========================" + fs.writeFileSync("./openticketdebug.txt",content+"\nERROR: "+errorString+" STACK: "+stack) } +client.on("debug", async (message) => { + if (message.startsWith("Provided token:")){ + debugLog("Provided token: ***********bot token is invisible**************...") + return + } + debugLog(message) +}); + +process.on("uncaughtException",async (error,origin) => { + const chalk = await (await import("chalk")).default + console.log(chalk.red("\nOPEN TICKET ERROR: ")+error+"\n"+chalk.green("\nCreate a ticket in our support server for more information!\nIf you do this, you might help us to avoid a future bug!\n")) + errorLog(error.name+": "+error.message+" | origin: "+origin,error.stack) +}) + client.login(config.auth_token) \ No newline at end of file diff --git a/language/english.json b/language/english.json index 8721945..a5b0320 100644 --- a/language/english.json +++ b/language/english.json @@ -4,7 +4,9 @@ "missingArgsDescription":"Missing Argument", "noPermsTitle":"No Permissions!", "noPermsDescription":"You don't have the correct roles to run this command!\nYou need the `ADMINISTRATOR` permission or be in the list of allowed roles!", - "chooseFromList":"Choose one of the id's below:", + "chooseFromListTitle":"Invalid ID", + "chooseFromListDescription":"Choose one of the id's below:", + "boterror":"Bot Error!", "notInTicketTitle":"You are not in a ticket!", "notInTicketDescription":"This command doesn't work outside tickets!", "ticketDoesntExist":"This ticket doesn't exist anymore!",