Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
acc89990c2 | ||
|
|
ee9f8eaca1 | ||
|
|
ae8a8d1b14 | ||
|
|
38afb9c2a6 | ||
|
|
5bdb7941b6 | ||
|
|
01c1f3150e | ||
|
|
e524cccd19 | ||
|
|
ede102bddf | ||
|
|
ab5d5c06be | ||
|
|
355f078ee5 | ||
|
|
c207560743 | ||
|
|
b29dfaeaae | ||
|
|
1710111fcb | ||
|
|
805c6b8e55 | ||
|
|
d0ab311da4 | ||
|
|
92a3671768 | ||
|
|
71074e1afe | ||
|
|
e80ce1a64a | ||
|
|
5dfbce1856 | ||
|
|
407e56a806 | ||
|
|
e0f42834e5 | ||
|
|
d03abd9eeb | ||
|
|
466a4aea81 | ||
|
|
9d96d11cd3 | ||
|
|
e3b99e656e | ||
|
|
07e2a68d06 | ||
|
|
795ca4f981 |
@@ -4,8 +4,9 @@
|
||||
1. [Check if the language isn't already in open ticket!](/language/)
|
||||
2. Check if the current translation is up-to-date!
|
||||
3. Can you edit/write JSON?
|
||||
4. [Have you read the documentation?](https://otdocs.dj-dj.be)
|
||||
|
||||
If there is translation missing & you can write json, then go to the next step!
|
||||
If there is translation missing, you go to the next step!
|
||||
|
||||
### Step 2: translating
|
||||
**RULES:**
|
||||
@@ -35,9 +36,9 @@ But don't worry! You can already write some plugins!
|
||||
If you want to contribute in another way, feel free to join [our discord server](https://discord.dj-dj.be) & talk about how you are going to do it. We will always help you further!
|
||||
|
||||
<br>
|
||||
CONTRIBUTING GUIDELINES - Last updated: 23/3/2023<br>
|
||||
CONTRIBUTING GUIDELINES - Last updated: 31/5/2024<br>
|
||||
© DJdj Development<br><br>
|
||||
Website: https://www.dj-dj.be <br>
|
||||
Discord: https://discord.dj-dj.be <br>
|
||||
Email: support@dj-dj.be <br>
|
||||
Open Ticket website: https://openticket.dj-dj.be
|
||||
Documentation: https://otdocs.dj-dj.be
|
||||
@@ -0,0 +1 @@
|
||||
github: DJj123dj
|
||||
+11
-13
@@ -1,20 +1,18 @@
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
Below, you can find a list with the status of every open ticket version. This list will change every update!
|
||||
|
||||
We only support Open Ticket versions listed below! With support, we mean bugs, errors & helping you further!
|
||||
- ✅ Supported **(bugs, errors, discord support, documentation, html transcripts)**
|
||||
- 🟧 Deprecated / Partially Supported **(discord support, documentation, html transcripts)**
|
||||
- ❌ Fully Deprecated / Not Supported **(sometimes documentation)**
|
||||
|
||||
✅ Supported
|
||||
🟧 Partially Supported
|
||||
❌ Not Supported
|
||||
|
||||
| Version | Supported |
|
||||
|-----------|-------------------|
|
||||
| 3.5.0 | ✅ |
|
||||
| 3.4.4 | ✅ |
|
||||
| 3.4.3 | 🟧 |
|
||||
| 3.4.2 | 🟧 |
|
||||
| < 3.4.2 | ❌ |
|
||||
| Version | Supported | Until |
|
||||
|-----------|-----------|-----------------------------|
|
||||
| 3.5.6 | ✅ | |
|
||||
| 3.5.5 | ✅ | June 2024 |
|
||||
| 3.5.4 | 🟧 | Next Update |
|
||||
| < 3.5.4 | ❌ | |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
@@ -34,7 +32,7 @@ The `openticketdebug.txt` file would also be handy to upload!<br>
|
||||
Visit [Contributing.md](/.github/CONTRIBUTING.md) for rules about translating & adding features!
|
||||
|
||||
<br>
|
||||
SECURITY POLICY - Last updated: 14/12/2023<br>
|
||||
SECURITY POLICY - Last updated: 31/5/2024<br>
|
||||
© DJdj Development<br><br>
|
||||
Website: https://www.dj-dj.be <br>
|
||||
Discord: https://discord.dj-dj.be <br>
|
||||
|
||||
@@ -5,80 +5,81 @@ There will be massive improvements for more stability & features! But the best p
|
||||
|
||||
<img src="https://apis.dj-dj.be/cdn/openticket/logo.png" alt="Open Ticket" width="600px">
|
||||
|
||||
[](https://discord.com/invite/26vT9wt3n3) [](https://github.com/DJj123dj/open-ticket/releases/tag/v3.5.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.5.6) []() [](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) [](https://otdocs.dj-dj.be)
|
||||
|
||||
### 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 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!
|
||||
### [Visit the Documentation!](https://docs.openticket.dj-dj.be/quick-start)
|
||||
### [Visit the Documentation!](https://otdocs.dj-dj.be/)
|
||||
|
||||
## Features
|
||||
## 📌 Features
|
||||
- **🎉 advanced html transcripts!**
|
||||
- 🔒 close, ❌ delete & ✅ re-open tickets
|
||||
- 🇬🇧 translation in 19 different languages
|
||||
- 🇬🇧 translation in 24 different languages
|
||||
- 📄 very advanced customisation
|
||||
- 🆗 buttons or 🔽 dropdowns!
|
||||
- 🆒 plugins
|
||||
- ∞ unlimited tickets & unlimited messages
|
||||
- 🆒 custom plugins
|
||||
- ∞ unlimited tickets & embeds
|
||||
- ➕➖ add/remove users from a ticket
|
||||
- 📊 ticket, user & global staticstics
|
||||
- /slash & text commands
|
||||
- 📥 reaction roles & url buttons
|
||||
- 🖥️ discord.js v14 & axios
|
||||
- 🎛️ latest discord integration
|
||||
|
||||
<details>
|
||||
<summary><b>But wait, there are even more features! Click here to discover!</b></summary>
|
||||
|
||||
|
||||
- fully customisable embeds & buttons
|
||||
- close tickets with reason
|
||||
- reaction roles (or verification system)
|
||||
- discord interaction buttons
|
||||
- discord.js v14
|
||||
</details>
|
||||
|
||||
## preview
|
||||
## 📸 Preview
|
||||
<img src="https://apis.dj-dj.be/cdn/openticket/message_buttons.png" alt="Message with buttons" width="350px">
|
||||
<img src="https://apis.dj-dj.be/cdn/openticket/message_dropdown.png" alt="Message with dropdown" width="350px">
|
||||
<br>
|
||||
<img src="https://apis.dj-dj.be/cdn/openticket/firstmsg.png" alt="Ticket start message" width="350px">
|
||||
<img src="https://apis.dj-dj.be/cdn/openticket/command_close.png" alt="Ticket start message" width="350px">
|
||||
|
||||
## 🩷 Sponsors
|
||||
A big thanks to all our sponsors!
|
||||
- <img src="https://github.com/SpyEye2.png" alt="Profile Picture" width="25px"></img> **[SpyEye](https://github.com/SpyEye2)**
|
||||
- <img src="https://github.com/DOSEV5.png" alt="Profile Picture" width="25px"></img> **[DOSEV5](https://github.com/DOSEV5)**
|
||||
- <img src="https://github.com/mods-hd.png" alt="Profile Picture" width="25px"></img> **[Mods HD](https://github.com/mods-hd)**
|
||||
|
||||
## credits
|
||||
### Developer Team
|
||||
## 🛠️ Contributors
|
||||
### Official Team
|
||||
|Role |User (discord name)|
|
||||
|-----------------|-------------------|
|
||||
|Lead Developer |djj123dj |
|
||||
|Developer |sankedev |
|
||||
|Support Team |lover_catss |
|
||||
|Designer |vuur_draak |
|
||||
|Support Team |sankedev |
|
||||
|Support Team |vuur_draak |
|
||||
|
||||
### Translators
|
||||
|Language |Maintainer (discord name) |Status |
|
||||
|-------------------|--------------------------|--------------------------------|
|
||||
|English |djj123dj |🟢 Up To Date |
|
||||
|Dutch |djj123dj |🟢 Up To Date |
|
||||
|French |sankedev |🟠 Will be updated next version |
|
||||
|Romanian |sankedev |🟢 Up To Date |
|
||||
|Spanish |redactado & josuens |🟠 Will be updated next version |
|
||||
|German |david.3 |🟢 Up To Date |
|
||||
|Italian |maurizio26 |🟠 Will be updated next version |
|
||||
|Czech |spyeye_ |🟢 Up To Date |
|
||||
|Arabic |Sarcastic#9318 |🔴 Outdated |
|
||||
|Danish |.the_gamer |🟢 Up To Date |
|
||||
|Portuguese |quiradon |🟠 Will be updated next version |
|
||||
|Russian |apexo & ander |🟢 Up To Date |
|
||||
|Ukrainian |ander |🟢 Up To Date |
|
||||
|Turkish |Hydra#0009 |🔴 Outdated |
|
||||
|Polish |mkevas |🟠 Will be updated next version |
|
||||
|Slovenian |n1kkec |🔴 Outdated |
|
||||
|Thai |modshd |🟢 Up To Date |
|
||||
|Norwegian |noonenook |🟠 Will be updated next version |
|
||||
|Greek |stefanos__. |🔴 Outdated |
|
||||
|Language |Maintainer (discord name) |Status |
|
||||
|-------------------|--------------------------|---------------|
|
||||
|English |djj123dj |🟢 Up To Date |
|
||||
|Dutch |djj123dj |🟢 Up To Date |
|
||||
|French |sankedev & tostam |🟢 Up To Date |
|
||||
|Romanian |sankedev |🟢 Up To Date |
|
||||
|Spanish |redactado & josuens |🟢 Up To Date |
|
||||
|German |david.3 |🟢 Up To Date |
|
||||
|Italian |maurizio26 |🟢 Up To Date |
|
||||
|Czech |spyeye_ |🟢 Up To Date |
|
||||
|Arabic |deqressing |🟢 Up To Date |
|
||||
|Danish |.the_gamer |🟢 Up To Date |
|
||||
|Portuguese |quiradon |🔴 Outdated |
|
||||
|Russian |apexo & ander |🟢 Up To Date |
|
||||
|Ukrainian |ander |🟢 Up To Date |
|
||||
|Turkish |Hydra#0009 |🔴 Outdated |
|
||||
|Polish |mkevas |🟢 Up To Date |
|
||||
|Slovenian |n1kkec |🔴 Outdated |
|
||||
|Thai |modshd |🟢 Up To Date |
|
||||
|Norwegian |noonenook |🟢 Up To Date |
|
||||
|Greek |stefanos__. |🔴 Outdated |
|
||||
|Indonesian |erxg |🟢 Up To Date |
|
||||
|Kurdish |raze.hama |🟢 Up To Date |
|
||||
|Hungarian |Snowy |🔴 Outdated |
|
||||
|Persian |sasanwm |🟢 Up To Date |
|
||||
|Latvian |ronalds1398 |🟢 Up To Date |
|
||||
|
||||
## links
|
||||
current version: _v3.5.0_
|
||||
## 📎 Links
|
||||
current version: _v3.5.6_
|
||||
</br>changelog: [click here](https://otgithub.dj-dj.be/releases)
|
||||
</br>documentation: [click here](https://docs.openticket.dj-dj.be/quick-start)
|
||||
</br>documentation: [click here](https://otdocs.dj-dj.be/)
|
||||
|
||||
© 2023 - DJdj Development | [website](https://www.dj-dj.be) | [discord](https://discord.dj-dj.be) | [terms of service](https://www.dj-dj.be/terms)
|
||||
© 2024 - DJdj Development | [website](https://www.dj-dj.be) | [discord](https://discord.dj-dj.be) | [terms of service](https://www.dj-dj.be/terms)
|
||||
|
||||
+21
-3
@@ -28,7 +28,16 @@ module.exports = () => {
|
||||
return
|
||||
}
|
||||
|
||||
msg.channel.permissionOverwrites.create(user.id, { ViewChannel:true, AddReactions:true,AttachFiles:true, EmbedLinks:true, SendMessages:true})
|
||||
/**@type {discord.PermissionOverwriteManager} */
|
||||
const overwrites = msg.channel.permissionOverwrites
|
||||
overwrites.create(user.id,{
|
||||
ViewChannel:true,
|
||||
AddReactions:true,
|
||||
AttachFiles:true,
|
||||
EmbedLinks:true,
|
||||
SendMessages:true,
|
||||
ReadMessageHistory:true
|
||||
},{reason:"Added user to ticket."})
|
||||
msg.channel.send({embeds:[bot.embeds.commands.addEmbed(user,msg.author)]})
|
||||
|
||||
var loguser = msg.mentions.users.first()
|
||||
@@ -49,7 +58,7 @@ module.exports = () => {
|
||||
if (!interaction.guild) return
|
||||
|
||||
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id)
|
||||
if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
|
||||
@@ -59,7 +68,16 @@ module.exports = () => {
|
||||
|
||||
await interaction.deferReply()
|
||||
|
||||
interaction.channel.permissionOverwrites.create(user.id, { ViewChannel:true, AddReactions:true,AttachFiles:true, EmbedLinks:true, SendMessages:true})
|
||||
/**@type {discord.PermissionOverwriteManager} */
|
||||
const overwrites = interaction.channel.permissionOverwrites
|
||||
overwrites.create(user.id,{
|
||||
ViewChannel:true,
|
||||
AddReactions:true,
|
||||
AttachFiles:true,
|
||||
EmbedLinks:true,
|
||||
SendMessages:true,
|
||||
ReadMessageHistory:true
|
||||
},{reason:"Added user to ticket."})
|
||||
interaction.editReply({embeds:[bot.embeds.commands.addEmbed(user,interaction.user)]})
|
||||
|
||||
var loguser = user
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ module.exports = () => {
|
||||
if (!interaction.guild) return
|
||||
|
||||
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id)
|
||||
if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ module.exports = () => {
|
||||
if (!interaction.guild) return
|
||||
|
||||
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id)
|
||||
if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
|
||||
|
||||
+4
-4
@@ -57,13 +57,13 @@ module.exports = () => {
|
||||
|
||||
const reason = interaction.options.getString("reason") ? interaction.options.getString("reason") : false
|
||||
|
||||
await interaction.deferReply()
|
||||
|
||||
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id)
|
||||
if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (hiddendata.find(h => h.key == "pendingdelete")) return interaction.editReply({embeds:[bot.errorLog.warning("Warning!","You can't close a ticket while it's being deleted!")]})
|
||||
if (hiddendata.find(h => h.key == "pendingdelete")) return interaction.reply({embeds:[bot.errorLog.warning("Warning!","You can't close a ticket while it's being deleted!")]})
|
||||
|
||||
await interaction.deferReply()
|
||||
|
||||
const descriptionReason = reason ? "**"+l.messages.reason+":** "+reason : false
|
||||
interaction.editReply({embeds:[bot.embeds.commands.closeEmbed(interaction.user,descriptionReason)],components:[bot.buttons.close.closeCommandRow]})
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ module.exports = () => {
|
||||
if (!interaction.guild) return
|
||||
|
||||
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id)
|
||||
if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
|
||||
|
||||
+7
-3
@@ -28,7 +28,9 @@ module.exports = () => {
|
||||
return
|
||||
}
|
||||
|
||||
msg.channel.permissionOverwrites.delete(user.id)
|
||||
/**@type {discord.PermissionOverwriteManager} */
|
||||
const overwrites = msg.channel.permissionOverwrites
|
||||
overwrites.delete(user.id,"Removed user from ticket.")
|
||||
msg.channel.send({embeds:[bot.embeds.commands.removeEmbed(user,msg.author)]})
|
||||
|
||||
var loguser = msg.mentions.users.first()
|
||||
@@ -49,7 +51,7 @@ module.exports = () => {
|
||||
if (!interaction.guild) return
|
||||
|
||||
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id)
|
||||
if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
|
||||
@@ -59,7 +61,9 @@ module.exports = () => {
|
||||
|
||||
await interaction.deferReply()
|
||||
|
||||
interaction.channel.permissionOverwrites.delete(user.id)
|
||||
/**@type {discord.PermissionOverwriteManager} */
|
||||
const overwrites = interaction.channel.permissionOverwrites
|
||||
overwrites.delete(user.id,"Removed user from ticket.")
|
||||
interaction.editReply({embeds:[bot.embeds.commands.removeEmbed(user,interaction.user)]})
|
||||
|
||||
var loguser = user
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ module.exports = () => {
|
||||
if (!interaction.guild) return
|
||||
|
||||
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id)
|
||||
if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
|
||||
|
||||
+6
-6
@@ -23,7 +23,7 @@ module.exports = () => {
|
||||
|
||||
msg.channel.send({embeds:[bot.embeds.commands.reopenEmbed(msg.author)],components:[bot.buttons.close.openRowNormal]})
|
||||
|
||||
require("../core/ticketActions/ticketReopener").reopenTicket(msg.guild,msg.channel,msg.author)
|
||||
require("../core/ticketActions/ticketReopener").reopenTicket(msg.guild,msg.channel,msg.author,ticketId)
|
||||
|
||||
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())
|
||||
@@ -33,17 +33,17 @@ module.exports = () => {
|
||||
if (!interaction.isChatInputCommand()) return
|
||||
if (interaction.commandName != "reopen") return
|
||||
|
||||
await interaction.deferReply()
|
||||
|
||||
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id)
|
||||
if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (hiddendata.find(h => h.key == "pendingdelete")) return interaction.editReply({embeds:[bot.errorLog.warning("Warning!","You can't re-open a ticket while it's being deleted!")]})
|
||||
if (hiddendata.find(h => h.key == "pendingdelete")) return interaction.reply({embeds:[bot.errorLog.warning("Warning!","You can't re-open a ticket while it's being deleted!")]})
|
||||
|
||||
await interaction.deferReply()
|
||||
|
||||
await interaction.editReply({embeds:[bot.embeds.commands.reopenEmbed(interaction.user)],components:[bot.buttons.close.openRowNormal]})
|
||||
|
||||
require("../core/ticketActions/ticketReopener").reopenTicket(interaction.guild,interaction.channel,interaction.user)
|
||||
require("../core/ticketActions/ticketReopener").reopenTicket(interaction.guild,interaction.channel,interaction.user,ticketId)
|
||||
|
||||
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())
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ module.exports = () => {
|
||||
if (!interaction.guild) return
|
||||
|
||||
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id)
|
||||
if (hiddendata.length < 1) return interaction.editReply({embeds:[bot.errorLog.notInATicket]})
|
||||
if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (!permsChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
|
||||
|
||||
+15
-16
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"_DOCUMENTATION":"https://otdocs.dj-dj.be",
|
||||
"_SUPPORT":"https://discord.dj-dj.be",
|
||||
|
||||
"color":"#ffffff",
|
||||
"serverId":"server id (for slash cmds)",
|
||||
"token":{
|
||||
@@ -28,10 +31,9 @@
|
||||
"answerInEphemeralOnOpen":true
|
||||
},
|
||||
|
||||
"SUPPORT":"Take look at our wiki: https://docs.openticket.dj-dj.be or join our discord server: https://discord.dj-dj.be if you need support!",
|
||||
"options":[
|
||||
{
|
||||
"id":"general",
|
||||
"id":"example-ticket",
|
||||
"name":"Question",
|
||||
"description":"Create this ticket if you have a question.",
|
||||
"icon":"🎫",
|
||||
@@ -53,7 +55,7 @@
|
||||
},
|
||||
"image":{
|
||||
"enable":false,
|
||||
"url":"https://www.dj-dj.be/wp-content/uploads/2022/09/pfp-cropped.png"
|
||||
"url":"https://www.example.com/catmemes/cat.png"
|
||||
},
|
||||
|
||||
"closedCategory":{
|
||||
@@ -74,10 +76,9 @@
|
||||
"roleId":"012345678910"
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
"id":"website",
|
||||
"id":"example-website",
|
||||
"name":"Website",
|
||||
"description":"Go to our website.",
|
||||
"icon":"✅",
|
||||
@@ -85,33 +86,31 @@
|
||||
"type":"website",
|
||||
|
||||
"url":"https://www.dj-dj.be"
|
||||
|
||||
},
|
||||
{
|
||||
"id":"role",
|
||||
"name":"Verify",
|
||||
"description":"Click here to get the verify role.",
|
||||
"icon":"👮🏼",
|
||||
"label":"get a role",
|
||||
"id":"example-role",
|
||||
"name":"Update Ping",
|
||||
"description":"Click here to get pinged for updates!",
|
||||
"icon":"📢",
|
||||
"label":"Update Ping",
|
||||
"type":"role",
|
||||
|
||||
"color":"red",
|
||||
"roles":["discord role id"],
|
||||
"mode":"add&remove|remove|add",
|
||||
"enableDmOnOpen":true
|
||||
|
||||
}
|
||||
],
|
||||
|
||||
"messages":[
|
||||
{
|
||||
"id":"1",
|
||||
"id":"example-embed",
|
||||
"name":"Choose Your Ticket",
|
||||
"description":"You can click one of the buttons below!",
|
||||
"dropdown":false,
|
||||
|
||||
"enableFooter":false,
|
||||
"footer":"Open Ticket v3.5.0 - I'm a footer!",
|
||||
"footer":"Open Ticket v3.5.6 - I'm a footer!",
|
||||
|
||||
"enableFooterImage":false,
|
||||
"footerImage":"https://www.example.com/catmemes/cat.png",
|
||||
@@ -125,7 +124,7 @@
|
||||
"enableCustomColor":false,
|
||||
"color":"#ffffff",
|
||||
|
||||
"options":["general","apply"],
|
||||
"options":["example-ticket","example-website","example-role"],
|
||||
|
||||
"other":{
|
||||
"enableTicketExplaination":true,
|
||||
@@ -146,4 +145,4 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -4,7 +4,7 @@ const bot = require("../../index")
|
||||
exports.client = bot.client
|
||||
exports.config = bot.config
|
||||
exports.utils = {
|
||||
log:bot.errorLog.log(),
|
||||
log:bot.errorLog.log,
|
||||
storage:bot.storage
|
||||
}
|
||||
|
||||
|
||||
+78
-51
@@ -29,23 +29,23 @@ exports.checker = async () => {
|
||||
/**@param {"userid"|"roleid"|"channelid"|"serverid"|"categoryid"} mode @param {String} value @param {String} path */
|
||||
const checkDiscord = (mode,value,path) => {
|
||||
if (mode == "userid"){
|
||||
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
|
||||
if (value.length < 16 || value.length > 40 || !/^\d+$/.test(value)){
|
||||
createError("'"+path+"' | this user id is invalid")
|
||||
}
|
||||
}else if (mode == "channelid"){
|
||||
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
|
||||
if (value.length < 16 || value.length > 40 || !/^\d+$/.test(value)){
|
||||
createError("'"+path+"' | this channel id is invalid")
|
||||
}
|
||||
}else if (mode == "roleid"){
|
||||
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
|
||||
if (value.length < 16 || value.length > 40 || !/^\d+$/.test(value)){
|
||||
createError("'"+path+"' | this role id is invalid")
|
||||
}
|
||||
}else if (mode == "serverid"){
|
||||
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
|
||||
if (value.length < 16 || value.length > 40 || !/^\d+$/.test(value)){
|
||||
createError("'"+path+"' | this server id is invalid")
|
||||
}
|
||||
}else if (mode == "categoryid"){
|
||||
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
|
||||
if (value.length < 16 || value.length > 40 || !/^\d+$/.test(value)){
|
||||
createError("'"+path+"' | this category id is invalid")
|
||||
}
|
||||
}
|
||||
@@ -90,25 +90,25 @@ exports.checker = async () => {
|
||||
}
|
||||
if (mode == "userid"){
|
||||
arrayValue.forEach((value,index) => {
|
||||
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
|
||||
if (value.length < 16 || value.length > 40 || !/^\d+$/.test(value)){
|
||||
createError("'"+path+":"+index+"' | this user id is invalid")
|
||||
}
|
||||
})
|
||||
}else if (mode == "channelid"){
|
||||
arrayValue.forEach((value,index) => {
|
||||
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
|
||||
if (value.length < 16 || value.length > 40 || !/^\d+$/.test(value)){
|
||||
createError("'"+path+":"+index+"' | this channel id is invalid")
|
||||
}
|
||||
})
|
||||
}else if (mode == "roleid"){
|
||||
arrayValue.forEach((value,index) => {
|
||||
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
|
||||
if (value.length < 16 || value.length > 40 || !/^\d+$/.test(value)){
|
||||
createError("'"+path+":"+index+"' | this role id is invalid")
|
||||
}
|
||||
})
|
||||
}else if (mode == "serverid"){
|
||||
arrayValue.forEach((value,index) => {
|
||||
if (value.length < 16 || value.length > 20 || !/^\d+$/.test(value)){
|
||||
if (value.length < 16 || value.length > 40 || !/^\d+$/.test(value)){
|
||||
createError("'"+path+":"+index+"' | this server id is invalid")
|
||||
}
|
||||
})
|
||||
@@ -402,11 +402,11 @@ exports.checker = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------|
|
||||
//--------------------------|
|
||||
//checker => START HERE |
|
||||
//--------------------------|
|
||||
//--------------------------|
|
||||
//////////////////////////////////////////
|
||||
//////////////////////////////////////////
|
||||
/////////!!! CHECKER.JS START !!!/////////
|
||||
//////////////////////////////////////////
|
||||
//////////////////////////////////////////
|
||||
|
||||
var configArray = ["color","serverId","token","adminRoles","prefix","languageFile","status","system","options","messages"]
|
||||
configArray.forEach((item) => {
|
||||
@@ -416,19 +416,45 @@ exports.checker = async () => {
|
||||
})
|
||||
|
||||
checkHexColor(config.color,"main_color")
|
||||
checkDiscord("serverid",config.serverId,"server_id")
|
||||
checkDiscord("serverid",config.serverId,"serverId")
|
||||
|
||||
if (!require("./api/api.json").disable.checkerjs.token && !config.token.fromENV) checkToken(config.token.value)
|
||||
|
||||
checkType(config.adminRoles,"array","/main_adminroles")
|
||||
checkDiscordArray("roleid",config.adminRoles,"main_adminroles")
|
||||
checkString(config.prefix,1,15,"prefix","prefix")
|
||||
//languagefile
|
||||
checkType(config.languageFile,"string","languagefile")
|
||||
const lf = config.languageFile
|
||||
checkType(config.adminRoles,"array","/adminRoles")
|
||||
checkDiscordArray("roleid",config.adminRoles,"adminRoles")
|
||||
checkString(config.prefix,1,40,"prefix","prefix")
|
||||
|
||||
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")
|
||||
//languagefile
|
||||
checkType(config.languageFile,"string","languageFile")
|
||||
const languageList = [
|
||||
"custom",
|
||||
"english",
|
||||
"dutch",
|
||||
"romanian",
|
||||
"german",
|
||||
"arabic",
|
||||
"spanish",
|
||||
"portuguese",
|
||||
"french",
|
||||
"italian",
|
||||
"czech",
|
||||
"danish",
|
||||
"russian",
|
||||
"turkish",
|
||||
"polish",
|
||||
"slovenian",
|
||||
"thai",
|
||||
"norwegian",
|
||||
"greek",
|
||||
"ukrainian",
|
||||
"hungarian",
|
||||
"indonesian",
|
||||
"kurdish",
|
||||
"persian",
|
||||
"latvian"
|
||||
]
|
||||
if (!languageList.some((l) => config.languageFile.startsWith(l))){
|
||||
createError("'languageFile' | invalid language, more info in the wiki")
|
||||
}
|
||||
|
||||
//status:
|
||||
@@ -483,34 +509,35 @@ exports.checker = async () => {
|
||||
//the end
|
||||
if (errorList.length > 0 || warnList.length > 0){
|
||||
console.log("REPORT:\n===========================")
|
||||
}
|
||||
warnList.forEach((w) => {
|
||||
const splitw = w.split("'")
|
||||
if (splitw.length > 1){
|
||||
var splitstring = chalk.yellow(splitw[0])+chalk.blue("'"+splitw[1]+"'")+chalk.yellow(splitw[2])
|
||||
if (splitw[3]){splitstring = splitstring+chalk.yellow(splitw[3])}
|
||||
if (splitw[4]){splitstring = splitstring+chalk.yellow(splitw[4])}
|
||||
if (splitw[5]){splitstring = splitstring+chalk.yellow(splitw[5])}
|
||||
}else {var splitstring = chalk.yellow(splitw[0])}
|
||||
console.log(splitstring)
|
||||
})
|
||||
errorList.forEach((e) => {
|
||||
const splite = e.split("'")
|
||||
if (splite.length > 1){
|
||||
var splitstring = chalk.red(splite[0])+chalk.blue("'"+splite[1]+"'")+chalk.red(splite[2])
|
||||
}else {var splitstring = chalk.red(splite[0])}
|
||||
console.log(splitstring)
|
||||
})
|
||||
if (isError){
|
||||
console.log("===========================")
|
||||
console.log("=> "+chalk.bgRed("your bot doesn't work if you don't fix the above errors!"))
|
||||
if (isWarn){
|
||||
console.log("\n=> "+chalk.bgYellow("if you ignore warns, some things may work differently than expected!"))
|
||||
warnList.forEach((w) => {
|
||||
const splitw = w.split("'")
|
||||
if (splitw.length > 1){
|
||||
var splitstring = chalk.yellow(splitw[0])+chalk.blue("'"+splitw[1]+"'")+chalk.yellow(splitw[2])
|
||||
if (splitw[3]){splitstring = splitstring+chalk.yellow(splitw[3])}
|
||||
if (splitw[4]){splitstring = splitstring+chalk.yellow(splitw[4])}
|
||||
if (splitw[5]){splitstring = splitstring+chalk.yellow(splitw[5])}
|
||||
}else {var splitstring = chalk.yellow(splitw[0])}
|
||||
console.log(splitstring)
|
||||
})
|
||||
errorList.forEach((e) => {
|
||||
const splite = e.split("'")
|
||||
if (splite.length > 1){
|
||||
var splitstring = chalk.red(splite[0])+chalk.blue("'"+splite[1]+"'")+chalk.red(splite[2])
|
||||
}else {var splitstring = chalk.red(splite[0])}
|
||||
console.log(splitstring)
|
||||
})
|
||||
if (isError){
|
||||
console.log("===========================")
|
||||
console.log("=> "+chalk.bgRed("your bot doesn't work if you don't fix the above errors!"))
|
||||
if (isWarn){
|
||||
console.log("\n=> "+chalk.bgYellow("if you ignore warns, some things may work differently than expected!"))
|
||||
}
|
||||
console.log(chalk.bold.green("\nDOCUMENTATION => https://otdocs.dj-dj.be\nSUPPORT => https://discord.dj-dj.be\n"))
|
||||
process.exit(0)
|
||||
}else if (isWarn){
|
||||
console.log("===========================")
|
||||
console.log("=> "+chalk.bgYellow("if you ignore warns, some things may work differently than expected!"))
|
||||
console.log(chalk.bold.green("\nDOCUMENTATION => https://otdocs.dj-dj.be\nSUPPORT => https://discord.dj-dj.be\n"))
|
||||
}
|
||||
process.exit(0)
|
||||
}else if (isWarn == true && isError == false){
|
||||
console.log("===========================")
|
||||
console.log("=> "+chalk.bgYellow("if you ignore warns, some things may work differently than expected!"))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
const fs = require('fs')
|
||||
const readline = require("readline")
|
||||
const rl = readline.createInterface({
|
||||
input:process.stdin,
|
||||
output:process.stdout,
|
||||
terminal:true
|
||||
})
|
||||
|
||||
const ask = async () => {
|
||||
const chalk = await (await import("chalk")).default
|
||||
rl.question(chalk.yellow("WARNING: are you sure that there are",chalk.red("no tickets open"),"at the moment? ")+chalk.green("(yes/no)")+"\n",(answer) => {
|
||||
if (answer != "1" && !answer.toLowerCase().startsWith("yes")){
|
||||
console.log(chalk.red("invalid answer"))
|
||||
ask()
|
||||
return
|
||||
}
|
||||
console.log(chalk.green("clearing data..."))
|
||||
runClear()
|
||||
rl.close()
|
||||
})
|
||||
}
|
||||
ask()
|
||||
|
||||
const runClear = async () => {
|
||||
const chalk = await (await import("chalk")).default
|
||||
//console.log(chalk.blue("You can get a node.js warning below, just ignore that, it's not important!"))
|
||||
const dataPaths = ["./storage/dynamicDB"]
|
||||
|
||||
var index = 0
|
||||
|
||||
dataPaths.forEach((path) => {
|
||||
try {
|
||||
fs.rmSync(path,{recursive:true,force:true})
|
||||
}catch{
|
||||
//console.log(path,"doesn't exist")
|
||||
}
|
||||
setTimeout(() => {
|
||||
try{
|
||||
fs.mkdirSync(path)
|
||||
}catch{
|
||||
//console.log(path,"already exists")
|
||||
}
|
||||
index++
|
||||
},500)
|
||||
})
|
||||
|
||||
setInterval(() => {
|
||||
if (index >= 1){
|
||||
console.log(chalk.bgGreen("All local data is cleared!"))
|
||||
process.exit(1)
|
||||
}
|
||||
},500)
|
||||
}
|
||||
@@ -21,6 +21,7 @@ exports.firstmsgRowNormal = new arb()
|
||||
.setDisabled(false)
|
||||
.setStyle(bs.Success)
|
||||
.setLabel("Claim Ticket")
|
||||
.setEmoji("📌")
|
||||
)
|
||||
.addComponents(
|
||||
new button()
|
||||
@@ -46,6 +47,7 @@ exports.firstmsgRowDisabled = new arb()
|
||||
.setDisabled(false)
|
||||
.setStyle(bs.Success)
|
||||
.setLabel("Claim Ticket")
|
||||
.setEmoji("📌")
|
||||
)
|
||||
.addComponents(
|
||||
new button()
|
||||
@@ -71,6 +73,7 @@ exports.firstmsgRowNormalNoClaim = new arb()
|
||||
.setDisabled(true)
|
||||
.setStyle(bs.Secondary)
|
||||
.setLabel("Claim Ticket")
|
||||
.setEmoji("📌")
|
||||
)
|
||||
.addComponents(
|
||||
new button()
|
||||
@@ -96,6 +99,7 @@ exports.firstmsgRowDisabledNoClaim = new arb()
|
||||
.setDisabled(true)
|
||||
.setStyle(bs.Secondary)
|
||||
.setLabel("Claim Ticket")
|
||||
.setEmoji("📌")
|
||||
)
|
||||
.addComponents(
|
||||
new button()
|
||||
|
||||
@@ -40,7 +40,7 @@ module.exports = () => {
|
||||
if (!permissionChecker.sendUserNoPerms(interaction.user)){
|
||||
permissionChecker.sendChannelNoPerms(interaction.channel,interaction.user)
|
||||
}
|
||||
interaction.message.edit({components:[firstcomponents]})
|
||||
interaction.message.edit({components:firstcomponents})
|
||||
closeTicketButtonChecker = false
|
||||
return
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ module.exports = () => {
|
||||
if (!permissionChecker.sendUserNoPerms(interaction.user)){
|
||||
permissionChecker.sendChannelNoPerms(interaction.channel,interaction.user)
|
||||
}
|
||||
interaction.message.edit({components:[firstcomponents]})
|
||||
interaction.message.edit({components:firstcomponents})
|
||||
closeTicketButtonChecker = false
|
||||
return interaction.deferUpdate()
|
||||
}
|
||||
|
||||
@@ -21,8 +21,21 @@ module.exports = () => {
|
||||
if (!interaction.isButton()) return
|
||||
if (interaction.customId != "OTreopenTicket") return
|
||||
|
||||
const hiddendata = bot.hiddenData.readHiddenData(interaction.channel.id)
|
||||
if (hiddendata.length < 1) return interaction.reply({embeds:[bot.errorLog.notInATicket]})
|
||||
const ticketId = hiddendata.find(d => d.key == "type").value
|
||||
|
||||
if (config.system.closeMode == "adminonly"){
|
||||
if (!permissionChecker.ticket(interaction.user.id,interaction.guild.id,ticketId)){
|
||||
if (!permissionChecker.sendUserNoPerms(interaction.user)){
|
||||
permissionChecker.sendChannelNoPerms(interaction.channel,interaction.user)
|
||||
}
|
||||
return interaction.deferUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
await interaction.deferUpdate()
|
||||
interaction.message.edit({embeds:[bot.embeds.commands.reopenEmbed(interaction.user)],components:[bot.buttons.close.openRowNormal]})
|
||||
require("../../../ticketActions/ticketReopener").reopenTicket(interaction.guild,interaction.channel,interaction.user)
|
||||
require("../../../ticketActions/ticketReopener").reopenTicket(interaction.guild,interaction.channel,interaction.user,ticketId)
|
||||
})
|
||||
}
|
||||
@@ -220,7 +220,7 @@ const getTicketStats = async (guild,channelid) => {
|
||||
/**@type {TextChannel|undefined} */
|
||||
const channel = guild.channels.cache.find((c) => c.id == channelid)
|
||||
const messageAmount = (channel) ? (await getmessages(channel,5000)).length : 0
|
||||
const participants = (channel) ? channel.members.map((m) => m.user.username) : []
|
||||
const participants = (channel) ? channel.members.map((m) => "<@"+m.user.id+">") : []
|
||||
|
||||
//saved data
|
||||
const createdAt = getStats("ticket","CREATED_AT",channelid)
|
||||
@@ -228,7 +228,7 @@ const getTicketStats = async (guild,channelid) => {
|
||||
|
||||
const TEMPcreatedBy = getStats("ticket","CREATED_BY",channelid)
|
||||
const TEMPcreatedByUser = (TEMPcreatedBy) ? guild.members.cache.find((m) => m.id == TEMPcreatedBy) : undefined
|
||||
const createdBy = (TEMPcreatedByUser) ? TEMPcreatedByUser.user.username : "an unknown person 😄"
|
||||
const createdBy = (TEMPcreatedByUser) ? "<@"+TEMPcreatedByUser.user.id+">" : "an unknown person 😄"
|
||||
|
||||
return {
|
||||
createdAt: (typeof createdAt == "undefined") ? new Date().getTime() : createdAt,
|
||||
@@ -316,7 +316,7 @@ const createTicketStatsEmbed = async (guild,channelid) => {
|
||||
|
||||
const sentences = [
|
||||
`${l.stats.ticketCreatedOn}: <t:${Math.round(stats.createdAt/1000)}:f>`,
|
||||
`${l.stats.ticketCreatedBy}: \`${stats.createdBy}\``,
|
||||
`${l.stats.ticketCreatedBy}: ${stats.createdBy}`,
|
||||
`${l.stats.messagesSent}: \`${stats.messageAmount}\``,
|
||||
`${l.stats.status}: ${newStatus}`
|
||||
]
|
||||
|
||||
@@ -49,24 +49,17 @@ module.exports = () => {
|
||||
const currentTicketOptions = configParser.getTicketById(customId)
|
||||
if (currentTicketOptions == false) return interaction.reply({embeds:[bot.errorLog.serverError(l.errors.anotherOption)]})
|
||||
|
||||
if (interaction.isButton()){
|
||||
try {
|
||||
if (interaction.isButton() || interaction.isStringSelectMenu() || interaction.isChatInputCommand()){
|
||||
try{
|
||||
await interaction.deferReply({ephemeral:config.system.answerInEphemeralOnOpen})
|
||||
} catch{}
|
||||
}else if (interaction.isChatInputCommand()){
|
||||
try {
|
||||
await interaction.deferReply({ephemeral:config.system.answerInEphemeralOnOpen})
|
||||
} catch{}
|
||||
}else if (interaction.isStringSelectMenu()){
|
||||
try {
|
||||
await interaction.deferUpdate()
|
||||
} catch{}
|
||||
}catch{}
|
||||
}
|
||||
|
||||
if (storage.get("amountOfUserTickets",interaction.member.id) == null || storage.get("amountOfUserTickets",interaction.member.id) == "false"|| Number(storage.get("amountOfUserTickets",interaction.member.id)) < config.system.maxAmountOfTickets){
|
||||
const currentUserTicketAmount = storage.get("amountOfUserTickets",interaction.member.id)
|
||||
if (config.system.maxAmountOfTickets == 0 || !currentUserTicketAmount || currentUserTicketAmount == "false" || Number(currentUserTicketAmount) < config.system.maxAmountOfTickets){
|
||||
|
||||
//update storage
|
||||
storage.set("amountOfUserTickets",interaction.member.id,Number(storage.get("amountOfUserTickets",interaction.member.id))+1)
|
||||
storage.set("amountOfUserTickets",interaction.member.id,Number(currentUserTicketAmount)+1)
|
||||
var ticketNumber = interaction.member.user.username
|
||||
|
||||
//set ticketName
|
||||
@@ -96,7 +89,7 @@ module.exports = () => {
|
||||
permissionsArray.push({
|
||||
id:interaction.member.user,
|
||||
type:"member",
|
||||
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
|
||||
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel,pfb.ReadMessageHistory]
|
||||
})
|
||||
|
||||
//add main adminroles
|
||||
@@ -108,7 +101,7 @@ module.exports = () => {
|
||||
permissionsArray.push({
|
||||
id:adminrole,
|
||||
type:"role",
|
||||
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
|
||||
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel,pfb.ReadMessageHistory]
|
||||
})
|
||||
}catch{}
|
||||
})
|
||||
@@ -127,7 +120,7 @@ module.exports = () => {
|
||||
permissionsArray.push({
|
||||
id:adminrole,
|
||||
type:"role",
|
||||
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel]
|
||||
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel,pfb.ReadMessageHistory]
|
||||
})
|
||||
}catch{}
|
||||
}
|
||||
@@ -144,7 +137,7 @@ module.exports = () => {
|
||||
permissionsArray.push({
|
||||
id:adminrole,
|
||||
type:"role",
|
||||
allow:[pfb.AddReactions,pfb.ViewChannel],
|
||||
allow:[pfb.AddReactions,pfb.ViewChannel,pfb.ReadMessageHistory],
|
||||
deny:[pfb.SendMessages,pfb.AttachFiles,pfb.EmbedLinks]
|
||||
})
|
||||
}catch{}
|
||||
@@ -248,16 +241,16 @@ module.exports = () => {
|
||||
}
|
||||
catch{log("system","failed to send DM")}
|
||||
|
||||
if ((interaction.isButton() && config.system.answerInEphemeralOnOpen) || interaction.isChatInputCommand()){
|
||||
if (((interaction.isButton() || interaction.isStringSelectMenu()) && 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{
|
||||
interaction.editReply({embeds:[bot.errorLog.warning(l.errors.maxAmountTitle,l.errors.maxAmountDescription)]})
|
||||
try {
|
||||
if (config.system.dmMessages){
|
||||
interaction.member.send({embeds:[bot.errorLog.warning(l.errors.maxAmountTitle,l.errors.maxAmountDescription)]})
|
||||
|
||||
@@ -6,15 +6,26 @@ const log = bot.errorLog.log
|
||||
const l = bot.language
|
||||
const storage = bot.storage
|
||||
const pfb = discord.PermissionFlagsBits
|
||||
const permsChecker = require("../utils/permisssionChecker")
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {discord.Guild} guild
|
||||
* @param {discord.TextBasedChannel} channel
|
||||
* @param {discord.User} user
|
||||
* @param {String} ticketId option id
|
||||
* @returns
|
||||
*/
|
||||
const reopenTicket = (guild,channel,user) => {
|
||||
const reopenTicket = (guild,channel,user,ticketId) => {
|
||||
//check perms
|
||||
if (config.system.closeMode == "adminonly"){
|
||||
if (!guild) return
|
||||
if (!permsChecker.ticket(user.id,guild.id,ticketId)){
|
||||
permsChecker.sendUserNoPerms(user)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
log("system","re-opened a ticket",[{key:"ticket",value:channel.name},{key:"user",value:user.username}])
|
||||
|
||||
var permissionsArray = []
|
||||
|
||||
@@ -95,7 +95,7 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
bot:{
|
||||
name:data.bot.name || "Open Ticket",
|
||||
id:Number(data.bot.id) || 0,
|
||||
pfp:data.bot.pfp || "dj-dj.be/wp-content/uploads/2022/07/profielfoto-blauw-wit.png?size=128"
|
||||
pfp:data.bot.pfp || "transcripts.dj-dj.be/favicon.png"
|
||||
},
|
||||
ticket:{
|
||||
name:channel.name,
|
||||
|
||||
@@ -215,7 +215,7 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
interactionName:msg.interaction.commandName
|
||||
},
|
||||
user:{
|
||||
name:msg.interaction.user.username,
|
||||
name:msg.interaction.user.displayName,
|
||||
id:msg.interaction.user.id,
|
||||
color:replycolor,
|
||||
pfp:msg.interaction.user.displayAvatarURL(),
|
||||
@@ -227,15 +227,15 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
}else if (replytype == "reply"){
|
||||
|
||||
var replycontentRAW = messages.find((msg2) => msg2.id == msg.reference.messageId)
|
||||
var replycontent = (replycontentRAW && replycontentRAW.content) ? replycontentRAW.content.slice(0,(60-replycontentRAW.author.username.length)) : "deleted this message"
|
||||
var replycontent = (replycontentRAW && replycontentRAW.content) ? replycontentRAW.content.slice(0,(60-replycontentRAW.author.displayName.length)) : "deleted this message"
|
||||
const replycolorRAW = (replycontentRAW) ? msg.guild.members.cache.find((m) => m.id == replycontentRAW.author.id) : false
|
||||
const replycolor = (replycolorRAW) ? replycolorRAW.displayHexColor.replace("#000000","#ffffff") : "#ffffff"
|
||||
|
||||
var user = (replycontentRAW && replycontentRAW.content) ? {
|
||||
name:(replycontentRAW) ? replycontentRAW.author.username : "undefined",
|
||||
name:(replycontentRAW) ? replycontentRAW.author.displayName : "undefined",
|
||||
id:(replycontentRAW) ? replycontentRAW.author.id : "undefined",
|
||||
color:replycolor,
|
||||
pfp:(replycontentRAW) ? replycontentRAW.author.username : "",
|
||||
pfp:(replycontentRAW) ? replycontentRAW.author.displayName : "",
|
||||
bot:(replycontentRAW) ? replycontentRAW.author.bot : false,
|
||||
system:(replycontentRAW) ? replycontentRAW.author.system : false,
|
||||
verifiedBot:(replycontentRAW) ? replycontentRAW.author.flags.has(discord.UserFlags.VerifiedBot) : false,
|
||||
@@ -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.username,
|
||||
name:msg.author.displayName,
|
||||
id:msg.author.id,
|
||||
color:authorColor,
|
||||
pfp:msg.author.displayAvatarURL(),
|
||||
@@ -332,7 +332,7 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||
creatorid:data.ticket.creatorid,
|
||||
creatorpfp:data.ticket.creatorpfp,
|
||||
|
||||
closedbyname:user.username,
|
||||
closedbyname:user.displayName,
|
||||
closedbyid:user.id,
|
||||
closedbypfp:user.displayAvatarURL(),
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ exports.upload = async (json) => {
|
||||
|
||||
resolve(res.data)
|
||||
}catch(err){
|
||||
console.log("failed transcript upload!",err.response)
|
||||
console.log("Failed HTML transcript upload! Reached Ratelimit 429!")
|
||||
resolve(false)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -34,17 +34,19 @@ exports.beingprocessed = (name,id,rawprocesstime,user) => {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {String} name
|
||||
* @param {String} id
|
||||
* @param {String} url
|
||||
* @param {discord.User} user
|
||||
* @param {String} name channel name
|
||||
* @param {String} url transcript url
|
||||
* @param {discord.User} user transcript closer
|
||||
* @param {discord.User} creator transcript creator
|
||||
*/
|
||||
exports.tsready = (name,id,url,user) => {
|
||||
exports.tsready = (name,url,user,creator) => {
|
||||
const embed = new discord.EmbedBuilder()
|
||||
.setTitle("🧾 "+l.transcripts.title)
|
||||
.setColor(config.color)
|
||||
.setAuthor({name:user.username,iconURL:user.displayAvatarURL()})
|
||||
.setFooter({text:name})
|
||||
|
||||
if (creator) embed.setFields([{name:"Ticket Creator", value:"<@"+creator.id+">"}])
|
||||
|
||||
if (url){
|
||||
embed.setURL(url)
|
||||
@@ -72,7 +74,7 @@ exports.tserror = (name,id,user,err) => {
|
||||
|
||||
const errDesc = (typeof err == "string") ? "\n"+err : ""
|
||||
|
||||
embed.setDescription("Something went wrong while creating the HTML transcript.\n\n[possible reasons](https://docs.openticket.dj-dj.be/the-system/transcripts/transcript-errors)"+errDesc)
|
||||
embed.setDescription("Something went wrong while creating the HTML transcript.\n\n[possible reasons](https://otdocs.dj-dj.be/docs/current/docs/system/transcripts)"+errDesc)
|
||||
|
||||
return embed
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ const checkAvailability = async () => {
|
||||
if (process.argv.some((v) => v == "--tsoffline")) return true
|
||||
const axios = require("axios").default
|
||||
try{
|
||||
const res = await axios.get("https://transcripts.dj-dj.be/api/status.json")
|
||||
const res = await axios.get("https://apis.dj-dj.be/transcripts/status.json")
|
||||
if (!res || !(res.status == 200) || !res.data) return false
|
||||
|
||||
if (res.data && res.data["v2"] == "online") return true
|
||||
@@ -88,13 +88,13 @@ module.exports = async (messages,guild,channel,user,reason) => {
|
||||
|
||||
},
|
||||
bot:{
|
||||
name:client.user.username,
|
||||
name:client.user.displayName,
|
||||
id:client.user.id,
|
||||
pfp:client.user.displayAvatarURL(),
|
||||
},
|
||||
ticket:{
|
||||
creatorid:ticketopener.id,
|
||||
creatorname:ticketopener.username,
|
||||
creatorname:ticketopener.displayName,
|
||||
creatorpfp:ticketopener.displayAvatarURL(),
|
||||
|
||||
openedtime:opentime.getTime(),
|
||||
@@ -113,11 +113,35 @@ module.exports = async (messages,guild,channel,user,reason) => {
|
||||
if (!tc) return
|
||||
tc.send({embeds:[errembed],files:[attachment]})
|
||||
}
|
||||
if (tsconfig.sendTranscripts.enableDM && user){
|
||||
const embed = tsembeds.tsready(chName,null,user,ticketopener)
|
||||
try {
|
||||
ticketopener.send({embeds:[embed],files:[attachment]})
|
||||
}catch{}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
const TSdata = await require("./communication/index").upload(JSONDATA)
|
||||
if (!TSdata) return false
|
||||
if (!TSdata){
|
||||
const attachment = await require("./oldTranscript").createTranscript(messages,channel)
|
||||
const errembed = tsembeds.tserror(chName,chId,user,"`HTML Transcript API: reached ratelimit`")
|
||||
|
||||
if (tsconfig.sendTranscripts.enableChannel){
|
||||
/**@type {discord.TextChannel|undefined} */
|
||||
const tc = guild.channels.cache.find((c) => c.id == tsconfig.sendTranscripts.channel)
|
||||
|
||||
if (!tc) return
|
||||
tc.send({embeds:[errembed],files:[attachment]})
|
||||
}
|
||||
if (tsconfig.sendTranscripts.enableDM && user){
|
||||
const embed = tsembeds.tsready(chName,null,user,ticketopener)
|
||||
try {
|
||||
ticketopener.send({embeds:[embed],files:[attachment]})
|
||||
}catch{}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
if (TSdata.status == "success"){
|
||||
//MAKE THIS COMPATIBLE WITH PREMIUM "customTranscriptUrl" IN FUTURE VERSIONS!!
|
||||
@@ -145,12 +169,12 @@ module.exports = async (messages,guild,channel,user,reason) => {
|
||||
//ready
|
||||
setTimeout(() => {
|
||||
if (msg){
|
||||
msg.edit({embeds:[tsembeds.tsready(chName,chId,url,user)]})
|
||||
msg.edit({embeds:[tsembeds.tsready(chName,url,user,ticketopener)]})
|
||||
}
|
||||
|
||||
if (tsconfig.sendTranscripts.enableDM){
|
||||
if (!user) return
|
||||
const embed = tsembeds.tsready(chName,chId,url,user)
|
||||
const embed = tsembeds.tsready(chName,url,user,ticketopener)
|
||||
try {
|
||||
ticketopener.send({embeds:[embed]})
|
||||
}catch{}
|
||||
@@ -167,10 +191,16 @@ module.exports = async (messages,guild,channel,user,reason) => {
|
||||
if (!tc) return
|
||||
tc.send({embeds:[errembed],files:[attachment]})
|
||||
}
|
||||
if (tsconfig.sendTranscripts.enableDM && user){
|
||||
const embed = tsembeds.tsready(chName,null,user,ticketopener)
|
||||
try {
|
||||
ticketopener.send({embeds:[embed],files:[attachment]})
|
||||
}catch{}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
const attachment = await require("./oldTranscript").createTranscript(messages,channel)
|
||||
const embed = tsembeds.tsready(chName,chId,false,user)
|
||||
const embed = tsembeds.tsready(chName,null,user,ticketopener)
|
||||
|
||||
if (tsconfig.sendTranscripts.enableChannel){
|
||||
/**@type {discord.TextChannel|undefined} */
|
||||
@@ -179,6 +209,12 @@ module.exports = async (messages,guild,channel,user,reason) => {
|
||||
if (!tc) return
|
||||
tc.send({embeds:[embed],files:[attachment]})
|
||||
}
|
||||
if (tsconfig.sendTranscripts.enableDM && user){
|
||||
const embed = tsembeds.tsready(chName,null,user,ticketopener)
|
||||
try {
|
||||
ticketopener.send({embeds:[embed],files:[attachment]})
|
||||
}catch{}
|
||||
}
|
||||
}
|
||||
}
|
||||
asyncmanager()
|
||||
|
||||
+18
-14
@@ -2,22 +2,26 @@ const discord = require("discord.js")
|
||||
const bot = require("../../index")
|
||||
const config = bot.config
|
||||
const l = bot.language
|
||||
const b = discord.ButtonStyle
|
||||
|
||||
/**@returns {"DANGER"|"SUCCESS"|"PRIMARY"|"SECONDARY"} */
|
||||
/**
|
||||
* @param {String} color
|
||||
* @returns {"DANGER"|"SUCCESS"|"PRIMARY"|"SECONDARY"} */
|
||||
const getColor = (color) => {
|
||||
const b = discord.ButtonStyle
|
||||
if (color.toLowerCase() == "red"){
|
||||
return b.Danger
|
||||
}else if (color.toLowerCase() == "green"){
|
||||
return b.Success
|
||||
}else if (color.toLowerCase() == "blue" || color.toLowerCase() == "blurple"){
|
||||
return b.Primary
|
||||
}else if (color.toLowerCase() == "black" || color.toLowerCase() == "gray" || color.toLowerCase() == "grey"){
|
||||
return b.Secondary
|
||||
}else if (color == "DANGER" || color == "SECONDARY" || color == "SUCCESS" || color == "PRIMARY"){
|
||||
return color
|
||||
}else if (color.toLowerCase() == "none" || color.toLowerCase() == "false" || color.toLowerCase() == ""){
|
||||
return b.Secondary
|
||||
if (color){
|
||||
if (color.toLowerCase() == "red"){
|
||||
return b.Danger
|
||||
}else if (color.toLowerCase() == "green"){
|
||||
return b.Success
|
||||
}else if (color.toLowerCase() == "blue" || color.toLowerCase() == "blurple"){
|
||||
return b.Primary
|
||||
}else if (color.toLowerCase() == "black" || color.toLowerCase() == "gray" || color.toLowerCase() == "grey"){
|
||||
return b.Secondary
|
||||
}else if (color.toUpperCase() == "DANGER" || color.toUpperCase() == "SECONDARY" || color.toUpperCase() == "SUCCESS" || color.toUpperCase() == "PRIMARY"){
|
||||
return color
|
||||
}else if (color.toLowerCase() == "none" || color.toLowerCase() == "false" || color.toLowerCase() == ""){
|
||||
return b.Secondary
|
||||
}else return b.Secondary
|
||||
}else return b.Secondary
|
||||
}
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ exports.getDropdown = (ids,placeholder) => {
|
||||
}else{
|
||||
if (option.label) selectComponent.setLabel(option.label)
|
||||
if (option.icon) selectComponent.setEmoji(option.icon)
|
||||
if (option.description) selectComponent.setDescription(option.description)
|
||||
if (option.description && option.description.length < 100) selectComponent.setDescription(option.description)
|
||||
}
|
||||
|
||||
dropdown.addOptions(selectComponent)
|
||||
|
||||
@@ -134,80 +134,4 @@ exports.run = async (pluginData) => {
|
||||
})
|
||||
|
||||
console.log(final.join("\n\n"))
|
||||
}
|
||||
|
||||
var waitTime = new Date().getTime()
|
||||
var waitTimeEnabled = false
|
||||
|
||||
/**@param {OTLiveStatusError} options @returns {Promise<Boolean>} */
|
||||
const uploadLiveStatus = (options) => {
|
||||
return new Promise((resolve,reject) => {
|
||||
if (process.argv.some((v) => v == "--noerrorupload")) return resolve(true)
|
||||
try {
|
||||
var data = encodeURIComponent(JSON.stringify(options))
|
||||
axios.get("https://livestatus.dj-dj.be/openticket?auth=openticketLIVESTATUS1234&data="+data).then((res) => {
|
||||
if (res.status == 200) resolve(true)
|
||||
else resolve(false)
|
||||
})
|
||||
}catch{
|
||||
resolve(false)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**@param {String} err @returns {Promise<Boolean>}*/
|
||||
exports.liveStatusUploadManager = async (err) => {
|
||||
return new Promise(async (resolve) => {
|
||||
|
||||
if (process.argv.some((v) => v == "--noerrorupload")) return resolve(true)
|
||||
else{
|
||||
var tsenabled = (bot.tsconfig.sendTranscripts.enableChannel || bot.tsconfig.sendTranscripts.enableDM)
|
||||
var tsmode = bot.tsconfig.sendTranscripts.useHTMLtranscripts ? "html" : "text"
|
||||
const transcriptMode = tsenabled ? tsmode : false
|
||||
const slashMode = getSlashEnabled()
|
||||
|
||||
try {
|
||||
if (waitTimeEnabled){
|
||||
if (new Date().getTime() < waitTime){
|
||||
waitTimeEnabled = false
|
||||
return resolve(false)
|
||||
}
|
||||
}
|
||||
const result = await uploadLiveStatus({
|
||||
bot:{
|
||||
id:client.user.id,
|
||||
name:client.user.username,
|
||||
pfp:client.user.displayAvatarURL()
|
||||
},
|
||||
error:err,
|
||||
openticket:{
|
||||
config:{
|
||||
//TEMPORARY SOLUTION => AXIOS 414 ERROR!
|
||||
//messages:config.messages,
|
||||
//options:config.options,
|
||||
//transcripts:bot.tsconfig,
|
||||
//system:config.system
|
||||
},
|
||||
language:config.languageFile,
|
||||
version:"3.5.0",
|
||||
slashcmds:slashMode,
|
||||
transcripts:transcriptMode,
|
||||
plugins:fs.readdirSync("./plugins"),
|
||||
pluginload:globalPluginData
|
||||
},
|
||||
details:{
|
||||
errortime:new Date().getTime()
|
||||
//TEMPORARY SOLUTION => AXIOS 414 ERROR!
|
||||
//actions:this.actionRecorder,
|
||||
//database:fs.readFileSync("./storage/database.json").toString()
|
||||
}
|
||||
})
|
||||
if (!result){
|
||||
waitTime = new Date().getTime()+30000
|
||||
waitTimeEnabled = true
|
||||
}
|
||||
resolve(result)
|
||||
}catch{resolve(false)}
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
INFORMATION:
|
||||
============
|
||||
Open Ticket v3.5.0 - © DJdj Development
|
||||
Open Ticket v3.5.6 - © DJdj Development
|
||||
|
||||
discord: https://discord.dj-dj.be
|
||||
website: https://www.dj-dj.be
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
Send ./openticketdebug.txt when there are errors!
|
||||
*/
|
||||
|
||||
/** discord :)*/
|
||||
const discord = require("discord.js")
|
||||
const fs = require('fs')
|
||||
const {GatewayIntentBits,Partials} = discord
|
||||
@@ -54,7 +54,7 @@ const client = new discord.Client({
|
||||
partials:[Partials.Channel,Partials.Message]
|
||||
})
|
||||
exports.client = client
|
||||
client.setMaxListeners(50)
|
||||
client.setMaxListeners(120)
|
||||
if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","created client")
|
||||
|
||||
//LOAD CONFIG
|
||||
@@ -161,6 +161,10 @@ client.on('ready',async () => {
|
||||
|
||||
if (config.status.enabled){
|
||||
setStatus(config.status.type,config.status.text)
|
||||
//refresh status every 10 minutes
|
||||
setInterval(() => {
|
||||
setStatus(config.status.type,config.status.text)
|
||||
},(60*10*1000))
|
||||
}
|
||||
|
||||
this.actionRecorder.push({
|
||||
@@ -382,11 +386,6 @@ process.on("uncaughtException",async (error,origin) => {
|
||||
errorLog(error.name+": "+error.message+" | origin: "+origin,error.stack)
|
||||
|
||||
APIEvents.onError(error.name+": "+error.message,new Date())
|
||||
|
||||
//TEMPORARY INTEGRATION FOR LIVESTATUS ERROR UPLOADER:
|
||||
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({
|
||||
@@ -396,7 +395,55 @@ this.actionRecorder.push({
|
||||
type:"debugsystem.success"
|
||||
})
|
||||
|
||||
//PARSE .env FILE FROM DOTENV LIB
|
||||
//npm i dotenv
|
||||
//https://github.com/motdotla/dotenv
|
||||
/**@param {Buffer} src */
|
||||
const loadFromDotEnv = (src) => {
|
||||
const LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg
|
||||
|
||||
const obj = {}
|
||||
|
||||
// Convert buffer to string
|
||||
let lines = src.toString()
|
||||
|
||||
// Convert line breaks to same format
|
||||
lines = lines.replace(/\r\n?/mg, '\n')
|
||||
|
||||
let match
|
||||
while ((match = LINE.exec(lines)) != null) {
|
||||
const key = match[1]
|
||||
|
||||
// Default undefined or null to empty string
|
||||
let value = (match[2] || '')
|
||||
|
||||
// Remove whitespace
|
||||
value = value.trim()
|
||||
|
||||
// Check if double quoted
|
||||
const maybeQuote = value[0]
|
||||
|
||||
// Remove surrounding quotes
|
||||
value = value.replace(/^(['"`])([\s\S]*)\1$/mg, '$2')
|
||||
|
||||
// Expand newlines if double quoted
|
||||
if (maybeQuote === '"') {
|
||||
value = value.replace(/\\n/g, '\n')
|
||||
value = value.replace(/\\r/g, '\r')
|
||||
}
|
||||
|
||||
// Add to object
|
||||
obj[key] = value
|
||||
}
|
||||
process.env.TOKEN = obj.TOKEN
|
||||
}
|
||||
|
||||
//LOGIN SYSTEM
|
||||
const token = config.token.fromENV ? process.env.TOKEN : config.token.value
|
||||
client.login(token)
|
||||
if (config.token.fromENV){
|
||||
loadFromDotEnv(fs.readFileSync(".env"))
|
||||
client.login(process.env.TOKEN)
|
||||
}else{
|
||||
client.login(config.token.value)
|
||||
}
|
||||
|
||||
this.errorLog.log("debug","login with token")
|
||||
+79
-79
@@ -1,43 +1,43 @@
|
||||
{
|
||||
"_CREDITS":"ChilledBroke#9986 & M4#5882",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"deqressing",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors": {
|
||||
"missingArgsTitle": "قيمة غير صالحة!",
|
||||
"missingArgsDescription": "قيمة مفقودة",
|
||||
"noPermsTitle": "ليس لديك برمشنات !",
|
||||
"noPermsDescription": "أنت بحاجة الى برمشن `ADMINISTRATOR` او أن تكون في قائمة المسموح بهم!",
|
||||
"noPermsDelete": "فقط الإداريين يمكنهم حذف التكت!",
|
||||
"chooseFromListTitle": "Invalid ID",
|
||||
"noPermsDelete": "فقط الإداريين يمكنهم حذف التيكت!",
|
||||
"chooseFromListTitle": "الايدي غير صحيح!",
|
||||
"chooseFromListDescription": "قم بأختيار أحد من الأيديات من الأسفل:",
|
||||
"boterror": "خلل في البوت !",
|
||||
"notInTicketTitle": "انت لست في تكت!",
|
||||
"notInTicketDescription": "هذا الأمر لا يعمل خارج التكت!",
|
||||
"ticketDoesntExist": "هذا التكت لم يعد فعال!",
|
||||
"notInTicketDescription": "هذا الأمر لا يعمل خارج التيكت!",
|
||||
"ticketDoesntExist": "هذا التيكت لم يعد فعال!",
|
||||
"roleDoesntExist": "خطاً ,لم تعد الرتبة موجوده!",
|
||||
"anotherOption": "هذا الخيار ليس التكت و لكنه شيء أخر!",
|
||||
"anotherOption": "هذا الخيار ليس التيكت و لكنه شيء أخر!",
|
||||
"maxAmountTitle": "خطأ , تم الوصول الى الحد الأقصى!",
|
||||
"maxAmountDescription": "لقد وصلت الى الحد الأقصى لعدد التكتات المسموحة بها!\nSo لا يمكنك فتح واحدة أخرى!",
|
||||
"maxAmountDescription": "لقد وصلت الى الحد الأقصى لعدد التيكتات المسموحة بها!\nSo لا يمكنك فتح واحدة أخرى!",
|
||||
"somethingWentWrong": "**هناك خطاً!**\nأعد المحاولة لاحقاً!"
|
||||
},
|
||||
"commands": {
|
||||
"userAddedTitle": "تم أضافة {0} من المستخدمين في التكت!",
|
||||
"userRemovedTitle": "تم أزالة {0} من المستخدمين من التكت!",
|
||||
"renameTitle": "تم تغيير أسم التكت الى {0}!",
|
||||
"closeTitle": "تم أغلاق التكت!",
|
||||
"deleteTitle": " جاري حذف التكت...",
|
||||
"reopenTitle": "إعادة فتح التكت!",
|
||||
"userAddedTitle": "تم أضافة {0} من المستخدمين في التيكت!",
|
||||
"userRemovedTitle": "تم أزالة {0} من المستخدمين من التيكت!",
|
||||
"renameTitle": "تم تغيير أسم التيكت الى {0}!",
|
||||
"closeTitle": "تم أغلاق التيكت!",
|
||||
"deleteTitle": " جاري حذف التيكت...",
|
||||
"reopenTitle": "إعادة فتح التيكت!",
|
||||
|
||||
"claimTitle":"This ticket is now claimed to {0}",
|
||||
"unclaimTitle":"This ticket isn't claimed anymore!",
|
||||
"changeTitle":"Changed ticket type to {0}!",
|
||||
"claimTitle":"تم تعيين التيكت الى {0}",
|
||||
"unclaimTitle":"هذا التيكت لم يتم تعيينه لاحد",
|
||||
"changeTitle":"!تم تغيير نوع التيكت الى {0}",
|
||||
|
||||
"statsTitle":"Here are the stats for {0}!",
|
||||
"autocloseTitle":"This ticket will be closed automatically after {0}!",
|
||||
"autocloseRejectTitle":"This ticket will no longer be closed automatically!",
|
||||
"autocloseWarn":"This only affects inactive tickets!",
|
||||
"statsTitle":"ها هي احصائيات {0}",
|
||||
"autocloseTitle":"سيتم اغلاق التيكت تلقائيا في {0}",
|
||||
"autocloseRejectTitle":"تم الغاء اغلاق التيكت تلقائيا",
|
||||
"autocloseWarn":"هذا يؤثر فقط على التذاكر الغير نشطة",
|
||||
|
||||
"goToTicket":"go to ticket",
|
||||
"goToTicket":"الذهاب الى التيكت",
|
||||
"ticketWarning": "هذا الأمبد موجود بالفعل في الرسالة بالأسفل!",
|
||||
"maxTicketWarning": "**تحذير:** _يمكنك فقط فتح {0} تكت في الوقت!_"
|
||||
},
|
||||
@@ -47,89 +47,89 @@
|
||||
"header2": "**قم بكتابة أمر `/new` او `/ticket` لفتح تكت!**\n\n",
|
||||
|
||||
"msgCmd": "أنشاء أيمبد مع الأزرار. (الأداريين فقط)",
|
||||
"renameCmd": "إعادة تسمية التكت. (بدون مسافات)",
|
||||
"closeCmd": "أغلاق التكت.",
|
||||
"deleteCmd": "حذف التكت.",
|
||||
"addCmd": "إضافة مستخدم الى التكت.",
|
||||
"removeCmd": "إزالة مستخدم من التكت.",
|
||||
"renameCmd": "إعادة تسمية التيكت. (بدون مسافات)",
|
||||
"closeCmd": "أغلاق التيكت.",
|
||||
"deleteCmd": "حذف التيكت.",
|
||||
"addCmd": "إضافة مستخدم الى التيكت.",
|
||||
"removeCmd": "إزالة مستخدم من التيكت.",
|
||||
"reopenCmd": "إعادة فتح تكت بعد إغلاقة.",
|
||||
"changeCmd":"Change ticket type.",
|
||||
"claimCmd":"Claim a ticket.",
|
||||
"unclaimCmd":"Unclaim a ticket.",
|
||||
"statsCmd":"View ticket stats.",
|
||||
"autocloseCmd":"Set timer to automatically close ticket"
|
||||
"changeCmd":"تغيير نوع التيكت.",
|
||||
"claimCmd":"تعيينك لتيكت معين.",
|
||||
"unclaimCmd":"الغاء التغيين لتيكت معين",
|
||||
"statsCmd":"اضهار احصائيات التيكت",
|
||||
"autocloseCmd":"قم بضبط مؤقت لاغلاق التيكت تلقائياً"
|
||||
},
|
||||
"buttons": {
|
||||
"close": "إغلاق التكت",
|
||||
"delete": "حذف التكت",
|
||||
"reopen": "إعادة فتح التكت",
|
||||
"closeWithReason":"close with reason"
|
||||
"close": "إغلاق التيكت",
|
||||
"delete": "حذف التيكت",
|
||||
"reopen": "إعادة فتح التيكت",
|
||||
"closeWithReason":"اغلاق مع سبب"
|
||||
},
|
||||
"messages": {
|
||||
"closedDescription": "فقط الأداريين يمكنهم التحدث في هذا التكت الأن!\n\n*أضغط على الزر بالأسفل لحذف التكت او إعادة فتحة مجدداً!*",
|
||||
"closedDescription": "فقط الأداريين يمكنهم التحدث في هذا التيكت الأن!\n\n*أضغط على الزر بالأسفل لحذف التيكت او إعادة فتحة مجدداً!*",
|
||||
"createdTitle": "تم إنشاء تكت!",
|
||||
"createdDescription": "تم أنشاء تكت , قم بأنتظار الدعم في الطريق!",
|
||||
|
||||
"newTicketDmTitle": "تكت جديد!",
|
||||
"closedTicketDmTitle": "تم إغلاق التكت!",
|
||||
"deletedTicketDmTitle": "تم حذف التكت!",
|
||||
"closedTicketDmTitle": "تم إغلاق التيكت!",
|
||||
"deletedTicketDmTitle": "تم حذف التيكت!",
|
||||
"closedTicketDmDescription": "تم أغلاق تذكرتك من قبل إداري",
|
||||
"deletedTicketDmDescription": "تم حذف تذكرتك من قبل إداري!",
|
||||
"reopenTicketDmTitle": "تم إعادة فتح تذكرتك!",
|
||||
"reopenTicketDmDescription": "تم إعادة فتح التكت!",
|
||||
"reopenTicketDmDescription": "تم إعادة فتح التيكت!",
|
||||
|
||||
"chooseCategory": "أختر الكتقاجوري:",
|
||||
"gettingdeleted": "يتم حذف التكت...",
|
||||
"gettingdeleted": "يتم حذف التيكت...",
|
||||
|
||||
"none": "لا يوجد",
|
||||
"reason": "سبب",
|
||||
"createdat":"created at",
|
||||
"openedby":"opened by",
|
||||
"deletedby":"deleted by",
|
||||
"closedby":"closed by",
|
||||
"createdat":"تم الانشاء في",
|
||||
"openedby":"تم الانشاء من قبل",
|
||||
"deletedby":"تم الحذف من قبل",
|
||||
"closedby":"تم الاغلاق من قبل",
|
||||
|
||||
"modalreason":"What is the reason for closing this ticket?",
|
||||
"chooseATicket": "Choose a ticket"
|
||||
"modalreason":"ماهو سببك لاغلاق التيكت؟",
|
||||
"chooseATicket": "اختار تيكت معين"
|
||||
},
|
||||
"transcripts":{
|
||||
"title":"Transcript",
|
||||
"processed":"This transcript is being processed",
|
||||
"wait":"Please wait!",
|
||||
"estimated":"Estimated time",
|
||||
"available":"The transcript is available here"
|
||||
"title":"سجل",
|
||||
"processed":"يتم معالجة هذا السجل...",
|
||||
"wait":"فضلا انتظر",
|
||||
"estimated":"الوقت المتوقع",
|
||||
"available":"تم انشاء السجل وهو متاح هنا"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"Global Stats",
|
||||
"ticketTitle":"Ticket Stats for {0}",
|
||||
"userTitle":"User Stats for {0}",
|
||||
"systemTitle":"System Stats",
|
||||
"versionTitle":"Bot Version",
|
||||
"globalTitle":"احصائيات العامه",
|
||||
"ticketTitle":"احصائيات التيكت ل {0}",
|
||||
"userTitle":"احصائيات المستخدم {0}",
|
||||
"systemTitle":"احصائيات السيستم",
|
||||
"versionTitle":"نسخة البوت",
|
||||
|
||||
"ticketsCreated":"Tickets Created",
|
||||
"ticketsClosed":"Tickets Closed",
|
||||
"ticketsDeleted":"Tickets Deleted",
|
||||
"ticketsReopened":"Tickets Reopened",
|
||||
"ticketsAutoclosed":"Tickets Autoclosed",
|
||||
"transcriptsCreated":"Transcripts Created",
|
||||
"startupDate":"Startup Date",
|
||||
"latestUpdate":"Latest Update",
|
||||
"ticketCreatedOn":"Ticket Created On",
|
||||
"ticketCreatedBy":"Ticket Created By",
|
||||
"messagesSent":"Messages Sent",
|
||||
"status":"Status",
|
||||
"participants":"Participants",
|
||||
"role":"Role",
|
||||
"ticketsCreated":"التيكتس التي تمت انشاؤه",
|
||||
"ticketsClosed":"التيكتس التي تمت اغلاقه",
|
||||
"ticketsDeleted":"التيكتس التي تمت حذفه",
|
||||
"ticketsReopened":"التيكتس التي تمت العادة فتحه",
|
||||
"ticketsAutoclosed":"التيكتس التي تمت اغلاقه تلقائيا",
|
||||
"transcriptsCreated":"السجلات التي تمت انشاؤه",
|
||||
"startupDate":"تم تشغيل البوت في",
|
||||
"latestUpdate":"اخر التحديثات",
|
||||
"ticketCreatedOn":"تم انشاءالتيكت في",
|
||||
"ticketCreatedBy":"تم انشاء التيكت من قبل",
|
||||
"messagesSent":"جميع الرسائل",
|
||||
"status":"الحالة",
|
||||
"participants":"المشاركون",
|
||||
"role":"الرانك",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"Global Admin",
|
||||
"ticketAdmin":"Ticket Admin",
|
||||
"member":"Member",
|
||||
"open":"Open",
|
||||
"reopened":"Reopened",
|
||||
"closed":"Closed",
|
||||
"autoclosed":"Autoclosed"
|
||||
"globalAdmin":"ادمن عام",
|
||||
"ticketAdmin":"ادمن تيكت",
|
||||
"member":"عضو",
|
||||
"open":"مفتوح",
|
||||
"reopened":"اعادة فتحه",
|
||||
"closed":"مغلق",
|
||||
"autoclosed":"مغلق تلقائياً"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"This user can't be found in the stats database!"
|
||||
"errorUserNotFound":"هذا المستخدم لم يتم العثور عليه في قاعدة بياناتنا!"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"_CREDITS":"Stragar",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Грешни Аргументи!",
|
||||
"missingArgsDescription":"Липсват Аргументи",
|
||||
"noPermsTitle":"Нямате позволение!",
|
||||
"noPermsDescription":"Трябва ви `ADMINISTRATOR` правомощия или да бъде в списъка с роли!",
|
||||
"noPermsDelete":"Само админ може да изтрива тикети!",
|
||||
"chooseFromListTitle":"Грешно ID",
|
||||
"chooseFromListDescription":"Choose one of the id's below:",
|
||||
"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":"Changed ticket type to {0}!",
|
||||
|
||||
"statsTitle":"Статистика за {0}!",
|
||||
"autocloseTitle":"Този тикет ще се затвори автоматично след {0}!",
|
||||
"autocloseRejectTitle":"Този тикет вече няма да се затваря автоматично!",
|
||||
"autocloseWarn":"Това засяга само неактивни тикети!",
|
||||
|
||||
"goToTicket":"отидете на тикет",
|
||||
"ticketWarning":"Текста е добавен по-долу!",
|
||||
"maxTicketWarning":"**Предопреждение:** _Ти можеш да създадеш {0} тикети(s) време!_"
|
||||
},
|
||||
"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":"Транскриптът е достъпен тук"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"Глобална статистика",
|
||||
"ticketTitle":"Статистика на билета за {0}",
|
||||
"userTitle":"Статистика на потребителя за {0}",
|
||||
"systemTitle":"Системна статистика",
|
||||
"versionTitle":"Версия на бота",
|
||||
|
||||
"ticketsCreated":"Създадени билети",
|
||||
"ticketsClosed":"Затворени билети",
|
||||
"ticketsDeleted":"Изтрити билети",
|
||||
"ticketsReopened":"Повторно отворени билети",
|
||||
"ticketsAutoclosed":"Автоматично затворени билети",
|
||||
"transcriptsCreated":"Създадени транскрипти",
|
||||
"startupDate":"Дата на стартиране",
|
||||
"latestUpdate":"Последно обновление",
|
||||
"ticketCreatedOn":"Билет създаден на",
|
||||
"ticketCreatedBy":"Билет създаден от",
|
||||
"messagesSent":"Изпратени съобщения",
|
||||
"status":"Статус",
|
||||
"participants":"Участници",
|
||||
"role":"Роля",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"Глобален администратор",
|
||||
"ticketAdmin":"Администратор на билет",
|
||||
"member":"Член",
|
||||
"open":"Отворен",
|
||||
"reopened":"Повторно отворен",
|
||||
"closed":"Затворен",
|
||||
"autoclosed":"Автоматично затворен"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"Този потребител не може да бъде намерен в базата данни за статистика!"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"DJdj Development",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Invalid Arguments!",
|
||||
|
||||
+21
-21
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"spyeye_",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Neplatný Argument!",
|
||||
@@ -99,37 +99,37 @@
|
||||
"available":"Záloha je uložena zde!"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"Globalní statistiky",
|
||||
"ticketTitle":"Statistiky ticketů pro {0}",
|
||||
"userTitle":"Statistiky uživatele {0}",
|
||||
"systemTitle":"Systémové statistiky",
|
||||
"globalTitle":"Globální statistiky",
|
||||
"ticketTitle":"Ticket statistiky pro {0}",
|
||||
"userTitle":"Uživatelské statistiky pro {0}",
|
||||
"systemTitle":"Sytstémov= statistiky",
|
||||
"versionTitle":"Verze bota",
|
||||
|
||||
"ticketsCreated":"Ticket založen",
|
||||
"ticketsClosed":"Ticket uzavřen",
|
||||
"ticketsDeleted":"Ticket vymazán",
|
||||
"ticketsReopened":"Ticket znovu otevřen",
|
||||
"ticketsAutoclosed":"Ticket byl automaticky uzavřen",
|
||||
"transcriptsCreated":"Transcripty vytvořeny",
|
||||
"startupDate":"Datum spuštění",
|
||||
"ticketsCreated":"Ticketů vytvořeno:",
|
||||
"ticketsClosed":"Tickety zavřeno:",
|
||||
"ticketsDeleted":"Ticketu smazáno:",
|
||||
"ticketsReopened":"Ticketů znovuotevřených:",
|
||||
"ticketsAutoclosed":"Ticketů automaticky zavřeno:",
|
||||
"transcriptsCreated":"Záloh ticketů vytvořeno:",
|
||||
"startupDate":"Datum zapnutí",
|
||||
"latestUpdate":"Poslední aktualizace",
|
||||
"ticketCreatedOn":"Ticket vytvořen dne",
|
||||
"ticketCreatedOn":"Ticket založen na",
|
||||
"ticketCreatedBy":"Ticket vytvořil",
|
||||
"messagesSent":"Zpráva odeslána",
|
||||
"messagesSent":"Zpráva poslána",
|
||||
"status":"Status",
|
||||
"participants":"Účastníci",
|
||||
"role":"Role",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"Global Admin",
|
||||
"globalAdmin":"Globální Admin",
|
||||
"ticketAdmin":"Ticket Admin",
|
||||
"member":"Uživatel",
|
||||
"open":"Otevřít",
|
||||
"reopened":"Znovu Otevřít",
|
||||
"closed":"Uzavřít",
|
||||
"autoclosed":"Automaticky uzavřen"
|
||||
"member":"Člen",
|
||||
"open":"Otevřený",
|
||||
"reopened":"Znovuotevřený",
|
||||
"closed":"Zavřený",
|
||||
"autoclosed":"Automaticky zavřený"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"Tento uživatel není v databázi statistik k nalezení!"
|
||||
"errorUserNotFound":"Tento uživatel nebyl nalezen v databázi statistik!"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"the_gamer#5095",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":".the_gamer",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors": {
|
||||
"missingArgsTitle": "Ugyldigt Argument!",
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"DJj123dj#1706",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"djj123dj",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Onjuiste parameters!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"DJdj Development",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Invalid Arguments!",
|
||||
|
||||
+88
-88
@@ -1,135 +1,135 @@
|
||||
{
|
||||
"_CREDITS":"Sanke#6086",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"tostam",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Arguments invalides!",
|
||||
"missingArgsDescription":"Argument manquant",
|
||||
"noPermsTitle":"Pas de permissions!",
|
||||
"noPermsDescription":"Vous avez besoin de la permission `ADMINISTRATOR` ou être dans la liste des rôles autorisés!",
|
||||
"noPermsDelete":"Seuls les administrateurs peuvent supprimer un ticket!",
|
||||
"chooseFromListTitle":"Invalid ID",
|
||||
"missingArgsTitle":"Arguments invalides !",
|
||||
"missingArgsDescription":"Argument manquant !",
|
||||
"noPermsTitle":"Tu n'as pas les permissions requises !",
|
||||
"noPermsDescription":"Vous avez besoin de la permission `ADMINISTRATOR` ou être dans la liste des rôles autorisés !",
|
||||
"noPermsDelete":"Seuls les staffs peuvent supprimer un ticket !",
|
||||
"chooseFromListTitle":"ID invalide !",
|
||||
"chooseFromListDescription":"Choisissez l'un des identifiants ci-dessous:",
|
||||
"boterror":"Bot Error!",
|
||||
"notInTicketTitle":"Vous n'êtes pas dans un ticket!",
|
||||
"notInTicketDescription":"Cette commande ne fonctionne pas en dehors des tickets!",
|
||||
"ticketDoesntExist":"Ce ticket n'existe plus!",
|
||||
"roleDoesntExist":"Ce rôle n'existe plus!",
|
||||
"anotherOption":"Cette option n'est pas un ticket mais un autre type!",
|
||||
"maxAmountTitle":"Montant maximum atteint!",
|
||||
"maxAmountDescription":"Vous avez atteint le nombre maximum de tickets autorisés!\nVous ne pouvez donc pas en créer un nouveau!",
|
||||
"somethingWentWrong":"**Quelque chose s'est mal passé!**\nVeuillez réessayer une autre fois!"
|
||||
"boterror":"Erreur du bot !",
|
||||
"notInTicketTitle":"Vous n'êtes pas dans un ticket !",
|
||||
"notInTicketDescription":"Cette commande ne fonctionne pas en dehors des tickets !",
|
||||
"ticketDoesntExist":"Ce ticket n'existe pas !",
|
||||
"roleDoesntExist":"Ce rôle n'existe pas !",
|
||||
"anotherOption":"Cette option n'est pas un ticket mais un autre type !",
|
||||
"maxAmountTitle":"Montant maximum de ticket atteint !",
|
||||
"maxAmountDescription":"Vous avez atteint le nombre maximum de tickets autorisés !\nVous ne pouvez donc pas en créer un nouveau !",
|
||||
"somethingWentWrong":"**Quelque chose s'est mal passé !**\nVeuillez réessayer une autre fois !"
|
||||
},
|
||||
"commands":{
|
||||
"userAddedTitle":"{0} a été ajouté à ce ticket!",
|
||||
"userRemovedTitle":"Supprimé {0} de ce ticket!",
|
||||
"renameTitle":"Changement du nom en {0}!",
|
||||
"closeTitle":"Fermé ce ticket!",
|
||||
"userAddedTitle":"{0} a été ajouté à ce ticket !",
|
||||
"userRemovedTitle":"{0} a été supprimé de ce ticket !",
|
||||
"renameTitle":"Changement de nom du ticket en {0} !",
|
||||
"closeTitle":"Ticket fermé",
|
||||
"deleteTitle":"Suppression de ce ticket...",
|
||||
"reopenTitle":"A rouvert ce ticket!",
|
||||
"reopenTitle":"Ticket réouvert",
|
||||
|
||||
"claimTitle":"Ce ticket est maintenant réclamé à {0}",
|
||||
"unclaimTitle":"Ce ticket n'est pas réclamé!",
|
||||
"changeTitle":"Modification du type de ticket en {0}!",
|
||||
"claimTitle":"Ce ticket est maintenant réclamé par {0}",
|
||||
"unclaimTitle":"Ce ticket n'est plus réclamé !",
|
||||
"changeTitle":"Modification du type de ticket en {0} !",
|
||||
|
||||
"statsTitle":"Voici les statistiques pour {0}!",
|
||||
"autocloseTitle":"Ce ticket sera automatiquement clôturé après {0}!",
|
||||
"autocloseRejectTitle":"Ce ticket ne sera plus clôturé automatiquement!",
|
||||
"autocloseWarn":"Cela n'affecte que les tickets inactifs!",
|
||||
"statsTitle":"Voici les statistiques pour {0} !",
|
||||
"autocloseTitle":"Ce ticket sera automatiquement clôturé après {0} !",
|
||||
"autocloseRejectTitle":"Ce ticket ne sera plus clôturé automatiquement !",
|
||||
"autocloseWarn":"Cela n'affecte que les tickets inactifs !",
|
||||
|
||||
"goToTicket":"Aller au ticket",
|
||||
"ticketWarning":"L'intégration est dans le message ci-dessous!",
|
||||
"maxTicketWarning":"**Attention :** _Vous ne pouvez créer que {0} ticket(s) à la fois !_"
|
||||
"ticketWarning":"L'intégration est dans le message ci-dessous !",
|
||||
"maxTicketWarning":"**Attention :** _Vous ne pouvez créer seulement {0} ticket(s) à la fois !_"
|
||||
},
|
||||
"helpMenu":{
|
||||
"title":"Commandes disponibles :",
|
||||
"header1":"**Allez à {0} pour créer un ticket !**\n\n",
|
||||
"title":"Commandes disponibles :",
|
||||
"header1":"**Allez à {0} pour créer un ticket !**\n\n",
|
||||
"header2":"**Exécutez la commande `/new` ou `/ticket` pour créer un ticket !**\n\n",
|
||||
|
||||
"msgCmd":"Faire apparaître une intégration avec des boutons. (administrateurs uniquement)",
|
||||
"renameCmd":"Renommer un ticket. (sans espaces)",
|
||||
"closeCmd":"Fermer un ticket.",
|
||||
"deleteCmd":"Supprimer un billet.",
|
||||
"addCmd":"Ajouter un utilisateur au ticket.",
|
||||
"removeCmd":"Supprimer un utilisateur du ticket.",
|
||||
"reopenCmd":"Rouvrir un ticket après sa clôture.",
|
||||
"changeCmd":"Changer le type de ticket.",
|
||||
"claimCmd":"Réclamer un billet",
|
||||
"unclaimCmd":"Annuler la réclamation d'un ticket.",
|
||||
"statsCmd":"Afficher les statistiques des tickets.",
|
||||
"msgCmd":"Faire apparaître une intégration avec des boutons (administrateurs uniquement)",
|
||||
"renameCmd":"Renommer un ticket (sans espaces)",
|
||||
"closeCmd":"Fermer un ticket",
|
||||
"deleteCmd":"Supprimer un ticket",
|
||||
"addCmd":"Ajouter un utilisateur au ticket",
|
||||
"removeCmd":"Supprimer un utilisateur du ticket",
|
||||
"reopenCmd":"Réouvrir un ticket après sa clôture",
|
||||
"changeCmd":"Changer le type de ticket",
|
||||
"claimCmd":"Réclamer un ticket",
|
||||
"unclaimCmd":"Annuler la réclamation d'un ticket",
|
||||
"statsCmd":"Afficher les statistiques des tickets",
|
||||
"autocloseCmd":"Définir une minuterie pour fermer automatiquement le ticket"
|
||||
},
|
||||
"buttons":{
|
||||
"close":"Fermer le ticket",
|
||||
"delete":"Supprimer le billet",
|
||||
"reopen":"Billet de réouverture",
|
||||
"closeWithReason":"fermer avec une raison"
|
||||
"delete":"Supprimer le ticket",
|
||||
"reopen":"Réouvrir le ticket",
|
||||
"closeWithReason":"Fermer avec une raison"
|
||||
},
|
||||
"messages":{
|
||||
"closedDescription":"Seuls les administrateurs peuvent parler dans ce ticket maintenant !\n\n*Cliquez sur le bouton ci-dessous pour supprimer ou rouvrir ce ticket !*",
|
||||
"createdTitle":"Ticket créé !",
|
||||
"closedDescription":"Seuls les administrateurs peuvent parler dans ce ticket maintenant !\n\n*Cliquez sur le bouton ci-dessous pour supprimer ou réouvrir ce ticket !*",
|
||||
"createdTitle":"Ticket créé !",
|
||||
"createdDescription":"Votre ticket est créé, vous pouvez le détecter par un ping !",
|
||||
|
||||
"newTicketDmTitle":"Nouveau billet!",
|
||||
"closedTicketDmTitle":"Billet fermé!",
|
||||
"deletedTicketDmTitle":"Billet supprimé !",
|
||||
"closedTicketDmDescription":"Votre billet est fermé !",
|
||||
"deletedTicketDmDescription":"Votre billet est supprimé !",
|
||||
"reopenTicketDmTitle":"Billet rouvert!",
|
||||
"reopenTicketDmDescription":"Votre billet est rouvert !",
|
||||
"newTicketDmTitle":"Nouveau ticket !",
|
||||
"closedTicketDmTitle":"Ticket fermé !",
|
||||
"deletedTicketDmTitle":"Ticket supprimé !",
|
||||
"closedTicketDmDescription":"Votre ticket est fermé !",
|
||||
"deletedTicketDmDescription":"Votre ticket est supprimé !",
|
||||
"reopenTicketDmTitle":"Ticket réouvert !",
|
||||
"reopenTicketDmDescription":"Votre ticket est réouvert !",
|
||||
|
||||
"chooseCategory":"choisissez une catégorie:",
|
||||
"chooseCategory":"Choisissez une catégorie:",
|
||||
"gettingdeleted":"Le ticket est en cours de suppression...",
|
||||
|
||||
"none":"rien",
|
||||
"reason":"raison",
|
||||
"none":"Rien",
|
||||
"reason":"Raison",
|
||||
"createdat":"Créé à",
|
||||
"openedby":"Ouvert par",
|
||||
"deletedby":"supprimé par",
|
||||
"closedby":"fermé par",
|
||||
"deletedby":"Supprimé par",
|
||||
"closedby":"Fermé par",
|
||||
|
||||
"modalreason":"Qu’elle est la raison pour fermer ce ticket?",
|
||||
"modalreason":"Qu'elle est la raison pour fermer ce ticket ?",
|
||||
"chooseATicket": "Choisir un ticket"
|
||||
},
|
||||
"transcripts":{
|
||||
"title":"Transcript",
|
||||
"processed":"Cette transcript est en cours de traitement",
|
||||
"wait":"S'il vous plait, attendez...",
|
||||
"estimated":"Temps estime:",
|
||||
"estimated":"Temps estimé:",
|
||||
"available":"La transcript est disponible ici"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"Global Stats",
|
||||
"ticketTitle":"Ticket Stats for {0}",
|
||||
"userTitle":"User Stats for {0}",
|
||||
"systemTitle":"System Stats",
|
||||
"versionTitle":"Bot Version",
|
||||
"globalTitle":"Statistiques du serveur",
|
||||
"ticketTitle":"Statistiques des tickets pour {0}",
|
||||
"userTitle":"Statistiques des utilisateurs pour {0}",
|
||||
"systemTitle":"Statistiques du système",
|
||||
"versionTitle":"Version du bot",
|
||||
|
||||
"ticketsCreated":"Tickets Created",
|
||||
"ticketsClosed":"Tickets Closed",
|
||||
"ticketsDeleted":"Tickets Deleted",
|
||||
"ticketsReopened":"Tickets Reopened",
|
||||
"ticketsAutoclosed":"Tickets Autoclosed",
|
||||
"transcriptsCreated":"Transcripts Created",
|
||||
"startupDate":"Startup Date",
|
||||
"latestUpdate":"Latest Update",
|
||||
"ticketCreatedOn":"Ticket Created On",
|
||||
"ticketCreatedBy":"Ticket Created By",
|
||||
"messagesSent":"Messages Sent",
|
||||
"ticketsCreated":"Tickets créés",
|
||||
"ticketsClosed":"Tickets fermés",
|
||||
"ticketsDeleted":"Tickets supprimés",
|
||||
"ticketsReopened":"Tickets réouverts",
|
||||
"ticketsAutoclosed":"Tickets fermés automatiquement",
|
||||
"transcriptsCreated":"Transcriptions créées",
|
||||
"startupDate":"Date de démarrage du bot",
|
||||
"latestUpdate":"Dernière mise à jour",
|
||||
"ticketCreatedOn":"Ticket créé le",
|
||||
"ticketCreatedBy":"Ticket créé par",
|
||||
"messagesSent":"Messages envoyés",
|
||||
"status":"Status",
|
||||
"participants":"Participants",
|
||||
"role":"Role",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"Global Admin",
|
||||
"ticketAdmin":"Ticket Admin",
|
||||
"member":"Member",
|
||||
"open":"Open",
|
||||
"reopened":"Reopened",
|
||||
"closed":"Closed",
|
||||
"autoclosed":"Autoclosed"
|
||||
"globalAdmin":"Administrateur global",
|
||||
"ticketAdmin":"Administrateur des tickets",
|
||||
"member":"Membre",
|
||||
"open":"Ouvrir",
|
||||
"reopened":"Réouvert",
|
||||
"closed":"Fermé",
|
||||
"autoclosed":"Fermé automatiquement"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"This user can't be found in the stats database!"
|
||||
"errorUserNotFound":"Cet utilisateur est introuvable dans la base de données de statistiques !"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"david.#8276 ",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"david.3",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Ungültiges Argument!",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"ꙅoᴎɒᎸɘƚꙅ#3744",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Invalid Arguments!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Snowy",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Hibás paraméterek!",
|
||||
|
||||
+26
-26
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"erxg",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Argumen tidak valid!",
|
||||
@@ -99,37 +99,37 @@
|
||||
"available":"Transkrip tersedia di sini"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"Global Stats",
|
||||
"ticketTitle":"Ticket Stats for {0}",
|
||||
"userTitle":"User Stats for {0}",
|
||||
"systemTitle":"System Stats",
|
||||
"versionTitle":"Bot Version",
|
||||
"globalTitle":"Statistik Global",
|
||||
"ticketTitle":"Status Tiket Untuk {0}",
|
||||
"userTitle":"Status Pengguna Untuk {0}",
|
||||
"systemTitle":"Status Sistem",
|
||||
"versionTitle":"Versi Robot",
|
||||
|
||||
"ticketsCreated":"Tickets Created",
|
||||
"ticketsClosed":"Tickets Closed",
|
||||
"ticketsDeleted":"Tickets Deleted",
|
||||
"ticketsReopened":"Tickets Reopened",
|
||||
"ticketsAutoclosed":"Tickets Autoclosed",
|
||||
"transcriptsCreated":"Transcripts Created",
|
||||
"startupDate":"Startup Date",
|
||||
"latestUpdate":"Latest Update",
|
||||
"ticketCreatedOn":"Ticket Created On",
|
||||
"ticketCreatedBy":"Ticket Created By",
|
||||
"messagesSent":"Messages Sent",
|
||||
"ticketsCreated":"Tiket Dibuat",
|
||||
"ticketsClosed":"Tiket Ditutup",
|
||||
"ticketsDeleted":"Tiket Dihapus",
|
||||
"ticketsReopened":"Tiket Dibuka Kembali",
|
||||
"ticketsAutoclosed":"Tiket Ditutup Otomatis",
|
||||
"transcriptsCreated":"Transkrip Dibuat",
|
||||
"startupDate":"Tanggal Mulai",
|
||||
"latestUpdate":"Pembaruan Terbaru",
|
||||
"ticketCreatedOn":"Tiket Dibuat Pada",
|
||||
"ticketCreatedBy":"Tiket Dibuat Oleh",
|
||||
"messagesSent":"Pesan Terkirim",
|
||||
"status":"Status",
|
||||
"participants":"Participants",
|
||||
"role":"Role",
|
||||
"participants":"Partisipan",
|
||||
"role":"Peran",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"Global Admin",
|
||||
"globalAdmin":"Admin Global",
|
||||
"ticketAdmin":"Ticket Admin",
|
||||
"member":"Member",
|
||||
"open":"Open",
|
||||
"reopened":"Reopened",
|
||||
"closed":"Closed",
|
||||
"autoclosed":"Autoclosed"
|
||||
"member":"Anggota",
|
||||
"open":"Buka",
|
||||
"reopened":"Dibuka kembali",
|
||||
"closed":"Ditutup",
|
||||
"autoclosed":"Ditutup Otomatis"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"This user can't be found in the stats database!"
|
||||
"errorUserNotFound":"Pengguna ini tidak dapat ditemukan dalam basis data statistik!"
|
||||
}
|
||||
}
|
||||
+31
-31
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Maurizio#0268",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"maurizio26",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Argomenti non validi!",
|
||||
@@ -98,38 +98,38 @@
|
||||
"estimated":"Tempo estimato",
|
||||
"available":"La trascrizione è disponibile qui"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"Global Stats",
|
||||
"ticketTitle":"Ticket Stats for {0}",
|
||||
"userTitle":"User Stats for {0}",
|
||||
"systemTitle":"System Stats",
|
||||
"versionTitle":"Bot Version",
|
||||
"stats": {
|
||||
"globalTitle": "Statistiche Globali",
|
||||
"ticketTitle": "Statistiche Ticket per {0}",
|
||||
"userTitle": "Statistiche Utenti per {0}",
|
||||
"systemTitle": "Sistema Statistiche",
|
||||
"versionTitle": "Versione Bot",
|
||||
|
||||
"ticketsCreated":"Tickets Created",
|
||||
"ticketsClosed":"Tickets Closed",
|
||||
"ticketsDeleted":"Tickets Deleted",
|
||||
"ticketsReopened":"Tickets Reopened",
|
||||
"ticketsAutoclosed":"Tickets Autoclosed",
|
||||
"transcriptsCreated":"Transcripts Created",
|
||||
"startupDate":"Startup Date",
|
||||
"latestUpdate":"Latest Update",
|
||||
"ticketCreatedOn":"Ticket Created On",
|
||||
"ticketCreatedBy":"Ticket Created By",
|
||||
"messagesSent":"Messages Sent",
|
||||
"status":"Status",
|
||||
"participants":"Participants",
|
||||
"role":"Role",
|
||||
"ticketsCreated": "Tickets Creato",
|
||||
"ticketsClosed": "Tickets Chiuso",
|
||||
"ticketsDeleted": "Tickets Eliminato",
|
||||
"ticketsReopened": "Tickets Riaperto",
|
||||
"ticketsAutoclosed": "Tickets Chiuso Automaticamente",
|
||||
"transcriptsCreated": "Transcrizione Creata",
|
||||
"startupDate": "Data Inizio",
|
||||
"latestUpdate": "Ultimo Update",
|
||||
"ticketCreatedOn": "Ticket Creato Su",
|
||||
"ticketCreatedBy": "Ticket Creato Da",
|
||||
"messagesSent": "Messaggi Inviati",
|
||||
"status": "Stato",
|
||||
"participants": "Partecipanti",
|
||||
"role": "Ruolo",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"Global Admin",
|
||||
"ticketAdmin":"Ticket Admin",
|
||||
"member":"Member",
|
||||
"open":"Open",
|
||||
"reopened":"Reopened",
|
||||
"closed":"Closed",
|
||||
"autoclosed":"Autoclosed"
|
||||
"switches": {
|
||||
"globalAdmin": "Amministratore Globale",
|
||||
"ticketAdmin": "Amministratore Ticket",
|
||||
"member": "Membro",
|
||||
"open": "Aperto",
|
||||
"reopened": "Riaperto",
|
||||
"closed": "Chiuso",
|
||||
"autoclosed": "Chiuso Automaticamente"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"This user can't be found in the stats database!"
|
||||
"errorUserNotFound": "Questo utente non può essere trovato nel database delle statistiche!"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"_CREDITS":"raze.hama",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"ئهوهی ههڵتبژاردوه نادروسته",
|
||||
"missingArgsDescription":"ئهوهی ههڵتبژاردوه ناردوسته",
|
||||
"noPermsTitle":"هیچ مۆڵەتێک نییە!",
|
||||
"noPermsDescription":"پێویستت بە مۆڵەتی ئهدمین سترهیتهر هەیە یان دهبێت لە لیستی ڕۆڵە ڕێگەپێدراوەکاندا بیت!",
|
||||
"noPermsDelete":"تەنها ئەدمینەکان دەتوانن بلیت بسڕنەوە!",
|
||||
"chooseFromListTitle":"ناسنامەی نادروست",
|
||||
"chooseFromListDescription":"یەکێک لەم ناسنامانهی خوارەوە هەڵبژێرە:",
|
||||
"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":"**Go to {0} to create a ticket!**\n\n",
|
||||
"header2":"**فەرمانەکە جێبەجێ بکە `/new` or `/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":" گواستنهوهكه لێرەدا بەردەستە"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"ئاماری جیهانی",
|
||||
"ticketTitle":"ئاماری بلیت بۆ {0}",
|
||||
"userTitle":"ئاماری بەکارهێنەر بۆ {0}",
|
||||
"systemTitle":"ئاماری سیستەم",
|
||||
"versionTitle":"وەشانی بۆت",
|
||||
|
||||
"ticketsCreated":"بلیتەکان دروستکراون",
|
||||
"ticketsClosed":"بلیتەکان داخراون",
|
||||
"ticketsDeleted":"بلیتەکان سڕاونەتەوە",
|
||||
"ticketsReopened":"بلیتەکان کرایەوە",
|
||||
"ticketsAutoclosed":"بلیتەکان بە شێوەیەکی ئۆتۆماتیکی داخراون",
|
||||
"transcriptsCreated":"گواستنهوه دروستکراون",
|
||||
"startupDate":"بەرواری دەستپێکردن",
|
||||
"latestUpdate":"نوێترین نوێکردنەوە",
|
||||
"ticketCreatedOn":"بلیت دروستکراوە لەسەر",
|
||||
"ticketCreatedBy":"بلیت دروستکراوە لەلایەن...",
|
||||
"messagesSent":"پەیامەکان نێردراوە",
|
||||
"status":"دۆخ",
|
||||
"participants":"بەشداربووان",
|
||||
"role":"ئەرک",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"بەڕێوەبەری جیهانی",
|
||||
"ticketAdmin":"ئەدمینی بلیتەکان",
|
||||
"member":"ئەندام",
|
||||
"open":"کردنەوە",
|
||||
"reopened":"دووبارە کرایەوە",
|
||||
"closed":"داخراوە",
|
||||
"autoclosed":"ئۆتۆماتیکی داخراوە"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"ئەم بەکارهێنەرە لە بنکەدراوەی ئامارەکاندا نادۆزرێتەوە!"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"_CREDITS":"Ronalds1398",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Nepareizi argumenti!",
|
||||
"missingArgsDescription":"Trūkst argumentu!",
|
||||
"noPermsTitle":"Nav atļauju!",
|
||||
"noPermsDescription":"Jums ir nepieciešama `ADMINISTRATOR` atļauja vai jābūt atļautajām lomām!",
|
||||
"noPermsDelete":"Tikai administratori var izdzēst biļetes!",
|
||||
"chooseFromListTitle":"Nederīgs ID",
|
||||
"chooseFromListDescription":"Izvēlieties vienu no zemāk esošajiem ID:",
|
||||
"boterror":"Bota kļūda!",
|
||||
"notInTicketTitle":"Jūs neesat biļetē!",
|
||||
"notInTicketDescription":"Šī komanda nedarbojas ārpus biļetēm!",
|
||||
"ticketDoesntExist":"Šāda biļete vairs nepastāv!",
|
||||
"roleDoesntExist":"Šāda loma vairs nepastāv!",
|
||||
"anotherOption":"Tas nav biļete, bet citas veida!",
|
||||
"maxAmountTitle":"Sasniegta maksimālā summa!",
|
||||
"maxAmountDescription":"Jūs esat sasniedzis maksimālo atļauto biļešu skaitu!\nTāpēc jūs nevarat izveidot jaunu!",
|
||||
"somethingWentWrong":"**Kaut kas nogāja greizi!**\nLūdzu, mēģiniet vēlreiz!"
|
||||
},
|
||||
"commands":{
|
||||
"userAddedTitle":"Pievienots {0} šai biļetei!",
|
||||
"userRemovedTitle":"Noņemts {0} no šīs biļetes!",
|
||||
"renameTitle":"Pārdēvēts uz {0}!",
|
||||
"closeTitle":"Biļete aizvērta!",
|
||||
"deleteTitle":"Dzēšam biļeti",
|
||||
"reopenTitle":"Atkārtoti atveram biļeti!",
|
||||
|
||||
"claimTitle":"Šo biļeti ņēma {0}",
|
||||
"unclaimTitle":"Šī biļete nav piešķirta nevienam!",
|
||||
"changeTitle":"Biļetes veids mainīts uz {0}!",
|
||||
|
||||
"statsTitle":"Šeit ir statistika par {0}!",
|
||||
"autocloseTitle":"Šī biļete tiks automātiski aizvērta pēc {0}!",
|
||||
"autocloseRejectTitle":"Šī biļete vairs netiks automātiski aizvērta!",
|
||||
"autocloseWarn":"Tas attiecas tikai uz neaktīvām biļetēm!",
|
||||
|
||||
"goToTicket":"doties uz biļeti",
|
||||
"ticketWarning":"Iegults ir zemāk esošajā ziņā!",
|
||||
"maxTicketWarning":"**Brīdinājums:** _Jūs varat izveidot tikai tik daudz biļetes vienlaikus: {0}!_"
|
||||
},
|
||||
"helpMenu":{
|
||||
"title":"Pieejamie komandu:",
|
||||
"header1":"**Dodieties uz {0}, lai izveidotu biļeti!**\n\n",
|
||||
"header2":"**Izpildiet komandu `/new` vai `/ticket`, lai izveidotu biļeti!**\n\n",
|
||||
|
||||
"msgCmd":"Izveidojiet iegultni ar pogām. (tikai administratoriem)",
|
||||
"renameCmd":"Pārdēvējiet biļeti. (bez atstarpēm)",
|
||||
"closeCmd":"Aizveriet biļeti.",
|
||||
"deleteCmd":"Dzēst biļeti.",
|
||||
"addCmd":"Pievienojiet lietotāju biļetei.",
|
||||
"removeCmd":"Noņemt lietotāju no biļetes.",
|
||||
"reopenCmd":"Atveriet atkārtoti aizvērtu biļeti.",
|
||||
"changeCmd":"Mainiet biļetes veidu.",
|
||||
"claimCmd":"Paņemiet biļeti.",
|
||||
"unclaimCmd":"Atsakieties no biļetes.",
|
||||
"statsCmd":"Apskatiet biļetes statistiku.",
|
||||
"autocloseCmd":"Iestatiet taimeri, lai automātiski aizvērtu biļeti"
|
||||
},
|
||||
"buttons":{
|
||||
"close":"Aizveriet biļeti",
|
||||
"delete":"Dzēst biļeti",
|
||||
"reopen":"Atveriet biļeti",
|
||||
"closeWithReason":"Aizveriet ar iemeslu"
|
||||
},
|
||||
"messages":{
|
||||
"closedDescription":"Pašlaik šajā biļetē var runāt tikai administratori!\n\n*Nospiediet zemāk esošo pogu, lai dzēstu vai atkārtoti atveriet šo biļeti!*",
|
||||
"createdTitle":"Biļete izveidota!",
|
||||
"createdDescription":"Jūsu biļete ir izveidota, to varat atpazīt, izmantojot pingu!",
|
||||
|
||||
"newTicketDmTitle":"Jauna biļete!",
|
||||
"closedTicketDmTitle":"Biļete aizvērta!",
|
||||
"deletedTicketDmTitle":"Biļete dzēsta!",
|
||||
"closedTicketDmDescription":"Jūsu biļete ir aizvērta!",
|
||||
"deletedTicketDmDescription":"Jūsu biļete ir dzēsta!",
|
||||
"reopenTicketDmTitle":"Biļete atkārtoti atvērta!",
|
||||
"reopenTicketDmDescription":"Jūsu biļete ir atkārtoti atvērta!",
|
||||
|
||||
"chooseCategory":"izvēlieties kategoriju:",
|
||||
"gettingdeleted":"Biļete tiek dzēsta...",
|
||||
|
||||
"none":"nav",
|
||||
"reason":"iemērs",
|
||||
"createdat":"izveidots",
|
||||
"openedby":"atvēris",
|
||||
"deletedby":"dzēsts",
|
||||
"closedby":"aizvērts",
|
||||
|
||||
"modalreason":"Kāds ir šīs biļetes aizvēršanas iemesls?",
|
||||
"chooseATicket": "Izvēlieties biļeti"
|
||||
},
|
||||
"transcripts":{
|
||||
"title":"Transkripcija",
|
||||
"processed":"Šī transkripcija tiek apstrādāta",
|
||||
"wait":"Lūdzu, uzgaidiet!",
|
||||
"estimated":"Apmēramais laiks",
|
||||
"available":"Transkripcija pieejama šeit"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"Globālā statistika",
|
||||
"ticketTitle":"Biļetes statistika priekš {0}",
|
||||
"userTitle":"Lietotāja statistika priekš {0}",
|
||||
"systemTitle":"Sistēmas statistika",
|
||||
"versionTitle":"Bota versija",
|
||||
|
||||
"ticketsCreated":"Biļetes izveidotas",
|
||||
"ticketsClosed":"Biļetes aizvērtas",
|
||||
"ticketsDeleted":"Biļetes dzēstas",
|
||||
"ticketsReopened":"Biļetes atkārtoti atvērtas",
|
||||
"ticketsAutoclosed":"Biļetes automātiski aizvērtas",
|
||||
"transcriptsCreated":"Transkripcijas izveidotas",
|
||||
"startupDate":"Palaišanas datums",
|
||||
"latestUpdate":"Pēdējā atjaunināšana",
|
||||
"ticketCreatedOn":"Biļete izveidota",
|
||||
"ticketCreatedBy":"Biļete izveidota",
|
||||
"messagesSent":"Ziņojumi nosūtīti",
|
||||
"status":"Statuss",
|
||||
"participants":"Dalībnieki",
|
||||
"role":"Loma",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"Globālais Administrātors",
|
||||
"ticketAdmin":"Biļešu Administrātors",
|
||||
"member":"Dalībnieks",
|
||||
"open":"Atvērts",
|
||||
"reopened":"Atkārtoti atvērts",
|
||||
"closed":"Aizvērts",
|
||||
"autoclosed":"Automātiski aizvērts"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"Lietotājs nav atrasts mūsu datubāzē!"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"NoOneNook#0266",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"noonenook",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Ugyldige argumenter!",
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"_CREDITS":"sasanwm",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"آرگومانهای گم شده!",
|
||||
"missingArgsDescription":"آرگومان گم شده",
|
||||
"noPermsTitle":"شما دسترسی نداری!",
|
||||
"noPermsDescription":"شما نیاز به دسترسی `ADMINISTRATOR` دارید یا باید در لیست رولهای مجاز باشید!",
|
||||
"noPermsDelete":"فقط ادمین ها میتونند یک تیکت رو حذف کنند!",
|
||||
"chooseFromListTitle":"ایدی نامعتبر",
|
||||
"chooseFromListDescription":"یکی از ایدیهای زیر رو انتخاب کن:",
|
||||
"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":"گزارش در دسترس هست در اینجا"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"آمار گلوبال",
|
||||
"ticketTitle":"آمار تیکت برای {0}",
|
||||
"userTitle":"آمار یوزر برای {0}",
|
||||
"systemTitle":"آمار سیستم",
|
||||
"versionTitle":"ورژن ربات",
|
||||
|
||||
"ticketsCreated":"تیکتهای ایجاد شده",
|
||||
"ticketsClosed":"تیکتهای بسته شده",
|
||||
"ticketsDeleted":"تیکتهای حذف شده",
|
||||
"ticketsReopened":"تیکتهای دوباره باز شده",
|
||||
"ticketsAutoclosed":"تیکتهای به طور خودکار بسته شده",
|
||||
"transcriptsCreated":"گزارشهای ایجاد شده",
|
||||
"startupDate":"تاریخ راهاندازی",
|
||||
"latestUpdate":"آخرین بروزرسانی",
|
||||
"ticketCreatedOn":"تیکت ایجاد شده در",
|
||||
"ticketCreatedBy":"تیکت ایجاد شده توسط",
|
||||
"messagesSent":"پیامهای ارسال شده",
|
||||
"status":"وضعیت",
|
||||
"participants":"مشارکتکنندگان",
|
||||
"role":"رول",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"ادمین گلوبال",
|
||||
"ticketAdmin":"ادمین تیکت",
|
||||
"member":"ممبر",
|
||||
"open":"باز",
|
||||
"reopened":"دوباره باز شده",
|
||||
"closed":"بسته شده",
|
||||
"autoclosed":"بسته شده به طور خودکار"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"این یوزر در دیتابیس آمار پیدا نمیشه!"
|
||||
}
|
||||
}
|
||||
+28
-28
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"MKevas#8311",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"mkevas",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Nieprawidłowe argumenty!",
|
||||
@@ -99,37 +99,37 @@
|
||||
"available":"Transkrypcja jest dostępna tutaj"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"Global Stats",
|
||||
"ticketTitle":"Ticket Stats for {0}",
|
||||
"userTitle":"User Stats for {0}",
|
||||
"systemTitle":"System Stats",
|
||||
"versionTitle":"Bot Version",
|
||||
"globalTitle":"Globalne Statystyki",
|
||||
"ticketTitle":"Statystyki biletów dla {0}",
|
||||
"userTitle":"Statystyki użytkowników dla {0}",
|
||||
"systemTitle":"Statystyki systemu",
|
||||
"versionTitle":"Wersja bota",
|
||||
|
||||
"ticketsCreated":"Tickets Created",
|
||||
"ticketsClosed":"Tickets Closed",
|
||||
"ticketsDeleted":"Tickets Deleted",
|
||||
"ticketsReopened":"Tickets Reopened",
|
||||
"ticketsAutoclosed":"Tickets Autoclosed",
|
||||
"transcriptsCreated":"Transcripts Created",
|
||||
"startupDate":"Startup Date",
|
||||
"latestUpdate":"Latest Update",
|
||||
"ticketCreatedOn":"Ticket Created On",
|
||||
"ticketCreatedBy":"Ticket Created By",
|
||||
"messagesSent":"Messages Sent",
|
||||
"ticketsCreated":"Bilety stworzone",
|
||||
"ticketsClosed":"Bilety zamknięte",
|
||||
"ticketsDeleted":"Bilety skasowane",
|
||||
"ticketsReopened":"Bilety otwarte ponownie",
|
||||
"ticketsAutoclosed":"Bilety automatycznie zamknięte",
|
||||
"transcriptsCreated":"Utworzono transkrypcje",
|
||||
"startupDate":"Data uruchomienia",
|
||||
"latestUpdate":"Najnowsza aktualizacja",
|
||||
"ticketCreatedOn":"Bilet został utworzony dnia",
|
||||
"ticketCreatedBy":"Bilet stworzony przez",
|
||||
"messagesSent":"Wiadomość wysłana",
|
||||
"status":"Status",
|
||||
"participants":"Participants",
|
||||
"role":"Role",
|
||||
"participants":"Uczestnicy",
|
||||
"role":"Rola",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"Global Admin",
|
||||
"ticketAdmin":"Ticket Admin",
|
||||
"member":"Member",
|
||||
"open":"Open",
|
||||
"reopened":"Reopened",
|
||||
"closed":"Closed",
|
||||
"autoclosed":"Autoclosed"
|
||||
"globalAdmin":"Globalny administrator",
|
||||
"ticketAdmin":"Admin biletowy",
|
||||
"member":"Użytkownik",
|
||||
"open":"Otwarte",
|
||||
"reopened":"Otwarte ponownie",
|
||||
"closed":"Zamknięte",
|
||||
"autoclosed":"Automatycznie zamknięte"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"This user can't be found in the stats database!"
|
||||
"errorUserNotFound":"Tego użytkownika nie można znaleźć w bazie statystyk!"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"QuirAddon#9778",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"quiradon",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Argumentos inválidos!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Sanke#6086",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Argumente Invalide",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Apexo#0723",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"apexo & ander",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Неверные аргументы!",
|
||||
|
||||
@@ -12,9 +12,11 @@
|
||||
"it":"italian",
|
||||
"ru":"russian",
|
||||
"tr": "Türkçe",
|
||||
"ar": "Arabic",
|
||||
"th": "Thailand",
|
||||
|
||||
"MISSING":"arabic,portuguese",
|
||||
"NOTAVAILABLE":"arabic,portuguese,czech"
|
||||
"MISSING":"portuguese",
|
||||
"NOTAVAILABLE":"portuguese,czech"
|
||||
},
|
||||
"data":{
|
||||
"help":{
|
||||
@@ -29,7 +31,9 @@
|
||||
"es-ES":"Una lista de los comandos disponibles.",
|
||||
"it":"Una lista di tutti i comandi disponibili.",
|
||||
"ru":"Список доступных команд",
|
||||
"tr": "Kullanılabilir komutların listesi."
|
||||
"tr": "Kullanılabilir komutların listesi.",
|
||||
"ar": "قائمة للكوماندات المتاحة",
|
||||
"th": "List คำสั่งที่สามารถใช้งานได้"
|
||||
},
|
||||
"message":{
|
||||
"en-GB":"Spawn an embed with buttons.",
|
||||
@@ -43,7 +47,9 @@
|
||||
"es-ES":"Genera un embed con botones.",
|
||||
"it":"Genera un embed con un pulsante.",
|
||||
"ru":"Создать embed с кнопками",
|
||||
"tr": "Butonlar ile bir yerleştirme oluşturun."
|
||||
"tr": "Butonlar ile bir yerleştirme oluşturun.",
|
||||
"ar": "أنشاء أيمبد مع الأزرار.",
|
||||
"th": "เรียก Embed และปุ่มต่างๆ"
|
||||
},
|
||||
"close":{
|
||||
"en-GB":"Close a ticket.",
|
||||
@@ -57,7 +63,9 @@
|
||||
"es-ES":"Cierra un ticket.",
|
||||
"it":"Chiudi un ticket.",
|
||||
"ru":"Закрыть тикет",
|
||||
"tr": "Bileti kapat."
|
||||
"tr": "Bileti kapat.",
|
||||
"ar": "اغلاق تيكت.",
|
||||
"th": "ปิดห้องติดต่อ"
|
||||
},
|
||||
"delete":{
|
||||
"en-GB":"Delete a ticket.",
|
||||
@@ -71,7 +79,9 @@
|
||||
"es-ES":"Elimina un ticket.",
|
||||
"it":"Elimina un ticket.",
|
||||
"ru":"Удалить тикет",
|
||||
"tr": "Bileti sil."
|
||||
"tr": "Bileti sil.",
|
||||
"ar": "حذف تيكت.",
|
||||
"th": "ลบห้องติดต่อ"
|
||||
},
|
||||
"reopen":{
|
||||
"en-GB":"Re-Open a ticket.",
|
||||
@@ -85,7 +95,9 @@
|
||||
"es-ES":"Re-abre un ticket.",
|
||||
"it":"Ri-Apri un ticket.",
|
||||
"ru":"Открыть заново тикет",
|
||||
"tr": "Bileti yeniden aç."
|
||||
"tr": "Bileti yeniden aç.",
|
||||
"ar": "اعادة فتح تيكت.",
|
||||
"th": "เปิดห้องติดต่อใหม่อีกครั้ง"
|
||||
},
|
||||
"add":{
|
||||
"en-GB":"Add another user to a ticket.",
|
||||
@@ -99,7 +111,9 @@
|
||||
"es-ES":"Agrega otro usuario al ticket.",
|
||||
"it":"Aggiungi un membro al ticket",
|
||||
"ru":"Добавить другого пользователя в тикет",
|
||||
"tr": "Bilete başka bir kullanıcı ekle."
|
||||
"tr": "Bilete başka bir kullanıcı ekle.",
|
||||
"ar": "اضافة مستخدم اخر الى تيكت معين.",
|
||||
"th": "เพิ่มผู้ใช้เข้ามาในห้องติดต่อ"
|
||||
},
|
||||
"remove":{
|
||||
"en-GB":"Remove a user from a ticket.",
|
||||
@@ -113,7 +127,9 @@
|
||||
"es-ES":"Elimina otro usuario del ticket.",
|
||||
"it":"Rimuovi un membro dal ticket",
|
||||
"ru":"Удалить пользователя из тикета",
|
||||
"tr": "Kullanıcıyı bir biletten kaldır."
|
||||
"tr": "Kullanıcıyı bir biletten kaldır.",
|
||||
"ar": "ازالة مستخدم من تيكت معين.",
|
||||
"th": "ลบผู้ใช้ออกจากห้องติดต่อ"
|
||||
},
|
||||
"newticket":{
|
||||
"en-GB":"Create a ticket",
|
||||
@@ -127,7 +143,9 @@
|
||||
"es-ES":"Crear un ticket.",
|
||||
"it":"Crea un ticket",
|
||||
"ru":"Создать тикет",
|
||||
"tr": "Bilet oluştur"
|
||||
"tr": "Bilet oluştur",
|
||||
"ar": "انشاء تيكت.",
|
||||
"th": "สร้างห้องติดต่อใหม่"
|
||||
},
|
||||
"rename":{
|
||||
"en-GB":"Rename a ticket channel.",
|
||||
@@ -141,7 +159,9 @@
|
||||
"es-ES":"Renombrar un canal de ticket.",
|
||||
"it":"Rinomina il canale di un ticket.",
|
||||
"ru":"Переименовать канал тикета",
|
||||
"tr": "Bilet kanalını yeniden adlandır."
|
||||
"tr": "Bilet kanalını yeniden adlandır.",
|
||||
"ar": "اعادة تسمية التيكت.",
|
||||
"th": "แก้ไชชื่อห้องติดต่อ"
|
||||
},
|
||||
"claim":{
|
||||
"en-GB":"Claim a ticket.",
|
||||
@@ -155,7 +175,9 @@
|
||||
"es-ES":" ",
|
||||
"it":" ",
|
||||
"ru":"Взять тикет",
|
||||
"tr":"Bilet talep et."
|
||||
"tr":"Bilet talep et.",
|
||||
"ar": "تعيين التيكت",
|
||||
"th": "รับเรื่อง"
|
||||
},
|
||||
"unclaim":{
|
||||
"en-GB":"Un-claim a ticket.",
|
||||
@@ -169,7 +191,9 @@
|
||||
"es-ES":" ",
|
||||
"it":" ",
|
||||
"ru":"Снять тикет",
|
||||
"tr":"Bileti iptal et."
|
||||
"tr":"Bileti iptal et.",
|
||||
"ar": "ازالة التعيين من شخص الى التيكت",
|
||||
"th": "ยกเลิกการรับเรื่อง"
|
||||
},
|
||||
"category":{
|
||||
"en-GB":"Change ticket type.",
|
||||
@@ -183,7 +207,9 @@
|
||||
"es-ES":" ",
|
||||
"it":" ",
|
||||
"ru":"Изменить тип тикета",
|
||||
"tr":"Bilet türünü değiştir."
|
||||
"tr":"Bilet türünü değiştir.",
|
||||
"ar": "تغيير نوع التيكت",
|
||||
"th": "เปลี่ยนประเภทห้องติดต่อ"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"n1kkec#5341",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"n1kkec",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Napačen argument!",
|
||||
|
||||
+29
-29
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Redactado#1673 & josuens14#5267",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"redactado & josuens",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"¡Argumentos inválidos!",
|
||||
@@ -99,37 +99,37 @@
|
||||
"available":"La transcripción estará disponible aquí"
|
||||
},
|
||||
"stats":{
|
||||
"globalTitle":"Global Stats",
|
||||
"ticketTitle":"Ticket Stats for {0}",
|
||||
"userTitle":"User Stats for {0}",
|
||||
"systemTitle":"System Stats",
|
||||
"versionTitle":"Bot Version",
|
||||
"globalTitle":"Estadísticas Globales",
|
||||
"ticketTitle":"Estadísitcas para el ticket {0}",
|
||||
"userTitle":"Estadísticas para el usuario {0}",
|
||||
"systemTitle":"Estadísticas del sistema",
|
||||
"versionTitle":"Versión del bot",
|
||||
|
||||
"ticketsCreated":"Tickets Created",
|
||||
"ticketsClosed":"Tickets Closed",
|
||||
"ticketsDeleted":"Tickets Deleted",
|
||||
"ticketsReopened":"Tickets Reopened",
|
||||
"ticketsAutoclosed":"Tickets Autoclosed",
|
||||
"transcriptsCreated":"Transcripts Created",
|
||||
"startupDate":"Startup Date",
|
||||
"latestUpdate":"Latest Update",
|
||||
"ticketCreatedOn":"Ticket Created On",
|
||||
"ticketCreatedBy":"Ticket Created By",
|
||||
"messagesSent":"Messages Sent",
|
||||
"status":"Status",
|
||||
"participants":"Participants",
|
||||
"role":"Role",
|
||||
"ticketsCreated":"Tickets Creados",
|
||||
"ticketsClosed":"Tickets Cerrados",
|
||||
"ticketsDeleted":"Tickets Eliminados",
|
||||
"ticketsReopened":"Tickets Reabiertos",
|
||||
"ticketsAutoclosed":"Tickets Cerrados automáticamente",
|
||||
"transcriptsCreated":"Transcripciones Creadas",
|
||||
"startupDate":"Fecha de Inicio",
|
||||
"latestUpdate":"Última Actualización",
|
||||
"ticketCreatedOn":"Ticket creado el",
|
||||
"ticketCreatedBy":"Ticket creado por",
|
||||
"messagesSent":"Mensajes enviados",
|
||||
"status":"Estado",
|
||||
"participants":"Participantes",
|
||||
"role":"Rol",
|
||||
|
||||
"switches":{
|
||||
"globalAdmin":"Global Admin",
|
||||
"ticketAdmin":"Ticket Admin",
|
||||
"member":"Member",
|
||||
"open":"Open",
|
||||
"reopened":"Reopened",
|
||||
"closed":"Closed",
|
||||
"autoclosed":"Autoclosed"
|
||||
"globalAdmin":"Admin Global",
|
||||
"ticketAdmin":"Admin del Ticket",
|
||||
"member":"Miembro",
|
||||
"open":"Abierto",
|
||||
"reopened":"Reabierto",
|
||||
"closed":"Cerrado",
|
||||
"autoclosed":"Cerrado automáticamente"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"This user can't be found in the stats database!"
|
||||
"errorUserNotFound":"¡Este usuario no pudo ser encontrado en la base de datos de estadísitcas!"
|
||||
}
|
||||
}
|
||||
+62
-62
@@ -1,85 +1,85 @@
|
||||
{
|
||||
"_CREDITS":"Mods HD#0661",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"modshd",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"อาร์กิวเมนต์ไม่ถูกต้อง!",
|
||||
"missingArgsTitle":"อาร์กิวเมนต์ไม่ถูกต้อง",
|
||||
"missingArgsDescription":"ขาดอาร์กิวเมนต์",
|
||||
"noPermsTitle":"ไม่มีสิทธิ์!",
|
||||
"noPermsDescription":"คุณต้องมีสิทธิ์ `ADMINISTRATOR` หรืออยู่ในรายการบทบาทที่ได้รับอนุญาต!",
|
||||
"noPermsDelete":"เฉพาะผู้ดูแลระบบเท่านั้นที่สามารถลบตั๋วได้!",
|
||||
"noPermsTitle":"คุณไม่มีสิทธิ์ในการใช้งาน",
|
||||
"noPermsDescription":"คุณต้องมีสิทธิ์ `ADMINISTRATOR` หรืออยู่ในรายการบทบาทที่ได้รับอนุญาตเพื่อใช้งาน",
|
||||
"noPermsDelete":"เฉพาะผู้ดูแลระบบเท่านั้นที่สามารถลบห้องติดต่อได้",
|
||||
"chooseFromListTitle":"ID ไม่ถูกต้อง",
|
||||
"chooseFromListDescription":"เลือกหนึ่งใน ID ด้านล่าง:",
|
||||
"boterror":"ข้อผิดพลาดของบอท!",
|
||||
"notInTicketTitle":"คุณไม่ได้อยู่ในตั๋ว!",
|
||||
"notInTicketDescription":"คำสั่งนี้ไม่ทำงานนอกตั๋ว!",
|
||||
"ticketDoesntExist":"ตั๋วนี้ไม่มีอีกแล้ว!",
|
||||
"roleDoesntExist":"บทบาทนี้ไม่มีอีกแล้ว!",
|
||||
"anotherOption":"ตัวเลือกนี้ไม่ใช่ตั๋ว แต่เป็นประเภทอื่น!",
|
||||
"maxAmountTitle":"ถึงจำนวนสูงสุดแล้ว!",
|
||||
"maxAmountDescription":"คุณได้ถึงจำนวนสูงสุดของตั๋วที่อนุญาต!\nดังนั้นคุณไม่สามารถสร้างใหม่ได้!",
|
||||
"somethingWentWrong":"**มีบางอย่างผิดพลาด!**\nกรุณาลองอีกครั้งในภายหลัง!"
|
||||
"boterror":"ข้อผิดพลาดของบอท",
|
||||
"notInTicketTitle":"คุณไม่ได้อยู่ในห้องติดต่อ",
|
||||
"notInTicketDescription":"คำสั่งนี้ไม่สามารถทำงานนอกห้องติดต่อ",
|
||||
"ticketDoesntExist":"ห้องติดต่อนี้ไม่มีอีกต่อไป",
|
||||
"roleDoesntExist":"บทบาทนี้ไม่มีอีกต่อไป",
|
||||
"anotherOption":"ตัวเลือกนี้ไม่ใช่ห้องติดต่อ แต่เป็นประเภทอื่น",
|
||||
"maxAmountTitle":"ถึงจำนวนสูงสุดแล้ว",
|
||||
"maxAmountDescription":"คุณได้ถึงจำนวนสูงสุดของห้องติดต่อที่อนุญาต\nดังนั้นคุณไม่สามารถสร้างใหม่ได้ในขณะนี้",
|
||||
"somethingWentWrong":"**มีบางอย่างผิดพลาด**\nกรุณาลองอีกครั้งในภายหลัง"
|
||||
},
|
||||
"commands":{
|
||||
"userAddedTitle":"เพิ่ม {0} ในตั๋วนี้!",
|
||||
"userRemovedTitle":"ลบ {0} ออกจากตั๋วนี้!",
|
||||
"renameTitle":"เปลี่ยนชื่อเป็น {0}!",
|
||||
"closeTitle":"ปิดตั๋วนี้!",
|
||||
"deleteTitle":"กำลังลบตั๋วนี้...",
|
||||
"reopenTitle":"เปิดตั๋วนี้อีกครั้ง!",
|
||||
"userAddedTitle":"เพิ่ม {0} ในห้องติดต่อนี้",
|
||||
"userRemovedTitle":"ลบ {0} ออกจากห้องติดต่อนี้",
|
||||
"renameTitle":"เปลี่ยนชื่อเป็น {0}",
|
||||
"closeTitle":"ปิดห้องติดต่อนี้",
|
||||
"deleteTitle":"กำลังลบห้องติดต่อนี้...",
|
||||
"reopenTitle":"เปิดห้องติดต่อนี้อีกครั้ง",
|
||||
|
||||
"claimTitle":"ตั๋วนี้ถูกเรียกขึ้นโดย {0}",
|
||||
"unclaimTitle":"ตั๋วนี้ไม่ได้ถูกเรียกขึ้นแล้ว!",
|
||||
"changeTitle":"เปลี่ยนประเภทตั๋วเป็น {0}!",
|
||||
"claimTitle":"ห้องติดต่อนี้ถูกรับเรื่องโดย {0}",
|
||||
"unclaimTitle":"ห้องติดต่อนี้ไม่ได้ถูกรับเรื่องอีกแล้ว",
|
||||
"changeTitle":"เปลี่ยนประเภทห้องติดต่อเป็น {0}",
|
||||
|
||||
"statsTitle":"นี่คือสถิติสำหรับ {0}!",
|
||||
"autocloseTitle":"ตั๋วนี้จะถูกปิดอัตโนมัติหลังจาก {0}!",
|
||||
"autocloseRejectTitle":"ตั๋วนี้จะไม่ถูกปิดอัตโนมัติอีกต่อไป!",
|
||||
"autocloseWarn":"ส่วนนี้มีผลกับตั๋วที่ไม่ได้ใช้งาน!",
|
||||
"statsTitle":"นี่คือสถิติสำหรับ {0}",
|
||||
"autocloseTitle":"ห้องติดต่อนี้จะถูกปิดอัตโนมัติหลังจาก {0}",
|
||||
"autocloseRejectTitle":"ห้องติดต่อนี้จะไม่ถูกปิดอัตโนมัติอีกต่อไป",
|
||||
"autocloseWarn":"ส่วนนี้มีผลกับห้องติดต่อที่ไม่ได้ใช้งาน",
|
||||
|
||||
"goToTicket":"ไปที่ตั๋ว",
|
||||
"ticketWarning":"Embed อยู่ในข้อความด้านล่าง!",
|
||||
"maxTicketWarning":"**คำเตือน:** _คุณสามารถสร้างได้ {0} ตั๋วในครั้งเดียว!_"
|
||||
"goToTicket":"ไปที่ห้องติดต่อ",
|
||||
"ticketWarning":"Embed อยู่ในข้อความด้านล่าง",
|
||||
"maxTicketWarning":"**คำเตือน:** _คุณสามารถสร้างห้องติดต่อได้แค่ {0} ห้องติดต่อคน_"
|
||||
},
|
||||
"helpMenu":{
|
||||
"title":"คำสั่งที่ใช้ได้:",
|
||||
"header1":"**ไปที่ {0} เพื่อสร้างตั๋ว!**\n\n",
|
||||
"header2":"**ใช้คำสั่ง `/new` หรือ `/ticket` เพื่อสร้างตั๋ว!**\n\n",
|
||||
"header1":"**ไปที่ {0} เพื่อสร้างห้องติดต่อ**\n\n",
|
||||
"header2":"**ใช้คำสั่ง `/new` หรือ `/ticket` เพื่อสร้างห้องติดต่อ**\n\n",
|
||||
|
||||
"msgCmd":"สร้าง embed พร้อมปุ่ม (เฉพาะผู้ดูแลระบบ)",
|
||||
"renameCmd":"เปลี่ยนชื่อตั๋ว (ไม่มีช่องว่าง)",
|
||||
"closeCmd":"ปิดตั๋ว",
|
||||
"deleteCmd":"ลบตั๋ว",
|
||||
"addCmd":"เพิ่มผู้ใช้ในตั๋ว",
|
||||
"removeCmd":"ลบผู้ใช้ออกจากตั๋ว",
|
||||
"reopenCmd":"เปิดตั๋วอีกครั้งหลังจากถูกปิด",
|
||||
"changeCmd":"เปลี่ยนประเภทตั๋ว",
|
||||
"claimCmd":"เรียกขึ้นตั๋ว",
|
||||
"unclaimCmd":"ยกเลิกการเรียกขึ้นตั๋ว",
|
||||
"statsCmd":"ดูสถิติตั๋ว",
|
||||
"autocloseCmd":"ตั้งค่าการปิดตั๋วอัตโนมัติ"
|
||||
"renameCmd":"เปลี่ยนชื่อห้องติดต่อ (ไม่มีช่องว่าง)",
|
||||
"closeCmd":"ปิดห้องติดต่อ",
|
||||
"deleteCmd":"ลบห้องติดต่อ",
|
||||
"addCmd":"เพิ่มผู้ใช้ในห้องติดต่อ",
|
||||
"removeCmd":"ลบผู้ใช้ออกจากห้องติดต่อ",
|
||||
"reopenCmd":"เปิดห้องติดต่ออีกครั้งหลังจากถูกปิด",
|
||||
"changeCmd":"เปลี่ยนประเภทห้องติดต่อ",
|
||||
"claimCmd":"รับเรื่องห้องติดต่อ",
|
||||
"unclaimCmd":"ยกเลิกการรับเรื่องห้องติดต่อ",
|
||||
"statsCmd":"ดูสถิติห้องติดต่อ",
|
||||
"autocloseCmd":"ตั้งค่าการปิดห้องติดต่ออัตโนมัติ"
|
||||
},
|
||||
"buttons":{
|
||||
"close":"ปิดตั๋ว",
|
||||
"delete":"ลบตั๋ว",
|
||||
"reopen":"เปิดตั๋วอีกครั้ง",
|
||||
"close":"ปิดห้องติดต่อ",
|
||||
"delete":"ลบห้องติดต่อ",
|
||||
"reopen":"เปิดห้องติดต่ออีกครั้ง",
|
||||
"closeWithReason":"ปิดด้วยเหตุผล"
|
||||
},
|
||||
"messages":{
|
||||
"closedDescription":"เฉพาะผู้ดูแลระบบเท่านั้นที่สามารถพูดคุยในตั๋วนี้ได้!\n\n*คลิกที่ปุ่มด้านล่างเพื่อลบหรือเปิดตั๋วนี้อีกครั้ง!*",
|
||||
"createdTitle":"สร้างตั๋วแล้ว!",
|
||||
"createdDescription":"ตั๋วของคุณถูกสร้างแล้ว คุณสามารถตรวจสอบได้จากการแจ้งเตือน!",
|
||||
"closedDescription":"เฉพาะผู้ดูแลระบบเท่านั้นที่สามารถพูดคุยในห้องติดต่อนี้ได้\n\n*คลิกที่ปุ่มด้านล่างเพื่อลบหรือเปิดห้องติดต่อนี้อีกครั้ง*",
|
||||
"createdTitle":"สร้างห้องติดต่อแล้ว",
|
||||
"createdDescription":"ห้องติดต่อของคุณถูกสร้างแล้ว คุณสามารถตรวจสอบได้จากการแจ้งเตือน",
|
||||
|
||||
"newTicketDmTitle":"ตั๋วใหม่!",
|
||||
"closedTicketDmTitle":"ปิดตั๋ว!",
|
||||
"deletedTicketDmTitle":"ลบตั๋ว!",
|
||||
"closedTicketDmDescription":"ตั๋วของคุณถูกปิด!",
|
||||
"deletedTicketDmDescription":"ตั๋วของคุณถูกลบ!",
|
||||
"reopenTicketDmTitle":"เปิดตั๋วอีกครั้ง!",
|
||||
"reopenTicketDmDescription":"ตั๋วของคุณถูกเปิดอีกครั้ง!",
|
||||
"newTicketDmTitle":"ห้องติดต่อใหม่",
|
||||
"closedTicketDmTitle":"ปิดห้องติดต่อ",
|
||||
"deletedTicketDmTitle":"ลบห้องติดต่อ",
|
||||
"closedTicketDmDescription":"ห้องติดต่อของคุณถูกปิด",
|
||||
"deletedTicketDmDescription":"ห้องติดต่อของคุณถูกลบ",
|
||||
"reopenTicketDmTitle":"เปิดห้องติดต่ออีกครั้ง",
|
||||
"reopenTicketDmDescription":"ห้องติดต่อของคุณถูกเปิดอีกครั้ง",
|
||||
|
||||
"chooseCategory":"เลือกหมวดหมู่:",
|
||||
"gettingdeleted":"กำลังลบตั๋ว...",
|
||||
"gettingdeleted":"กำลังลบห้องติดต่อ...",
|
||||
|
||||
"none":"ไม่มี",
|
||||
"reason":"เหตุผล",
|
||||
@@ -88,13 +88,13 @@
|
||||
"deletedby":"ถูกลบโดย",
|
||||
"closedby":"ถูกปิดโดย",
|
||||
|
||||
"modalreason":"เหตุผลในการปิดตั๋วนี้คืออะไร?",
|
||||
"chooseATicket": "เลือกตั๋ว"
|
||||
"modalreason":"เหตุผลในการปิดห้องติดต่อนี้คืออะไร?",
|
||||
"chooseATicket": "เลือกห้องติดต่อ"
|
||||
},
|
||||
"transcripts":{
|
||||
"title":"บันทึกการสนทนา",
|
||||
"processed":"บันทึกการสนทนากำลังดำเนินการ",
|
||||
"wait":"กรุณารอ!",
|
||||
"wait":"กรุณารอ...",
|
||||
"estimated":"เวลาโดยประมาณ",
|
||||
"available":"บันทึกการสนทนาสามารถใช้งานได้ที่นี่"
|
||||
},
|
||||
@@ -130,6 +130,6 @@
|
||||
"autoclosed":"ปิดโดยอัตโนมัติ"
|
||||
},
|
||||
|
||||
"errorUserNotFound":"ไม่พบผู้ใช้ในฐานข้อมูลสถิติ!"
|
||||
"errorUserNotFound":"ไม่พบผู้ใช้ในฐานข้อมูลสถิติ"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Hydrâelčhâvø#1575",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.0",
|
||||
"_CREDITS":"Hydra#0009",
|
||||
"_INFO":"This file is a translation for open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Geçersiz argümanlar!",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"_CREDITS":"Anderskiy#4093",
|
||||
"_INFO":"Цей файл є перекладом для open ticket 3.5.0",
|
||||
"_CREDITS":"ander",
|
||||
"_INFO":"Цей файл є перекладом для open ticket 3.5.6",
|
||||
|
||||
"errors":{
|
||||
"missingArgsTitle":"Невірні аргументи!",
|
||||
|
||||
+8
-8
@@ -1,28 +1,28 @@
|
||||
{
|
||||
"name": "open-ticket",
|
||||
"version": "3.5.0",
|
||||
"description": "This is an open-source discord ticket bot, you can configure it and it comes with cool features like a transcript.",
|
||||
"author": "DJdj Development",
|
||||
"version": "3.5.6",
|
||||
"description": "The most advanced open-source discord ticket bot with HTML transcripts and plugins! It uses discord.js v14 & no database required!",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"start": "node index.js",
|
||||
"test": "node index.js --devconfig --noerrorupload",
|
||||
"slashEnable": "node index.js slash enable",
|
||||
"slashDisable": "node index.js slash disable",
|
||||
"cleardata": "node ./core/dynamicdatabase/cleardata.js"
|
||||
"slashDisable": "node index.js slash disable"
|
||||
},
|
||||
"author": "DJdj Development",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"axios": "^1.6.2",
|
||||
"chalk": "^5.0.1",
|
||||
"discord.js": "^14.14.1"
|
||||
"discord.js": "^14.15.1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/DJj123dj/open-ticket.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/DJj123dj/open-ticket/issues"
|
||||
"url": "https://github.com/DJj123dj/open-ticket/issues",
|
||||
"email": "support@dj-dj.be"
|
||||
},
|
||||
"homepage": "https://github.com/DJj123dj/open-ticket#readme"
|
||||
"homepage": "https://openticket.dj-dj.be"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user