This commit is contained in:
DJj123dj
2024-01-10 17:11:46 +01:00
parent 07e2a68d06
commit 9d96d11cd3
38 changed files with 191 additions and 122 deletions
+4 -4
View File
@@ -10,11 +10,11 @@ We only support Open Ticket versions listed below! With support, we mean bugs, e
| Version | Supported | | Version | Supported |
|-----------|-------------------| |-----------|-------------------|
| 3.5.2 | ✅ |
| 3.5.1 | ✅ |
| 3.5.0 | ✅ | | 3.5.0 | ✅ |
| 3.4.4 | ✅ | | 3.4.4 | 🟧 |
| 3.4.3 | 🟧 | | < 3.4.4 | ❌ |
| 3.4.2 | 🟧 |
| < 3.4.2 | ❌ |
## Reporting a Vulnerability ## Reporting a Vulnerability
+4 -3
View File
@@ -5,7 +5,7 @@ There will be massive improvements for more stability & features! But the best p
<img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket" width="600px"> <img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket" width="600px">
[![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
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! 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 | |English |djj123dj |🟢 Up To Date |
|Dutch |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 | |Romanian |sankedev |🟢 Up To Date |
|Spanish |redactado & josuens |🟢 Up To Date | |Spanish |redactado & josuens |🟢 Up To Date |
|German |david.3 |🟢 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 | |Thai |modshd |🟢 Up To Date |
|Norwegian |noonenook |🟢 Up To Date | |Norwegian |noonenook |🟢 Up To Date |
|Greek |stefanos__. |🔴 Outdated | |Greek |stefanos__. |🔴 Outdated |
|Indonesian |erxg |🟢 Up To Date |
## links ## links
current version: _v3.5.0_ current version: _v3.5.2_
</br>changelog: [click here](https://otgithub.dj-dj.be/releases) </br>changelog: [click here](https://otgithub.dj-dj.be/releases)
</br>documentation: [click here](https://docs.openticket.dj-dj.be/quick-start) </br>documentation: [click here](https://docs.openticket.dj-dj.be/quick-start)
+1 -1
View File
@@ -49,7 +49,7 @@ module.exports = () => {
if (!interaction.guild) return if (!interaction.guild) return
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) 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 const ticketId = hiddendata.find(d => d.key == "type").value
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
+1 -1
View File
@@ -79,7 +79,7 @@ module.exports = () => {
if (!interaction.guild) return if (!interaction.guild) return
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) 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 const ticketId = hiddendata.find(d => d.key == "type").value
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
+1 -1
View File
@@ -67,7 +67,7 @@ module.exports = () => {
if (!interaction.guild) return if (!interaction.guild) return
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) 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 const ticketId = hiddendata.find(d => d.key == "type").value
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
+5 -3
View File
@@ -57,13 +57,15 @@ module.exports = () => {
const reason = interaction.options.getString("reason") ? interaction.options.getString("reason") : false const reason = interaction.options.getString("reason") ? interaction.options.getString("reason") : false
await interaction.deferReply()
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) 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 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 const descriptionReason = reason ? "**"+l.messages.reason+":** "+reason : false
interaction.editReply({embeds:[bot.embeds.commands.closeEmbed(interaction.user,descriptionReason)],components:[bot.buttons.close.closeCommandRow]}) interaction.editReply({embeds:[bot.embeds.commands.closeEmbed(interaction.user,descriptionReason)],components:[bot.buttons.close.closeCommandRow]})
+1 -1
View File
@@ -51,7 +51,7 @@ module.exports = () => {
if (!interaction.guild) return if (!interaction.guild) return
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) 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 const ticketId = hiddendata.find(d => d.key == "type").value
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
+1 -1
View File
@@ -49,7 +49,7 @@ module.exports = () => {
if (!interaction.guild) return if (!interaction.guild) return
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) 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 const ticketId = hiddendata.find(d => d.key == "type").value
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
+1 -1
View File
@@ -55,7 +55,7 @@ module.exports = () => {
if (!interaction.guild) return if (!interaction.guild) return
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) 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 const ticketId = hiddendata.find(d => d.key == "type").value
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
+4 -4
View File
@@ -33,13 +33,13 @@ module.exports = () => {
if (!interaction.isChatInputCommand()) return if (!interaction.isChatInputCommand()) return
if (interaction.commandName != "reopen") return if (interaction.commandName != "reopen") return
await interaction.deferReply()
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) 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 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]}) await interaction.editReply({embeds:[bot.embeds.commands.reopenEmbed(interaction.user)],components:[bot.buttons.close.openRowNormal]})
+1 -1
View File
@@ -74,7 +74,7 @@ module.exports = () => {
if (!interaction.guild) return if (!interaction.guild) return
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id) 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 const ticketId = hiddendata.find(d => d.key == "type").value
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){ if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
+2 -2
View File
@@ -53,7 +53,7 @@
}, },
"image":{ "image":{
"enable":false, "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":{ "closedCategory":{
@@ -111,7 +111,7 @@
"dropdown":false, "dropdown":false,
"enableFooter":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, "enableFooterImage":false,
"footerImage":"https://www.example.com/catmemes/cat.png", "footerImage":"https://www.example.com/catmemes/cat.png",
+18
View File
@@ -113,6 +113,12 @@ module.exports = async (messages,guild,channel,user,reason) => {
if (!tc) return if (!tc) return
tc.send({embeds:[errembed],files:[attachment]}) 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 return
} }
@@ -167,6 +173,12 @@ module.exports = async (messages,guild,channel,user,reason) => {
if (!tc) return if (!tc) return
tc.send({embeds:[errembed],files:[attachment]}) 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{ }else{
const attachment = await require("./oldTranscript").createTranscript(messages,channel) const attachment = await require("./oldTranscript").createTranscript(messages,channel)
@@ -179,6 +191,12 @@ module.exports = async (messages,guild,channel,user,reason) => {
if (!tc) return if (!tc) return
tc.send({embeds:[embed],files:[attachment]}) 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() asyncmanager()
+1 -1
View File
@@ -189,7 +189,7 @@ exports.liveStatusUploadManager = async (err) => {
//system:config.system //system:config.system
}, },
language:config.languageFile, language:config.languageFile,
version:"3.5.0", version:"3.5.2",
slashcmds:slashMode, slashcmds:slashMode,
transcripts:transcriptMode, transcripts:transcriptMode,
plugins:fs.readdirSync("./plugins"), plugins:fs.readdirSync("./plugins"),
+52 -4
View File
@@ -25,7 +25,7 @@
INFORMATION: INFORMATION:
============ ============
Open Ticket v3.5.0 - © DJdj Development Open Ticket v3.5.2 - © DJdj Development
discord: https://discord.dj-dj.be discord: https://discord.dj-dj.be
website: https://www.dj-dj.be website: https://www.dj-dj.be
@@ -54,7 +54,7 @@ const client = new discord.Client({
partials:[Partials.Channel,Partials.Message] partials:[Partials.Channel,Partials.Message]
}) })
exports.client = client exports.client = client
client.setMaxListeners(50) client.setMaxListeners(100)
if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","created client") if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","created client")
//LOAD CONFIG //LOAD CONFIG
@@ -396,7 +396,55 @@ this.actionRecorder.push({
type:"debugsystem.success" 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 //LOGIN SYSTEM
const token = config.token.fromENV ? process.env.TOKEN : config.token.value if (config.token.fromENV){
client.login(token) loadFromDotEnv(fs.readFileSync(".env"))
client.login(process.env.TOKEN)
}else{
client.login(config.token.value)
}
this.errorLog.log("debug","login with token") this.errorLog.log("debug","login with token")
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"ChilledBroke#9986 & M4#5882", "_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": { "errors": {
"missingArgsTitle": "قيمة غير صالحة!", "missingArgsTitle": "قيمة غير صالحة!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"DJdj Development", "_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":{ "errors":{
"missingArgsTitle":"Invalid Arguments!", "missingArgsTitle":"Invalid Arguments!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"spyeye_", "_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":{ "errors":{
"missingArgsTitle":"Neplatný Argument!", "missingArgsTitle":"Neplatný Argument!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"the_gamer#5095", "_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": { "errors": {
"missingArgsTitle": "Ugyldigt Argument!", "missingArgsTitle": "Ugyldigt Argument!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"DJj123dj#1706", "_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":{ "errors":{
"missingArgsTitle":"Onjuiste parameters!", "missingArgsTitle":"Onjuiste parameters!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"DJdj Development", "_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":{ "errors":{
"missingArgsTitle":"Invalid Arguments!", "missingArgsTitle":"Invalid Arguments!",
+71 -71
View File
@@ -1,114 +1,114 @@
{ {
"_CREDITS":"Sanke#6086", "_CREDITS":"tostam",
"_INFO":"This file is a translation for open ticket 3.5.0", "_INFO":"Ce fichier est une traduction pour OpenTicket 3.5.0",
"errors":{ "errors":{
"missingArgsTitle":"Arguments invalides!", "missingArgsTitle":"Arguments invalides !",
"missingArgsDescription":"Argument manquant", "missingArgsDescription":"Argument manquant !",
"noPermsTitle":"Pas de permissions!", "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!", "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!", "noPermsDelete":"Seuls les staffs peuvent supprimer un ticket !",
"chooseFromListTitle":"Invalid ID", "chooseFromListTitle":"ID invalide !",
"chooseFromListDescription":"Choisissez l'un des identifiants ci-dessous:", "chooseFromListDescription":"Choisissez l'un des identifiants ci-dessous:",
"boterror":"Bot Error!", "boterror":"Erreur du bot !",
"notInTicketTitle":"Vous n'êtes pas dans un ticket!", "notInTicketTitle":"Vous n'êtes pas dans un ticket !",
"notInTicketDescription":"Cette commande ne fonctionne pas en dehors des tickets!", "notInTicketDescription":"Cette commande ne fonctionne pas en dehors des tickets !",
"ticketDoesntExist":"Ce ticket n'existe plus!", "ticketDoesntExist":"Ce ticket n'existe pas !",
"roleDoesntExist":"Ce rôle n'existe plus!", "roleDoesntExist":"Ce rôle n'existe pas !",
"anotherOption":"Cette option n'est pas un ticket mais un autre type!", "anotherOption":"Cette option n'est pas un ticket mais un autre type !",
"maxAmountTitle":"Montant maximum atteint!", "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!", "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!" "somethingWentWrong":"**Quelque chose s'est mal passé !**\nVeuillez réessayer une autre fois !"
}, },
"commands":{ "commands":{
"userAddedTitle":"{0} a été ajouté à ce ticket!", "userAddedTitle":"{0} a été ajouté à ce ticket !",
"userRemovedTitle":"Supprimé {0} de ce ticket!", "userRemovedTitle":"{0} a été supprimé de ce ticket !",
"renameTitle":"Changement du nom en {0}!", "renameTitle":"Changement de nom du ticket en {0} !",
"closeTitle":"Fermé ce ticket!", "closeTitle":"Ticket fermé",
"deleteTitle":"Suppression de ce ticket...", "deleteTitle":"Suppression de ce ticket...",
"reopenTitle":"A rouvert ce ticket!", "reopenTitle":"Ticket réouvert",
"claimTitle":"Ce ticket est maintenant réclamé à {0}", "claimTitle":"Ce ticket est maintenant réclamé par {0}",
"unclaimTitle":"Ce ticket n'est pas réclamé!", "unclaimTitle":"Ce ticket n'est plus réclamé !",
"changeTitle":"Modification du type de ticket en {0}!", "changeTitle":"Modification du type de ticket en {0} !",
"statsTitle":"Voici les statistiques pour {0}!", "statsTitle":"Voici les statistiques pour {0} !",
"autocloseTitle":"Ce ticket sera automatiquement clôturé après {0}!", "autocloseTitle":"Ce ticket sera automatiquement clôturé après {0} !",
"autocloseRejectTitle":"Ce ticket ne sera plus clôturé automatiquement!", "autocloseRejectTitle":"Ce ticket ne sera plus clôturé automatiquement !",
"autocloseWarn":"Cela n'affecte que les tickets inactifs!", "autocloseWarn":"Cela n'affecte que les tickets inactifs !",
"goToTicket":"Aller au ticket", "goToTicket":"Aller au ticket",
"ticketWarning":"L'intégration est dans le message ci-dessous!", "ticketWarning":"L'intégration est dans le message ci-dessous !",
"maxTicketWarning":"**Attention :** _Vous ne pouvez créer que {0} ticket(s) à la fois !_" "maxTicketWarning":"**Attention :** _Vous ne pouvez créer seulement {0} ticket(s) à la fois !_"
}, },
"helpMenu":{ "helpMenu":{
"title":"Commandes disponibles :", "title":"Commandes disponibles :",
"header1":"**Allez à {0} pour créer un ticket !**\n\n", "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", "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)", "msgCmd":"Faire apparaître une intégration avec des boutons (administrateurs uniquement)",
"renameCmd":"Renommer un ticket. (sans espaces)", "renameCmd":"Renommer un ticket (sans espaces)",
"closeCmd":"Fermer un ticket.", "closeCmd":"Fermer un ticket",
"deleteCmd":"Supprimer un billet.", "deleteCmd":"Supprimer un ticket",
"addCmd":"Ajouter un utilisateur au ticket.", "addCmd":"Ajouter un utilisateur au ticket",
"removeCmd":"Supprimer un utilisateur du ticket.", "removeCmd":"Supprimer un utilisateur du ticket",
"reopenCmd":"Rouvrir un ticket après sa clôture.", "reopenCmd":"Réouvrir un ticket après sa clôture",
"changeCmd":"Changer le type de ticket.", "changeCmd":"Changer le type de ticket",
"claimCmd":"Réclamer un billet", "claimCmd":"Réclamer un ticket",
"unclaimCmd":"Annuler la réclamation d'un ticket.", "unclaimCmd":"Annuler la réclamation d'un ticket",
"statsCmd":"Afficher les statistiques des tickets.", "statsCmd":"Afficher les statistiques des tickets",
"autocloseCmd":"Définir une minuterie pour fermer automatiquement le ticket" "autocloseCmd":"Définir une minuterie pour fermer automatiquement le ticket"
}, },
"buttons":{ "buttons":{
"close":"Fermer le ticket", "close":"Fermer le ticket",
"delete":"Supprimer le billet", "delete":"Supprimer le ticket",
"reopen":"Billet de réouverture", "reopen":"Réouvrir le ticket",
"closeWithReason":"fermer avec une raison" "closeWithReason":"Fermer avec une raison"
}, },
"messages":{ "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 !*", "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éé !", "createdTitle":"Ticket créé !",
"createdDescription":"Votre ticket est créé, vous pouvez le détecter par un ping !", "createdDescription":"Votre ticket est créé, vous pouvez le détecter par un ping !",
"newTicketDmTitle":"Nouveau billet!", "newTicketDmTitle":"Nouveau ticket !",
"closedTicketDmTitle":"Billet fermé!", "closedTicketDmTitle":"Ticket fermé !",
"deletedTicketDmTitle":"Billet supprimé !", "deletedTicketDmTitle":"Ticket supprimé !",
"closedTicketDmDescription":"Votre billet est fermé !", "closedTicketDmDescription":"Votre ticket est fermé !",
"deletedTicketDmDescription":"Votre billet est supprimé !", "deletedTicketDmDescription":"Votre ticket est supprimé !",
"reopenTicketDmTitle":"Billet rouvert!", "reopenTicketDmTitle":"Ticket réouvert !",
"reopenTicketDmDescription":"Votre billet est rouvert !", "reopenTicketDmDescription":"Votre ticket est réouvert !",
"chooseCategory":"choisissez une catégorie:", "chooseCategory":"Choisissez une catégorie:",
"gettingdeleted":"Le ticket est en cours de suppression...", "gettingdeleted":"Le ticket est en cours de suppression...",
"none":"rien", "none":"Rien",
"reason":"raison", "reason":"Raison",
"createdat":"Créé à", "createdat":"Créé à",
"openedby":"Ouvert par", "openedby":"Ouvert par",
"deletedby":"supprimé par", "deletedby":"Supprimé par",
"closedby":"fermé 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" "chooseATicket": "Choisir un ticket"
}, },
"transcripts":{ "transcripts":{
"title":"Transcript", "title":"Transcript",
"processed":"Cette transcript est en cours de traitement", "processed":"Cette transcript est en cours de traitement",
"wait":"S'il vous plait, attendez...", "wait":"S'il vous plait, attendez...",
"estimated":"Temps estime:", "estimated":"Temps estimé:",
"available":"La transcript est disponible ici" "available":"La transcript est disponible ici"
}, },
"stats":{ "stats":{
"globalTitle":"Statistiques mondiales", "globalTitle":"Statistiques du serveur",
"ticketTitle":"Statistiques des tickets pour {0}", "ticketTitle":"Statistiques des tickets pour {0}",
"userTitle":"Statistiques utilisateur pour {0}", "userTitle":"Statistiques des utilisateurs pour {0}",
"systemTitle":"Statistiques du système", "systemTitle":"Statistiques du système",
"versionTitle":"Version du bot", "versionTitle":"Version du bot",
"ticketsCreated":"Tickets créés", "ticketsCreated":"Tickets créés",
"ticketsClosed":"Tickets fermés", "ticketsClosed":"Tickets fermés",
"ticketsDeleted":"Tickets supprimés", "ticketsDeleted":"Tickets supprimés",
"ticketsReopened":"Tickets rouverts", "ticketsReopened":"Tickets réouverts",
"ticketsAutoclosed":"Tickets fermés automatiquement", "ticketsAutoclosed":"Tickets fermés automatiquement",
"transcriptsCreated":"Transcriptions créées", "transcriptsCreated":"Transcriptions créées",
"startupDate":"Date de démarrage du bot", "startupDate":"Date de démarrage du bot",
@@ -122,14 +122,14 @@
"switches":{ "switches":{
"globalAdmin":"Administrateur global", "globalAdmin":"Administrateur global",
"ticketAdmin":"Administrateur des Tickets", "ticketAdmin":"Administrateur des tickets",
"member":"Membre", "member":"Membre",
"open":"Ouvrir", "open":"Ouvrir",
"reopened":"Rouvert", "reopened":"Réouvert",
"closed":"Fermée", "closed":"Fermé",
"autoclosed":"fermeture automatique" "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 !"
} }
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"david.#8276 ", "_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":{ "errors":{
"missingArgsTitle":"Ungültiges Argument!", "missingArgsTitle":"Ungültiges Argument!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"ꙅoᴎɒᎸɘƚꙅ#3744", "_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":{ "errors":{
"missingArgsTitle":"Invalid Arguments!", "missingArgsTitle":"Invalid Arguments!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"Snowy", "_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":{ "errors":{
"missingArgsTitle":"Hibás paraméterek!", "missingArgsTitle":"Hibás paraméterek!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"erxg", "_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":{ "errors":{
"missingArgsTitle":"Argumen tidak valid!", "missingArgsTitle":"Argumen tidak valid!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"Maurizio#0268", "_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":{ "errors":{
"missingArgsTitle":"Argomenti non validi!", "missingArgsTitle":"Argomenti non validi!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"NoOneNook#0266", "_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":{ "errors":{
"missingArgsTitle":"Ugyldige argumenter!", "missingArgsTitle":"Ugyldige argumenter!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"MKevas#8311", "_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":{ "errors":{
"missingArgsTitle":"Nieprawidłowe argumenty!", "missingArgsTitle":"Nieprawidłowe argumenty!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"QuirAddon#9778", "_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":{ "errors":{
"missingArgsTitle":"Argumentos inválidos!", "missingArgsTitle":"Argumentos inválidos!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"Sanke#6086", "_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":{ "errors":{
"missingArgsTitle":"Argumente Invalide", "missingArgsTitle":"Argumente Invalide",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"Apexo#0723", "_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":{ "errors":{
"missingArgsTitle":"Неверные аргументы!", "missingArgsTitle":"Неверные аргументы!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"n1kkec#5341", "_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":{ "errors":{
"missingArgsTitle":"Napačen argument!", "missingArgsTitle":"Napačen argument!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"Redactado#1673 & josuens14#5267", "_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":{ "errors":{
"missingArgsTitle":"¡Argumentos inválidos!", "missingArgsTitle":"¡Argumentos inválidos!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"Mods HD#0661", "_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":{ "errors":{
"missingArgsTitle":"อาร์กิวเมนต์ไม่ถูกต้อง!", "missingArgsTitle":"อาร์กิวเมนต์ไม่ถูกต้อง!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"Hydrâelčhâvø#1575", "_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":{ "errors":{
"missingArgsTitle":"Geçersiz argümanlar!", "missingArgsTitle":"Geçersiz argümanlar!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"Anderskiy#4093", "_CREDITS":"Anderskiy#4093",
"_INFO":"Цей файл є перекладом для open ticket 3.5.0", "_INFO":"Цей файл є перекладом для open ticket 3.5.2",
"errors":{ "errors":{
"missingArgsTitle":"Невірні аргументи!", "missingArgsTitle":"Невірні аргументи!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "open-ticket", "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.", "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", "main": "index.js",
"scripts": { "scripts": {