diff --git a/core/closebuttons.js b/core/closebuttons.js index fb8173a..100e496 100644 --- a/core/closebuttons.js +++ b/core/closebuttons.js @@ -59,7 +59,7 @@ module.exports = () => { .setCustomId("closeTicket") .setDisabled(false) .setStyle("SECONDARY") - .setLabel("Close Ticket") + .setLabel(l.buttons.close) .setEmoji("🔒") ) .addComponents( @@ -67,7 +67,7 @@ module.exports = () => { .setCustomId("deleteTicket") .setDisabled(false) .setStyle("DANGER") - .setLabel("Delete Ticket") + .setLabel(l.buttons.delete) .setEmoji("✖️") ) var closeRowClosed = new discord.MessageActionRow() @@ -76,7 +76,7 @@ module.exports = () => { .setCustomId("deleteTicket1") .setDisabled(false) .setStyle("DANGER") - .setLabel("Delete Ticket") + .setLabel(l.buttons.delete) .setEmoji("✖️") ) .addComponents( @@ -84,7 +84,7 @@ module.exports = () => { .setCustomId("sendTranscript") .setDisabled(false) .setStyle("SECONDARY") - .setLabel("Send Transcript File") + .setLabel(l.buttons.sendTranscript) .setEmoji("📄") ) .addComponents( @@ -92,7 +92,7 @@ module.exports = () => { .setCustomId("reopenTicket") .setDisabled(false) .setStyle("SUCCESS") - .setLabel("Re-Open Ticket") + .setLabel(l.buttons.reopen) .setEmoji("✔") ) @@ -102,7 +102,7 @@ module.exports = () => { .setCustomId("closeTicket") .setDisabled(true) .setStyle("SECONDARY") - .setLabel("Close Ticket") + .setLabel(l.buttons.close) .setEmoji("🔒") ) .addComponents( @@ -110,7 +110,7 @@ module.exports = () => { .setCustomId("deleteTicket") .setDisabled(true) .setStyle("DANGER") - .setLabel("Delete Ticket") + .setLabel(l.buttons.delete) .setEmoji("✖️") ) diff --git a/core/languageManager.js b/core/languageManager.js index 1fcd01f..b479eef 100644 --- a/core/languageManager.js +++ b/core/languageManager.js @@ -19,10 +19,10 @@ const errorLog = async () => { console.log(chalk.red("Something went wrong when loading the language!")+"\nCheck the config file or create a ticket in our server!") } -const successLog = async () => { +const successLog = async (language) => { const chalk = await (await import("chalk")).default - console.log(chalk.green("loaded language file...")) + console.log(chalk.green("loaded language "+language+"...")) } if (!localLanguage){ @@ -33,5 +33,5 @@ if (!localLanguage){ runError() }else{ exports.language = localLanguage - successLog() + successLog(config.languagefile) } \ No newline at end of file diff --git a/core/reactionRoles.js b/core/reactionRoles.js index 40af0c4..651d2d5 100644 --- a/core/reactionRoles.js +++ b/core/reactionRoles.js @@ -18,7 +18,7 @@ module.exports = async () => { if (interaction.customId.startsWith("newR")){ const optionid = interaction.customId.split("newR")[1] if (!optionid){ - interaction.reply({embeds:[bot.errorLog.serverError("This role doesn't exist anymore!")]}) + interaction.reply({embeds:[bot.errorLog.serverError(l.errors.roleDoesntExist)]}) return } } @@ -56,7 +56,7 @@ module.exports = async () => { } }catch{ - interaction.replyinteraction.channel.send({embeds:[bot.errorLog.serverError("Something went wrong!**\nPlease try again another time!")]}) + interaction.replyinteraction.channel.send({embeds:[bot.errorLog.serverError(l.errors.somethingWentWrong)]}) } }) } \ No newline at end of file diff --git a/core/ticketCloser.js b/core/ticketCloser.js index b66f2a8..468a74f 100644 --- a/core/ticketCloser.js +++ b/core/ticketCloser.js @@ -70,7 +70,7 @@ exports.closeTicket = async (interaction,prefix,mode) => { .setCustomId("deleteTicket1") .setDisabled(false) .setStyle("DANGER") - .setLabel("Delete Ticket") + .setLabel(l.buttons.delete) .setEmoji("✖️") ) .addComponents( @@ -78,7 +78,7 @@ exports.closeTicket = async (interaction,prefix,mode) => { .setCustomId("sendTranscript") .setDisabled(false) .setStyle("SECONDARY") - .setLabel("Send Transcript File") + .setLabel(l.buttons.sendTranscript) .setEmoji("📄") ) .addComponents( @@ -86,14 +86,14 @@ exports.closeTicket = async (interaction,prefix,mode) => { .setCustomId("reopenTicket") .setDisabled(false) .setStyle("SUCCESS") - .setLabel("Re-Open Ticket") + .setLabel(l.buttons.reopen) .setEmoji("✔") ) const embed = new discord.MessageEmbed() .setColor(config.main_color) - .setTitle(":lock: Closed this ticket! :lock:") - .setDescription("Only admins can talk in this ticket now!\n\n*Click on the button below to delete this ticket or to re-open it!*") + .setTitle(":lock: "+l.messages.closedTitle+" :lock:") + .setDescription(l.messages.closedDescription) interaction.channel.send({embeds:[embed],components:[closeButtonRow]}) log("system","closed a ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name}]) @@ -117,9 +117,9 @@ exports.closeTicket = async (interaction,prefix,mode) => { if (config.system.enable_transcript){ const transcriptEmbed = new discord.MessageEmbed() .setColor(config.main_color) - .setTitle("A new transcript is here!") + .setTitle(l.messages.newTranscriptTitle) .setAuthor({name:interaction.user.username,iconURL:interaction.user.displayAvatarURL({format:"png"})}) - .setDescription("You can find the transcript in the text file above!") + .setDescription(l.messages.newTranscriptDescription) .setFooter({text:"ticket: "+ticketuserarray}) interaction.guild.channels.cache.find(c => c.id == config.system.transcript_channel).send({ @@ -131,8 +131,8 @@ exports.closeTicket = async (interaction,prefix,mode) => { if (config.system.enable_DM_transcript){ const transcriptEmbed = new discord.MessageEmbed() .setColor(config.main_color) - .setTitle("Here is a transcript of your ticket!") - .setDescription("You can find the transcript in the text file above!") + .setTitle(l.messages.newTranscriptTitle) + .setDescription(l.messages.newTranscriptDescription) .setFooter({text:"ticket: "+ticketuserarray}) if (!isDatabaseError) getusernameStep1.send({ @@ -160,10 +160,10 @@ exports.runThis = () => { if (fileattachment == false){ log("system","internal error: transcript is not created!") - interaction.channel.send({embeds:[bot.errorLog.serverError("Something went wrong while making the transcript!**\nPlease try again another time!")]}) + interaction.channel.send({embeds:[bot.errorLog.serverError(l.errors.somethingWentWrongTranscript)]}) return } - interaction.channel.send({content:"**Here is the transcript:**",files:[fileattachment]}) + interaction.channel.send({content:"**"+l.messages.hereIsTheTranscript+"**",files:[fileattachment]}) }) } \ No newline at end of file diff --git a/core/ticketMessageEmbed.js b/core/ticketMessageEmbed.js index 317d04b..ea9b3c3 100644 --- a/core/ticketMessageEmbed.js +++ b/core/ticketMessageEmbed.js @@ -40,7 +40,7 @@ exports.createEmbed = (id) => { var description = data.description if (data.enableTicketExplaination){ - description = description+"\n\n__choose a category:__\n" + description = description+"\n\n__"+l.messages.chooseCategory+"__\n" var ticketExplainations = [] buttonData.forEach((button) => { @@ -52,7 +52,7 @@ exports.createEmbed = (id) => { } if (data.enableMaxTicketsWarning){ - description = description+"\n\n**Warning:** _You can only create "+config.system.max_allowed_tickets+" ticket(s) at a time!_" + description = description+"\n\n"+l.commands.maxTicketWarning.replace("{0}",config.system.max_allowed_tickets) } embed.setDescription(description) diff --git a/core/ticketOpener.js b/core/ticketOpener.js index cfce27e..3cf050d 100644 --- a/core/ticketOpener.js +++ b/core/ticketOpener.js @@ -15,7 +15,7 @@ module.exports = () => { .setCustomId("closeTicket") .setDisabled(false) .setStyle("SECONDARY") - .setLabel("Close Ticket") + .setLabel(l.buttons.close) .setEmoji("🔒") ) .addComponents( @@ -23,7 +23,7 @@ module.exports = () => { .setCustomId("deleteTicket") .setDisabled(false) .setStyle("DANGER") - .setLabel("Delete Ticket") + .setLabel(l.buttons.delete) .setEmoji("✖️") ) @@ -38,7 +38,7 @@ module.exports = () => { if (interaction.customId.startsWith("newT")){ const optionid = interaction.customId.split("newT")[1] if (!optionid){ - interaction.reply({embeds:[bot.errorLog.serverError("This ticket doesn't exist anymore!")]}) + interaction.reply({embeds:[bot.errorLog.serverError(l.errors.ticketDoesntExist)]}) return } } @@ -48,21 +48,19 @@ 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 (currentTicketOptions == false || currentTicketOptions.type != "ticket") return interaction.reply({embeds:[bot.errorLog.serverError(l.errors.anotherOption)]}) if (interaction.isButton()){ interaction.deferUpdate() }else if (interaction.isCommand()){ - interaction.reply({embeds:[bot.errorLog.success("Ticket Created!","Your ticket is created, you can detect it by a ping!")]}) + interaction.reply({embeds:[bot.errorLog.success(l.messages.createdTitle,l.messages.createdDescription)]}) } if (storage.get("ticketStorage",interaction.member.id) == null || storage.get("ticketStorage",interaction.member.id) == "false"|| Number(storage.get("ticketStorage",interaction.member.id)) < config.system.max_allowed_tickets){ try{ if (config.system.enable_DM_Messages){ - interaction.member.send({embeds:[bot.errorLog.custom("New Ticket!",currentTicketOptions.message,":ticket:",config.main_color)]}) + interaction.member.send({embeds:[bot.errorLog.custom(l.messages.newTicketDmTitle,currentTicketOptions.message,":ticket:",config.main_color)]}) } } catch{log("system","can't send DM to member, member doesn't allow dm's")} @@ -171,7 +169,7 @@ module.exports = () => { }else{ try { if (config.system.enable_DM_Messages){ - interaction.member.send({embeds:[bot.errorLog.warning("Max amount reached!","You reached the maximum number of tickets allowed!\nSo you can't create a new one!")]}) + interaction.member.send({embeds:[bot.errorLog.warning(l.errors.maxAmountTitle,l.errors.maxAmountDescription)]}) } } catch{log("system","can't send DM to member, member doesn't allow dm's")} diff --git a/core/ticketReopener.js b/core/ticketReopener.js index 2a4b8e4..755ab09 100644 --- a/core/ticketReopener.js +++ b/core/ticketReopener.js @@ -13,7 +13,7 @@ module.exports = () => { .setCustomId("closeTicket") .setDisabled(false) .setStyle("SECONDARY") - .setLabel("Close Ticket") + .setLabel(l.buttons.close) .setEmoji("🔒") ) .addComponents( @@ -21,7 +21,7 @@ module.exports = () => { .setCustomId("deleteTicket") .setDisabled(false) .setStyle("DANGER") - .setLabel("Delete Ticket") + .setLabel(l.buttons.delete) .setEmoji("✖️") ) @@ -31,7 +31,7 @@ module.exports = () => { .setCustomId("deleteTicket1") .setDisabled(false) .setStyle("DANGER") - .setLabel("Delete Ticket") + .setLabel(l.buttons.delete) .setEmoji("✖️") ) .addComponents( @@ -39,7 +39,7 @@ module.exports = () => { .setCustomId("sendTranscript") .setDisabled(false) .setStyle("SECONDARY") - .setLabel("Send Transcript File") + .setLabel(l.buttons.sendTranscript) .setEmoji("📄") ) .addComponents( @@ -47,7 +47,7 @@ module.exports = () => { .setCustomId("reopenTicket") .setDisabled(false) .setStyle("SUCCESS") - .setLabel("Re-Open Ticket") + .setLabel(l.buttons.reopen) .setEmoji("✔") ) @@ -119,8 +119,8 @@ module.exports = () => { const embed = new discord.MessageEmbed() .setColor(config.main_color) - .setTitle(":unlock: Re-Opened this ticket! :unlock:") - .setDescription("Feel free to talk again!") + .setTitle(":unlock: "+l.messages.reopenTitle+" :unlock:") + .setDescription(l.messages.reopenDescription) interaction.message.edit({embeds:[embed],components:[closeRowNormal]}) @@ -186,8 +186,8 @@ module.exports = () => { const embed = new discord.MessageEmbed() .setColor(config.main_color) - .setTitle(":unlock: Re-Opened this ticket! :unlock:") - .setDescription("Feel free to talk again!") + .setTitle(":unlock: "+l.messages.reopenTitle+" :unlock:") + .setDescription(l.messages.reopenDescription) interaction.message.edit({content:null,embeds:[embed],components:[closeRowNormal]}) diff --git a/index.js b/index.js index 973c6bf..dc2660f 100644 --- a/index.js +++ b/index.js @@ -34,7 +34,7 @@ client.on('ready',async () => { if (!process.argv[2].startsWith("slash")){ console.log(chalk.red("WELCOME TO OPEN TICKET!")) - log("info","open ticket ready",[{key:"version",value:require("./package.json").version}]) + log("info","open ticket ready",[{key:"version",value:require("./package.json").version},{key:"language",value:config.languagefile}]) console.log(chalk.blue("\n\nlogs:")+"\n============") if (config.status.enabled){ diff --git a/language/custom.json b/language/custom.json new file mode 100644 index 0000000..4109f2b --- /dev/null +++ b/language/custom.json @@ -0,0 +1,73 @@ +{ + "errors":{ + "missingArgsTitle":"Invalid Arguments!", + "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!", + "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!", + "roleDoesntExist":"This role doesn't exist anymore!", + "anotherOption":"This option is not a ticket but another type!", + "maxAmountTitle":"Max amount reached!", + "maxAmountDescription":"You reached the maximum number of tickets allowed!\nSo you can't create a new one!", + "somethingWentWrong":"Something went wrong!**\nPlease try again another time!", + "somethingWentWrongTranscript":"Something went wrong while making the transcript!**\nPlease try again another time!" + }, + "commands":{ + "userAddedTitle":"User Added!", + "userAddedDescription":"{0} is added to this ticket!", + "userRemovedTitle":"User Removed!", + "userRemovedDescription":"{0} is removed from this ticket!", + + "renameTitle":"The name is changed!", + "renameWarning":"Warning: you can only change the channel name 2 times per minute!\n(this is due discord rate limits)", + + "closeTitle":"Close this ticket!", + "closeDescription":"You can close this ticket by clicking on the button below!", + "deleteTitle":"Delete this ticket!", + "deleteDescription":"You can delete this ticket by clicking on the button below!", + "reopenTitle":"Re-Open this ticket!", + "reopenDescription":"You can re-open this ticket by clicking on the button below!", + + "ticketWarning":"The embed is in the message below!", + "maxTicketWarning":"**Warning:** _You can only create {0} ticket(s) at a time!_" + }, + "helpMenu":{ + "title":"Help Menu:", + "header1":"**Go to {0} to create a ticket!**\n\n", + "header2":"**Run the command `/new` or `/ticket` to create a ticket!**\n\n", + + "msgCmd":"Spawn an embed with buttons. (admins only)", + "renameCmd":"Rename a ticket. (no spaces)", + "closeCmd":"Close a ticket.", + "deleteCmd":"Delete a ticket.", + "addCmd":"Add a user to the ticket.", + "removeCmd":"Remove a user from the ticket.", + "reopenCmd":"Re-Open a ticket after it was closed." + }, + "buttons":{ + "close":"Close Ticket", + "delete":"Delete Ticket", + "reopen":"Re-Open Ticket", + "sendTranscript":"Send Transcript File" + }, + "messages":{ + "reopenTitle":"Re-Opened this ticket!", + "reopenDescription":"Feel free to talk again!", + "closedTitle":"Closed this ticket!", + "closedDescription":"Only admins can talk in this ticket now!\n\n*Click on the button below to delete or to re-open this ticket!*", + "createdTitle":"Ticket Created!", + "createdDescription":"Your ticket is created, you can detect it by a ping!", + + "newTicketDmTitle":"New Ticket!", + "newTranscriptTitle":"A new transcript is here!", + "newTranscriptDescription":"You can find the transcript in the text file above!", + "hereIsTheTranscript":"Here is the transcript:", + + "chooseCategory":"choose a category:" + } +} \ No newline at end of file diff --git a/language/dutch.json b/language/dutch.json new file mode 100644 index 0000000..6d61cf3 --- /dev/null +++ b/language/dutch.json @@ -0,0 +1,73 @@ +{ + "errors":{ + "missingArgsTitle":"Ongeldige Argumenten!", + "missingArgsDescription":"Geen Argument", + "noPermsTitle":"Geen permissies!", + "noPermsDescription":"Je hebt niet de juiste rollen om deze command uit te voeren!\nJe hebt de `ADMINISTRATOR` permissie nodig of je moet in de lijst van toegestane rollen zitten!", + "chooseFromListTitle":"Ongeldig ID", + "chooseFromListDescription":"Kies een van deze id's:", + "boterror":"Bot Error!", + "notInTicketTitle":"Je bent niet in een ticket!", + "notInTicketDescription":"Deze command werkt niet buiten tickets!", + "ticketDoesntExist":"Dit ticket bestaat niet meer!", + "roleDoesntExist":"Deze rol bestaat niet meer!", + "anotherOption":"Deze optie is geen ticket maar een ander type!", + "maxAmountTitle":"Max aantal bereikt!", + "maxAmountDescription":"Je hebt het maximum aantal openstaande ticket bereikt!\nDus je kan er geen nieuwe maken!", + "somethingWentWrong":"Iets ging fout!**\nProbeer een andere keer opnieuw!", + "somethingWentWrongTranscript":"Iets ging fout bij het maken van het transcript!**\nProbeer een andere keer opnieuw!" + }, + "commands":{ + "userAddedTitle":"User Toegevoegd!", + "userAddedDescription":"{0} is toegevoegd aan dit ticket!", + "userRemovedTitle":"User Verwijderd!", + "userRemovedDescription":"{0} is verwijderd van dit ticket!", + + "renameTitle":"De naam is veranderd!", + "renameWarning":"Waarschuwing: je kan de kanaalnaam maar 2 keer per minuut veranderen!\n(dit heeft te maken met discord rate limits)", + + "closeTitle":"Sluit dit ticket!", + "closeDescription":"Je kan dit ticket sluiten door op de knop hier onder te duwen!", + "deleteTitle":"Verwijder dit ticket!", + "deleteDescription":"Je kan dit ticket verwijderen door op de knop hier onder te duwen!", + "reopenTitle":"Heropen dit ticket ticket!", + "reopenDescription":"Je kan dit ticket heropenen door op de knop hier onder te duwen!", + + "ticketWarning":"De embed is in het bericht hier onder!", + "maxTicketWarning":"**Waarschuwing:** _Je kan maar {0} ticket(s) tegelijkertijd aanmaken!_" + }, + "helpMenu":{ + "title":"Help Menu:", + "header1":"**Ga naar {0} om een ticket te maken!**\n\n", + "header2":"**Run de command `/new` of `/ticket` om een ticket te maken!**\n\n", + + "msgCmd":"Spawn een embed met knoppen. (admins only)", + "renameCmd":"Hernoem een ticket. (geen spaties)", + "closeCmd":"Sluit een ticket.", + "deleteCmd":"Verwijder een ticket.", + "addCmd":"Voeg een user toe aan een ticket.", + "removeCmd":"Verwijder een user van een ticket.", + "reopenCmd":"Heropen een ticket nadat het gesloten wordt." + }, + "buttons":{ + "close":"Sluit Ticket", + "delete":"Verwijder Ticket", + "reopen":"Heropen Ticket", + "sendTranscript":"Stuur Transcript Bestand" + }, + "messages":{ + "reopenTitle":"Dit ticket is terug geopend!", + "reopenDescription":"Voel vrij om terug te praten!", + "closedTitle":"Dit ticket is gesloten!", + "closedDescription":"Nu kunnen alleen nog admins praten in dit ticket!\n\n*Klik op de knop hier onder om het ticket terug te openen of te verwijderen!*", + "createdTitle":"Ticket Gemaakt!", + "createdDescription":"Je ticket is gemaakt, je kan het detecteren bij een ping!", + + "newTicketDmTitle":"Nieuw Ticket!", + "newTranscriptTitle":"Een nieuw transcript is hier!", + "newTranscriptDescription":"Je kan het transcript vinden in het bestand hierboven!", + "hereIsTheTranscript":"Hier is het transcript:", + + "chooseCategory":"kies een categorie:" + } +} \ No newline at end of file diff --git a/language/english.json b/language/english.json index a5b0320..4109f2b 100644 --- a/language/english.json +++ b/language/english.json @@ -41,7 +41,7 @@ "header1":"**Go to {0} to create a ticket!**\n\n", "header2":"**Run the command `/new` or `/ticket` to create a ticket!**\n\n", - "msgCmd":"Spawn an embed with buttons. (admin only)", + "msgCmd":"Spawn an embed with buttons. (admins only)", "renameCmd":"Rename a ticket. (no spaces)", "closeCmd":"Close a ticket.", "deleteCmd":"Delete a ticket.", @@ -59,7 +59,7 @@ "reopenTitle":"Re-Opened this ticket!", "reopenDescription":"Feel free to talk again!", "closedTitle":"Closed this ticket!", - "closedDescription":"Only admins can talk in this ticket now!\n\n*Click on the button below to delete this ticket or to re-open it!*", + "closedDescription":"Only admins can talk in this ticket now!\n\n*Click on the button below to delete or to re-open this ticket!*", "createdTitle":"Ticket Created!", "createdDescription":"Your ticket is created, you can detect it by a ping!",