Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b7674f1a5 | ||
|
|
7de9339da3 | ||
|
|
e2e1e19bc8 | ||
|
|
5f19adf561 | ||
|
|
1bb70745ea | ||
|
|
589bbe5cd5 | ||
|
|
447fddea56 | ||
|
|
bf7a003799 | ||
|
|
6115ab1cc8 | ||
|
|
c2307fd1ed | ||
|
|
2a3850c3cc | ||
|
|
688c40ce7b | ||
|
|
dee2a21be9 |
+7
-7
@@ -8,12 +8,12 @@ Support for Open Ticket is only available for the versions specified below!
|
||||
🟧 Partially Supported
|
||||
❌ Not Supported
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 3.4.0 | :white_check_mark: |
|
||||
| 3.3.0 | 🟧 |
|
||||
| 3.2.2 | 🟧 |
|
||||
| < 3.2.2 | :x: |
|
||||
| Version | Supported |
|
||||
|-----------|-------------------|
|
||||
| 3.4.4 | ✅ |
|
||||
| 3.4.2 | ✅ |
|
||||
| 3.4.1 | 🟧 |
|
||||
| < 3.4.1 | ❌ |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
@@ -33,7 +33,7 @@ Don't just report the error and never reply again! It can be possible that we ne
|
||||
Visit [Contributing.md](/.github/CONTRIBUTING.md) for rules about translating & adding features!
|
||||
|
||||
<br>
|
||||
SECURITY POLICY - Last updated: 23/3/2023<br>
|
||||
SECURITY POLICY - Last updated: 9/11/2023<br>
|
||||
© DJdj Development<br><br>
|
||||
Website: https://www.dj-dj.be <br>
|
||||
Discord: https://discord.dj-dj.be <br>
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
# 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">
|
||||
|
||||
[](https://discord.com/invite/26vT9wt3n3) [](https://github.com/DJj123dj/open-ticket/releases/tag/v3.4.0) []() [](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.4) []() [](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) [](https://docs.openticket.dj-dj.be)
|
||||
|
||||
### Open Ticket
|
||||
Open Ticket is of the most customisable discord ticket bots of all time!
|
||||
You have more than +100 options to customise in the config! This includes html transcripts, unlimited tickets, custom embeds & more!
|
||||
We also have a great support service, we can solve every question you have about open ticket! We even provide free 24/7 hosting if you want!
|
||||
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!
|
||||
|
||||
Take a look at all the features and discover the possibilities!
|
||||
### [Documentation](https://docs.openticket.dj-dj.be/quick-start)
|
||||
@@ -13,7 +18,7 @@ Take a look at all the features and discover the possibilities!
|
||||
## Features
|
||||
- **🎉 NEW! html transcripts V2!**
|
||||
- 🔒 close, ❌ delete & ✅ re-open tickets
|
||||
- 🇬🇧 translation in 18 different languages
|
||||
- 🇬🇧 translation in 19 different languages
|
||||
- 📄 very advanced customisation
|
||||
- 🆗 buttons or 🔽 dropdowns!
|
||||
- 🆒 plugins
|
||||
@@ -39,33 +44,34 @@ You can already see some images at our [documentation!](https://docs.openticket.
|
||||
|
||||
## credits
|
||||
DJdj Development Team
|
||||
|Main Developer|Developer|Support Team|Designer|
|
||||
|--------------|---------|-----------|---------|
|
||||
|DJj123dj |Sanke |DJ-Lite |vuur_draak|
|
||||
|Main Developer|Developer |Support Team|Designer|
|
||||
|--------------|------------|-----------|---------|
|
||||
|djj123dj |sankedev |DJ-Lite |vuur_draak|
|
||||
|
||||
Translators
|
||||
|Language |Translator |
|
||||
|--------------|-------------------------|
|
||||
|Dutch |DJj123dj#1706 |
|
||||
|Romanian |Sanke#6086 |
|
||||
|French |Sanke#6086 |
|
||||
|Spanish |Redactado#1673 & josuens14#5267|
|
||||
|German |david.#8276 |
|
||||
|Italian |Maurizio#0268 |
|
||||
|Dutch |djj123dj |
|
||||
|Romanian |sankedev |
|
||||
|French |sankedev |
|
||||
|Spanish |redactado & josuens |
|
||||
|German |david.3 |
|
||||
|Italian |maurizio26 |
|
||||
|Czech |t0miiis#3022 |
|
||||
|Arabic |ChilledBroke#9986 & M4#5882|
|
||||
|Danish |the_gamer#5095 |
|
||||
|Portuguese |QuirAddon#9778 |
|
||||
|Russian |Apexo#0723 |
|
||||
|Turkish |Hydrâelčhâvø#1575 |
|
||||
|Polish |MKevas#8311 |
|
||||
|Slovenian |n1kkec#5341 |
|
||||
|Thai |Mods HD#0661 |
|
||||
|Norwegian |NoOneNook#0266 |
|
||||
|Greek |ꙅoᴎɒᎸɘƚꙅ#3744 |
|
||||
|Arabic |Sarcastic#9318 |
|
||||
|Danish |.the_gamer |
|
||||
|Portuguese |quiradon |
|
||||
|Russian |apexo |
|
||||
|Turkish |Hydra#0009 |
|
||||
|Polish |mkevas |
|
||||
|Slovenian |n1kkec |
|
||||
|Thai |modshd |
|
||||
|Norwegian |noonenook |
|
||||
|Greek |stefanos#5739 |
|
||||
|Ukrainian |anderskiy |
|
||||
|
||||
## links
|
||||
current version: _v3.4.0_
|
||||
current version: _v3.4.4_
|
||||
</br>changelog: [click here](https://docs.openticket.dj-dj.be/other/changelog)
|
||||
</br>documentation: [click here](https://docs.openticket.dj-dj.be/quick-start)
|
||||
|
||||
|
||||
+4
-4
@@ -31,8 +31,8 @@ module.exports = () => {
|
||||
msg.channel.send({embeds:[bot.embeds.commands.addEmbed(user,msg.author)]})
|
||||
|
||||
var loguser = msg.mentions.users.first()
|
||||
log("command","someone used the 'add' command",[{key:"user",value:msg.author.tag}])
|
||||
log("system","user added to ticket",[{key:"user",value:msg.author.tag},{key:"ticket",value:msg.channel.name},{key:"added_user",value:loguser.tag}])
|
||||
log("command","someone used the 'add' command",[{key:"user",value:msg.author.username}])
|
||||
log("system","user added to ticket",[{key:"user",value:msg.author.username},{key:"ticket",value:msg.channel.name},{key:"added_user",value:loguser.username}])
|
||||
|
||||
const ticketData = require("../core/utils/configParser").getTicketById(ticketId,true)
|
||||
APIEvents.onTicketAdd(msg.author,loguser,msg.channel,msg.guild,new Date(),{status:"open",name:msg.channel.name,ticketOptions:ticketData})
|
||||
@@ -61,8 +61,8 @@ module.exports = () => {
|
||||
interaction.editReply({embeds:[bot.embeds.commands.addEmbed(user,interaction.user)]})
|
||||
|
||||
var loguser = user
|
||||
log("command","someone used the 'add' command",[{key:"user",value:interaction.user.tag}])
|
||||
log("system","user added to ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name},{key:"added_user",value:loguser.tag}])
|
||||
log("command","someone used the 'add' command",[{key:"user",value:interaction.user.username}])
|
||||
log("system","user added to ticket",[{key:"user",value:interaction.user.username},{key:"ticket",value:interaction.channel.name},{key:"added_user",value:loguser.username}])
|
||||
|
||||
const ticketData = require("../core/utils/configParser").getTicketById(ticketId,true)
|
||||
APIEvents.onTicketAdd(interaction.user,loguser,interaction.channel,interaction.guild,new Date(),{status:"open",name:interaction.channel.name,ticketOptions:ticketData})
|
||||
|
||||
+36
-23
@@ -14,6 +14,7 @@ module.exports = () => {
|
||||
|
||||
if (!DISABLE.commands.text.change) client.on("messageCreate", async msg => {
|
||||
if (!msg.content.startsWith(config.prefix+"change")) return
|
||||
if (!msg.channel.isTextBased()) return
|
||||
|
||||
if (!msg.guild) return
|
||||
if (!permsChecker.command(msg.author.id,msg.guild.id)){
|
||||
@@ -26,36 +27,53 @@ module.exports = () => {
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
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)
|
||||
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>`")]})
|
||||
|
||||
/**@type {discord.PermissionOverwriteManager} */
|
||||
const prePermsManager = msg.channel.permissionOverwrites
|
||||
const prePerms = prePermsManager.cache
|
||||
|
||||
/**@type {String} */
|
||||
var chName = msg.channel.name
|
||||
const splitted = chName.split("-")
|
||||
const prefix = splitted.shift()
|
||||
const name = (splitted.length > 0) ? splitted.join("-") : prefix
|
||||
|
||||
|
||||
if (newTicket.category){
|
||||
const parent = await msg.guild.channels.fetch(newTicket.category,{cache:true})
|
||||
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)]})
|
||||
|
||||
log("command","someone used the 'change' command",[{key:"user",value:msg.author.tag}])
|
||||
log("system","ticket type changed",[{key:"user",value:msg.author.tag},{key:"ticket",value:name},{key:"newtype",value:newtype}])
|
||||
log("command","someone used the 'change' command",[{key:"user",value:msg.author.username}])
|
||||
log("system","ticket type changed",[{key:"user",value:msg.author.username},{key:"ticket",value:name},{key:"newtype",value:newtype}])
|
||||
APIEvents.onCommand("change",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
|
||||
})
|
||||
|
||||
if (!DISABLE.commands.slash.change) client.on("interactionCreate",async (interaction) => {
|
||||
if (!interaction.isChatInputCommand()) return
|
||||
if (interaction.commandName != "change") return
|
||||
if (!interaction.channel.isTextBased()) return
|
||||
|
||||
if (!interaction.guild) return
|
||||
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 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)
|
||||
const newTicket = require("../core/utils/configParser").getTicketById(newtype,true)
|
||||
@@ -91,28 +111,21 @@ module.exports = () => {
|
||||
if (parent && parent.type == discord.ChannelType.GuildCategory) interaction.channel.setParent(parent)
|
||||
}
|
||||
|
||||
await prePermsManager.set(prePerms)
|
||||
interaction.channel.setName(newTicket.channelprefix+name)
|
||||
prePermsManager.set(prePerms)
|
||||
interaction.channel.setName(newTicket.channelprefix+name).catch(() => {
|
||||
interaction.channel.send({embeds:[bot.errorLog.failedRenameChannel]})
|
||||
})
|
||||
|
||||
var newHiddendata = hiddendata.data
|
||||
newHiddendata.find((value,index) => {
|
||||
hiddendata.find((value,index) => {
|
||||
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)]})
|
||||
|
||||
log("command","someone used the 'change' command",[{key:"user",value:interaction.user.tag}])
|
||||
log("system","ticket type changed",[{key:"user",value:interaction.user.tag},{key:"ticket",value:name},{key:"newtype",value:newtype}])
|
||||
log("command","someone used the 'change' command",[{key:"user",value:interaction.user.username}])
|
||||
log("system","ticket type changed",[{key:"user",value:interaction.user.username},{key:"ticket",value:name},{key:"newtype",value:newtype}])
|
||||
APIEvents.onCommand("change",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
})
|
||||
}
|
||||
+19
-14
@@ -14,7 +14,7 @@ const DISABLE = require("../core/api/api.json").disable
|
||||
module.exports = () => {
|
||||
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
|
||||
var user = msg.mentions.users.first()
|
||||
|
||||
@@ -34,19 +34,24 @@ module.exports = () => {
|
||||
bot.hiddenData.writeHiddenData(msg.channel.id,hiddendata)
|
||||
storage.set("claimData",msg.channel.id,claimingUser.id)
|
||||
|
||||
const newEmbed = new embed(firstmsg.embeds[0].data)
|
||||
.setFooter({text:"claimed by: "+msg.author.tag,iconURL:msg.author.displayAvatarURL()})
|
||||
await msg.channel.messages.fetchPinned().then(msglist => {
|
||||
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){
|
||||
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim],embeds:[newEmbed]})
|
||||
}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)]})
|
||||
|
||||
log("command","someone used the 'claim' command",[{key:"user",value:msg.author.tag}])
|
||||
log("system","user claimed to ticket",[{key:"user",value:msg.author.tag},{key:"ticket",value:msg.channel.name},{key:"claimed_user",value:claimingUser.tag}])
|
||||
log("command","someone used the 'claim' command",[{key:"user",value:msg.author.username}])
|
||||
log("system","user claimed to ticket",[{key:"user",value:msg.author.username},{key:"ticket",value:msg.channel.name},{key:"claimed_user",value:claimingUser.username}])
|
||||
|
||||
const ticketData = require("../core/utils/configParser").getTicketById(ticketId,true)
|
||||
APIEvents.onTicketClaim(msg.author,loguser,msg.channel,msg.guild,new Date(),{status:"open",name:msg.channel.name,ticketOptions:ticketData})
|
||||
@@ -74,12 +79,12 @@ module.exports = () => {
|
||||
bot.hiddenData.writeHiddenData(interaction.channel.id,hiddendata)
|
||||
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()
|
||||
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: "+user.tag,iconURL:user.displayAvatarURL()})
|
||||
.setFooter({text:"claimed by: "+user.username,iconURL:user.displayAvatarURL()})
|
||||
|
||||
if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
|
||||
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim],embeds:[newEmbed]})
|
||||
@@ -90,8 +95,8 @@ module.exports = () => {
|
||||
|
||||
interaction.editReply({embeds:[bot.embeds.commands.claimEmbed(user,interaction.user)]})
|
||||
|
||||
log("command","someone used the 'claim' command",[{key:"user",value:interaction.user.tag}])
|
||||
log("system","user claimed to ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name},{key:"claimed_user",value:user.tag}])
|
||||
log("command","someone used the 'claim' command",[{key:"user",value:interaction.user.username}])
|
||||
log("system","user claimed to ticket",[{key:"user",value:interaction.user.username},{key:"ticket",value:interaction.channel.name},{key:"claimed_user",value:user.username}])
|
||||
|
||||
const ticketData = require("../core/utils/configParser").getTicketById(ticketId,true)
|
||||
APIEvents.onTicketClaim(interaction.user,user,interaction.channel,interaction.guild,new Date(),{status:"open",name:interaction.channel.name,ticketOptions:ticketData})
|
||||
|
||||
+2
-2
@@ -44,7 +44,7 @@ module.exports = () => {
|
||||
|
||||
require("../core/ticketActions/ticketCloser").closeManager(msg.member,msg.channel,prefix,"close",reason,true)
|
||||
|
||||
log("command","someone used the 'close' command",[{key:"user",value:msg.author.tag}])
|
||||
log("command","someone used the 'close' command",[{key:"user",value:msg.author.username}])
|
||||
APIEvents.onCommand("close",true,msg.author,msg.channel,msg.guild,new Date())
|
||||
|
||||
})
|
||||
@@ -79,7 +79,7 @@ module.exports = () => {
|
||||
|
||||
require("../core/ticketActions/ticketCloser").closeManager(interaction.member,interaction.channel,prefix,"close",false,true)
|
||||
|
||||
log("command","someone used the 'close' command",[{key:"user",value:interaction.user.tag}])
|
||||
log("command","someone used the 'close' command",[{key:"user",value:interaction.user.username}])
|
||||
APIEvents.onCommand("close",true,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
})
|
||||
}
|
||||
+2
-2
@@ -38,7 +38,7 @@ module.exports = () => {
|
||||
|
||||
require("../core/ticketActions/ticketCloser").closeManager(msg.member,msg.channel,prefix,"delete",false,true)
|
||||
|
||||
log("command","someone used the 'delete' command",[{key:"user",value:msg.author.tag}])
|
||||
log("command","someone used the 'delete' command",[{key:"user",value:msg.author.username}])
|
||||
APIEvents.onCommand("delete",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
|
||||
|
||||
})
|
||||
@@ -72,7 +72,7 @@ module.exports = () => {
|
||||
|
||||
require("../core/ticketActions/ticketCloser").closeManager(interaction.member,interaction.channel,prefix,"delete",false,true)
|
||||
|
||||
log("command","someone used the 'delete' command",[{key:"user",value:interaction.user.tag}])
|
||||
log("command","someone used the 'delete' command",[{key:"user",value:interaction.user.username}])
|
||||
APIEvents.onCommand("delete",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
})
|
||||
}
|
||||
+4
-4
@@ -32,15 +32,15 @@ module.exports = () => {
|
||||
|
||||
if (msg.content == config.prefix || msg.content == config.prefix+" " || msg.content == otherprefix){
|
||||
msg.channel.send({embeds:[helpEmbed]})
|
||||
log("command","someone used the 'help' command",[{key:"user",value:msg.author.tag}])
|
||||
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())
|
||||
return
|
||||
}
|
||||
|
||||
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]})
|
||||
log("command","someone used the 'help' command",[{key:"user",value:msg.author.tag}])
|
||||
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())
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,7 @@ module.exports = () => {
|
||||
if (interaction.commandName != "help") return
|
||||
|
||||
interaction.reply({embeds:[helpEmbed]})
|
||||
log("command","someone used the 'help' command",[{key:"user",value:interaction.user.tag}])
|
||||
log("command","someone used the 'help' command",[{key:"user",value:interaction.user.username}])
|
||||
APIEvents.onCommand("help",true,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
})
|
||||
}
|
||||
+4
-4
@@ -32,8 +32,8 @@ module.exports = () => {
|
||||
|
||||
var loguser = msg.mentions.users.first()
|
||||
|
||||
log("command","someone used the 'remove' command",[{key:"user",value:msg.author.tag}])
|
||||
log("system","user removed from ticket",[{key:"user",value:msg.author.tag},{key:"ticket",value:msg.channel.name},{key:"removed_user",value:loguser.tag}])
|
||||
log("command","someone used the 'remove' command",[{key:"user",value:msg.author.username}])
|
||||
log("system","user removed from ticket",[{key:"user",value:msg.author.username},{key:"ticket",value:msg.channel.name},{key:"removed_user",value:loguser.username}])
|
||||
|
||||
const ticketData = require("../core/utils/configParser").getTicketById(ticketId,true)
|
||||
APIEvents.onTicketRemove(msg.author,loguser,msg.channel,msg.guild,new Date(),{status:"open",name:msg.channel.name,ticketOptions:ticketData})
|
||||
@@ -62,8 +62,8 @@ module.exports = () => {
|
||||
|
||||
var loguser = user
|
||||
|
||||
log("command","someone used the 'remove' command",[{key:"user",value:interaction.user.tag}])
|
||||
log("system","user removed from ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name},{key:"removed_user",value:loguser.tag}])
|
||||
log("command","someone used the 'remove' command",[{key:"user",value:interaction.user.username}])
|
||||
log("system","user removed from ticket",[{key:"user",value:interaction.user.username},{key:"ticket",value:interaction.channel.name},{key:"removed_user",value:loguser.username}])
|
||||
|
||||
const ticketData = require("../core/utils/configParser").getTicketById(ticketId,true)
|
||||
APIEvents.onTicketRemove(interaction.user,loguser,interaction.channel,interaction.guild,new Date(),{status:"open",name:interaction.channel.name,ticketOptions:ticketData})
|
||||
|
||||
+4
-5
@@ -39,12 +39,11 @@ module.exports = () => {
|
||||
})
|
||||
|
||||
if (!prefix) prefix = "noprefix-"
|
||||
|
||||
msg.channel.setName(prefix+newname)
|
||||
msg.channel.send({embeds:[bot.embeds.commands.renameEmbed(msg.author,prefix+newname)]})
|
||||
|
||||
log("command","someone used the 'rename' command",[{key:"user",value:msg.author.tag}])
|
||||
log("system","ticket renamed",[{key:"user",value:msg.author.tag},{key:"ticket",value:name},{key:"newname",value:newname}])
|
||||
log("command","someone used the 'rename' command",[{key:"user",value:msg.author.username}])
|
||||
log("system","ticket renamed",[{key:"user",value:msg.author.username},{key:"ticket",value:name},{key:"newname",value:newname}])
|
||||
APIEvents.onCommand("rename",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
|
||||
})
|
||||
|
||||
@@ -79,8 +78,8 @@ module.exports = () => {
|
||||
interaction.channel.setName(prefix+newname)
|
||||
interaction.editReply({embeds:[bot.embeds.commands.renameEmbed(interaction.user,prefix+newname)]})
|
||||
|
||||
log("command","someone used the 'rename' command",[{key:"user",value:interaction.user.tag}])
|
||||
log("system","ticket renamed",[{key:"user",value:interaction.user.tag},{key:"ticket",value:name},{key:"newname",value:newname}])
|
||||
log("command","someone used the 'rename' command",[{key:"user",value:interaction.user.username}])
|
||||
log("system","ticket renamed",[{key:"user",value:interaction.user.username},{key:"ticket",value:name},{key:"newname",value:newname}])
|
||||
|
||||
APIEvents.onCommand("rename",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
})
|
||||
|
||||
+4
-4
@@ -25,7 +25,7 @@ module.exports = () => {
|
||||
|
||||
require("../core/ticketActions/ticketReopener").reopenTicket(msg.guild,msg.channel,msg.author)
|
||||
|
||||
log("command","someone used the 'reopen' command",[{key:"user",value:msg.author.tag}])
|
||||
log("command","someone used the 'reopen' command",[{key:"user",value:msg.author.username}])
|
||||
APIEvents.onCommand("reopen",true,msg.author,msg.channel,msg.guild,new Date())
|
||||
})
|
||||
|
||||
@@ -39,13 +39,13 @@ module.exports = () => {
|
||||
if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (hiddendata.data.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.editReply({embeds:[bot.errorLog.warning("Warning!","You can't re-open a ticket while it's being deleted!")]})
|
||||
|
||||
await interaction.editReply({embeds:[bot.embeds.commands.reopenEmbed(interaction.user)],components:[bot.buttons.close.openRowNormal]})
|
||||
|
||||
require("../core/ticketActions/ticketReopener").reopenTicket(interaction.guild,interaction.channel,interaction.user)
|
||||
|
||||
log("command","someone used the 'reopen' command",[{key:"user",value:interaction.user.tag}])
|
||||
log("command","someone used the 'reopen' command",[{key:"user",value:interaction.user.username}])
|
||||
APIEvents.onCommand("reopen",true,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -38,7 +38,7 @@ module.exports = () => {
|
||||
|
||||
msg.channel.send({embeds:[embed],components:componentRows})
|
||||
|
||||
log("command","someone used the 'message' command",[{key:"user",value:msg.author.tag},{key:"id",value:id}])
|
||||
log("command","someone used the 'message' command",[{key:"user",value:msg.author.username},{key:"id",value:id}])
|
||||
APIEvents.onCommand("message",permsChecker.command(msg.author.id,msg.guild.id),msg.author,msg.channel,msg.guild,new Date())
|
||||
}
|
||||
})
|
||||
@@ -62,7 +62,7 @@ module.exports = () => {
|
||||
interaction.reply({content:l.commands.ticketWarning})
|
||||
interaction.channel.send({embeds:[embed],components:componentRows})
|
||||
|
||||
log("command","someone used the 'message' command",[{key:"user",value:interaction.user.tag},{key:"id",value:id}])
|
||||
log("command","someone used the 'message' command",[{key:"user",value:interaction.user.username},{key:"id",value:id}])
|
||||
|
||||
APIEvents.onCommand("message",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
|
||||
|
||||
+4
-4
@@ -57,8 +57,8 @@ module.exports = () => {
|
||||
|
||||
msg.channel.send({embeds:[bot.embeds.commands.unclaimEmbed(msg.author)]})
|
||||
|
||||
log("command","someone used the 'unclaim' command",[{key:"user",value:msg.author.tag}])
|
||||
log("system","user unclaimed from ticket",[{key:"user",value:msg.author.tag},{key:"ticket",value:msg.channel.name},{key:"unclaimed_user",value:unclaimuser}])
|
||||
log("command","someone used the 'unclaim' command",[{key:"user",value:msg.author.username}])
|
||||
log("system","user unclaimed from ticket",[{key:"user",value:msg.author.username},{key:"ticket",value:msg.channel.name},{key:"unclaimed_user",value:unclaimuser}])
|
||||
|
||||
|
||||
APIEvents.onTicketUnclaim(msg.author,msg.channel,msg.guild,new Date(),{status:"open",name:msg.channel.name,ticketOptions:ticketData})
|
||||
@@ -113,8 +113,8 @@ module.exports = () => {
|
||||
|
||||
interaction.editReply({embeds:[bot.embeds.commands.unclaimEmbed(interaction.user)]})
|
||||
|
||||
log("command","someone used the 'unclaim' command",[{key:"user",value:interaction.user.tag}])
|
||||
log("system","user unclaimed from ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name},{key:"unclaimed_user",value:unclaimuser}])
|
||||
log("command","someone used the 'unclaim' command",[{key:"user",value:interaction.user.username}])
|
||||
log("system","user unclaimed from ticket",[{key:"user",value:interaction.user.username},{key:"ticket",value:interaction.channel.name},{key:"unclaimed_user",value:unclaimuser}])
|
||||
|
||||
APIEvents.onTicketUnclaim(interaction.user,interaction.channel,interaction.guild,new Date(),{status:"open",name:interaction.channel.name,ticketOptions:ticketData})
|
||||
APIEvents.onCommand("unclaim",permsChecker.command(interaction.user.id,interaction.guild.id),interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
|
||||
+1
-1
@@ -111,7 +111,7 @@
|
||||
"dropdown":false,
|
||||
|
||||
"enableFooter":false,
|
||||
"footer":"Open Ticket v3.4.0 - I'm a footer!",
|
||||
"footer":"Open Ticket v3.4.4 - I'm a footer!",
|
||||
|
||||
"enableFooterImage":false,
|
||||
"footerImage":"https://www.example.com/catmemes/cat.png",
|
||||
|
||||
+16
-10
@@ -3,6 +3,9 @@ const bot = require("../../index")
|
||||
const log = bot.errorLog.log
|
||||
|
||||
module.exports = () => {
|
||||
const args = process.argv
|
||||
const debugMode = args.includes("--debug")
|
||||
|
||||
const files = fs.readdirSync("./plugins")
|
||||
const api = require("./api.json")
|
||||
var totalcount = 0
|
||||
@@ -11,27 +14,30 @@ module.exports = () => {
|
||||
files.forEach((file) => {
|
||||
if (file.endsWith(".plugin.js")){
|
||||
try {
|
||||
require("../../plugins/"+file)()
|
||||
require("../../plugins/" + file)()
|
||||
|
||||
successcount++
|
||||
totalcount++
|
||||
}catch(err){
|
||||
/**@type {Error} */
|
||||
const theError = err
|
||||
if (api.enableAPIdebug){
|
||||
try {
|
||||
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")
|
||||
}
|
||||
if (api.enableAPIdebug || debugMode) {
|
||||
console.error(theError)
|
||||
}
|
||||
|
||||
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++
|
||||
totalcount++
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
require("../startscreen").headerDataPlugins({total:totalcount,success:successcount,error:failcount})
|
||||
require("../startscreen").headerDataPlugins({ total: totalcount, success: successcount, error: failcount })
|
||||
}
|
||||
+2
-2
@@ -179,7 +179,7 @@ exports.checker = async () => {
|
||||
checkType(option.description,"string",path+"/description")
|
||||
|
||||
//icon
|
||||
const emojiRegex = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/gi;
|
||||
const emojiRegex = /(?:\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])|(?:<a?:[^:]*:[0-9]+>)/gi
|
||||
if (option.icon.length > 0){
|
||||
|
||||
const isEmoji = emojiRegex.test(option.icon)
|
||||
@@ -427,7 +427,7 @@ exports.checker = async () => {
|
||||
checkType(config.languageFile,"string","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")){
|
||||
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") && !lf.startsWith("indonesian")){
|
||||
createError("'languagefile' | invalid language, more info in the wiki")
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ exports.noPermsMessage = (user) => {
|
||||
.setColor(c.Red)
|
||||
.setTitle(":x: "+l.errors.noPermsTitle)
|
||||
.setDescription(l.errors.noPermsDescription)
|
||||
.setFooter({iconURL:user.displayAvatarURL(),text:user.tag})
|
||||
.setFooter({iconURL:user.displayAvatarURL(),text:user.username})
|
||||
}
|
||||
|
||||
/**@param {discord.User} user*/
|
||||
@@ -25,7 +25,7 @@ exports.noPermsDelete = (user) => {
|
||||
.setColor(c.Red)
|
||||
.setTitle(":x: "+l.errors.noPermsTitle)
|
||||
.setDescription(l.errors.noPermsDelete)
|
||||
.setFooter({iconURL:user.displayAvatarURL(),text:user.tag})
|
||||
.setFooter({iconURL:user.displayAvatarURL(),text:user.username})
|
||||
}
|
||||
|
||||
/**@param {String} message */
|
||||
@@ -58,6 +58,11 @@ exports.invalidIdChooseFromList = (list,message) => {
|
||||
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()
|
||||
.setColor(c.Red)
|
||||
.setTitle(":x: "+l.errors.notInTicketTitle)
|
||||
|
||||
@@ -19,7 +19,7 @@ exports.addEmbed = (addedUser,adder) => {
|
||||
return new embed()
|
||||
.setTitle("⬆️ "+l.commands.userAddedTitle.replace("{0}",addedUser.username))
|
||||
.setColor(mc)
|
||||
.setFooter({text:adder.tag,iconURL:adder.displayAvatarURL()})
|
||||
.setFooter({text:adder.username,iconURL:adder.displayAvatarURL()})
|
||||
.setThumbnail(addedUser.displayAvatarURL({extension:"png"}))
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ exports.removeEmbed = (removedUser,remover) => {
|
||||
return new embed()
|
||||
.setTitle("⬇️ "+l.commands.userRemovedTitle.replace("{0}",removedUser.username))
|
||||
.setColor(mc)
|
||||
.setFooter({text:remover.tag,iconURL:remover.displayAvatarURL()})
|
||||
.setFooter({text:remover.username,iconURL:remover.displayAvatarURL()})
|
||||
.setThumbnail(removedUser.displayAvatarURL({extension:"png"}))
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ exports.closeEmbed = (closer,description) => {
|
||||
const embd = new embed()
|
||||
.setTitle("🔒 "+l.commands.closeTitle)
|
||||
.setColor(mc)
|
||||
.setFooter({text:closer.tag,iconURL:closer.displayAvatarURL()})
|
||||
.setFooter({text:closer.username,iconURL:closer.displayAvatarURL()})
|
||||
|
||||
if (description) embd.setDescription(description)
|
||||
return embd
|
||||
@@ -63,7 +63,7 @@ exports.autocloseSignalEmbed = (closer,time) => {
|
||||
const embd = new embed()
|
||||
.setTitle("⏰ This ticket got closed by Autoclose!")
|
||||
.setColor(mc)
|
||||
.setFooter({text:closer.tag,iconURL:closer.displayAvatarURL()})
|
||||
.setFooter({text:closer.username,iconURL:closer.displayAvatarURL()})
|
||||
.setDescription("This ticket has been inactive for `"+time+"h`!")
|
||||
return embd
|
||||
}
|
||||
@@ -77,7 +77,7 @@ exports.deleteEmbed = (deleter) => {
|
||||
return new embed()
|
||||
.setTitle("❌ "+l.commands.deleteTitle)
|
||||
.setColor(mc)
|
||||
.setFooter({text:deleter.tag,iconURL:deleter.displayAvatarURL()})
|
||||
.setFooter({text:deleter.username,iconURL:deleter.displayAvatarURL()})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -90,7 +90,7 @@ exports.renameEmbed = (renamer,newname) => {
|
||||
return new embed()
|
||||
.setTitle("🔄 "+l.commands.renameTitle.replace("{0}",newname))
|
||||
.setColor(mc)
|
||||
.setFooter({text:renamer.tag,iconURL:renamer.displayAvatarURL()})
|
||||
.setFooter({text:renamer.username,iconURL:renamer.displayAvatarURL()})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -102,7 +102,7 @@ exports.renameEmbed = (renamer,newname) => {
|
||||
return new embed()
|
||||
.setTitle("🔓 "+l.commands.reopenTitle)
|
||||
.setColor(mc)
|
||||
.setFooter({text:reopener.tag,iconURL:reopener.displayAvatarURL()})
|
||||
.setFooter({text:reopener.username,iconURL:reopener.displayAvatarURL()})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -115,7 +115,7 @@ exports.renameEmbed = (renamer,newname) => {
|
||||
return new embed()
|
||||
.setTitle("📌 "+l.commands.claimTitle.replace("{0}",claimer.username))
|
||||
.setColor(mc)
|
||||
.setFooter({text:user.tag,iconURL:user.displayAvatarURL()})
|
||||
.setFooter({text:user.username,iconURL:user.displayAvatarURL()})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -127,7 +127,7 @@ exports.renameEmbed = (renamer,newname) => {
|
||||
return new embed()
|
||||
.setTitle("🆓 "+l.commands.unclaimTitle)
|
||||
.setColor(mc)
|
||||
.setFooter({text:unclaimer.tag,iconURL:unclaimer.displayAvatarURL()})
|
||||
.setFooter({text:unclaimer.username,iconURL:unclaimer.displayAvatarURL()})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -140,5 +140,5 @@ exports.changeEmbed = (changer,newtype) => {
|
||||
return new embed()
|
||||
.setTitle("🔄 "+l.commands.changeTitle.replace("{0}",newtype))
|
||||
.setColor(mc)
|
||||
.setFooter({text:changer.tag,iconURL:changer.displayAvatarURL()})
|
||||
.setFooter({text:changer.username,iconURL:changer.displayAvatarURL()})
|
||||
}
|
||||
@@ -45,7 +45,7 @@ module.exports = () => {
|
||||
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
|
||||
const newEmbed = new embed(firstmsg.embeds[0].data)
|
||||
.setFooter({text:"claimed by: "+interaction.user.tag,iconURL:interaction.user.displayAvatarURL()})
|
||||
.setFooter({text:"claimed by: "+interaction.user.username,iconURL:interaction.user.displayAvatarURL()})
|
||||
|
||||
if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
|
||||
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim],embeds:[newEmbed]})
|
||||
|
||||
@@ -53,7 +53,7 @@ module.exports = async () => {
|
||||
option.roles.forEach((role) => {
|
||||
interaction.guild.members.cache.find(u => u.id == user.id).roles.add(role)
|
||||
|
||||
log("system","added role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
|
||||
log("system","added role (reaction roles)",[{key:"user",value:interaction.user.username},{key:"role",value:role}])
|
||||
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
|
||||
APIEvents.onReactionRole("add","add",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
})
|
||||
@@ -68,7 +68,7 @@ module.exports = async () => {
|
||||
option.roles.forEach((role) => {
|
||||
interaction.guild.members.cache.find(u => u.id == user.id).roles.remove(role)
|
||||
|
||||
log("system","removed role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
|
||||
log("system","removed role (reaction roles)",[{key:"user",value:interaction.user.username},{key:"role",value:role}])
|
||||
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
|
||||
APIEvents.onReactionRole("remove","remove",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
})
|
||||
@@ -84,13 +84,13 @@ module.exports = async () => {
|
||||
if (!interaction.guild.members.cache.find(u => u.id == user.id).roles.cache.has(role)){
|
||||
interaction.guild.members.cache.find(u => u.id == user.id).roles.add(role)
|
||||
|
||||
log("system","added role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
|
||||
log("system","added role (reaction roles)",[{key:"user",value:interaction.user.username},{key:"role",value:role}])
|
||||
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
|
||||
APIEvents.onReactionRole("add","add&remove",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
}else {
|
||||
interaction.guild.members.cache.find(u => u.id == user.id).roles.remove(role)
|
||||
|
||||
log("system","removed role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}])
|
||||
log("system","removed role (reaction roles)",[{key:"user",value:interaction.user.username},{key:"role",value:role}])
|
||||
const apirole = interaction.guild.roles.cache.find(r => r.id == role)
|
||||
APIEvents.onReactionRole("remove","add&remove",apirole,interaction.user,interaction.channel,interaction.guild,new Date())
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ module.exports = async (invisible) => {
|
||||
//process.stdout.write("[status] there are "+chalk.blue("0 out of 10")+" commands ready! (this can take up to 40 seconds)")
|
||||
if (!invisible){
|
||||
setInterval(() => {
|
||||
process.stdout.cursorTo(0)
|
||||
if (process.stdout && process.stdout.cursorTo) process.stdout.cursorTo(0)
|
||||
process.stdout.write("[status] there are "+chalk.blue(readystats+" out of 13")+" commands ready! (this can take up to 40 seconds)")
|
||||
if (readystats >= 13){
|
||||
console.log(chalk.green("\nready!"))
|
||||
|
||||
@@ -63,7 +63,7 @@ exports.closeManager = async (member,channel,prefix,mode,reason,nomessage) => {
|
||||
if (!nomessage){
|
||||
await channel.send({content:"**"+l.messages.gettingdeleted+"**"})
|
||||
}
|
||||
log("system","deleted a ticket",[{key:"user",value:user.tag},{key:"ticket",value:channel.name}])
|
||||
log("system","deleted a ticket",[{key:"user",value:user.username},{key:"ticket",value:channel.name}])
|
||||
pendingDelete.push(channel.id)
|
||||
|
||||
if (!isDatabaseError) storage.set("amountOfUserTickets",getuserID,Number(storage.get("amountOfUserTickets",getuserID)) - 1)
|
||||
@@ -179,7 +179,7 @@ exports.closeManager = async (member,channel,prefix,mode,reason,nomessage) => {
|
||||
channel.send({embeds:[embed],components:[bot.buttons.close.closeCommandRow]})
|
||||
}
|
||||
|
||||
log("system","closed a ticket",[{key:"user",value:user.tag},{key:"ticket",value:channel.name}])
|
||||
log("system","closed a ticket",[{key:"user",value:user.username},{key:"ticket",value:channel.name}])
|
||||
|
||||
|
||||
//send api event
|
||||
|
||||
@@ -54,7 +54,9 @@ module.exports = () => {
|
||||
await interaction.deferReply({ephemeral:config.system.answerInEphemeralOnOpen})
|
||||
} catch{}
|
||||
}else if (interaction.isChatInputCommand()){
|
||||
await interaction.deferReply({ephemeral:config.system.answerInEphemeralOnOpen})
|
||||
try {
|
||||
await interaction.deferReply({ephemeral:config.system.answerInEphemeralOnOpen})
|
||||
} catch{}
|
||||
}else if (interaction.isStringSelectMenu()){
|
||||
try {
|
||||
await interaction.deferUpdate()
|
||||
@@ -209,7 +211,7 @@ module.exports = () => {
|
||||
firstmsg.pin()
|
||||
})
|
||||
|
||||
log("system","created new ticket",[{key:"ticket",value:ticketName},{key:"user",value:interaction.user.tag}])
|
||||
log("system","created new ticket",[{key:"ticket",value:ticketName},{key:"user",value:interaction.user.username}])
|
||||
require("../api/modules/events").onTicketOpen(interaction.user,ticketChannel,interaction.guild,new Date(),{name:ticketName,status:"open",ticketOptions:currentTicketOptions})
|
||||
|
||||
const channelbutton = new discord.ActionRowBuilder()
|
||||
@@ -227,7 +229,13 @@ module.exports = () => {
|
||||
}
|
||||
catch{log("system","failed to send DM")}
|
||||
|
||||
if ((interaction.isButton() && config.system.answerInEphemeralOnOpen) || interaction.isChatInputCommand()) interaction.editReply({embeds:[bot.errorLog.success(l.messages.createdTitle,l.messages.createdDescription)],components:[channelbutton]})
|
||||
if ((interaction.isButton() && config.system.answerInEphemeralOnOpen) || interaction.isChatInputCommand()){
|
||||
if (interaction.deferred){
|
||||
interaction.editReply({embeds:[bot.errorLog.success(l.messages.createdTitle,l.messages.createdDescription)],components:[channelbutton]})
|
||||
}else{
|
||||
interaction.reply({embeds:[bot.errorLog.success(l.messages.createdTitle,l.messages.createdDescription)],components:[channelbutton]})
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
}else{
|
||||
|
||||
@@ -15,7 +15,7 @@ const pfb = discord.PermissionFlagsBits
|
||||
* @returns
|
||||
*/
|
||||
const reopenTicket = (guild,channel,user) => {
|
||||
log("system","re-opened a ticket",[{key:"ticket",value:channel.name},{key:"user",value:user.tag}])
|
||||
log("system","re-opened a ticket",[{key:"ticket",value:channel.name},{key:"user",value:user.username}])
|
||||
|
||||
var permissionsArray = []
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
const memberColor = msg.member ? msg.member.displayHexColor : "#ffffff"
|
||||
messagesArray.push({
|
||||
author:{
|
||||
name:msg.author.tag,
|
||||
name:msg.author.username,
|
||||
id:Number(msg.author.id),
|
||||
color:memberColor,
|
||||
pfp:msg.author.displayAvatarURL()
|
||||
@@ -106,7 +106,7 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
|
||||
creatorname:data.ticket.creatorname,
|
||||
creatorid:Number(data.ticket.creatorid),
|
||||
closedbyname:user.tag,
|
||||
closedbyname:user.username,
|
||||
closedbyid:Number(user.id),
|
||||
|
||||
closedtime:data.ticket.closedtime,
|
||||
|
||||
@@ -264,7 +264,7 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
const authorColor = msg.member ? msg.member.displayHexColor.replace("#000000","#ffffff") : "#ffffff"
|
||||
messagesArray.push({
|
||||
author:{
|
||||
name:msg.author.tag,
|
||||
name:msg.author.username,
|
||||
id:msg.author.id,
|
||||
color:authorColor,
|
||||
pfp:msg.author.displayAvatarURL(),
|
||||
@@ -331,7 +331,7 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
creatorid:data.ticket.creatorid,
|
||||
creatorpfp:data.ticket.creatorpfp,
|
||||
|
||||
closedbyname:user.tag,
|
||||
closedbyname:user.username,
|
||||
closedbyid:user.id,
|
||||
closedbypfp:user.displayAvatarURL(),
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ exports.beingprocessed = (name,id,rawprocesstime,user) => {
|
||||
const embed = new discord.EmbedBuilder()
|
||||
.setTitle("🧾 "+l.transcripts.title)
|
||||
.setColor(config.color)
|
||||
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
|
||||
.setAuthor({name:user.username,iconURL:user.displayAvatarURL()})
|
||||
.setFooter({text:name})
|
||||
|
||||
.setDescription("`"+l.transcripts.processed+"...`\n"+l.transcripts.wait+"\n\n"+l.transcripts.estimated+": "+processtime)
|
||||
@@ -43,7 +43,7 @@ exports.tsready = (name,id,url,user) => {
|
||||
const embed = new discord.EmbedBuilder()
|
||||
.setTitle("🧾 "+l.transcripts.title)
|
||||
.setColor(config.color)
|
||||
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
|
||||
.setAuthor({name:user.username,iconURL:user.displayAvatarURL()})
|
||||
.setFooter({text:name})
|
||||
|
||||
if (url){
|
||||
@@ -67,7 +67,7 @@ exports.tserror = (name,id,user,err) => {
|
||||
const embed = new discord.EmbedBuilder()
|
||||
.setTitle("❌ "+l.transcripts.title)
|
||||
.setColor(discord.Colors.Red)
|
||||
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
|
||||
.setAuthor({name:user.username,iconURL:user.displayAvatarURL()})
|
||||
.setFooter({text:name})
|
||||
|
||||
const errDesc = (typeof err == "string") ? "\n"+err : ""
|
||||
|
||||
@@ -85,7 +85,7 @@ module.exports = async (messages,guild,channel,user,reason) => {
|
||||
},
|
||||
ticket:{
|
||||
creatorid:ticketopener.id,
|
||||
creatorname:ticketopener.tag,
|
||||
creatorname:ticketopener.username,
|
||||
creatorpfp:ticketopener.displayAvatarURL(),
|
||||
|
||||
openedtime:opentime.getTime(),
|
||||
|
||||
@@ -47,7 +47,7 @@ exports.createTranscript = async (messagecollection,channel,backup) => {
|
||||
})
|
||||
const filestring = fileurls.length > 0 ? fileurls.join("\n")+"\n" : ""
|
||||
const msgstats = "files: "+msg.attachments.size+", embeds: "+msg.embeds.length
|
||||
filearray.push("["+timestamp.getDate()+"/"+timestamp.getMonth()+"/"+timestamp.getFullYear()+", "+timestamp.getHours()+":"+timestamp.getMinutes()+":"+timestamp.getSeconds()+"|"+msg.author.tag+"] ["+msgstats+"]\n"+content+"\n"+filestring)
|
||||
filearray.push("["+timestamp.getDate()+"/"+timestamp.getMonth()+"/"+timestamp.getFullYear()+", "+timestamp.getHours()+":"+timestamp.getMinutes()+":"+timestamp.getSeconds()+"|"+msg.author.username+"] ["+msgstats+"]\n"+content+"\n"+filestring)
|
||||
})
|
||||
|
||||
if (filearray.length < 2) filearray.push("transcript is empty")
|
||||
|
||||
@@ -10,7 +10,7 @@ const storage = require("../../index").storage
|
||||
|
||||
exports.readHiddenData = (channelid) => {
|
||||
const content = storage.get("HIDDENDATA",channelid)
|
||||
if (!content) return {type:"",data:[],status:false}
|
||||
if (!content) return []
|
||||
|
||||
try {
|
||||
return JSON.parse(content)
|
||||
|
||||
@@ -176,28 +176,30 @@ exports.liveStatusUploadManager = async (err) => {
|
||||
const result = await uploadLiveStatus({
|
||||
bot:{
|
||||
id:client.user.id,
|
||||
name:client.user.tag,
|
||||
name:client.user.username,
|
||||
pfp:client.user.displayAvatarURL()
|
||||
},
|
||||
error:err,
|
||||
openticket:{
|
||||
config:{
|
||||
messages:config.messages,
|
||||
options:config.options,
|
||||
transcripts:bot.tsconfig,
|
||||
system:config.system
|
||||
//TEMPORARY SOLUTION => AXIOS 414 ERROR!
|
||||
//messages:config.messages,
|
||||
//options:config.options,
|
||||
//transcripts:bot.tsconfig,
|
||||
//system:config.system
|
||||
},
|
||||
language:config.languageFile,
|
||||
version:"3.4.0",
|
||||
version:"3.4.4",
|
||||
slashcmds:slashMode,
|
||||
transcripts:transcriptMode,
|
||||
plugins:fs.readdirSync("./plugins"),
|
||||
pluginload:globalPluginData
|
||||
},
|
||||
details:{
|
||||
errortime:new Date().getTime(),
|
||||
actions:this.actionRecorder,
|
||||
database:fs.readFileSync("./storage/database.json").toString()
|
||||
errortime:new Date().getTime()
|
||||
//TEMPORARY SOLUTION => AXIOS 414 ERROR!
|
||||
//actions:this.actionRecorder,
|
||||
//database:fs.readFileSync("./storage/database.json").toString()
|
||||
}
|
||||
})
|
||||
if (!result){
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
INFORMATION:
|
||||
============
|
||||
Open Ticket v3.4.0 - © DJdj Development
|
||||
Open Ticket v3.4.4 - © DJdj Development
|
||||
|
||||
discord: https://discord.dj-dj.be
|
||||
website: https://www.dj-dj.be
|
||||
@@ -370,7 +370,9 @@ process.on("uncaughtException",async (error,origin) => {
|
||||
APIEvents.onError(error.name+": "+error.message,new Date())
|
||||
|
||||
//TEMPORARY INTEGRATION FOR LIVESTATUS ERROR UPLOADER:
|
||||
await require("./core/utils/liveStatus").liveStatusUploadManager(error.name+": "+error.message+" | origin: "+origin+"\n"+error.stack)
|
||||
try {
|
||||
await require("./core/utils/liveStatus").liveStatusUploadManager(error.name+": "+error.message+" | origin: "+origin+"\n"+error.stack)
|
||||
} catch {this.errorLog.log("info","FAILED TO AUTO-REPORT ERROR! (you can ignore this error)")}
|
||||
})
|
||||
|
||||
this.actionRecorder.push({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"ChilledBroke#9986 & M4#5882",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors": {
|
||||
"missingArgsTitle": "قيمة غير صالحة!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"DJdj Development",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Invalid Arguments!",
|
||||
|
||||
+53
-53
@@ -1,58 +1,58 @@
|
||||
{
|
||||
"_CREDITS":"t0miiis#3022",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_CREDITS":"spyeye_",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Neplatny Argument!",
|
||||
"missingArgsTitle":"Neplatný Argument!",
|
||||
"missingArgsDescription":"Chybí Argument",
|
||||
"noPermsTitle":"Nemáš práva!",
|
||||
"noPermsDescription":"Potřebujes `ADMINISTRATOR`roli nebo byt v listině povolenych roli!",
|
||||
"noPermsDelete":"Pouze Admini muůřou mazat ticket!",
|
||||
"chooseFromListTitle":"Neplatný ID",
|
||||
"noPermsTitle":"K tomuto nemáš práva!",
|
||||
"noPermsDescription":"Potřebuješ `ADMINISTRATOR`roli nebo být na seznamu povolených rolí!",
|
||||
"noPermsDelete":"Pouze Admin může vymazat ticket!",
|
||||
"chooseFromListTitle":"Neplatné ID",
|
||||
"chooseFromListDescription":"Vyber si jedno z ID níže:",
|
||||
"boterror":"Bot Chyba!",
|
||||
"boterror":"Chyba Bota!",
|
||||
"notInTicketTitle":"Nejsi v ticketu!",
|
||||
"notInTicketDescription":"Tenhle příkaz nefunguje mimo ticket!",
|
||||
"ticketDoesntExist":"Tenhle ticket už neexistuje !",
|
||||
"roleDoesntExist":"Tenhle role už neexistuje!",
|
||||
"anotherOption":"This option is not a ticket but another type!",
|
||||
"maxAmountTitle":"Max počet byl dosáhnut!",
|
||||
"maxAmountDescription":"Dosáhl jsi max počet povolených ticketu!\nSo nemůžeš si vytvořit nový!",
|
||||
"somethingWentWrong":"**Něco se pokazilo!**\nProsím zkus to jindy!"
|
||||
"notInTicketDescription":"Tento příkaz nefunguje mimo ticket!",
|
||||
"ticketDoesntExist":"Tento ticket už neexistuje!",
|
||||
"roleDoesntExist":"Tato role už neexistuje!",
|
||||
"anotherOption":"Tato možnost není ticket, ale jiná!",
|
||||
"maxAmountTitle":"Byl dosáhnut maximální počet",
|
||||
"maxAmountDescription":"Dosáhl jsi maximální počet povolených ticketů!\nTaže si nemůžeš vytvořit nový.",
|
||||
"somethingWentWrong":"**Něco se pokazilo!**\nProsíme zkuste to později!"
|
||||
},
|
||||
"commands":{
|
||||
"userAddedTitle":"Přidat {0} do tohohle ticketu!",
|
||||
"userRemovedTitle":"Odstranit {0} z tohohle ticketu!",
|
||||
"renameTitle":"Změnit jmeno na {0}!",
|
||||
"closeTitle":"Zavři tenhle ticket!",
|
||||
"deleteTitle":"Mažu ticket...",
|
||||
"reopenTitle":"Znovu otevíram ticket",
|
||||
"userAddedTitle":"Přidat {0} do tohoto ticketu.",
|
||||
"userRemovedTitle":"Odstranit {0} z tohoto ticketu.",
|
||||
"renameTitle":"Změnit jméno na {0}!",
|
||||
"closeTitle":"Uzavřít tento ticket!",
|
||||
"deleteTitle":"Probíhá vymazání ticketu...",
|
||||
"reopenTitle":"Ticket byl znovu otevřen",
|
||||
|
||||
"claimTitle":"Ticket nyní převzal {0}",
|
||||
"unclaimTitle":"Ticket už není převzaný",
|
||||
"changeTitle":"Změněn typ ticketu {0}!",
|
||||
"unclaimTitle":"Ticket není nadále převzaný",
|
||||
"changeTitle":"Typ ticketu byl změněn {0}!",
|
||||
|
||||
"statsTitle":"Tady je info o ticketu {0}!",
|
||||
"statsTitle":"Zde jsou informace o ticketu {0}!",
|
||||
"autocloseTitle":"Tento ticketu bude automaticky uzavřen za {0}!",
|
||||
"autocloseRejectTitle":"Tento ticketu už nebude automaticky uzavřen!",
|
||||
"autocloseWarn":"Toto zavře pouze neaktivní tickety!",
|
||||
"autocloseRejectTitle":"Tento ticket již nebude automaticky uzavřen!",
|
||||
"autocloseWarn":"Tato možnost uzavře pouze neaktivní tickety!",
|
||||
|
||||
"goToTicket":"běž do ticketu",
|
||||
"ticketWarning":"The embed is in the message below!",
|
||||
"maxTicketWarning":"**Warning:** _Můžeš vytvořit pouze {0} v tuhle chvíli!_"
|
||||
"goToTicket":"Jít do ticketu",
|
||||
"ticketWarning":"Embed se náchází pod touto zprávou.",
|
||||
"maxTicketWarning":"**Warning:** _V tuto chvíli můžeš vytvořit pouze {0} ticketů_"
|
||||
},
|
||||
"helpMenu":{
|
||||
"title":"Dostupné příkazy:",
|
||||
"header1":"**Běž do {0} pro vytvoření ticketi!**\n\n",
|
||||
"header2":"**Použíj příkaz `/nový` nebo `/ticket` pro vytvoření ticketu**\n\n",
|
||||
"title":"Zde jsou všechny dostupné příkazy:",
|
||||
"header1":"**Pro vytvoření ticketu bež do {0} **\n\n",
|
||||
"header2":"**Použíj příkaz `/nový` nebo `/ticket` pro vytvoření nového ticketu**\n\n",
|
||||
|
||||
"msgCmd":"Vytvoř embed s tlačíky. (admins only)",
|
||||
"renameCmd":"Přejmenovat ticket. (no spaces)",
|
||||
"msgCmd":"Vytvoř embed s tlačíky. (Pouze Admin)",
|
||||
"renameCmd":"Přejmenovat ticket. (Bez mezer)",
|
||||
"closeCmd":"Zavřít ticket.",
|
||||
"deleteCmd":"Odstranit ticket.",
|
||||
"addCmd":"Pridat uživatele do ticketu.",
|
||||
"removeCmd":"Odebrat uživatele z ticketu.",
|
||||
"reopenCmd":"Re-Open a ticket after it was closed.",
|
||||
"reopenCmd":"Znovu otevře ticket, který byl uzavřen.",
|
||||
"changeCmd":"Změnit typ ticketu.",
|
||||
"claimCmd":"Převzi ticket.",
|
||||
"unclaimCmd":"Uvolnit ticket.",
|
||||
@@ -60,40 +60,40 @@
|
||||
"autocloseCmd":"Nastavit automatické uzavření ticketu"
|
||||
},
|
||||
"buttons":{
|
||||
"close":"Zavřit ticket",
|
||||
"close":"Uzavřít ticket",
|
||||
"delete":"Vymazat ticket",
|
||||
"reopen":"Znovu otevřít ticket",
|
||||
"closeWithReason":"zavřít s důvodem"
|
||||
"closeWithReason":"Zzavřít s důvodem"
|
||||
},
|
||||
"messages":{
|
||||
"closedDescription":"Pouze admini muzou zde psát ted!\n\n*Klikni na tlačítko níže pro smazání nebo pro znovu otevření tohohle ticketu!*",
|
||||
"closedDescription":"Zde mohou psát pouze Admin uživatelé\n\n*Klikni na tlačítko níže pro smazání nebo pro znovu otevření tohoto ticketu!*",
|
||||
"createdTitle":"Ticket otevřen!",
|
||||
"createdDescription":"Tvůj ticket je vytvořem, můžeš si ho všimnout pomocí pingu!",
|
||||
|
||||
"newTicketDmTitle":"Nový ticket!",
|
||||
"closedTicketDmTitle":"Ticket Zavřený!",
|
||||
"deletedTicketDmTitle":"Ticket Odstranen!",
|
||||
"closedTicketDmDescription":"Tvuj ticket je uzavřen!",
|
||||
"deletedTicketDmDescription":"Tvuj ticket byl smazan!",
|
||||
"closedTicketDmTitle":"Ticket byl Uzavřen!",
|
||||
"deletedTicketDmTitle":"Ticket byl Odstraněn!",
|
||||
"closedTicketDmDescription":"Tvůj ticket je uzavřen!",
|
||||
"deletedTicketDmDescription":"Tvůj ticket byl vymazán!",
|
||||
"reopenTicketDmTitle":"Ticket je znovu otevřený!",
|
||||
"reopenTicketDmDescription":"Tvuj ticket byl znovu ovetřený!",
|
||||
|
||||
"chooseCategory":"Vyber si kategorii:",
|
||||
"gettingdeleted":"Ticket bude vymazan...",
|
||||
"gettingdeleted":"Ticket bude vymazán...",
|
||||
|
||||
"none":"žádný",
|
||||
"reason":"důvod",
|
||||
"createdat":"otevřeno v",
|
||||
"openedby":"otevřel",
|
||||
"deletedby":"smazano uzivatelem",
|
||||
"closedby":"zavreno uzivatelem",
|
||||
"none":"Žádný",
|
||||
"reason":"Důvod",
|
||||
"createdat":"Otevřeno v",
|
||||
"openedby":"Otevřel",
|
||||
"deletedby":"Vymázáno uživatelem",
|
||||
"closedby":"Uzavřeno uživatelem",
|
||||
|
||||
"modalreason":"Jakž byl důvod k zavření toho ticketu?",
|
||||
"chooseATicket": "Vyber ticket"
|
||||
"modalreason":"Zde napiš důvod uzavření tohoto ticketu.",
|
||||
"chooseATicket": "Vyber si ticket"
|
||||
},
|
||||
"transcripts":{
|
||||
"title":"Přepis",
|
||||
"processed":"Tento přepis se zpracoval",
|
||||
"title":"Záznam",
|
||||
"processed":"Tento záznam byl zpracován",
|
||||
"wait":"Prosím počkej!",
|
||||
"estimated":"Odhadovaný čas",
|
||||
"available":"Záloha je uložena zde!"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"the_gamer#5095",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors": {
|
||||
"missingArgsTitle": "Ugyldigt Argument!",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"DJj123dj#1706",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Onjuiste parameters!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"DJdj Development",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Invalid Arguments!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Sanke#6086",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Arguments invalides!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"david.#8276 ",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Ungültiges Argument!",
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"ꙅoᴎɒᎸɘƚꙅ#3744",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Invalid Arguments!",
|
||||
@@ -88,7 +88,7 @@
|
||||
"deletedby":"Διεγράφη απο",
|
||||
"closedby":"Έκλεισε από",
|
||||
|
||||
"modalreason":"Ποιός είναι ο λόγος για να κλείσει το εισιτήριο?",
|
||||
"modalreason":"Γιατι να κλείσει το εισιτήριο?",
|
||||
"chooseATicket": "Δίαλεξε ενα εισιτήριο"
|
||||
},
|
||||
"transcripts":{
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"_CREDITS":"Snowy",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"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"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"_CREDITS":"erxg",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Argumen tidak valid!",
|
||||
"missingArgsDescription":"Argumen hilang",
|
||||
"noPermsTitle":"Tidak ada akses!",
|
||||
"noPermsDescription":"Anda memerlukan akses `ADMINISTRATOR` atau berada di dalam peran yang diizinkan!",
|
||||
"noPermsDelete":"Hanya admin yang dapat menghapus tiket!",
|
||||
"chooseFromListTitle":"ID Tidak Valid",
|
||||
"chooseFromListDescription":"Silahkan pilih salah satu id di bawah:",
|
||||
"boterror":"Bot Error!",
|
||||
"notInTicketTitle":"Anda tidak berada di dalam sebuah tiket!",
|
||||
"notInTicketDescription":"Perintah ini tidak bekerja di luar tiket!",
|
||||
"ticketDoesntExist":"Tiket ini sudah tidak ada lagi!",
|
||||
"roleDoesntExist":"Peran ini sudah tidak ada lagi!",
|
||||
"anotherOption":"Opsi ini bukan tiket, melainkan tipe lain!",
|
||||
"maxAmountTitle":"Batas maksimum tercapai!",
|
||||
"maxAmountDescription":"Kamu telah meraih batas maksimum tiket yang diperbolehkan!\nJadi kamu tidak bisa membuat tiket baru!",
|
||||
"somethingWentWrong":"Ada yang salah! Silakan coba lagi nanti!"
|
||||
},
|
||||
"commands":{
|
||||
"userAddedTitle":"Menambah {0} ke tiket ini!",
|
||||
"userRemovedTitle":"Mengeluarkan {0} dari tiket ini!",
|
||||
"renameTitle":"Mengganti nama menjadi {0}!",
|
||||
"closeTitle":"Menutup tiket ini!",
|
||||
"deleteTitle":"Menghapus tiket ini...",
|
||||
"reopenTitle":"Membuka ulang tiket ini!",
|
||||
|
||||
"claimTitle":"Tiket ini diklaim oleh {0}",
|
||||
"unclaimTitle":"Tiket ini tidak diklaim lagi!",
|
||||
"changeTitle":"Mengganti tipe tiket menjadi {0}!",
|
||||
|
||||
"statsTitle":"Ini adalah status untuk {0}!",
|
||||
"autocloseTitle":"Tiket ini akan tutup otomatis setelah {0}!",
|
||||
"autocloseRejectTitle":"Tiket ini tidak akan tertutup secara otomatis lagi!",
|
||||
"autocloseWarn":"Ini hanya mempengaruhi tiket yang tidak aktif!",
|
||||
|
||||
"goToTicket":"Pergi ke tiket",
|
||||
"ticketWarning":"Sematan tersebut tersedia dalam pesan di bawah ini!",
|
||||
"maxTicketWarning":"**Peringatan:** _Anda hanya bisa membuat {0} tiket dalam satu waktu!_"
|
||||
},
|
||||
"helpMenu":{
|
||||
"title":"Perintah yang tersedia:",
|
||||
"header1":"**Pergi ke {0} untuk membuat tiket!**\n\n",
|
||||
"header2":"**Jalankan perintah `/new` atau `/ticket` untuk membuat tiket!**\n\n",
|
||||
|
||||
"msgCmd":"Munculkan sematan dengan tombol. (hanya admin)",
|
||||
"renameCmd":"Ganti nama tiket. (tanpa spasi)",
|
||||
"closeCmd":"Tutup tiket.",
|
||||
"deleteCmd":"Hapus tiket.",
|
||||
"addCmd":"Tambahkan pengguna ke dalam tiket.",
|
||||
"removeCmd":"Keluarkan pengguna dari tiket.",
|
||||
"reopenCmd":"Buka ulang tiket setelah ditutup.",
|
||||
"changeCmd":"Ganti tipe tiket.",
|
||||
"claimCmd":"Klaim tiket.",
|
||||
"unclaimCmd":"Batalkan klaim tiket.",
|
||||
"statsCmd":"Lihat status tiket.",
|
||||
"autocloseCmd":"Atur timer untuk menutup tiket secara otomatis"
|
||||
},
|
||||
"buttons":{
|
||||
"close":"Tutup tiket",
|
||||
"delete":"Hapus tiket",
|
||||
"reopen":"Buka ulang tiket",
|
||||
"closeWithReason":"Tutup dengan alasan"
|
||||
},
|
||||
"messages":{
|
||||
"closedDescription":"Hanya admin yang dapat berbincang di tiket ini sekarang!\n\n*Tekan tombol di bawah untuk menghapus atau membuka ulang tiket ini!*",
|
||||
"createdTitle":"Tiket dibuat!",
|
||||
"createdDescription":"Tiket anda dibuat, anda dapat mengetahui dengan ping!",
|
||||
|
||||
"newTicketDmTitle":"Tiket baru!",
|
||||
"closedTicketDmTitle":"Tiket ditutup!",
|
||||
"deletedTicketDmTitle":"TIket dihapus!",
|
||||
"closedTicketDmDescription":"Tiket anda ditutup!",
|
||||
"deletedTicketDmDescription":"Tiket anda dihapus!",
|
||||
"reopenTicketDmTitle":"Tiket dibuka kembali!",
|
||||
"reopenTicketDmDescription":"Tiket anda dibuka kembali!",
|
||||
|
||||
"chooseCategory":"Pilih kategori:",
|
||||
"gettingdeleted":"Tiket sedang dihapus...",
|
||||
|
||||
"none":"tidak ada",
|
||||
"reason":"Alasan",
|
||||
"createdat":"dibuat di",
|
||||
"openedby":"dibuka oleh",
|
||||
"deletedby":"dihapus oleh",
|
||||
"closedby":"ditutup oleh",
|
||||
|
||||
"modalreason":"Apa alasan penutupan tiket ini?",
|
||||
"chooseATicket": "Pilih tiket"
|
||||
},
|
||||
"transcripts":{
|
||||
"title":"Transcript",
|
||||
"processed":"Transkrip sedang diproses",
|
||||
"wait":"Mohon tunggu!",
|
||||
"estimated":"Estimasi waktu",
|
||||
"available":"Transkrip tersedia di sini"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Maurizio#0268",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Argomenti non validi!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"NoOneNook#0266",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Ugyldige argumenter!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"MKevas#8311",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Nieprawidłowe argumenty!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"QuirAddon#9778",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Argumentos inválidos!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Sanke#6086",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Argumente Invalide",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Apexo#0723",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Неверные аргументы!",
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"examples":{
|
||||
"en-GB":"english",
|
||||
"en-US":"english",
|
||||
"no": "Norwegian",
|
||||
"nl":"dutch",
|
||||
"ro":"romanian",
|
||||
"de":"german",
|
||||
@@ -19,6 +20,7 @@
|
||||
"help":{
|
||||
"en-GB":"A list of the available commands.",
|
||||
"en-US":"A list of the available commands.",
|
||||
"no":"En liste over commands.",
|
||||
"nl":"Een lijst met de beschikbare commands.",
|
||||
"ro":"O lista a comenzilor disponibile.",
|
||||
"de":"Eine Liste der verfügbaren Befehle.",
|
||||
@@ -32,6 +34,7 @@
|
||||
"message":{
|
||||
"en-GB":"Spawn an embed with buttons.",
|
||||
"en-US":"Spawn an embed with buttons.",
|
||||
"no":"Legg inn en melding i denne kanalen",
|
||||
"nl":"Spawn een embed met knoppen.",
|
||||
"ro":"Deschide un embed cu butoane.",
|
||||
"de":"Sendet ein Embed mit Knöpfen.",
|
||||
@@ -45,6 +48,7 @@
|
||||
"close":{
|
||||
"en-GB":"Close a ticket.",
|
||||
"en-US":"Close a ticket.",
|
||||
"no":"Lukk ticket.",
|
||||
"nl":"Sluit een ticket",
|
||||
"ro":"Inchide un ticket.",
|
||||
"de":"Schließe ein Ticket.",
|
||||
@@ -58,6 +62,7 @@
|
||||
"delete":{
|
||||
"en-GB":"Delete a ticket.",
|
||||
"en-US":"Delete a ticket.",
|
||||
"no":"Slett ticket.",
|
||||
"nl":"Verwijder een ticket",
|
||||
"ro":"Sterge un ticket.",
|
||||
"de":"Lösche ein Ticket.",
|
||||
@@ -71,6 +76,7 @@
|
||||
"reopen":{
|
||||
"en-GB":"Re-Open a ticket.",
|
||||
"en-US":"Re-Open a ticket.",
|
||||
"no":"Gjenåpne ticket.",
|
||||
"nl":"Heropen een ticket.",
|
||||
"ro":"Re-deschide un ticket.",
|
||||
"de":"Wiedereröffnung eines Tickets.",
|
||||
@@ -84,6 +90,7 @@
|
||||
"add":{
|
||||
"en-GB":"Add another user to a ticket.",
|
||||
"en-US":"Add another user to a ticket.",
|
||||
"no":"Legg til en annen bruker til ticket.",
|
||||
"nl":"Voeg een andere user toe aan een ticket.",
|
||||
"ro":"Adauga un utilizator la acest ticket.",
|
||||
"de":"Füge einen anderen Nutzer zum Ticket hinzu.",
|
||||
@@ -97,6 +104,7 @@
|
||||
"remove":{
|
||||
"en-GB":"Remove a user from a ticket.",
|
||||
"en-US":"Remove a user from a ticket.",
|
||||
"no":"Fjern en bruker fra ticket.",
|
||||
"nl":"Verwijder een user van een ticket.",
|
||||
"ro":"Sterge un utilizator dintr-un ticket.",
|
||||
"de":"Entferne einen Nutzer von dem Ticket.",
|
||||
@@ -110,6 +118,7 @@
|
||||
"newticket":{
|
||||
"en-GB":"Create a ticket",
|
||||
"en-US":"Create a ticket",
|
||||
"no":"Lag en ny ticket",
|
||||
"nl":"Maak een ticket aan",
|
||||
"ro":"Creeaza un ticket.",
|
||||
"de":"Erstelle ein Ticket.",
|
||||
@@ -123,6 +132,7 @@
|
||||
"rename":{
|
||||
"en-GB":"Rename a ticket channel.",
|
||||
"en-US":"Rename a ticket channel.",
|
||||
"no":"Gi nytt navn til ticket kanalen.",
|
||||
"nl":"Hernoem een ticket channel.",
|
||||
"ro":"Redenumeste un ticket.",
|
||||
"de":"Benenne einen Ticket Channel.",
|
||||
@@ -136,6 +146,7 @@
|
||||
"claim":{
|
||||
"en-GB":"Claim a ticket.",
|
||||
"en-US":"Claim a ticket.",
|
||||
"no":"Overta ticket.",
|
||||
"nl":"Claim een ticket.",
|
||||
"ro":" ",
|
||||
"de":" ",
|
||||
@@ -149,6 +160,7 @@
|
||||
"unclaim":{
|
||||
"en-GB":"Un-claim a ticket.",
|
||||
"en-US":"Un-claim a ticket.",
|
||||
"no":"Frigjør ticket.",
|
||||
"nl":"Ontclaim een ticket.",
|
||||
"ro":" ",
|
||||
"de":" ",
|
||||
@@ -162,6 +174,7 @@
|
||||
"category":{
|
||||
"en-GB":"Change ticket type.",
|
||||
"en-US":"Change ticket type.",
|
||||
"no":"Endre ticket type.",
|
||||
"nl":"Verander ticket type.",
|
||||
"ro":" ",
|
||||
"de":" ",
|
||||
@@ -173,4 +186,4 @@
|
||||
"tr":"Bilet türünü değiştir."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"n1kkec#5341",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Napačen argument!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Redactado#1673 & josuens14#5267",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"¡Argumentos inválidos!",
|
||||
|
||||
+53
-53
@@ -1,101 +1,101 @@
|
||||
{
|
||||
"_CREDITS":"Mods HD#0661",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"อาร์กิวเมนต์ไม่ถูกต้อง!",
|
||||
"missingArgsDescription":"อาร์กิวเมนต์ไม่ครบ",
|
||||
"missingArgsDescription":"ขาดอาร์กิวเมนต์",
|
||||
"noPermsTitle":"ไม่มีสิทธิ์!",
|
||||
"noPermsDescription":"คุณต้องมีสิทธิ์ ADMINISTRATOR หรืออยู่ในรายชื่อบทบาทที่อนุญาต!",
|
||||
"noPermsDescription":"คุณต้องมีสิทธิ์ `ADMINISTRATOR` หรืออยู่ในรายการบทบาทที่ได้รับอนุญาต!",
|
||||
"noPermsDelete":"เฉพาะผู้ดูแลระบบเท่านั้นที่สามารถลบตั๋วได้!",
|
||||
"chooseFromListTitle":"ID ไม่ถูกต้อง",
|
||||
"chooseFromListDescription":"เลือกหนึ่งใน ID ด้านล่าง:",
|
||||
"boterror":"ข้อผิดพลาดของบอท!",
|
||||
"notInTicketTitle":"คุณไม่ได้อยู่ในตั๋ว!",
|
||||
"notInTicketDescription":"คำสั่งนี้ไม่สามารถทำงานนอกตั๋วได้!",
|
||||
"ticketDoesntExist":"ตั๋วนี้ไม่มีอยู่แล้ว!",
|
||||
"roleDoesntExist":"บทบาทนี้ไม่มีอยู่แล้ว!",
|
||||
"anotherOption":"ตัวเลือกนี้ไม่ใช่ตั๋วแต่เป็นประเภทอื่น!",
|
||||
"maxAmountTitle":"จำนวนสูงสุดแล้ว!",
|
||||
"maxAmountDescription":"คุณได้สร้างตั๋วครบจำนวนที่เราให้สร้างไว้แล้ว\nดังนั้นคุณไม่สามารถสร้างตั๋วใหม่ได้!",
|
||||
"somethingWentWrong":"เกิดข้อผิดพลาดบางอย่าง!\nโปรดลองอีกครั้งในครั้งถัดไป!"
|
||||
"notInTicketDescription":"คำสั่งนี้ไม่ทำงานนอกตั๋ว!",
|
||||
"ticketDoesntExist":"ตั๋วนี้ไม่มีอีกแล้ว!",
|
||||
"roleDoesntExist":"บทบาทนี้ไม่มีอีกแล้ว!",
|
||||
"anotherOption":"ตัวเลือกนี้ไม่ใช่ตั๋ว แต่เป็นประเภทอื่น!",
|
||||
"maxAmountTitle":"ถึงจำนวนสูงสุดแล้ว!",
|
||||
"maxAmountDescription":"คุณได้ถึงจำนวนสูงสุดของตั๋วที่อนุญาต!\nดังนั้นคุณไม่สามารถสร้างใหม่ได้!",
|
||||
"somethingWentWrong":"**มีบางอย่างผิดพลาด!**\nกรุณาลองอีกครั้งในภายหลัง!"
|
||||
},
|
||||
"commands":{
|
||||
"userAddedTitle":"เพิ่ม {0} เข้าสู่ตั๋วนี้แล้ว!",
|
||||
"userRemovedTitle":"นำ {0} ออกจากตั๋วนี้แล้ว!",
|
||||
"userAddedTitle":"เพิ่ม {0} ในตั๋วนี้!",
|
||||
"userRemovedTitle":"ลบ {0} ออกจากตั๋วนี้!",
|
||||
"renameTitle":"เปลี่ยนชื่อเป็น {0}!",
|
||||
"closeTitle":"ปิดตั๋วนี้!",
|
||||
"deleteTitle":"กำลังลบตั๋วนี้...",
|
||||
"reopenTitle":"เปิดตั๋วนี้ใหม่!",
|
||||
|
||||
"claimTitle":"ตั๋วนี้ถูกเรียกเก็บโดย {0}",
|
||||
"unclaimTitle":"ไม่มีการเรียกเก็บตั๋วนี้อีกต่อไป!",
|
||||
"reopenTitle":"เปิดตั๋วนี้อีกครั้ง!",
|
||||
|
||||
"claimTitle":"ตั๋วนี้ถูกเรียกขึ้นโดย {0}",
|
||||
"unclaimTitle":"ตั๋วนี้ไม่ได้ถูกเรียกขึ้นแล้ว!",
|
||||
"changeTitle":"เปลี่ยนประเภทตั๋วเป็น {0}!",
|
||||
|
||||
|
||||
"statsTitle":"นี่คือสถิติสำหรับ {0}!",
|
||||
"autocloseTitle":"ตั๋วนี้จะถูกปิดอัตโนมัติหลังจาก {0}!",
|
||||
"autocloseRejectTitle":"ตั๋วนี้จะไม่ถูกปิดอัตโนมัติอีกต่อไป!",
|
||||
"autocloseWarn":"สิ่งนี้มีผลต่อตั๋วที่ไม่มีการเคลื่อนไหว!",
|
||||
|
||||
"goToTicket":"ไปยังตั๋ว",
|
||||
"ticketWarning":"Embed อยู่ในข้อความข้างล่าง",
|
||||
"maxTicketWarning":"**คำเตือน:** _คุณสามารถสร้างตั๋วได้สูงสุด {0} ตั๋วต่อครั้ง!_"
|
||||
"autocloseWarn":"ส่วนนี้มีผลกับตั๋วที่ไม่ได้ใช้งาน!",
|
||||
|
||||
"goToTicket":"ไปที่ตั๋ว",
|
||||
"ticketWarning":"Embed อยู่ในข้อความด้านล่าง!",
|
||||
"maxTicketWarning":"**คำเตือน:** _คุณสามารถสร้างได้ {0} ตั๋วในครั้งเดียว!_"
|
||||
},
|
||||
"helpMenu":{
|
||||
"title":"คำสั่งที่มีอยู่:",
|
||||
"title":"คำสั่งที่ใช้ได้:",
|
||||
"header1":"**ไปที่ {0} เพื่อสร้างตั๋ว!**\n\n",
|
||||
"header2":"**ใช้คำสั่ง `/new` หรือ `/ticket` เพื่อสร้างตั๋ว!**\n\n",
|
||||
|
||||
"msgCmd":"แสดง Embed พร้อมปุ่ม (สำหรับแอดมินเท่านั้น)",
|
||||
"renameCmd":"เปลี่ยนชื่อตั๋ว (ห้ามมีช่องว่าง)",
|
||||
|
||||
"msgCmd":"สร้าง embed พร้อมปุ่ม (เฉพาะผู้ดูแลระบบ)",
|
||||
"renameCmd":"เปลี่ยนชื่อตั๋ว (ไม่มีช่องว่าง)",
|
||||
"closeCmd":"ปิดตั๋ว",
|
||||
"deleteCmd":"ลบตั๋ว",
|
||||
"addCmd":"เพิ่มผู้ใช้เข้าสู่ตั๋ว",
|
||||
"removeCmd":"นำผู้ใช้ออกจากตั๋ว",
|
||||
"reopenCmd":"เปิดตั๋วใหม่หลังจากถูกปิด",
|
||||
"addCmd":"เพิ่มผู้ใช้ในตั๋ว",
|
||||
"removeCmd":"ลบผู้ใช้ออกจากตั๋ว",
|
||||
"reopenCmd":"เปิดตั๋วอีกครั้งหลังจากถูกปิด",
|
||||
"changeCmd":"เปลี่ยนประเภทตั๋ว",
|
||||
"claimCmd":"เรียกเก็บตั๋ว",
|
||||
"unclaimCmd":"ยกเลิกการเรียกเก็บตั๋ว",
|
||||
"statsCmd":"ดูสถิติของตั๋ว",
|
||||
"autocloseCmd":"ตั้งเวลาปิดตั๋วโดยอัตโนมัติ"
|
||||
"claimCmd":"เรียกขึ้นตั๋ว",
|
||||
"unclaimCmd":"ยกเลิกการเรียกขึ้นตั๋ว",
|
||||
"statsCmd":"ดูสถิติตั๋ว",
|
||||
"autocloseCmd":"ตั้งค่าการปิดตั๋วอัตโนมัติ"
|
||||
},
|
||||
"buttons":{
|
||||
"close":"ปิดตั๋ว",
|
||||
"delete":"ลบตั๋ว",
|
||||
"reopen":"เปิดตั๋วใหม่",
|
||||
"closeWithReason":"ปิดตั๋วพร้อมเหตุผล"
|
||||
"reopen":"เปิดตั๋วอีกครั้ง",
|
||||
"closeWithReason":"ปิดด้วยเหตุผล"
|
||||
},
|
||||
"messages":{
|
||||
"closedDescription":"ตอนนี้เฉพาะผู้ดูแลเท่านั้นที่สามารถพูดได้ในตั๋วนี้!\n\n*คลิกที่ปุ่มด้านล่างเพื่อลบหรือเปิดตั๋วใหม่!*",
|
||||
"closedDescription":"เฉพาะผู้ดูแลระบบเท่านั้นที่สามารถพูดคุยในตั๋วนี้ได้!\n\n*คลิกที่ปุ่มด้านล่างเพื่อลบหรือเปิดตั๋วนี้อีกครั้ง!*",
|
||||
"createdTitle":"สร้างตั๋วแล้ว!",
|
||||
"createdDescription":"ตั๋วของคุณถูกสร้างเรียบร้อยแล้ว คุณจะได้รับการแจ้งเตือนด้วยการพิมพ์ข้อความด้วย @ ตามตั๋วของคุณ!",
|
||||
|
||||
"createdDescription":"ตั๋วของคุณถูกสร้างแล้ว คุณสามารถตรวจสอบได้จากการแจ้งเตือน!",
|
||||
|
||||
"newTicketDmTitle":"ตั๋วใหม่!",
|
||||
"closedTicketDmTitle":"ตั๋วถูกปิด!",
|
||||
"deletedTicketDmTitle":"ตั๋วถูกลบ!",
|
||||
"closedTicketDmTitle":"ปิดตั๋ว!",
|
||||
"deletedTicketDmTitle":"ลบตั๋ว!",
|
||||
"closedTicketDmDescription":"ตั๋วของคุณถูกปิด!",
|
||||
"deletedTicketDmDescription":"ตั๋วของคุณถูกลบ!",
|
||||
"reopenTicketDmTitle":"ตั๋วถูกเปิดใหม่!",
|
||||
"reopenTicketDmDescription":"ตั๋วของคุณถูกเปิดใหม่!",
|
||||
|
||||
"reopenTicketDmTitle":"เปิดตั๋วอีกครั้ง!",
|
||||
"reopenTicketDmDescription":"ตั๋วของคุณถูกเปิดอีกครั้ง!",
|
||||
|
||||
"chooseCategory":"เลือกหมวดหมู่:",
|
||||
"gettingdeleted":"กำลังลบตั๋ว...",
|
||||
|
||||
|
||||
"none":"ไม่มี",
|
||||
"reason":"เหตุผล",
|
||||
"createdat":"สร้างเมื่อ",
|
||||
"openedby":"เปิดโดย",
|
||||
"deletedby":"ลบโดย",
|
||||
"closedby":"ปิดโดย",
|
||||
|
||||
"modalreason":"เหตุผลที่ต้องการปิดตั๋ว?",
|
||||
"chooseATicket": "เลือกตั๋ว"
|
||||
"deletedby":"ถูกลบโดย",
|
||||
"closedby":"ถูกปิดโดย",
|
||||
|
||||
"modalreason":"เหตุผลในการปิดตั๋วนี้คืออะไร?",
|
||||
"chooseATicket": "เลือกตั๋ว"
|
||||
},
|
||||
"transcripts":{
|
||||
"title":"บันทึกข้อความ",
|
||||
"processed":"กำลังประมวลผลบันทึกข้อความ",
|
||||
"wait":"โปรดรอสักครู่!",
|
||||
"title":"บันทึกการสนทนา",
|
||||
"processed":"บันทึกการสนทนากำลังดำเนินการ",
|
||||
"wait":"กรุณารอ!",
|
||||
"estimated":"เวลาโดยประมาณ",
|
||||
"available":"บันทึกข้อความพร้อมใช้งานที่นี่"
|
||||
"available":"บันทึกการสนทนาสามารถใช้งานได้ที่นี่"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Hydrâelčhâvø#1575",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Geçersiz argümanlar!",
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"_CREDITS":"Anderskiy#4093",
|
||||
"_INFO":"Цей файл є перекладом для open ticket 3.4.4",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Невірні аргументи!",
|
||||
"missingArgsDescription":"Відсутні аргументи!",
|
||||
"noPermsTitle":"Відсутні права!",
|
||||
"noPermsDescription":"Вам потрібно право `ADMINISTRATOR` або бути в списку дозволених ролей!",
|
||||
"noPermsDelete":"Тільки адміни можуть видаляти тікети!",
|
||||
"chooseFromListTitle":"Недійсний ID",
|
||||
"chooseFromListDescription":"Виберіть один із наведених нижче id:",
|
||||
"boterror":"Помилка боту!",
|
||||
"notInTicketTitle":"Вас немає в тікеті!",
|
||||
"notInTicketDescription":"Ця команда не працює поза тікетами!",
|
||||
"ticketDoesntExist":"Цей тікет більше не існує!",
|
||||
"roleDoesntExist":"Ця роль більше не існує!",
|
||||
"anotherOption":"Це не є тікетом, а є іншим типом!",
|
||||
"maxAmountTitle":"Досягнуто максимальної кількості!",
|
||||
"maxAmountDescription":"Ви досягли максимально дозволеної кількості тікетів!\nТож ви не можете створити новий!",
|
||||
"somethingWentWrong":"**Щось пішло не так!**\nБудь ласка, спробуйте ще раз!"
|
||||
},
|
||||
"commands":{
|
||||
"userAddedTitle":"Додано {0} до цього тікету!",
|
||||
"userRemovedTitle":"Видалено {0} з цього тікету!",
|
||||
"renameTitle":"Змінено ім'я на {0}!",
|
||||
"closeTitle":"Тікет закритий!",
|
||||
"deleteTitle":"Видаляємо тікет",
|
||||
"reopenTitle":"Знову відкриваємо тікет!",
|
||||
|
||||
"claimTitle":"Цей тікет узяв {0}",
|
||||
"unclaimTitle":"Цей тікет ніким не зайнятий!",
|
||||
"changeTitle":"Тип тікету змінено на {0}!",
|
||||
|
||||
"statsTitle":"Ось статистика для {0}!",
|
||||
"autocloseTitle":"Цей тікет буде автоматично закрито після {0}!",
|
||||
"autocloseRejectTitle":"Цей тікет більше не закриватиметься автоматично!",
|
||||
"autocloseWarn":"Це стосується лише неактивних тікетів!",
|
||||
|
||||
"goToTicket":"перейти до тікету",
|
||||
"ticketWarning":"Ембед знаходиться в повідомленні нижче!",
|
||||
"maxTicketWarning":"**Попередження:** _Ви можете створити лише стільки квитків за раз: {0}!_"
|
||||
},
|
||||
"helpMenu":{
|
||||
"title":"Доступні команди:",
|
||||
"header1":"**Перейдіть до {0}, щоб створити тікет!**\n\n",
|
||||
"header2":"**Виконайте команду `/new` або `/ticket`, щоб створити тікет!**\n\n",
|
||||
|
||||
"msgCmd":"Створити ембед з кнопками. (тільки адміністратори)",
|
||||
"renameCmd":"Перейменувати тікет. (без пробілів)",
|
||||
"closeCmd":"Закрити тікет.",
|
||||
"deleteCmd":"Видалити тікет.",
|
||||
"addCmd":"Додати користувача до тікету.",
|
||||
"removeCmd":"Видалити користувача з тікету.",
|
||||
"reopenCmd":"Повторне відкриття тікету після його закриття.",
|
||||
"changeCmd":"Змінити тіп тикету.",
|
||||
"claimCmd":"Узяти тікет.",
|
||||
"unclaimCmd":"Відмовитися від тікету.",
|
||||
"statsCmd":"Переглянути статистику тікету.",
|
||||
"autocloseCmd":"Встановіть таймер для автоматичного закриття квитка"
|
||||
},
|
||||
"buttons":{
|
||||
"close":"Закрити тікет",
|
||||
"delete":"Видалити тікет",
|
||||
"reopen":"Відкрити тікет",
|
||||
"closeWithReason":"Закрити з причиною"
|
||||
},
|
||||
"messages":{
|
||||
"closedDescription":"Зараз лише адміністратори можуть говорити в цьому тікеті!\n\n*Натисніть кнопку нижче, щоб видалити або повторно відкрити цей тікет!*",
|
||||
"createdTitle":"Тікет створено!",
|
||||
"createdDescription":"Ваш тікет створено, ви можете визначити його за допомогою пінгу!",
|
||||
|
||||
"newTicketDmTitle":"Новий тікет!",
|
||||
"closedTicketDmTitle":"Тікет закрито!",
|
||||
"deletedTicketDmTitle":"Тікет видалено!",
|
||||
"closedTicketDmDescription":"Твій тікет закрито!",
|
||||
"deletedTicketDmDescription":"Твій тікет видалено!",
|
||||
"reopenTicketDmTitle":"Тікет відкритий!",
|
||||
"reopenTicketDmDescription":"Твій тікет відкритий!",
|
||||
|
||||
"chooseCategory":"виберіть категорію:",
|
||||
"gettingdeleted":"Тікет видаляється...",
|
||||
|
||||
"none":"пусто",
|
||||
"reason":"причина",
|
||||
"createdat":"створений",
|
||||
"openedby":"відкритий",
|
||||
"deletedby":"видалений",
|
||||
"closedby":"закритий",
|
||||
|
||||
"modalreason":"Яка причина закриття цього тікету?",
|
||||
"chooseATicket": "Виберіть тікет"
|
||||
},
|
||||
"transcripts":{
|
||||
"title":"Транскрипція",
|
||||
"processed":"Ця транскрипція обробляється",
|
||||
"wait":"Будь-ласка почекайте!",
|
||||
"estimated":"Розрахунковий час",
|
||||
"available":"Транскрипція доступна тут"
|
||||
}
|
||||
}
|
||||
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 65 KiB |
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "open-ticket",
|
||||
"version": "3.4.0",
|
||||
"version": "3.4.4",
|
||||
"description": "This is an open-source discord ticket bot, you can configure it and it comes with cool features like a transcript.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
||||
Reference in New Issue
Block a user