Compare commits

..
4 Commits
Author SHA1 Message Date
Jasper e2e1e19bc8 Open Ticket v3.4.3
Open Ticket v3.4.3
2023-08-30 17:23:21 +02:00
DJj123dj 5f19adf561 v3.4.3 2023-08-30 17:22:26 +02:00
Jasper 1bb70745ea Open Ticket v3.4.2
Open Ticket v3.4.2
2023-08-11 11:23:50 +02:00
DJj123dj 589bbe5cd5 v3.4.2 2023-08-11 11:22:25 +02:00
34 changed files with 208 additions and 70 deletions
+4 -3
View File
@@ -10,10 +10,11 @@ Support for Open Ticket is only available for the versions specified below!
| Version | Supported | | Version | Supported |
|-----------|-------------------| |-----------|-------------------|
| 3.4.3 | ✅ |
| 3.4.2 | ✅ |
| 3.4.1 | ✅ | | 3.4.1 | ✅ |
| 3.4.0 | ✅ | | 3.4.0 | 🟧 |
| 3.3.3 | 🟧 | | < 3.4.0 | ❌ |
| < 3.3.3 | ❌ |
## Reporting a Vulnerability ## Reporting a Vulnerability
+9 -2
View File
@@ -1,6 +1,13 @@
# Coming Soon: OPEN TICKET v4.0 🎉
Open Ticket v4 is open ticket, but writting from the ground up! For the first time ever!
There will be a massive improvement with the API that allows for plugins 30 times more advanced than the current ones! It will also be more stable and faster!
It is expected to have a public beta release somewhere around 30 September!
<hr>
<img src="https://www.dj-dj.be/wp-content/uploads/2023/02/open-ticket-cropped.png" alt="Open Ticket" width="600px"> <img src="https://www.dj-dj.be/wp-content/uploads/2023/02/open-ticket-cropped.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.4.1-brightgreen.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/releases/tag/v3.4.1) [![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.4.3-brightgreen.svg?style=flat-square)](https://github.com/DJj123dj/open-ticket/releases/tag/v3.4.3) [![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!
@@ -64,7 +71,7 @@ Translators
|Ukrainian |anderskiy | |Ukrainian |anderskiy |
## links ## links
current version: _v3.4.1_ current version: _v3.4.3_
</br>changelog: [click here](https://docs.openticket.dj-dj.be/other/changelog) </br>changelog: [click here](https://docs.openticket.dj-dj.be/other/changelog)
</br>documentation: [click here](https://docs.openticket.dj-dj.be/quick-start) </br>documentation: [click here](https://docs.openticket.dj-dj.be/quick-start)
+32 -19
View File
@@ -14,6 +14,7 @@ module.exports = () => {
if (!DISABLE.commands.text.change) client.on("messageCreate", async msg => { if (!DISABLE.commands.text.change) client.on("messageCreate", async msg => {
if (!msg.content.startsWith(config.prefix+"change")) return if (!msg.content.startsWith(config.prefix+"change")) return
if (!msg.channel.isTextBased()) return
if (!msg.guild) return if (!msg.guild) return
if (!permsChecker.command(msg.author.id,msg.guild.id)){ if (!permsChecker.command(msg.author.id,msg.guild.id)){
@@ -26,14 +27,20 @@ module.exports = () => {
const ticketId = hiddendata.find(d => d.key == "type").value const ticketId = hiddendata.find(d => d.key == "type").value
const list = [] const list = []
config.options.forEach((o) => list.push(o.id)) config.options.forEach((o) => {
if (o.type == "ticket") list.push(o.id)
})
var newtype = msg.content.split(config.prefix+"change")[1].substring(1) var newtype = msg.content.split(config.prefix+"change")[1].substring(1)
if (!newtype) return msg.channel.send({embeds:[bot.errorLog.invalidIdChooseFromList(list,l.errors.missingArgsDescription+" `<type>`:\n`"+config.prefix+"change <type>`")]}) if (!newtype) return msg.channel.send({embeds:[bot.errorLog.invalidIdChooseFromList(list,l.errors.missingArgsDescription+" `<type>`:\n`"+config.prefix+"change <type>`")]})
const newTicket = require("../core/utils/configParser").getTicketById(newtype) const newTicket = require("../core/utils/configParser").getTicketById(newtype,true)
if (!newTicket) return msg.channel.send({embeds:[bot.errorLog.invalidIdChooseFromList(list,l.errors.missingArgsDescription+" `<type>`:\n`"+config.prefix+"change <type>`")]}) if (!newTicket) return msg.channel.send({embeds:[bot.errorLog.invalidIdChooseFromList(list,l.errors.missingArgsDescription+" `<type>`:\n`"+config.prefix+"change <type>`")]})
/**@type {discord.PermissionOverwriteManager} */
const prePermsManager = msg.channel.permissionOverwrites
const prePerms = prePermsManager.cache
/**@type {String} */ /**@type {String} */
var chName = msg.channel.name var chName = msg.channel.name
const splitted = chName.split("-") const splitted = chName.split("-")
@@ -45,7 +52,17 @@ module.exports = () => {
if (parent && parent.type == discord.ChannelType.GuildCategory) msg.channel.setParent(parent) if (parent && parent.type == discord.ChannelType.GuildCategory) msg.channel.setParent(parent)
} }
msg.channel.setName(newTicket.channelprefix+name) prePermsManager.set(prePerms)
msg.channel.setName(newTicket.channelprefix+name).catch(() => {
msg.channel.send({embeds:[bot.errorLog.failedRenameChannel]})
})
hiddendata.find((value,index) => {
if (value.key == "type"){
hiddendata[index] = {key:"type",value:newtype}
}
})
msg.channel.send({embeds:[bot.embeds.commands.changeEmbed(msg.author,newtype)]}) msg.channel.send({embeds:[bot.embeds.commands.changeEmbed(msg.author,newtype)]})
log("command","someone used the 'change' command",[{key:"user",value:msg.author.username}]) log("command","someone used the 'change' command",[{key:"user",value:msg.author.username}])
@@ -56,6 +73,7 @@ module.exports = () => {
if (!DISABLE.commands.slash.change) client.on("interactionCreate",async (interaction) => { if (!DISABLE.commands.slash.change) client.on("interactionCreate",async (interaction) => {
if (!interaction.isChatInputCommand()) return if (!interaction.isChatInputCommand()) return
if (interaction.commandName != "change") return if (interaction.commandName != "change") return
if (!interaction.channel.isTextBased()) return
if (!interaction.guild) return if (!interaction.guild) return
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){ if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
@@ -69,7 +87,9 @@ module.exports = () => {
const ticketId = hiddendata.find(d => d.key == "type").value const ticketId = hiddendata.find(d => d.key == "type").value
const list = [] const list = []
config.options.forEach((o) => list.push(o.id)) config.options.forEach((o) => {
if (o.type == "ticket") list.push(o.id)
})
var newtype = interaction.options.getString("type",true) var newtype = interaction.options.getString("type",true)
const newTicket = require("../core/utils/configParser").getTicketById(newtype,true) const newTicket = require("../core/utils/configParser").getTicketById(newtype,true)
@@ -91,23 +111,16 @@ module.exports = () => {
if (parent && parent.type == discord.ChannelType.GuildCategory) interaction.channel.setParent(parent) if (parent && parent.type == discord.ChannelType.GuildCategory) interaction.channel.setParent(parent)
} }
await prePermsManager.set(prePerms) prePermsManager.set(prePerms)
interaction.channel.setName(newTicket.channelprefix+name) interaction.channel.setName(newTicket.channelprefix+name).catch(() => {
interaction.channel.send({embeds:[bot.errorLog.failedRenameChannel]})
var newHiddendata = hiddendata.data
newHiddendata.find((value,index) => {
if (value.key == "type"){
newHiddendata[index] = {key:"type",value:newtype}
}
}) })
const prevDescription = bot.hiddenData.removeHiddenData(firstmsg.embeds[0].description).description hiddendata.find((value,index) => {
const newData = bot.hiddenData.writeHiddenData("ticketdata",newHiddendata) if (value.key == "type"){
const newDescription = prevDescription+newData hiddendata[index] = {key:"type",value:newtype}
const newEmbed = new discord.EmbedBuilder(firstmsg.embeds[0].data) }
.setDescription(newDescription) })
firstmsg.edit({embeds:[newEmbed]})
interaction.editReply({embeds:[bot.embeds.commands.changeEmbed(interaction.user,newtype)]}) interaction.editReply({embeds:[bot.embeds.commands.changeEmbed(interaction.user,newtype)]})
+14 -9
View File
@@ -14,7 +14,7 @@ const DISABLE = require("../core/api/api.json").disable
module.exports = () => { module.exports = () => {
bot.errorLog.log("debug","COMMANDS: loaded claim.js") bot.errorLog.log("debug","COMMANDS: loaded claim.js")
if (!DISABLE.commands.text.claim) client.on("messageCreate",msg => { if (!DISABLE.commands.text.claim) client.on("messageCreate", async msg => {
if (!msg.content.startsWith(config.prefix+"claim")) return if (!msg.content.startsWith(config.prefix+"claim")) return
var user = msg.mentions.users.first() var user = msg.mentions.users.first()
@@ -34,14 +34,19 @@ module.exports = () => {
bot.hiddenData.writeHiddenData(msg.channel.id,hiddendata) bot.hiddenData.writeHiddenData(msg.channel.id,hiddendata)
storage.set("claimData",msg.channel.id,claimingUser.id) storage.set("claimData",msg.channel.id,claimingUser.id)
const newEmbed = new embed(firstmsg.embeds[0].data) await msg.channel.messages.fetchPinned().then(msglist => {
.setFooter({text:"claimed by: "+msg.author.username,iconURL:msg.author.displayAvatarURL()}) var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){ const newEmbed = new embed(firstmsg.embeds[0].data)
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim],embeds:[newEmbed]}) .setFooter({text:"claimed by: "+msg.author.username,iconURL:msg.author.displayAvatarURL()})
}else{
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]}) if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
} firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim],embeds:[newEmbed]})
}else{
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]})
}
})
msg.channel.send({embeds:[bot.embeds.commands.claimEmbed(claimingUser,msg.author)]}) msg.channel.send({embeds:[bot.embeds.commands.claimEmbed(claimingUser,msg.author)]})
@@ -74,7 +79,7 @@ module.exports = () => {
bot.hiddenData.writeHiddenData(interaction.channel.id,hiddendata) bot.hiddenData.writeHiddenData(interaction.channel.id,hiddendata)
storage.set("claimData",interaction.channel.id,user.id) storage.set("claimData",interaction.channel.id,user.id)
interaction.channel.messages.fetchPinned().then(msglist => { await interaction.channel.messages.fetchPinned().then(msglist => {
var firstmsg = msglist.last() var firstmsg = msglist.last()
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]}) if (firstmsg == undefined || firstmsg.author.id != client.user.id) return msg.channel.send({embeds:[bot.errorLog.notInATicket]})
+1 -1
View File
@@ -38,7 +38,7 @@ module.exports = () => {
} }
if (args[1]){ if (args[1]){
if (!args[1].startsWith("close") && !args[1].startsWith("delete") && !args[1].startsWith("remove") && !args[1].startsWith("add") && !args[1].startsWith("msg") && !args[1].startsWith("remove") && !args[1].startsWith("rename") && !args[1].startsWith("reopen")){ if (!args[1].startsWith("close") && !args[1].startsWith("delete") && !args[1].startsWith("remove") && !args[1].startsWith("add") && !args[1].startsWith("msg") && !args[1].startsWith("remove") && !args[1].startsWith("rename") && !args[1].startsWith("reopen") && !args[1].startsWith("change") && !args[1].startsWith("claim") && !args[1].startsWith("unclaim")){
msg.channel.send({embeds:[helpEmbed]}) msg.channel.send({embeds:[helpEmbed]})
log("command","someone used the 'help' command",[{key:"user",value:msg.author.username}]) log("command","someone used the 'help' command",[{key:"user",value:msg.author.username}])
APIEvents.onCommand("help",true,msg.author,msg.channel,msg.guild,new Date()) APIEvents.onCommand("help",true,msg.author,msg.channel,msg.guild,new Date())
+1 -1
View File
@@ -111,7 +111,7 @@
"dropdown":false, "dropdown":false,
"enableFooter":false, "enableFooter":false,
"footer":"Open Ticket v3.4.1 - I'm a footer!", "footer":"Open Ticket v3.4.3 - I'm a footer!",
"enableFooterImage":false, "enableFooterImage":false,
"footerImage":"https://www.example.com/catmemes/cat.png", "footerImage":"https://www.example.com/catmemes/cat.png",
+16 -10
View File
@@ -3,6 +3,9 @@ const bot = require("../../index")
const log = bot.errorLog.log const log = bot.errorLog.log
module.exports = () => { module.exports = () => {
const args = process.argv
const debugMode = args.includes("--debug")
const files = fs.readdirSync("./plugins") const files = fs.readdirSync("./plugins")
const api = require("./api.json") const api = require("./api.json")
var totalcount = 0 var totalcount = 0
@@ -11,27 +14,30 @@ module.exports = () => {
files.forEach((file) => { files.forEach((file) => {
if (file.endsWith(".plugin.js")){ if (file.endsWith(".plugin.js")){
try { try {
require("../../plugins/"+file)() require("../../plugins/" + file)()
successcount++ successcount++
totalcount++ totalcount++
}catch(err){ }catch(err){
/**@type {Error} */ /**@type {Error} */
const theError = err const theError = err
if (api.enableAPIdebug){ if (api.enableAPIdebug || debugMode) {
try { console.error(theError)
const data = fs.readFileSync("./apiDebug.txt")
const newData = data ? data.toString() : ""
fs.writeFileSync("./apiDebug.txt",newData+"ERROR: "+theError.name+": "+theError.message+"\n"+theError.stack+"\n\n")
}catch{
fs.writeFileSync("./apiDebug.txt","ERROR: "+theError.name+": "+theError.message+"\n"+theError.stack+"\n\n")
}
} }
try {
const data = fs.readFileSync("./openticketdebug.txt")
const newData = data ? data.toString() : ""
fs.writeFileSync("./openticketdebug.txt", newData + "\nPLUGIN "+file+" ERROR: " + theError.name + ": " + theError.message + "\n" + theError.stack + "\n\n")
} catch {
fs.writeFileSync("./openticketdebug.txt", "\nPLUGIN "+file+" ERROR: " + theError.name + ": " + theError.message + "\n" + theError.stack + "\n\n")
}
failcount++ failcount++
totalcount++ totalcount++
} }
} }
}) })
require("../startscreen").headerDataPlugins({total:totalcount,success:successcount,error:failcount}) require("../startscreen").headerDataPlugins({ total: totalcount, success: successcount, error: failcount })
} }
+1 -1
View File
@@ -427,7 +427,7 @@ exports.checker = async () => {
checkType(config.languageFile,"string","languagefile") checkType(config.languageFile,"string","languagefile")
const lf = config.languageFile const lf = config.languageFile
if (!lf.startsWith("custom") && !lf.startsWith("english") && !lf.startsWith("dutch") && !lf.startsWith("romanian") && !lf.startsWith("german") && !lf.startsWith("arabic") && !lf.startsWith("spanish") && !lf.startsWith("portuguese") && !lf.startsWith("french") && !lf.startsWith("italian") && !lf.startsWith("czech") && !lf.startsWith("danish") && !lf.startsWith("russian") && !lf.startsWith("turkish") && !lf.startsWith("polish") && !lf.startsWith("slovenian") && !lf.startsWith("thai") && !lf.startsWith("norwegian") && !lf.startsWith("greek") && !lf.startsWith("ukrainian")){ if (!lf.startsWith("custom") && !lf.startsWith("english") && !lf.startsWith("dutch") && !lf.startsWith("romanian") && !lf.startsWith("german") && !lf.startsWith("arabic") && !lf.startsWith("spanish") && !lf.startsWith("portuguese") && !lf.startsWith("french") && !lf.startsWith("italian") && !lf.startsWith("czech") && !lf.startsWith("danish") && !lf.startsWith("russian") && !lf.startsWith("turkish") && !lf.startsWith("polish") && !lf.startsWith("slovenian") && !lf.startsWith("thai") && !lf.startsWith("norwegian") && !lf.startsWith("greek") && !lf.startsWith("ukrainian") && !lf.startsWith("hungarian")){
createError("'languagefile' | invalid language, more info in the wiki") createError("'languagefile' | invalid language, more info in the wiki")
} }
+5
View File
@@ -58,6 +58,11 @@ exports.invalidIdChooseFromList = (list,message) => {
return x return x
} }
exports.failedRenameChannel = new embed()
.setColor(c.Red)
.setTitle(":x: Failed to rename channel")
.setDescription("Discord channels can only be renamed twice every 10 minutes! Open Ticket can't do anything about this error!")
exports.notInATicket = new embed() exports.notInATicket = new embed()
.setColor(c.Red) .setColor(c.Red)
.setTitle(":x: "+l.errors.notInTicketTitle) .setTitle(":x: "+l.errors.notInTicketTitle)
+1 -1
View File
@@ -10,7 +10,7 @@ const storage = require("../../index").storage
exports.readHiddenData = (channelid) => { exports.readHiddenData = (channelid) => {
const content = storage.get("HIDDENDATA",channelid) const content = storage.get("HIDDENDATA",channelid)
if (!content) return {type:"",data:[],status:false} if (!content) return []
try { try {
return JSON.parse(content) return JSON.parse(content)
+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.4.1", version:"3.4.3",
slashcmds:slashMode, slashcmds:slashMode,
transcripts:transcriptMode, transcripts:transcriptMode,
plugins:fs.readdirSync("./plugins"), plugins:fs.readdirSync("./plugins"),
+1 -1
View File
@@ -28,7 +28,7 @@
INFORMATION: INFORMATION:
============ ============
Open Ticket v3.4.1 - © DJdj Development Open Ticket v3.4.3 - © 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
+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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"errors":{ "errors":{
"missingArgsTitle":"Invalid Arguments!", "missingArgsTitle":"Invalid Arguments!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"t0miiis#3022", "_CREDITS":"t0miiis#3022",
"_INFO":"This file is a translation for open ticket 3.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"errors":{ "errors":{
"missingArgsTitle":"Neplatny Argument!", "missingArgsTitle":"Neplatny 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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"errors":{ "errors":{
"missingArgsTitle":"Invalid Arguments!", "missingArgsTitle":"Invalid Arguments!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"Sanke#6086", "_CREDITS":"Sanke#6086",
"_INFO":"This file is a translation for open ticket 3.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"errors":{ "errors":{
"missingArgsTitle":"Arguments invalides!", "missingArgsTitle":"Arguments invalides!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"david.#8276 ", "_CREDITS":"david.#8276 ",
"_INFO":"This file is a translation for open ticket 3.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"errors":{ "errors":{
"missingArgsTitle":"Invalid Arguments!", "missingArgsTitle":"Invalid Arguments!",
+101
View File
@@ -0,0 +1,101 @@
{
"_CREDITS":"Snowy",
"_INFO":"This file is a translation for open ticket 3.4.3",
"errors":{
"missingArgsTitle":"Hibás paraméterek!",
"missingArgsDescription":"Hiányzó paraméterek",
"noPermsTitle":"Nincs jogosultságod!",
"noPermsDescription":"Szükséged van az `Adminisztrátor` jogra, vagy rajta kell lenned az engedélyezett rangok listáján!",
"noPermsDelete":"Csak adminok törölhetik a ticketet!",
"chooseFromListTitle":"Ismeretlen ID",
"chooseFromListDescription":"Válassz egy ID-t az alábbi listából:",
"boterror":"Bot Hiba!",
"notInTicketTitle":"Nem vagy egy ticketben!",
"notInTicketDescription":"Ez a parancs nem működik a ticketeken kívűl!",
"ticketDoesntExist":"Ez a ticket már nem létezik!",
"roleDoesntExist":"Ez a rang már nem létezik!",
"anotherOption":"Ez a választás nem egy ticket, hanem más!",
"maxAmountTitle":"Maximum limit elérve!",
"maxAmountDescription":"Elérted a maximum engedélyezett ticketek számát!\nSzóval nem tudsz újat csinálni!",
"somethingWentWrong":"**Valami balul sült el!**\nKérlek próbáld újra később!"
},
"commands":{
"userAddedTitle":"{0} hozzáadva a tickethez!",
"userRemovedTitle":"{0} elvéve a ticketből!",
"renameTitle":"Ticket neve megváltoztatva erre: {0}!",
"closeTitle":"Ticket bezárva!",
"deleteTitle":"Ticket törlése...",
"reopenTitle":"Ticket újranyitva!",
"claimTitle":"A ticketet igényelte: {0}",
"unclaimTitle":"Már senki nem ingényeli a ticketet!",
"changeTitle":"Ticket típus megváltoztatva erre: {0}!",
"statsTitle":"Ticket statisztikák erre: {0}!",
"autocloseTitle":"Ez a ticket automatikusan be lesz zárva ennyi idő múlva: {0}!",
"autocloseRejectTitle":"Ez a ticket nem lesz automatikusan bezárva!",
"autocloseWarn":"Ez csak az inaktív hibajegyeket érinti!",
"goToTicket":"A tickethez",
"ticketWarning":"Az embed az alábbi üzenetben van!",
"maxTicketWarning":"**Warning:** _Csak {0} ticketet készíthetsz egy időben!_"
},
"helpMenu":{
"title":"Elérhető parancsok:",
"header1":"**Hogy elkészíts egy ticketet, menj ide: {0}!**\n\n",
"header2":"**Futtasd a `/new` vagy `/ticket` parancsot a ticket készítéséhez!**\n\n",
"msgCmd":"Embed küldése gombokkal. (csak adminok)",
"renameCmd":"Ticket átnevezése. (szóköz nélkül)",
"closeCmd":"Ticket bezárása.",
"deleteCmd":"Ticket törlése.",
"addCmd":"Felhasználó hozzáadása a tickethez.",
"removeCmd":"Felhasználó elvétele a tickettől.",
"reopenCmd":"Ticket újranyitása miután már be lett zárva.",
"changeCmd":"Ticket típusának megváltoztatása.",
"claimCmd":"Ticket igénylése.",
"unclaimCmd":"Ticket igénylésének törlése.",
"statsCmd":"Ticket statisztikák megtekintése.",
"autocloseCmd":"Ticketek automatikus bezárási idejének beállítása"
},
"buttons":{
"close":"Ticket bezárása",
"delete":"Ticket törlése",
"reopen":"Ticket újranyitása",
"closeWithReason":"Bezárás indokkal"
},
"messages":{
"closedDescription":"Csak adminok tudnak ebben a ticketben beszélni!\n\n*Kattints az alábbi gombokkal hogy töröld vagy újranyisd a ticketet!*",
"createdTitle":"Ticket Elkészítve!",
"createdDescription":"A ticketet elkészítve, meg tudod találni egy pingel!",
"newTicketDmTitle":"Új ticket!",
"closedTicketDmTitle":"Ticket bezárva!",
"deletedTicketDmTitle":"Ticket törölve!",
"closedTicketDmDescription":"A ticketed bezárták!",
"deletedTicketDmDescription":"A ticketed törölték!",
"reopenTicketDmTitle":"Ticket újranyitva!",
"reopenTicketDmDescription":"A ticketed újranyitották!",
"chooseCategory":"válassz egy kategóriát:",
"gettingdeleted":"A ticket törölve lesz...",
"none":"nincs",
"reason":"indok",
"createdat":"elkészítve ekkor:",
"openedby":"nyitotta:",
"deletedby":"törölve általa:",
"closedby":"bezárva általa:",
"modalreason":"Mi az indokod a ticket bezárására?",
"chooseATicket": "Válassz egy ticketet"
},
"transcripts":{
"title":"Átirat",
"processed":"Ez az átirat jelenleg feldolgozás alatt van",
"wait":"Kérlek várj!",
"estimated":"Becsült idő",
"available":"Az átirat itt érhető el"
}
}
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"_CREDITS":"Maurizio#0268", "_CREDITS":"Maurizio#0268",
"_INFO":"This file is a translation for open ticket 3.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"This file is a translation for open ticket 3.4.3",
"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.4.1", "_INFO":"Цей файл є перекладом для open ticket 3.4.3",
"errors":{ "errors":{
"missingArgsTitle":"Невірні аргументи!", "missingArgsTitle":"Невірні аргументи!",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "open-ticket", "name": "open-ticket",
"version": "3.4.1", "version": "3.4.3",
"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": {