Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2e1e19bc8 | ||
|
|
5f19adf561 | ||
|
|
1bb70745ea | ||
|
|
589bbe5cd5 |
+4
-3
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|
||||||
[](https://discord.com/invite/26vT9wt3n3) [](https://github.com/DJj123dj/open-ticket/releases/tag/v3.4.1) []() [](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) [](https://docs.openticket.dj-dj.be)
|
[](https://discord.com/invite/26vT9wt3n3) [](https://github.com/DJj123dj/open-ticket/releases/tag/v3.4.3) []() [](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) [](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
@@ -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,26 +27,42 @@ 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("-")
|
||||||
const prefix = splitted.shift()
|
const prefix = splitted.shift()
|
||||||
const name = (splitted.length > 0) ? splitted.join("-") : prefix
|
const name = (splitted.length > 0) ? splitted.join("-") : prefix
|
||||||
|
|
||||||
if (newTicket.category){
|
if (newTicket.category){
|
||||||
const parent = await msg.guild.channels.fetch(newTicket.category,{cache:true})
|
const parent = await msg.guild.channels.fetch(newTicket.category,{cache:true})
|
||||||
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,24 +111,17 @@ 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
|
hiddendata.find((value,index) => {
|
||||||
newHiddendata.find((value,index) => {
|
|
||||||
if (value.key == "type"){
|
if (value.key == "type"){
|
||||||
newHiddendata[index] = {key:"type",value:newtype}
|
hiddendata[index] = {key:"type",value:newtype}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const prevDescription = bot.hiddenData.removeHiddenData(firstmsg.embeds[0].description).description
|
|
||||||
const newData = bot.hiddenData.writeHiddenData("ticketdata",newHiddendata)
|
|
||||||
const newDescription = prevDescription+newData
|
|
||||||
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)]})
|
||||||
|
|
||||||
log("command","someone used the 'change' command",[{key:"user",value:interaction.user.username}])
|
log("command","someone used the 'change' command",[{key:"user",value:interaction.user.username}])
|
||||||
|
|||||||
+14
-9
@@ -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]})
|
||||||
|
|
||||||
|
const newEmbed = new embed(firstmsg.embeds[0].data)
|
||||||
|
.setFooter({text:"claimed by: "+msg.author.username,iconURL:msg.author.displayAvatarURL()})
|
||||||
|
|
||||||
if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
|
if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
|
||||||
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim],embeds:[newEmbed]})
|
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim],embeds:[newEmbed]})
|
||||||
}else{
|
}else{
|
||||||
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]})
|
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
@@ -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
@@ -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
@@ -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
@@ -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")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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"),
|
||||||
|
|||||||
@@ -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,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,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
@@ -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,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
@@ -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,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,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,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
@@ -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!",
|
||||||
|
|||||||
@@ -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,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,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,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,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,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,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,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,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
@@ -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,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,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
@@ -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": {
|
||||||
|
|||||||
Reference in New Issue
Block a user