From c990257c029562d295436c4a3446eafd26f2edd0 Mon Sep 17 00:00:00 2001 From: DJj123dj <80536295+DJj123dj@users.noreply.github.com> Date: Tue, 16 Aug 2022 13:00:17 +0200 Subject: [PATCH] v2.5.1 --- README.md | 15 +- commands/delete.js | 2 +- config.json | 2 +- core/closebuttons.js | 331 ------------------ core/errorLogSystem.js | 12 +- .../handlers/accepted/closing.js | 2 +- .../handlers/accepted/deleting.js | 5 +- core/ticketCloser.js | 4 +- core/utils/permisssionChecker.js | 17 +- language/spanish.json | 148 ++++---- package.json | 2 +- 11 files changed, 110 insertions(+), 430 deletions(-) delete mode 100644 core/closebuttons.js diff --git a/README.md b/README.md index 525c76a..9a6a6ed 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ make a ticket in our server to start! *if you translate, you will come in the credits* # 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-2.5.0-brightgreen.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/releases/tag/v2.5.0) [![npm](https://img.shields.io/badge/npm-external%20libraries%20needed-CB3837.svg?style=flat-square&logo=npm)](#packages) [![license](https://img.shields.io/badge/license-GPL%203.0-important.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) +[![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-2.5.1-brightgreen.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/releases/tag/v2.5.1) [![npm](https://img.shields.io/badge/npm-external%20libraries%20needed-CB3837.svg?style=flat-square&logo=npm)](#packages) [![license](https://img.shields.io/badge/license-GPL%203.0-important.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) This is an open-source discord ticket bot, you can configure it and it comes with cool features like transcripts & custom options! @@ -20,10 +20,11 @@ This is an open-source discord ticket bot, you can configure it and it comes wit - Sanke: for translation & new ideas - Everyone that reported a bug #### And our translators! -- ExothDE: for translation -- 1x1: for translation -- R0JO: for translation -- t0miiis for translation +- ExothDE +- 1x1 +- R0JO +- t0miiis +- josuens14 ## features - discord interaction buttons @@ -68,7 +69,7 @@ if there are any errors, you can open an **issue on github** or **contact me in ### config Our config documentation is moved to another file: -[click here to view](https://www.github.com/DJj123dj/open-ticket/wiki/config-v2.5.0) +[click here to view](https://www.github.com/DJj123dj/open-ticket/wiki/config-v2.5.1) ### intents & permissions In the discord developer portal in the "bot" panel you will find 3 switches under the title "Gateaway Intents". The following switches should always be turned on @@ -80,7 +81,7 @@ You can also configure your own permissions ## information -_v2.5.0 stable_ +_v2.5.1 stable_ changelog: [click here](https://www.github.com/DJj123dj/open-ticket/wiki/Changelog) diff --git a/commands/delete.js b/commands/delete.js index 5e2a6f1..a8fbdef 100644 --- a/commands/delete.js +++ b/commands/delete.js @@ -53,7 +53,7 @@ module.exports = () => { if (!interaction.guild) return if (!permsChecker.command(interaction.user.id,interaction.guild.id)){ permsChecker.sendUserNoPerms(interaction.user) - return interaction.reply({embeds:[bot.errorLog.noPermsDelete]}) + return interaction.reply({embeds:[bot.errorLog.noPermsDelete(interaction.user)]}) } interaction.channel.messages.fetchPinned().then(msglist => { diff --git a/config.json b/config.json index d09e42b..1bc5f79 100644 --- a/config.json +++ b/config.json @@ -79,7 +79,7 @@ "description":"You can click one of the buttons below!", "enableFooter":false, - "footer":"Open Ticket v2.5.0 - I'm a footer!", + "footer":"Open Ticket v2.5.1 - I'm a footer!", "enableThumbnail":false, "thumbnail":"https://www.example.com/catmemes/cat.png", diff --git a/core/closebuttons.js b/core/closebuttons.js deleted file mode 100644 index 03e1d7c..0000000 --- a/core/closebuttons.js +++ /dev/null @@ -1,331 +0,0 @@ -const discord = require('discord.js') -const bot = require('../index') -const client = bot.client -const config = bot.config -const l = bot.language - - -module.exports = () => { - //closebar - var closeBar = new discord.ActionRowBuilder() - .addComponents( - new discord.ButtonBuilder() - .setCustomId("closeTicketTrue") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Secondary) - .setEmoji("✅") - ) - .addComponents( - new discord.ButtonBuilder() - .setCustomId("closeTicketFalse") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Secondary) - .setEmoji("❌") - ) - var deleteBar = new discord.ActionRowBuilder() - .addComponents( - new discord.ButtonBuilder() - .setCustomId("deleteTicketTrue") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Secondary) - .setEmoji("✅") - ) - .addComponents( - new discord.ButtonBuilder() - .setCustomId("deleteTicketFalse") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Secondary) - .setEmoji("❌") - ) - var deleteBar1 = new discord.ActionRowBuilder() - .addComponents( - new discord.ButtonBuilder() - .setCustomId("deleteTicketTrue1") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Secondary) - .setEmoji("✅") - ) - .addComponents( - new discord.ButtonBuilder() - .setCustomId("deleteTicketFalse1") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Secondary) - .setEmoji("❌") - ) - //closebutton - var closeRowNormal = new discord.ActionRowBuilder() - .addComponents( - new discord.ButtonBuilder() - .setCustomId("closeTicket") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Secondary) - .setLabel(l.buttons.close) - .setEmoji("🔒") - ) - .addComponents( - new discord.ButtonBuilder() - .setCustomId("deleteTicket") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Danger) - .setLabel(l.buttons.delete) - .setEmoji("✖️") - ) - var closeRowClosed = new discord.ActionRowBuilder() - .addComponents( - new discord.ButtonBuilder() - .setCustomId("deleteTicket1") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Danger) - .setLabel(l.buttons.delete) - .setEmoji("✖️") - ) - .addComponents( - new discord.ButtonBuilder() - .setCustomId("sendTranscript") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Secondary) - .setLabel(l.buttons.sendTranscript) - .setEmoji("📄") - ) - .addComponents( - new discord.ButtonBuilder() - .setCustomId("reopenTicket") - .setDisabled(false) - .setStyle(discord.ButtonStyle.Success) - .setLabel(l.buttons.reopen) - .setEmoji("✔") - ) - - var closeRowDisabled = new discord.ActionRowBuilder() - .addComponents( - new discord.ButtonBuilder() - .setCustomId("closeTicket") - .setDisabled(true) - .setStyle(discord.ButtonStyle.Secondary) - .setLabel(l.buttons.close) - .setEmoji("🔒") - ) - .addComponents( - new discord.ButtonBuilder() - .setCustomId("deleteTicket") - .setDisabled(true) - .setStyle(discord.ButtonStyle.Danger) - .setLabel(l.buttons.delete) - .setEmoji("✖️") - ) - - - //NORMAL CLOSE - client.on("interactionCreate",interaction => { - if (!interaction.isButton()) return - if (interaction.customId != "closeTicket") return - - interaction.deferUpdate() - interaction.message.edit({components:[closeBar]}) - - }) - client.on("interactionCreate",interaction => { - if (!interaction.isButton()) return - if (interaction.customId != "closeTicketFalse") return - - interaction.deferUpdate() - interaction.message.edit({components:[closeRowNormal]}) - }) - - var closeTicketButtonChecker = false - client.on("interactionCreate",async interaction => { - if (!interaction.isButton()) return - if (interaction.customId != "closeTicketTrue") return - - interaction.deferUpdate() - - if (closeTicketButtonChecker == true) return - closeTicketButtonChecker = true - - if (config.system.closeMode == "adminonly"){ - const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id) - if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){ - try { - return msg.member.send({embeds:[bot.errorLog.noPermsMessage]}) - }catch{ - return msg.channel.send({embeds:[bot.errorLog.noPermsMessage]}) - } - } - } - - interaction.message.edit({components:[closeRowDisabled]}) - - /** - * @type {String} - */ - const name = interaction.channel.name - var prefix = "" - const tickets = config.options - tickets.forEach((ticket) => { - if (name.startsWith(ticket.channelprefix)){ - prefix = ticket.channelprefix - } - }) - - await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"close") - closeTicketButtonChecker = false - }) - - var closeTicket1ButtonChecker = false - client.on("interactionCreate",async interaction => { - if (!interaction.isButton()) return - if (interaction.customId != "closeTicketTrue1") return - - interaction.deferUpdate() - - if (closeTicket1ButtonChecker == true) return - closeTicket1ButtonChecker = true - - if (config.system.closeMode == "adminonly"){ - const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id) - if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){ - try { - return interaction.member.send({embeds:[bot.errorLog.noPermsMessage]}) - }catch{ - return interaction.channel.send({embeds:[bot.errorLog.noPermsMessage]}) - } - } - } - - const closedButtonDisabled = new discord.ActionRowBuilder() - .addComponents([ - new discord.ButtonBuilder() - .setCustomId("closeTicketTrue1") - .setDisabled(true) - .setStyle(discord.ButtonStyle.Secondary) - .setEmoji("🔒") - ]) - interaction.message.edit({components:[closedButtonDisabled]}) - - interaction.channel.messages.fetchPinned().then((messages) => { - messages.first().edit({components:[closeRowDisabled]}) - }) - - /** - * @type {String} - */ - const name = interaction.channel.name - var prefix = "" - const tickets = config.options - tickets.forEach((ticket) => { - if (name.startsWith(ticket.channelprefix)){ - prefix = ticket.channelprefix - } - }) - - await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"close") - closeTicket1ButtonChecker = false - }) - - - //NORMAL DELETE - client.on("interactionCreate",interaction => { - if (!interaction.isButton()) return - if (interaction.customId != "deleteTicket") return - - interaction.deferUpdate() - interaction.message.edit({components:[deleteBar]}) - - }) - client.on("interactionCreate",interaction => { - if (!interaction.isButton()) return - if (interaction.customId != "deleteTicketFalse") return - - interaction.deferUpdate() - interaction.message.edit({components:[closeRowNormal]}) - }) - var deleteTicketButtonChecker = false - client.on("interactionCreate",async interaction => { - if (!interaction.isButton()) return - if (interaction.customId != "deleteTicketTrue") return - - interaction.deferUpdate() - - if (deleteTicketButtonChecker == true) return - deleteTicketButtonChecker = true - - const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id) - if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){ - try { - return interaction.member.send({embeds:[bot.errorLog.noPermsMessage]}) - }catch{ - return interaction.channel.send({embeds:[bot.errorLog.noPermsMessage]}) - } - } - - /** - * @type {String} - */ - const name = interaction.channel.name - var prefix = "" - const tickets = config.options - tickets.forEach((ticket) => { - if (name.startsWith(ticket.channelprefix)){ - prefix = ticket.channelprefix - } - }) - - await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"delete") - deleteTicketButtonChecker = false - }) - - - - - //CLOSED DELETE - client.on("interactionCreate",interaction => { - if (!interaction.isButton()) return - if (interaction.customId != "deleteTicket1") return - - interaction.deferUpdate() - interaction.message.edit({components:[deleteBar1]}) - - }) - client.on("interactionCreate",interaction => { - if (!interaction.isButton()) return - if (interaction.customId != "deleteTicketFalse1") return - - interaction.deferUpdate() - interaction.message.edit({components:[closeRowClosed]}) - }) - - var deleteTicket1ButtonChecker = false - client.on("interactionCreate",async interaction => { - if (!interaction.isButton()) return - if (interaction.customId != "deleteTicketTrue1") return - - interaction.deferUpdate() - - if (deleteTicket1ButtonChecker == true) return - deleteTicket1ButtonChecker = true - - const permsmember = client.guilds.cache.find(g => g.id == interaction.guild.id).members.cache.find(m => m.id == interaction.member.id) - if (config.main_adminroles.some((item)=>{return permsmember.roles.cache.has(item)}) == false && !permsmember.permissions.has("Administrator") && !permsmember.permissions.has("ManageGuild")){ - try { - return interaction.member.send({embeds:[bot.errorLog.noPermsMessage]}) - }catch{ - return interaction.channel.send({embeds:[bot.errorLog.noPermsMessage]}) - } - } - - /** - * @type {String} - */ - const name = interaction.channel.name - var prefix = "" - const tickets = config.options - tickets.forEach((ticket) => { - if (name.startsWith(ticket.channelprefix)){ - prefix = ticket.channelprefix - } - }) - - await require("./ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"deletenotranscript") - deleteTicket1ButtonChecker = false - }) -} \ No newline at end of file diff --git a/core/errorLogSystem.js b/core/errorLogSystem.js index b2ab1ff..97b0a20 100644 --- a/core/errorLogSystem.js +++ b/core/errorLogSystem.js @@ -10,15 +10,23 @@ const loadChalk = async () => { const embed = discord.EmbedBuilder const c = discord.Colors -exports.noPermsMessage = new embed() +/**@param {discord.User} user*/ +exports.noPermsMessage = (user) => { + return new embed() .setColor(c.Red) .setTitle(":x: "+l.errors.noPermsTitle) .setDescription(l.errors.noPermsDescription) + .setFooter({iconURL:user.displayAvatarURL(),text:user.tag}) +} -exports.noPermsDelete = new embed() +/**@param {discord.User} user*/ +exports.noPermsDelete = (user) => { + return new embed() .setColor(c.Red) .setTitle(":x: "+l.errors.noPermsTitle) .setDescription(l.errors.noPermsDelete) + .setFooter({iconURL:user.displayAvatarURL(),text:user.tag}) +} /**@param {String} message */ exports.invalidArgsMessage = (message) => { diff --git a/core/interactionHandlers/handlers/accepted/closing.js b/core/interactionHandlers/handlers/accepted/closing.js index cc21393..beb5cd6 100644 --- a/core/interactionHandlers/handlers/accepted/closing.js +++ b/core/interactionHandlers/handlers/accepted/closing.js @@ -33,7 +33,7 @@ module.exports = () => { if (config.system.closeMode == "adminonly"){ if (!permissionChecker.command(interaction.user.id,interaction.guild.id)){ if (!permissionChecker.sendUserNoPerms(interaction.user)){ - permissionChecker.sendChannelNoPerms(interaction.channel) + permissionChecker.sendChannelNoPerms(interaction.channel,interaction.user) } interaction.message.edit({components:[firstcomponents]}) closeTicketButtonChecker = false diff --git a/core/interactionHandlers/handlers/accepted/deleting.js b/core/interactionHandlers/handlers/accepted/deleting.js index 9a64891..543226d 100644 --- a/core/interactionHandlers/handlers/accepted/deleting.js +++ b/core/interactionHandlers/handlers/accepted/deleting.js @@ -32,7 +32,7 @@ module.exports = () => { if (!permissionChecker.command(interaction.user.id,interaction.guild.id)){ if (!permissionChecker.sendUserNoDelete(interaction.user)){ - permissionChecker.sendChannelNoDelete(interaction.channel) + permissionChecker.sendChannelNoDelete(interaction.channel,interaction.user) } await interaction.message.edit({components:[firstcomponents]}) deleteTicketButtonChecker = false @@ -70,10 +70,9 @@ module.exports = () => { const firstcomponents = bot.buttons.close.closeCommandRow - console.log("closed with NO TRANSCRIPT") if (!permissionChecker.command(interaction.user.id,interaction.guild.id)){ if (!permissionChecker.sendUserNoDelete(interaction.user)){ - permissionChecker.sendChannelNoDelete(interaction.channel) + permissionChecker.sendChannelNoDelete(interaction.channel,interaction.user) } await interaction.message.edit({components:[firstcomponents]}) deleteTicketButtonChecker1 = false diff --git a/core/ticketCloser.js b/core/ticketCloser.js index 203a04c..57a9b09 100755 --- a/core/ticketCloser.js +++ b/core/ticketCloser.js @@ -47,7 +47,7 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) => const chalk = await (await import("chalk")).default const channelmessages = await channel.messages.fetch() - const newReason = reason ? reason : "none" + const newReason = reason ? reason : l.messages.none //start code @@ -298,7 +298,7 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) => if (enableTranscript == true && mode != "deletenotranscript"){ - const transcriptReason = (mode == "close") ? "**reason:** "+newReason : "**reason:** none" + const transcriptReason = (mode == "close") ? "**"+l.messages.reason+":** "+newReason : "**"+l.messages.reason+":** none" if (config.system.enable_transcript || config.system.enable_DM_transcript){ var fileattachment = await require("./transcript").createTranscript(channelmessages,channel) diff --git a/core/utils/permisssionChecker.js b/core/utils/permisssionChecker.js index c1a0192..8ca662c 100644 --- a/core/utils/permisssionChecker.js +++ b/core/utils/permisssionChecker.js @@ -26,7 +26,7 @@ exports.command = (memberid,guildid) => { */ exports.sendUserNoPerms = (user) => { try { - user.send({embeds:[bot.errorLog.noPermsMessage]}) + user.send({embeds:[bot.errorLog.noPermsMessage(user)]}) return true }catch{ return false @@ -54,7 +54,7 @@ exports.sendUserNoPerms = (user) => { */ exports.sendUserNoDelete = (user) => { try { - user.send({embeds:[bot.errorLog.noPermsDelete]}) + user.send({embeds:[bot.errorLog.noPermsDelete(user)]}) return true }catch{ return false @@ -64,11 +64,12 @@ exports.sendUserNoPerms = (user) => { /** * * @param {discord.TextChannel} channel + * @param {discord.User} user * @returns {Boolean} */ - exports.sendChannelNoPerms = (channel) => { + exports.sendChannelNoPerms = (channel,user) => { try { - channel.send({embeds:[bot.errorLog.noPermsMessage]}) + channel.send({embeds:[bot.errorLog.noPermsMessage(user)]}) return true }catch{ return false @@ -78,9 +79,10 @@ exports.sendUserNoPerms = (user) => { /** * * @param {discord.TextChannel} channel + * @param {discord.User} user * @returns {Boolean} */ - exports.sendChannelNoTicket = (channel) => { + exports.sendChannelNoTicket = (channel,user) => { try { channel.send({embeds:[bot.errorLog.notInATicket]}) return true @@ -92,11 +94,12 @@ exports.sendUserNoPerms = (user) => { /** * * @param {discord.TextChannel} channel + * @param {discord.User} user * @returns {Boolean} */ - exports.sendChannelNoDelete = (channel) => { + exports.sendChannelNoDelete = (channel,user) => { try { - channel.send({embeds:[bot.errorLog.noPermsDelete]}) + channel.send({embeds:[bot.errorLog.noPermsDelete(user)]}) return true }catch{ return false diff --git a/language/spanish.json b/language/spanish.json index cc2586b..44246fd 100644 --- a/language/spanish.json +++ b/language/spanish.json @@ -1,75 +1,75 @@ -{ - "errors":{ - "missingArgsTitle":"¡Argumentos inválidos!", - "missingArgsDescription":"Argumento faltante.", - "noPermsTitle":"¡Sin permisos!", - "noPermsDescription":"You need the `ADMINISTRATOR` permission or be in the list of allowed roles!", - "noPermsDelete":"Only admins can delete a ticket!", - "chooseFromListTitle":"ID Invalida", - "chooseFromListDescription":"Elije una de las ID de abajo:", - "boterror":"¡Error del bot!", - "notInTicketTitle":"¡No te encuentras en un ticket!", - "notInTicketDescription":"¡Este comando no funciona fuera de los tickets!", - "ticketDoesntExist":"¡Este ticket no existe!", - "roleDoesntExist":"¡Este rol no existe!", - "anotherOption":"¡Esta opción no es un ticket, si no otra cosa!", - "maxAmountTitle":"¡Máxima cantidad alcanzada!", - "maxAmountDescription":"¡Has alcanzado la máxima cantidad de tickets permitida!\n¡Por lo que no puedes crear otro!", - "somethingWentWrong":"**¡Algo salió mal!**\n¡Prueba dentro de un rato!", - "somethingWentWrongTranscript":"**¡Algo salió mal al hacer el transcript!**\n¡Prueba en otro momento!" - }, - "commands":{ - "userAddedTitle":"Added {0} to this ticket!", - "userRemovedTitle":"Removed {0} from this ticket!", - "renameTitle":"Changed the name to {0}!", - "closeTitle":"Closed this ticket!", - "deleteTitle":"Deleting this ticket...", - "reopenTitle":"Re-Opened this ticket!", - - "ticketWarning":"The embed is in the message below!", - "maxTicketWarning":"**Warning:** _You can only create {0} ticket(s) at a time!_" - }, - "helpMenu":{ - "title":"Available Commands:", - "header1":"**¡Dirígete a {0} para crear un nuevo ticket!**\n\n", - "header2":"**¡Ejecuta el comando `/new` o `/ticket` para crear un ticket!**\n\n", - - "msgCmd":"Generar un embed con botones. (Solo admins)", - "renameCmd":"Renombrar un ticket. (Sin espacios)", - "closeCmd":"Cerrar un ticket.", - "deleteCmd":"Eliminar un ticket.", - "addCmd":"Agregar un usuario al ticket.", - "removeCmd":"Eliminar un usuario del ticket.", - "reopenCmd":"Re-Abre un ticket después de que este se vea cerrado." - }, - "buttons":{ - "close":"Cerrar ticket.", - "delete":"Eliminar ticket", - "reopen":"Re-Abrir ticket", - "sendTranscript":"Obtener transcript." - }, - "messages":{ - "reopenTitle":"¡Ticket Re-Abierto!", - "reopenDescription":"¡Siéntete libre de hablar de nuevo!", - "closedTitle":"¡Ticket cerrado!", - "closedDescription":"¡Solo admins pueden hablar ahora en este ticket!\n\n*¡Presiona en el botón de abajo para eliminar o re-abrir el ticket!*", - "createdTitle":"¡Ticket creado!", - "createdDescription":"¡Ticket creado, también te he mencionado en él!", - - "newTicketDmTitle":"¡Nuevo ticket!", - "closedTicketDmTitle":"¡Ticket cerrado!", - "deletedTicketDmTitle":"¡Ticket eliminado!", - "closedTicketDmDescription":"¡Tu ticket fué cerrado!", - "deletedTicketDmDescription":"¡Tu ticket fué eliminado!", - "reopenTicketDmTitle":"¡Ticket re-abierto!", - "reopenTicketDmDescription":"¡Tu ticket se vió abierto de nuevo!", - "newTranscriptTitle":"¡Un nuevo transcript está aquí!", - "hereIsTheTranscript":"Aquí está el transcript:", - - "chooseCategory":"elije una categoría:", - "gettingdeleted":"El ticket se está viendo eliminado...", - - "none":"none", - "reason":"reason" - } +{ + "errors":{ + "missingArgsTitle":"¡Argumentos inválidos!", + "missingArgsDescription":"Argumento faltante.", + "noPermsTitle":"¡Sin permisos!", + "noPermsDescription":"Necesitas el permiso de `ADMINISTRADOR` o estar en la lista de roles permitidos!", + "noPermsDelete":"Solo los administradores pueden eliminar un ticket.!", + "chooseFromListTitle":"ID Invalida", + "chooseFromListDescription":"Elije una de las ID de abajo:", + "boterror":"¡Error del bot!", + "notInTicketTitle":"¡No te encuentras en un ticket!", + "notInTicketDescription":"¡Este comando no funciona fuera de los tickets!", + "ticketDoesntExist":"¡Este ticket no existe!", + "roleDoesntExist":"¡Este rol no existe!", + "anotherOption":"¡Esta opción no es un ticket, si no otra cosa!", + "maxAmountTitle":"¡Máxima cantidad alcanzada!", + "maxAmountDescription":"¡Has alcanzado la máxima cantidad de tickets permitida!\n¡Por lo que no puedes crear otro!", + "somethingWentWrong":"**¡Algo salió mal!**\n¡Prueba dentro de un rato!", + "somethingWentWrongTranscript":"**¡Algo salió mal al hacer el transcript!**\n¡Prueba en otro momento!" + }, + "commands":{ + "userAddedTitle":"Se agregó {0} al ticket!", + "userRemovedTitle":"Se eliminó {0} del ticket!", + "renameTitle":"Cambió el nombre a {0}!", + "closeTitle":"Cerró este ticket!", + "deleteTitle":"Eliminando este ticket...", + "reopenTitle":"Re-abrió este boleto!", + + "ticketWarning":"La inserción está en el mensaje a continuación!", + "maxTicketWarning":"**Advertencia:** _Solo puedes crear {0} ticket(s) a la vez!_" + }, + "helpMenu":{ + "title":"Comandos disponibles:", + "header1":"**¡Dirígete a {0} para crear un nuevo ticket!**\n\n", + "header2":"**¡Ejecuta el comando `/new` o `/ticket` para crear un ticket!**\n\n", + + "msgCmd":"Generar un embed con botones. (Solo admins)", + "renameCmd":"Renombrar un ticket. (Sin espacios)", + "closeCmd":"Cerrar un ticket.", + "deleteCmd":"Eliminar un ticket.", + "addCmd":"Agregar un usuario al ticket.", + "removeCmd":"Eliminar un usuario del ticket.", + "reopenCmd":"Re-Abre un ticket después de que este se vea cerrado." + }, + "buttons":{ + "close":"Cerrar ticket.", + "delete":"Eliminar ticket", + "reopen":"Re-Abrir ticket", + "sendTranscript":"Obtener transcript." + }, + "messages":{ + "reopenTitle":"¡Ticket Re-Abierto!", + "reopenDescription":"¡Siéntete libre de hablar de nuevo!", + "closedTitle":"¡Ticket cerrado!", + "closedDescription":"¡Solo admins pueden hablar ahora en este ticket!\n\n*¡Presiona en el botón de abajo para eliminar o re-abrir el ticket!*", + "createdTitle":"¡Ticket creado!", + "createdDescription":"¡Ticket creado, también te he mencionado en él!", + + "newTicketDmTitle":"¡Nuevo ticket!", + "closedTicketDmTitle":"¡Ticket cerrado!", + "deletedTicketDmTitle":"¡Ticket eliminado!", + "closedTicketDmDescription":"¡Tu ticket fué cerrado!", + "deletedTicketDmDescription":"¡Tu ticket fué eliminado!", + "reopenTicketDmTitle":"¡Ticket re-abierto!", + "reopenTicketDmDescription":"¡Tu ticket se vió abierto de nuevo!", + "newTranscriptTitle":"¡Un nuevo transcript está aquí!", + "hereIsTheTranscript":"Aquí está el transcript:", + + "chooseCategory":"Elije una categoría:", + "gettingdeleted":"El ticket se está viendo eliminado...", + + "none":"Ninguna.", + "reason":"Razón" + } } \ No newline at end of file diff --git a/package.json b/package.json index 817eebe..5a7e4ee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "open-ticket", - "version": "2.5.0", + "version": "2.5.1", "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": {