diff --git a/.github/SECURITY.md b/.github/SECURITY.md index 8945e33..dc4c19b 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -10,11 +10,11 @@ We only support Open Ticket versions listed below! With support, we mean bugs, e | Version | Supported | |-----------|-------------------| +| 3.5.2 | ✅ | +| 3.5.1 | ✅ | | 3.5.0 | ✅ | -| 3.4.4 | ✅ | -| 3.4.3 | 🟧 | -| 3.4.2 | 🟧 | -| < 3.4.2 | ❌ | +| 3.4.4 | 🟧 | +| < 3.4.4 | ❌ | ## Reporting a Vulnerability diff --git a/README.md b/README.md index 7a8bce1..d34ee65 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ There will be massive improvements for more stability & features! But the best p Open Ticket -[![discord](https://img.shields.io/badge/discord-join%20our%20server-5865F2.svg?style=flat-square&logo=discord)](https://discord.com/invite/26vT9wt3n3) [![version](https://img.shields.io/badge/version-3.5.0-brightgreen.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/releases/tag/v3.5.0) [![discord.js](https://img.shields.io/badge/discord.js-v14-CB3837.svg?style=flat-square&logo=npm)]() [![license](https://img.shields.io/badge/license-GPL%203.0-important.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) [![stars](https://img.shields.io/github/stars/djj123dj/open-ticket?color=yellow&label=stars&logo=github&style=flat-square)](https://docs.openticket.dj-dj.be) +[![discord](https://img.shields.io/badge/discord-join%20our%20server-5865F2.svg?style=flat-square&logo=discord)](https://discord.com/invite/26vT9wt3n3) [![version](https://img.shields.io/badge/version-3.5.2-brightgreen.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/releases/tag/v3.5.2) [![discord.js](https://img.shields.io/badge/discord.js-v14-CB3837.svg?style=flat-square&logo=npm)]() [![license](https://img.shields.io/badge/license-GPL%203.0-important.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) [![stars](https://img.shields.io/github/stars/djj123dj/open-ticket?color=yellow&label=stars&logo=github&style=flat-square)](https://docs.openticket.dj-dj.be) ### Open Ticket Open Ticket is the most customisable discord ticket bot that you will ever find! There are more than 150 options to customise in the config! This includes html transcripts, unlimited amount of tickets, custom embeds & more! Did you know that even the html transcripts are highly customisable? Don't wait and check it out! If you're having trouble setting the bot up, feel free to join our support server and we will help you further! @@ -58,7 +58,7 @@ Take a look at all the features and discover the possibilities! |-------------------|--------------------------|--------------------------------| |English |djj123dj |🟢 Up To Date | |Dutch |djj123dj |🟢 Up To Date | -|French |sankedev |🟢 Up To Date | +|French |sankedev & tostam |🟢 Up To Date | |Romanian |sankedev |🟢 Up To Date | |Spanish |redactado & josuens |🟢 Up To Date | |German |david.3 |🟢 Up To Date | @@ -75,9 +75,10 @@ Take a look at all the features and discover the possibilities! |Thai |modshd |🟢 Up To Date | |Norwegian |noonenook |🟢 Up To Date | |Greek |stefanos__. |🔴 Outdated | +|Indonesian |erxg |🟢 Up To Date | ## links -current version: _v3.5.0_ +current version: _v3.5.2_
changelog: [click here](https://otgithub.dj-dj.be/releases)
documentation: [click here](https://docs.openticket.dj-dj.be/quick-start) diff --git a/commands/add.js b/commands/add.js index 3ca6c5c..de458be 100644 --- a/commands/add.js +++ b/commands/add.js @@ -49,7 +49,7 @@ module.exports = () => { if (!interaction.guild) return const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) - if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]}) + if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) const ticketId = hiddendata.find(d => d.key == "type").value if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ diff --git a/commands/change.js b/commands/change.js index 5232e70..36fedbf 100644 --- a/commands/change.js +++ b/commands/change.js @@ -79,7 +79,7 @@ module.exports = () => { if (!interaction.guild) return const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) - if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]}) + if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) const ticketId = hiddendata.find(d => d.key == "type").value if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ diff --git a/commands/claim.js b/commands/claim.js index bbc82a6..72fad2a 100644 --- a/commands/claim.js +++ b/commands/claim.js @@ -67,7 +67,7 @@ module.exports = () => { if (!interaction.guild) return const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) - if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]}) + if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) const ticketId = hiddendata.find(d => d.key == "type").value if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ diff --git a/commands/close.js b/commands/close.js index d4a5750..51694c7 100644 --- a/commands/close.js +++ b/commands/close.js @@ -57,13 +57,15 @@ module.exports = () => { const reason = interaction.options.getString("reason") ? interaction.options.getString("reason") : false - await interaction.deferReply() + const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) - if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]}) + if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) const ticketId = hiddendata.find(d => d.key == "type").value - if (hiddendata.find(h => h.key == "pendingdelete")) return interaction.editReply({embeds:[bot.errorLog.warning("Warning!","You can't close a ticket while it's being deleted!")]}) + if (hiddendata.find(h => h.key == "pendingdelete")) return interaction.reply({embeds:[bot.errorLog.warning("Warning!","You can't close a ticket while it's being deleted!")]}) + + await interaction.deferReply() const descriptionReason = reason ? "**"+l.messages.reason+":** "+reason : false interaction.editReply({embeds:[bot.embeds.commands.closeEmbed(interaction.user,descriptionReason)],components:[bot.buttons.close.closeCommandRow]}) diff --git a/commands/delete.js b/commands/delete.js index 0ea6f21..84ade6b 100644 --- a/commands/delete.js +++ b/commands/delete.js @@ -51,7 +51,7 @@ module.exports = () => { if (!interaction.guild) return const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) - if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]}) + if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) const ticketId = hiddendata.find(d => d.key == "type").value if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ diff --git a/commands/remove.js b/commands/remove.js index b7b1fa3..b14d6b8 100644 --- a/commands/remove.js +++ b/commands/remove.js @@ -49,7 +49,7 @@ module.exports = () => { if (!interaction.guild) return const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) - if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]}) + if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) const ticketId = hiddendata.find(d => d.key == "type").value if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ diff --git a/commands/rename.js b/commands/rename.js index ee3362b..e2a5111 100644 --- a/commands/rename.js +++ b/commands/rename.js @@ -55,7 +55,7 @@ module.exports = () => { if (!interaction.guild) return const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) - if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]}) + if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) const ticketId = hiddendata.find(d => d.key == "type").value if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ diff --git a/commands/reopen.js b/commands/reopen.js index 033ef0f..b02cc3d 100644 --- a/commands/reopen.js +++ b/commands/reopen.js @@ -33,13 +33,13 @@ module.exports = () => { if (!interaction.isChatInputCommand()) return if (interaction.commandName != "reopen") return - await interaction.deferReply() - const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) - if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]}) + if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) const ticketId = hiddendata.find(d => d.key == "type").value - if (hiddendata.find(h => h.key == "pendingdelete")) return interaction.editReply({embeds:[bot.errorLog.warning("Warning!","You can't re-open a ticket while it's being deleted!")]}) + if (hiddendata.find(h => h.key == "pendingdelete")) return interaction.reply({embeds:[bot.errorLog.warning("Warning!","You can't re-open a ticket while it's being deleted!")]}) + + await interaction.deferReply() await interaction.editReply({embeds:[bot.embeds.commands.reopenEmbed(interaction.user)],components:[bot.buttons.close.openRowNormal]}) diff --git a/commands/unclaim.js b/commands/unclaim.js index 7082803..c37e1a6 100644 --- a/commands/unclaim.js +++ b/commands/unclaim.js @@ -74,7 +74,7 @@ module.exports = () => { if (!interaction.guild) return const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) - if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]}) + if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]}) const ticketId = hiddendata.find(d => d.key == "type").value if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ diff --git a/config.json b/config.json index 56791f4..838b126 100644 --- a/config.json +++ b/config.json @@ -53,7 +53,7 @@ }, "image":{ "enable":false, - "url":"https://www.dj-dj.be/wp-content/uploads/2022/09/pfp-cropped.png" + "url":"https://www.example.com/catmemes/cat.png" }, "closedCategory":{ @@ -111,7 +111,7 @@ "dropdown":false, "enableFooter":false, - "footer":"Open Ticket v3.5.0 - I'm a footer!", + "footer":"Open Ticket v3.5.2 - I'm a footer!", "enableFooterImage":false, "footerImage":"https://www.example.com/catmemes/cat.png", diff --git a/core/transcriptSystem/manager.js b/core/transcriptSystem/manager.js index f517bb9..8ba7e4c 100644 --- a/core/transcriptSystem/manager.js +++ b/core/transcriptSystem/manager.js @@ -113,6 +113,12 @@ module.exports = async (messages,guild,channel,user,reason) => { if (!tc) return tc.send({embeds:[errembed],files:[attachment]}) } + if (tsconfig.sendTranscripts.enableDM && user){ + const embed = tsembeds.tsready(chName,chId,null,user) + try { + ticketopener.send({embeds:[embed],files:[attachment]}) + }catch{} + } return } @@ -167,6 +173,12 @@ module.exports = async (messages,guild,channel,user,reason) => { if (!tc) return tc.send({embeds:[errembed],files:[attachment]}) } + if (tsconfig.sendTranscripts.enableDM && user){ + const embed = tsembeds.tsready(chName,chId,null,user) + try { + ticketopener.send({embeds:[embed],files:[attachment]}) + }catch{} + } } }else{ const attachment = await require("./oldTranscript").createTranscript(messages,channel) @@ -179,6 +191,12 @@ module.exports = async (messages,guild,channel,user,reason) => { if (!tc) return tc.send({embeds:[embed],files:[attachment]}) } + if (tsconfig.sendTranscripts.enableDM && user){ + const embed = tsembeds.tsready(chName,chId,null,user) + try { + ticketopener.send({embeds:[embed],files:[attachment]}) + }catch{} + } } } asyncmanager() diff --git a/core/utils/liveStatus.js b/core/utils/liveStatus.js index 8985dae..3d409c1 100644 --- a/core/utils/liveStatus.js +++ b/core/utils/liveStatus.js @@ -189,7 +189,7 @@ exports.liveStatusUploadManager = async (err) => { //system:config.system }, language:config.languageFile, - version:"3.5.0", + version:"3.5.2", slashcmds:slashMode, transcripts:transcriptMode, plugins:fs.readdirSync("./plugins"), diff --git a/index.js b/index.js index a507afa..72be0f8 100644 --- a/index.js +++ b/index.js @@ -25,7 +25,7 @@ INFORMATION: ============ - Open Ticket v3.5.0 - © DJdj Development + Open Ticket v3.5.2 - © DJdj Development discord: https://discord.dj-dj.be website: https://www.dj-dj.be @@ -54,7 +54,7 @@ const client = new discord.Client({ partials:[Partials.Channel,Partials.Message] }) exports.client = client -client.setMaxListeners(50) +client.setMaxListeners(100) if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","created client") //LOAD CONFIG @@ -396,7 +396,55 @@ this.actionRecorder.push({ type:"debugsystem.success" }) +//PARSE .env FILE FROM DOTENV LIB +//npm i dotenv +//https://github.com/motdotla/dotenv +/**@param {Buffer} src */ +const loadFromDotEnv = (src) => { + const LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg + + const obj = {} + + // Convert buffer to string + let lines = src.toString() + + // Convert line breaks to same format + lines = lines.replace(/\r\n?/mg, '\n') + + let match + while ((match = LINE.exec(lines)) != null) { + const key = match[1] + + // Default undefined or null to empty string + let value = (match[2] || '') + + // Remove whitespace + value = value.trim() + + // Check if double quoted + const maybeQuote = value[0] + + // Remove surrounding quotes + value = value.replace(/^(['"`])([\s\S]*)\1$/mg, '$2') + + // Expand newlines if double quoted + if (maybeQuote === '"') { + value = value.replace(/\\n/g, '\n') + value = value.replace(/\\r/g, '\r') + } + + // Add to object + obj[key] = value + } + process.env.TOKEN = obj.TOKEN +} + //LOGIN SYSTEM -const token = config.token.fromENV ? process.env.TOKEN : config.token.value -client.login(token) +if (config.token.fromENV){ + loadFromDotEnv(fs.readFileSync(".env")) + client.login(process.env.TOKEN) +}else{ + client.login(config.token.value) +} + this.errorLog.log("debug","login with token") \ No newline at end of file diff --git a/language/arabic.json b/language/arabic.json index 0a9a8db..1436481 100644 --- a/language/arabic.json +++ b/language/arabic.json @@ -1,6 +1,6 @@ { "_CREDITS":"ChilledBroke#9986 & M4#5882", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors": { "missingArgsTitle": "قيمة غير صالحة!", diff --git a/language/custom.json b/language/custom.json index 650387b..5c9a80b 100644 --- a/language/custom.json +++ b/language/custom.json @@ -1,6 +1,6 @@ { "_CREDITS":"DJdj Development", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Invalid Arguments!", diff --git a/language/czech.json b/language/czech.json index a0532a1..cbfe110 100644 --- a/language/czech.json +++ b/language/czech.json @@ -1,6 +1,6 @@ { "_CREDITS":"spyeye_", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Neplatný Argument!", diff --git a/language/danish.json b/language/danish.json index 960971e..5e51f22 100644 --- a/language/danish.json +++ b/language/danish.json @@ -1,6 +1,6 @@ { "_CREDITS":"the_gamer#5095", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors": { "missingArgsTitle": "Ugyldigt Argument!", diff --git a/language/dutch.json b/language/dutch.json index 847ffa8..8c6eab3 100644 --- a/language/dutch.json +++ b/language/dutch.json @@ -1,6 +1,6 @@ { "_CREDITS":"DJj123dj#1706", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Onjuiste parameters!", diff --git a/language/english.json b/language/english.json index 2c83daf..45487d6 100644 --- a/language/english.json +++ b/language/english.json @@ -1,6 +1,6 @@ { "_CREDITS":"DJdj Development", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Invalid Arguments!", diff --git a/language/french.json b/language/french.json index c58cc11..5b39ef3 100644 --- a/language/french.json +++ b/language/french.json @@ -1,114 +1,114 @@ { - "_CREDITS":"Sanke#6086", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_CREDITS":"tostam", + "_INFO":"Ce fichier est une traduction pour OpenTicket 3.5.0", "errors":{ - "missingArgsTitle":"Arguments invalides!", - "missingArgsDescription":"Argument manquant", - "noPermsTitle":"Pas de permissions!", - "noPermsDescription":"Vous avez besoin de la permission `ADMINISTRATOR` ou être dans la liste des rôles autorisés!", - "noPermsDelete":"Seuls les administrateurs peuvent supprimer un ticket!", - "chooseFromListTitle":"Invalid ID", + "missingArgsTitle":"Arguments invalides !", + "missingArgsDescription":"Argument manquant !", + "noPermsTitle":"Tu n'as pas les permissions requises !", + "noPermsDescription":"Vous avez besoin de la permission `ADMINISTRATOR` ou être dans la liste des rôles autorisés !", + "noPermsDelete":"Seuls les staffs peuvent supprimer un ticket !", + "chooseFromListTitle":"ID invalide !", "chooseFromListDescription":"Choisissez l'un des identifiants ci-dessous:", - "boterror":"Bot Error!", - "notInTicketTitle":"Vous n'êtes pas dans un ticket!", - "notInTicketDescription":"Cette commande ne fonctionne pas en dehors des tickets!", - "ticketDoesntExist":"Ce ticket n'existe plus!", - "roleDoesntExist":"Ce rôle n'existe plus!", - "anotherOption":"Cette option n'est pas un ticket mais un autre type!", - "maxAmountTitle":"Montant maximum atteint!", - "maxAmountDescription":"Vous avez atteint le nombre maximum de tickets autorisés!\nVous ne pouvez donc pas en créer un nouveau!", - "somethingWentWrong":"**Quelque chose s'est mal passé!**\nVeuillez réessayer une autre fois!" + "boterror":"Erreur du bot !", + "notInTicketTitle":"Vous n'êtes pas dans un ticket !", + "notInTicketDescription":"Cette commande ne fonctionne pas en dehors des tickets !", + "ticketDoesntExist":"Ce ticket n'existe pas !", + "roleDoesntExist":"Ce rôle n'existe pas !", + "anotherOption":"Cette option n'est pas un ticket mais un autre type !", + "maxAmountTitle":"Montant maximum de ticket atteint !", + "maxAmountDescription":"Vous avez atteint le nombre maximum de tickets autorisés !\nVous ne pouvez donc pas en créer un nouveau !", + "somethingWentWrong":"**Quelque chose s'est mal passé !**\nVeuillez réessayer une autre fois !" }, "commands":{ - "userAddedTitle":"{0} a été ajouté à ce ticket!", - "userRemovedTitle":"Supprimé {0} de ce ticket!", - "renameTitle":"Changement du nom en {0}!", - "closeTitle":"Fermé ce ticket!", + "userAddedTitle":"{0} a été ajouté à ce ticket !", + "userRemovedTitle":"{0} a été supprimé de ce ticket !", + "renameTitle":"Changement de nom du ticket en {0} !", + "closeTitle":"Ticket fermé", "deleteTitle":"Suppression de ce ticket...", - "reopenTitle":"A rouvert ce ticket!", + "reopenTitle":"Ticket réouvert", - "claimTitle":"Ce ticket est maintenant réclamé à {0}", - "unclaimTitle":"Ce ticket n'est pas réclamé!", - "changeTitle":"Modification du type de ticket en {0}!", + "claimTitle":"Ce ticket est maintenant réclamé par {0}", + "unclaimTitle":"Ce ticket n'est plus réclamé !", + "changeTitle":"Modification du type de ticket en {0} !", - "statsTitle":"Voici les statistiques pour {0}!", - "autocloseTitle":"Ce ticket sera automatiquement clôturé après {0}!", - "autocloseRejectTitle":"Ce ticket ne sera plus clôturé automatiquement!", - "autocloseWarn":"Cela n'affecte que les tickets inactifs!", + "statsTitle":"Voici les statistiques pour {0} !", + "autocloseTitle":"Ce ticket sera automatiquement clôturé après {0} !", + "autocloseRejectTitle":"Ce ticket ne sera plus clôturé automatiquement !", + "autocloseWarn":"Cela n'affecte que les tickets inactifs !", "goToTicket":"Aller au ticket", - "ticketWarning":"L'intégration est dans le message ci-dessous!", - "maxTicketWarning":"**Attention :** _Vous ne pouvez créer que {0} ticket(s) à la fois !_" + "ticketWarning":"L'intégration est dans le message ci-dessous !", + "maxTicketWarning":"**Attention :** _Vous ne pouvez créer seulement {0} ticket(s) à la fois !_" }, "helpMenu":{ - "title":"Commandes disponibles :", - "header1":"**Allez à {0} pour créer un ticket !**\n\n", + "title":"Commandes disponibles :", + "header1":"**Allez à {0} pour créer un ticket !**\n\n", "header2":"**Exécutez la commande `/new` ou `/ticket` pour créer un ticket !**\n\n", - "msgCmd":"Faire apparaître une intégration avec des boutons. (administrateurs uniquement)", - "renameCmd":"Renommer un ticket. (sans espaces)", - "closeCmd":"Fermer un ticket.", - "deleteCmd":"Supprimer un billet.", - "addCmd":"Ajouter un utilisateur au ticket.", - "removeCmd":"Supprimer un utilisateur du ticket.", - "reopenCmd":"Rouvrir un ticket après sa clôture.", - "changeCmd":"Changer le type de ticket.", - "claimCmd":"Réclamer un billet", - "unclaimCmd":"Annuler la réclamation d'un ticket.", - "statsCmd":"Afficher les statistiques des tickets.", + "msgCmd":"Faire apparaître une intégration avec des boutons (administrateurs uniquement)", + "renameCmd":"Renommer un ticket (sans espaces)", + "closeCmd":"Fermer un ticket", + "deleteCmd":"Supprimer un ticket", + "addCmd":"Ajouter un utilisateur au ticket", + "removeCmd":"Supprimer un utilisateur du ticket", + "reopenCmd":"Réouvrir un ticket après sa clôture", + "changeCmd":"Changer le type de ticket", + "claimCmd":"Réclamer un ticket", + "unclaimCmd":"Annuler la réclamation d'un ticket", + "statsCmd":"Afficher les statistiques des tickets", "autocloseCmd":"Définir une minuterie pour fermer automatiquement le ticket" }, "buttons":{ "close":"Fermer le ticket", - "delete":"Supprimer le billet", - "reopen":"Billet de réouverture", - "closeWithReason":"fermer avec une raison" + "delete":"Supprimer le ticket", + "reopen":"Réouvrir le ticket", + "closeWithReason":"Fermer avec une raison" }, "messages":{ - "closedDescription":"Seuls les administrateurs peuvent parler dans ce ticket maintenant !\n\n*Cliquez sur le bouton ci-dessous pour supprimer ou rouvrir ce ticket !*", - "createdTitle":"Ticket créé !", + "closedDescription":"Seuls les administrateurs peuvent parler dans ce ticket maintenant !\n\n*Cliquez sur le bouton ci-dessous pour supprimer ou réouvrir ce ticket !*", + "createdTitle":"Ticket créé !", "createdDescription":"Votre ticket est créé, vous pouvez le détecter par un ping !", - "newTicketDmTitle":"Nouveau billet!", - "closedTicketDmTitle":"Billet fermé!", - "deletedTicketDmTitle":"Billet supprimé !", - "closedTicketDmDescription":"Votre billet est fermé !", - "deletedTicketDmDescription":"Votre billet est supprimé !", - "reopenTicketDmTitle":"Billet rouvert!", - "reopenTicketDmDescription":"Votre billet est rouvert !", + "newTicketDmTitle":"Nouveau ticket !", + "closedTicketDmTitle":"Ticket fermé !", + "deletedTicketDmTitle":"Ticket supprimé !", + "closedTicketDmDescription":"Votre ticket est fermé !", + "deletedTicketDmDescription":"Votre ticket est supprimé !", + "reopenTicketDmTitle":"Ticket réouvert !", + "reopenTicketDmDescription":"Votre ticket est réouvert !", - "chooseCategory":"choisissez une catégorie:", + "chooseCategory":"Choisissez une catégorie:", "gettingdeleted":"Le ticket est en cours de suppression...", - "none":"rien", - "reason":"raison", + "none":"Rien", + "reason":"Raison", "createdat":"Créé à", "openedby":"Ouvert par", - "deletedby":"supprimé par", - "closedby":"fermé par", + "deletedby":"Supprimé par", + "closedby":"Fermé par", - "modalreason":"Qu’elle est la raison pour fermer ce ticket?", + "modalreason":"Qu'elle est la raison pour fermer ce ticket ?", "chooseATicket": "Choisir un ticket" }, "transcripts":{ "title":"Transcript", "processed":"Cette transcript est en cours de traitement", "wait":"S'il vous plait, attendez...", - "estimated":"Temps estime:", + "estimated":"Temps estimé:", "available":"La transcript est disponible ici" }, "stats":{ - "globalTitle":"Statistiques mondiales", + "globalTitle":"Statistiques du serveur", "ticketTitle":"Statistiques des tickets pour {0}", - "userTitle":"Statistiques utilisateur pour {0}", + "userTitle":"Statistiques des utilisateurs pour {0}", "systemTitle":"Statistiques du système", "versionTitle":"Version du bot", "ticketsCreated":"Tickets créés", "ticketsClosed":"Tickets fermés", "ticketsDeleted":"Tickets supprimés", - "ticketsReopened":"Tickets rouverts", + "ticketsReopened":"Tickets réouverts", "ticketsAutoclosed":"Tickets fermés automatiquement", "transcriptsCreated":"Transcriptions créées", "startupDate":"Date de démarrage du bot", @@ -122,14 +122,14 @@ "switches":{ "globalAdmin":"Administrateur global", - "ticketAdmin":"Administrateur des Tickets", + "ticketAdmin":"Administrateur des tickets", "member":"Membre", "open":"Ouvrir", - "reopened":"Rouvert", - "closed":"Fermée", - "autoclosed":"fermeture automatique" + "reopened":"Réouvert", + "closed":"Fermé", + "autoclosed":"Fermé automatiquement" }, - "errorUserNotFound":"Cet utilisateur est introuvable dans la base de données de statistiques!" + "errorUserNotFound":"Cet utilisateur est introuvable dans la base de données de statistiques !" } -} +} \ No newline at end of file diff --git a/language/german.json b/language/german.json index 0ae1b68..943a34d 100644 --- a/language/german.json +++ b/language/german.json @@ -1,6 +1,6 @@ { "_CREDITS":"david.#8276 ", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Ungültiges Argument!", diff --git a/language/greek.json b/language/greek.json index 9c360cb..7ac3eaa 100644 --- a/language/greek.json +++ b/language/greek.json @@ -1,6 +1,6 @@ { "_CREDITS":"ꙅoᴎɒᎸɘƚꙅ#3744", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Invalid Arguments!", diff --git a/language/hungarian.json b/language/hungarian.json index 3e99632..b737430 100644 --- a/language/hungarian.json +++ b/language/hungarian.json @@ -1,6 +1,6 @@ { "_CREDITS":"Snowy", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Hibás paraméterek!", diff --git a/language/indonesian.json b/language/indonesian.json index 51cfb82..010c7ce 100644 --- a/language/indonesian.json +++ b/language/indonesian.json @@ -1,6 +1,6 @@ { "_CREDITS":"erxg", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Argumen tidak valid!", diff --git a/language/italian.json b/language/italian.json index 17fa3ad..efb4e19 100644 --- a/language/italian.json +++ b/language/italian.json @@ -1,6 +1,6 @@ { "_CREDITS":"Maurizio#0268", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Argomenti non validi!", diff --git a/language/norwegian.json b/language/norwegian.json index e42ede8..66fe81b 100644 --- a/language/norwegian.json +++ b/language/norwegian.json @@ -1,6 +1,6 @@ { "_CREDITS":"NoOneNook#0266", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Ugyldige argumenter!", diff --git a/language/polish.json b/language/polish.json index 653125b..e149728 100644 --- a/language/polish.json +++ b/language/polish.json @@ -1,6 +1,6 @@ { "_CREDITS":"MKevas#8311", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Nieprawidłowe argumenty!", diff --git a/language/portuguese.json b/language/portuguese.json index b6bc696..b61e276 100644 --- a/language/portuguese.json +++ b/language/portuguese.json @@ -1,6 +1,6 @@ { "_CREDITS":"QuirAddon#9778", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Argumentos inválidos!", diff --git a/language/romanian.json b/language/romanian.json index f366041..28a8256 100644 --- a/language/romanian.json +++ b/language/romanian.json @@ -1,6 +1,6 @@ { "_CREDITS":"Sanke#6086", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Argumente Invalide", diff --git a/language/russian.json b/language/russian.json index 55b016b..2294034 100644 --- a/language/russian.json +++ b/language/russian.json @@ -1,6 +1,6 @@ { "_CREDITS":"Apexo#0723", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Неверные аргументы!", diff --git a/language/slovenian.json b/language/slovenian.json index fdaeca3..9b082f6 100644 --- a/language/slovenian.json +++ b/language/slovenian.json @@ -1,6 +1,6 @@ { "_CREDITS":"n1kkec#5341", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Napačen argument!", diff --git a/language/spanish.json b/language/spanish.json index 4ff1c63..ad2ec44 100644 --- a/language/spanish.json +++ b/language/spanish.json @@ -1,6 +1,6 @@ { "_CREDITS":"Redactado#1673 & josuens14#5267", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"¡Argumentos inválidos!", diff --git a/language/thai.json b/language/thai.json index 8d3a897..7fae6e0 100644 --- a/language/thai.json +++ b/language/thai.json @@ -1,6 +1,6 @@ { "_CREDITS":"Mods HD#0661", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"อาร์กิวเมนต์ไม่ถูกต้อง!", diff --git a/language/turkish.json b/language/turkish.json index 20c9916..34ba60b 100644 --- a/language/turkish.json +++ b/language/turkish.json @@ -1,6 +1,6 @@ { "_CREDITS":"Hydrâelčhâvø#1575", - "_INFO":"This file is a translation for open ticket 3.5.0", + "_INFO":"This file is a translation for open ticket 3.5.2", "errors":{ "missingArgsTitle":"Geçersiz argümanlar!", diff --git a/language/ukrainian.json b/language/ukrainian.json index 2e5e86b..1a0fa65 100644 --- a/language/ukrainian.json +++ b/language/ukrainian.json @@ -1,6 +1,6 @@ { "_CREDITS":"Anderskiy#4093", - "_INFO":"Цей файл є перекладом для open ticket 3.5.0", + "_INFO":"Цей файл є перекладом для open ticket 3.5.2", "errors":{ "missingArgsTitle":"Невірні аргументи!", diff --git a/package.json b/package.json index 956ee27..c0ef969 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "open-ticket", - "version": "3.5.0", + "version": "3.5.2", "description": "This is an open-source discord ticket bot, you can configure it and it comes with cool features like a transcript.", "main": "index.js", "scripts": {