diff --git a/README.md b/README.md
index fad8a54..cbff836 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-[](https://discord.com/invite/26vT9wt3n3) [](https://github.com/DJj123dj/open-ticket/releases/tag/v3.3.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.3.1) []() [](https://github.com/DJj123dj/open-ticket/blob/main/LICENSE) [](https://docs.openticket.dj-dj.be)
### Open Ticket
Open Ticket is of the most customisable discord ticket bots of all time!
@@ -59,9 +59,10 @@ Translators
|Russian |Apexo#0723 |
|Turkish |Hydrâelčhâvø#1575 |
|Polish |MKevas#8311 |
+|Slovenian |n1kkec#5341 |
## links
-current version: _v3.3.0_
+current version: _v3.3.1_
changelog: [click here](https://docs.openticket.dj-dj.be/other/changelog)
documentation: [click here](https://docs.openticket.dj-dj.be/quick-start)
diff --git a/commands/claim.js b/commands/claim.js
index a608d39..dfe79e6 100644
--- a/commands/claim.js
+++ b/commands/claim.js
@@ -41,11 +41,10 @@ module.exports = () => {
.setFooter({text:"claimed by: "+interaction.user.tag,iconURL:interaction.user.displayAvatarURL()})
.setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data))
- if (!firstmsg.components[0].components[1].disabled){
- firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]})
-
- }else if (firstmsg.components[0].components[1].disabled){
+ if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim],embeds:[newEmbed]})
+ }else{
+ firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]})
}
msg.channel.send({embeds:[bot.embeds.commands.claimEmbed(claimingUser,msg.author)]})
@@ -67,6 +66,7 @@ module.exports = () => {
if (!interaction.guild) return
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
permsChecker.sendUserNoPerms(interaction.user)
+ interaction.reply({content:":x: "+l.errors.noPermsTitle,ephemeral:true})
return
}
@@ -87,11 +87,10 @@ module.exports = () => {
.setFooter({text:"claimed by: "+user.tag,iconURL:user.displayAvatarURL()})
.setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data))
- if (!firstmsg.components[0].components[1].disabled){
- firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]})
-
- }else if (firstmsg.components[0].components[1].disabled){
+ if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim],embeds:[newEmbed]})
+ }else{
+ firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]})
}
interaction.editReply({embeds:[bot.embeds.commands.claimEmbed(user,interaction.user)]})
diff --git a/commands/unclaim.js b/commands/unclaim.js
index e6821ea..74176fa 100644
--- a/commands/unclaim.js
+++ b/commands/unclaim.js
@@ -48,11 +48,10 @@ module.exports = () => {
newEmbed.setFooter(null)
}
- if (!firstmsg.components[0].components[1].disabled){
- firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormal],embeds:[newEmbed]})
-
- }else if (firstmsg.components[0].components[1].disabled){
+ if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabled],embeds:[newEmbed]})
+ }else{
+ firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormal],embeds:[newEmbed]})
}
msg.channel.send({embeds:[bot.embeds.commands.unclaimEmbed(msg.author)]})
@@ -73,6 +72,7 @@ module.exports = () => {
if (!interaction.guild) return
if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
permsChecker.sendUserNoPerms(interaction.user)
+ interaction.reply({content:":x: "+l.errors.noPermsTitle,ephemeral:true})
return
}
@@ -104,11 +104,10 @@ module.exports = () => {
newEmbed.setFooter(null)
}
- if (!firstmsg.components[0].components[1].disabled){
- firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormal],embeds:[newEmbed]})
-
- }else if (firstmsg.components[0].components[1].disabled){
+ if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabled],embeds:[newEmbed]})
+ }else{
+ firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormal],embeds:[newEmbed]})
}
interaction.editReply({embeds:[bot.embeds.commands.unclaimEmbed(interaction.user)]})
diff --git a/config.json b/config.json
index a2ec616..429077e 100644
--- a/config.json
+++ b/config.json
@@ -101,7 +101,7 @@
"dropdown":false,
"enableFooter":false,
- "footer":"Open Ticket v3.3.0 - I'm a footer!",
+ "footer":"Open Ticket v3.3.1 - I'm a footer!",
"enableThumbnail":false,
"thumbnail":"https://www.example.com/catmemes/cat.png",
diff --git a/core/checker.js b/core/checker.js
index 23f48be..a0fd9d5 100644
--- a/core/checker.js
+++ b/core/checker.js
@@ -427,7 +427,7 @@ exports.checker = async () => {
checkType(config.languageFile,"string","languagefile")
const lf = config.languageFile
- if (!lf.startsWith("custom") && !lf.startsWith("english") && !lf.startsWith("dutch") && !lf.startsWith("romanian") && !lf.startsWith("german") && !lf.startsWith("arabic") && !lf.startsWith("spanish") && !lf.startsWith("portuguese") && !lf.startsWith("french") && !lf.startsWith("italian") && !lf.startsWith("czech") && !lf.startsWith("danish") && !lf.startsWith("russian") && !lf.startsWith("turkish") && !lf.startsWith("polish")){
+ 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")){
createError("'languagefile' | invalid language, more info in the wiki")
}
diff --git a/core/interactionHandlers/handlers/accepted/claiming.js b/core/interactionHandlers/handlers/accepted/claiming.js
index 6f7f1cb..dfb5c96 100644
--- a/core/interactionHandlers/handlers/accepted/claiming.js
+++ b/core/interactionHandlers/handlers/accepted/claiming.js
@@ -10,6 +10,7 @@ const storage = bot.storage
const hiddendata = bot.hiddenData
const embed = discord.EmbedBuilder
const mc = config.color
+const permsChecker = require("../../../utils/permisssionChecker")
const button = discord.ButtonBuilder
const arb = discord.ActionRowBuilder
@@ -22,9 +23,15 @@ module.exports = () => {
if (interaction.customId != "OTclaimTicket") return
try {
- interaction.deferUpdate()
+ await interaction.deferUpdate()
}catch{}
+ if (!interaction.guild) return
+ if (!permsChecker.command(interaction.user.id,interaction.guild.id)){
+ permsChecker.sendUserNoPerms(interaction.user)
+ return
+ }
+
interaction.channel.messages.fetchPinned().then(msglist => {
/**@type {discord.Message} */
var firstmsg = msglist.last()
@@ -40,11 +47,10 @@ module.exports = () => {
.setFooter({text:"claimed by: "+interaction.user.tag,iconURL:interaction.user.displayAvatarURL()})
.setDescription(hdraw.description+bot.hiddenData.writeHiddenData(hiddendata.type,hiddendata.data))
- if (!firstmsg.components[0].components[1].disabled){
- firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]})
-
- }else if (firstmsg.components[0].components[1].disabled){
+ if (firstmsg.components[0].components[1] && firstmsg.components[0].components[1].disabled){
firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowDisabledNoClaim],embeds:[newEmbed]})
+ }else{
+ firstmsg.edit({components:[bot.buttons.firstmsg.firstmsgRowNormalNoClaim],embeds:[newEmbed]})
}
})
})
diff --git a/core/ticketActions/ticketAutoclose.js b/core/ticketActions/ticketAutoclose.js
index 62e6e4f..03ced20 100644
--- a/core/ticketActions/ticketAutoclose.js
+++ b/core/ticketActions/ticketAutoclose.js
@@ -8,41 +8,49 @@ const storage = bot.storage
module.exports = () => {
setInterval(async () => {
- const tickets = storage.getCategory("autocloseTickets")
- if (!tickets) return
- tickets.forEach(async (t) => {
- if (t.value == "false" || t.value == 0 || typeof t.value != "number") return
- const channel = await client.channels.fetch(t.key,{cache:true})
- if (!channel || !channel.isTextBased()) return
+ try{
+ const tickets = storage.getCategory("autocloseTickets")
+ if (!tickets) return
+ tickets.forEach(async (t) => {
+ if (t.value == "false" || t.value == 0 || typeof t.value != "number") return
+ try{
+
+ const channel = await client.channels.fetch(t.key,{cache:true})
+ if (!channel || !channel.isTextBased()) return
- const message = (await channel.messages.fetch({limit:10})).first()
- if (!message) return
+ const message = (await channel.messages.fetch({limit:10})).first()
+ if (!message) return
- const secondsSLM = Math.round((new Date().getTime() - message.createdTimestamp)/1000)
- const hoursSLM = secondsSLM/3600
+ const secondsSLM = Math.round((new Date().getTime() - message.createdTimestamp)/1000)
+ const hoursSLM = secondsSLM/3600
+
+ if (hoursSLM > t.value){
+ /**@type {discord.Guild|false} */
+ const guild = client.guilds.cache.find((g) => g.id == channel.guild.id)
+ if (!guild) return
+ const clientMember = guild.members.cache.find((m) => m.id == client.user.id)
+ if (!clientMember) return
+
+ var name = channel.name
+ var prefix = ""
+ const tickets = config.options
+ tickets.forEach((ticket) => {
+ if (name.startsWith(ticket.channelprefix)){
+ prefix = ticket.channelprefix
+ }
+ })
+
+ require("./ticketCloser").closeManager(clientMember,channel,prefix,"close","OTautoclose",true)
+ storage.delete("autocloseTickets",channel.id)
+
+ channel.send({embeds:[bot.embeds.commands.autocloseSignalEmbed(client.user,t.value)],components:[bot.buttons.close.closeCommandRow]})
+ }
- if (hoursSLM > t.value){
- /**@type {discord.Guild|false} */
- const guild = client.guilds.cache.find((g) => g.id == channel.guild.id)
- if (!guild) return
- const clientMember = guild.members.cache.find((m) => m.id == client.user.id)
- if (!clientMember) return
-
- var name = channel.name
- var prefix = ""
- const tickets = config.options
- tickets.forEach((ticket) => {
- if (name.startsWith(ticket.channelprefix)){
- prefix = ticket.channelprefix
- }
- })
-
- require("./ticketCloser").closeManager(clientMember,channel,prefix,"close","OTautoclose",true)
- storage.delete("autocloseTickets",channel.id)
-
- channel.send({embeds:[bot.embeds.commands.autocloseSignalEmbed(client.user,t.value)],components:[bot.buttons.close.closeCommandRow]})
+ }catch{
+ log("system","can't find autoclose channel with ID: "+t.key)
+ storage.delete("autocloseTickets",t.key)
}
- })
-
- },2000)
+ })
+ }catch{}
+ },120000)
}
\ No newline at end of file
diff --git a/core/ticketActions/ticketCloser.js b/core/ticketActions/ticketCloser.js
index ffeddef..f96213c 100755
--- a/core/ticketActions/ticketCloser.js
+++ b/core/ticketActions/ticketCloser.js
@@ -131,7 +131,8 @@ exports.closeManager = async (member,channel,prefix,mode,reason,nomessage) => {
permissionArray.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],
+ deny:[]
})
}catch{
log("system","invalid role! At 'config.json => main_adminroles:"+index)
@@ -182,8 +183,8 @@ exports.closeManager = async (member,channel,prefix,mode,reason,nomessage) => {
permissionArray.push({
id:adminrole,
type:"role",
- allow:[pfb.AddReactions,pfb.ViewChannel],
- deny:[pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages]
+ allow:[pfb.AddReactions,pfb.ViewChannel,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages],
+ deny:[]
})
}catch{
log("system","invalid role! At 'config.json => options/ticket/...:"+index)
diff --git a/core/ticketActions/ticketReopener.js b/core/ticketActions/ticketReopener.js
index 76453f3..ee552f2 100755
--- a/core/ticketActions/ticketReopener.js
+++ b/core/ticketActions/ticketReopener.js
@@ -35,6 +35,15 @@ const reopenTicket = (guild,channel,user) => {
allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel],
deny:[]
})
+ }else{
+ if (p.id != guild.roles.everyone){
+ permissionsArray.push({
+ id:p.id,
+ type:"role",
+ allow:[pfb.AddReactions,pfb.AttachFiles,pfb.EmbedLinks,pfb.SendMessages,pfb.ViewChannel],
+ deny:[]
+ })
+ }
}
})
diff --git a/core/transcriptSystem/communication/compileJson.js b/core/transcriptSystem/communication/compileJson.js
index 7218495..a28a5f5 100644
--- a/core/transcriptSystem/communication/compileJson.js
+++ b/core/transcriptSystem/communication/compileJson.js
@@ -64,12 +64,12 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
})
})
-
+ const memberColor = msg.member ? msg.member.displayHexColor : "#ffffff"
messagesArray.push({
author:{
name:msg.author.tag,
id:Number(msg.author.id),
- color:msg.member.displayHexColor || "#ffffff",
+ color:memberColor,
pfp:msg.author.displayAvatarURL()
},
content:msg.content || "",
diff --git a/core/transcriptSystem/communication/template.json b/core/transcriptSystem/communication/template.json
index 8c0bf35..87d15cd 100644
--- a/core/transcriptSystem/communication/template.json
+++ b/core/transcriptSystem/communication/template.json
@@ -1,6 +1,6 @@
{
"version":"1.0.0",
- "otversion":"3.3.0",
+ "otversion":"3.3.1",
"style":{
"enableCustomBackground":false,
"backgroundModus":"color OR image",
diff --git a/core/utils/getDropdown.js b/core/utils/getDropdown.js
index 04545dd..626eac0 100644
--- a/core/utils/getDropdown.js
+++ b/core/utils/getDropdown.js
@@ -24,7 +24,7 @@ exports.getDropdown = (ids,placeholder) => {
.setMinValues(1)
.setPlaceholder(placeholder || l.messages.chooseATicket)
.addOptions(
- new discord.StringSelectMenuBuilder()
+ new discord.StringSelectMenuOptionBuilder()
.setDefault(true)
.setLabel(placeholder || l.messages.chooseATicket)
.setValue("OTChooseTicket")
diff --git a/core/utils/hiddendata.js b/core/utils/hiddendata.js
index 53dc898..f620185 100644
--- a/core/utils/hiddendata.js
+++ b/core/utils/hiddendata.js
@@ -1,5 +1,5 @@
-/**@typedef {{type:String,data:[{key:String,value:String}]}} hiddenData */
+/**@typedef {{type:String,data:[{key:String,value:String}],status:Boolean}} hiddenData */
/**
*
@@ -9,6 +9,7 @@
exports.readHiddenData = (messageContent) => {
//ticketdata//type:123|userid:456)
+ if (!messageContent.includes("[ ](OTDATA|")) return {type:"",data:[],status:false}
const rawhidden = messageContent.split("[ ](OTDATA|")[1]
const rawhidden2 = rawhidden.split("//")
@@ -29,7 +30,7 @@ exports.readHiddenData = (messageContent) => {
resultData.push({key:dataresult[0],value:dataresult[1]})
})
- return {type:datatype,data:resultData}
+ return {type:datatype,data:resultData,status:true}
}
/**
@@ -57,8 +58,9 @@ exports.writeHiddenData = (type,data) => {
* @returns {{description:String,hiddenData:hiddenData}}
*/
exports.removeHiddenData = (description) => {
- const hiddenData = this.readHiddenData(description)
+ if (!description.includes("[ ](OTDATA|")) return {description:description,hiddenData:[]}
+ const hiddenData = this.readHiddenData(description)
const splitted = description.split("[ ](OTDATA")
const original = splitted[0]
diff --git a/core/utils/liveStatus.js b/core/utils/liveStatus.js
index 711a2e7..8a16cc6 100644
--- a/core/utils/liveStatus.js
+++ b/core/utils/liveStatus.js
@@ -136,6 +136,9 @@ exports.run = async (pluginData) => {
console.log(final.join("\n\n"))
}
+var waitTime = new Date().getTime()
+var waitTimeEnabled = false
+
/**@param {OTLiveStatusError} options @returns {Promise} */
const uploadLiveStatus = (options) => {
return new Promise((resolve,reject) => {
@@ -164,7 +167,13 @@ exports.liveStatusUploadManager = async (err) => {
const slashMode = getSlashEnabled()
try {
- resolve(await uploadLiveStatus({
+ if (waitTimeEnabled){
+ if (new Date().getTime() < waitTime){
+ waitTimeEnabled = false
+ return resolve(false)
+ }
+ }
+ const result = await uploadLiveStatus({
bot:{
id:client.user.id,
name:client.user.tag,
@@ -187,9 +196,15 @@ exports.liveStatusUploadManager = async (err) => {
},
details:{
errortime:new Date().getTime(),
- actions:this.actionRecorder
+ actions:this.actionRecorder,
+ database:fs.readFileSync("./storage/database.json").toString()
}
- }))
+ })
+ if (!result){
+ waitTime = new Date().getTime()+30000
+ waitTimeEnabled = true
+ }
+ resolve(result)
}catch{resolve(false)}
}
})
diff --git a/index.js b/index.js
index ccc8472..b17511e 100644
--- a/index.js
+++ b/index.js
@@ -28,7 +28,7 @@
INFORMATION:
============
- Open Ticket v3.3.0 - © DJdj Development
+ Open Ticket v3.3.1 - © DJdj Development
discord: https://discord.dj-dj.be
website: https://www.dj-dj.be
diff --git a/language/slovenian.json b/language/slovenian.json
new file mode 100644
index 0000000..13d43cd
--- /dev/null
+++ b/language/slovenian.json
@@ -0,0 +1,98 @@
+{
+ "errors":{
+ "missingArgsTitle":"Napačen argument!",
+ "missingArgsDescription":"Argument manka",
+ "noPermsTitle":"Nimas dovoljenja!",
+ "noPermsDescription":"Potrebuješ dovoljenje `ADMINISTRATOR` ali pa biti v listi dovoljenih role!",
+ "noPermsDelete":"Samo admini lahko izbrišejo ticket!",
+ "chooseFromListTitle":"Napačen ID",
+ "chooseFromListDescription":"Izberi eden izmed ID-jev:",
+ "boterror":"NAPAKA Bota!",
+ "notInTicketTitle":"Nisi v ticketu!",
+ "notInTicketDescription": "Ta ukaz ne deluje zunaj ticket-ov!",
+ "ticketDoesntExist": "Ta ticket ne obstaja več!",
+ "roleDoesntExist": "Ta vloga ne obstaja več!",
+ "anotherOption": "Ta možnost ni ticket, ampak druga vrsta!",
+ "maxAmountTitle": "Najvišji doseženi znesek!",
+ "maxAmountDescription": "Dosegli ste največje dovoljeno število ticket-ov!\nTako da ne morete ustvariti nove!",
+ "somethingWentWrong": "**Nekaj je šlo narobe!**\nProsimo, poskusite znova drugič!"
+ },
+ "commands":{
+ "userAddedTitle": "Dodan {0} v ta ticket!",
+ "userRemovedTitle": "Odstranjeo {0} iz tega ticket-!",
+ "renameTitle": "Spremenjeno ime na {0}!",
+ "closeTitle": "Zaprl ta ticket!",
+ "deleteTitle": "Brisanje ticketa...",
+ "reopenTitle": "Ponovno odprl ta ticket!",
+
+ "claimTitle":"Ticket je claimal {0}",
+ "unclaimTitle":"Ticket ni več claiman!",
+ "changeTitle":"Changed ticket type to {0}!",
+
+ "statsTitle":"Statistike za {0}!",
+ "autocloseTitle":"Ticket so avtomatsko zapru po {0}!",
+ "autocloseRejectTitle":"Ticket se nebo avtomatsko zapru!",
+ "autocloseWarn":"To ima efekt samo na inactive ticketih!",
+
+ "goToTicket":"pojdi v ticket",
+ "ticketWarning": "Opozorilo je v spodnjem sporočilu!",
+ "maxTicketWarning": "**Opozorilo:** _Naenkrat lahko ustvarite le {0} ticketov!_"
+ },
+ "helpMenu":{
+ "title": "Razpoložljivi ukazi:",
+ "header1": "**Izberite {0} in ustvarite ticket!**\n\n",
+ "header2": "**Zaženi ukaz `/new` ali `/ticket` za ustvarjanje ticket-a!**\n\n",
+
+ "msgCmd": "Ustvari vstavek z gumbi. (samo za administratorje)",
+ "renameCmd": "Preimenujte ticket. (brez presledkov)",
+ "closeCmd": "Zapri ticket.",
+ "deleteCmd": "Izbriši ticket.",
+ "addCmd": "Dodaj uporabnika v ticket.",
+ "removeCmd": "Odstrani uporabnika z ticket-a.",
+ "reopenCmd": "Ponovno odprite ticket, ko je bila zaprta.",
+ "changeCmd":"Spremeni tip ticketa.",
+ "claimCmd":"Claimaj ticket.",
+ "unclaimCmd":"Unclaimaj ticket.",
+ "statCmds":"Statistike ticketa.",
+ "autocloseCmd":"Nastavi timer da avtomatsko zapre ticket"
+ },
+ "buttons":{
+ "close":"Zapri Ticket",
+ "delete":"Izbrisi Ticket",
+ "reopen":"Odpri Ticket",
+ "closeWithReason":"Zapri z razlogom"
+ },
+ "messages":{
+ "closedDescription": "V tem ticket-u lahko zdaj govorijo samo administratorji!\n\n*Kliknite na spodnji gumb za brisanje ali ponovno odprtje te ticket!*",
+ "createdTitle": "Ticket ustvarjen!",
+ "createdDescription": "Vaš ticket je ustvarjen, lahko jo odkrijete s pingom!",
+
+ "newTicketDmTitle": "Nov ticket!",
+ "closedTicketDmTitle": "Ticket zaprt!",
+ "deletedTicketDmTitle": "Izbrisan ticket!",
+ "closedTicketDmDescription": "Vaš ticket je zaprta!",
+ "deletedTicketDmDescription": "Vaš ticket je izbrisan!",
+ "reopenTicketDmTitle": "Ticket je ponovno odprt!",
+ "reopenTicketDmDescription": "Vaš ticket je ponovno odprt!",
+
+ "chooseCategory": "izberite kategorijo:",
+ "gettingdeleted": "Ticket se briše...",
+
+ "none": "ni",
+ "reason": "razlog",
+ "createdat":"ustvarjeno ob",
+ "openedby":"odprto od",
+ "deletedby": "izbrisano s",
+ "closedby": "zaprl",
+
+ "modalreason": "Kakšen je razlog za zaprtje tega ticket?",
+ "chooseATicket": "Izberi ticket"
+ },
+ "transcripts":{
+ "naslov": "Transkript",
+ "obdelano": "Ta prepis se obdeluje",
+ "wait": "Počakajte!",
+ "estimated": "Predvideni čas",
+ "available": "Prepis je na voljo tukaj"
+ }
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 1c321a9..4c70bec 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "open-ticket",
- "version": "3.3.0",
+ "version": "3.3.1",
"description": "This is an open-source discord ticket bot, you can configure it and it comes with cool features like a transcript.",
"main": "index.js",
"scripts": {