v3.2.1 push 3

This commit is contained in:
DJj123dj
2023-02-05 16:22:44 +01:00
parent f702b199da
commit 28e7d48e7e
14 changed files with 422 additions and 380 deletions
+1 -1
View File
@@ -17,4 +17,4 @@ storage/.DS_Store
.vscode/ .vscode/
livestatus.json livestatus.json
test.js test.js
testtsconfig.json devtsconfig.json
+1 -1
View File
@@ -19,7 +19,7 @@ module.exports = () => {
.setTitle("❔ "+l.helpMenu.title) .setTitle("❔ "+l.helpMenu.title)
const header = config.system.ticket_channel ? l.helpMenu.header1.replace("{0}","<#"+config.system.ticket_channel+">") : l.helpMenu.header2 const header = config.system.ticket_channel ? l.helpMenu.header1.replace("{0}","<#"+config.system.ticket_channel+">") : l.helpMenu.header2
helpEmbed.setDescription(header+"`"+prefix+msgName+" <id>` ➜ _"+l.helpMenu.msgCmd+"_\n\n`"+prefix+"rename <name>` ➜ _"+l.helpMenu.renameCmd+"_\n`"+prefix+"close` ➜ _"+l.helpMenu.closeCmd+"_\n`"+prefix+"delete` ➜ _"+l.helpMenu.deleteCmd+"_\n`"+prefix+"reopen` ➜ _"+l.helpMenu.reopenCmd+"_\n\n`"+prefix+"add <user>` ➜ _"+l.helpMenu.addCmd+"_\n`"+prefix+"remove <user>` ➜ _"+l.helpMenu.removeCmd+"_") helpEmbed.setDescription(header+"`"+prefix+msgName+" <id>` ➜ _"+l.helpMenu.msgCmd+"_\n\n`"+prefix+"rename <name>` ➜ _"+l.helpMenu.renameCmd+"_\n`"+prefix+"close` ➜ _"+l.helpMenu.closeCmd+"_\n`"+prefix+"delete` ➜ _"+l.helpMenu.deleteCmd+"_\n`"+prefix+"reopen` ➜ _"+l.helpMenu.reopenCmd+"_\n\n`"+prefix+"add <user>` ➜ _"+l.helpMenu.addCmd+"_\n`"+prefix+"remove <user>` ➜ _"+l.helpMenu.removeCmd+"_\n\n`"+prefix+"change <newtype>` ➜ _Change ticket type._")
var otherprefix = prefix.endsWith(" ") ? prefix.substring(0,prefix.length-1) : prefix var otherprefix = prefix.endsWith(" ") ? prefix.substring(0,prefix.length-1) : prefix
+37 -30
View File
@@ -114,7 +114,7 @@ exports.checker = async () => {
}) })
} }
} }
/**@param {String} value @param {"string"|"boolean"|"number"} type */ /**@param {String} value @param {"string"|"boolean"|"number"|"array"|"object"} type */
const checkType = (value,type,path) => { const checkType = (value,type,path) => {
if (type == "boolean"){ if (type == "boolean"){
if (typeof value != "boolean"){ if (typeof value != "boolean"){
@@ -128,6 +128,14 @@ exports.checker = async () => {
if (typeof value != "string"){ if (typeof value != "string"){
createError("'"+path+"' | invalid type, this must be a string!") createError("'"+path+"' | invalid type, this must be a string!")
} }
}else if (type == "array"){
if (!Array.isArray(value)){
createError("'"+path+"' | invalid type, this must be an array!")
}
}else if (type == "object"){
if (typeof value != "object"){
createError("'"+path+"' | invalid type, this must be an object!")
}
} }
} }
@@ -197,6 +205,7 @@ exports.checker = async () => {
checkButtonColor(option.color,path+"/color") checkButtonColor(option.color,path+"/color")
//adminroles //adminroles
checkType(option.adminroles,"array",path+"/adminroles")
checkDiscordArray("roleid",option.adminroles,path+"/adminroles") checkDiscordArray("roleid",option.adminroles,path+"/adminroles")
//channelprefix //channelprefix
@@ -221,14 +230,22 @@ exports.checker = async () => {
checkType(option.ticketmessage,"string",path+"/ticketmessage") checkType(option.ticketmessage,"string",path+"/ticketmessage")
//thumbnail //thumbnail
checkType(option.thumbnail.enable,"boolean",path/"/thumbnail/enable") if (option.thumbnail){
checkType(option.thumbnail.url,"string",path/"/thumbnail/url") checkType(option.thumbnail.enable,"boolean",path+"/thumbnail/enable")
checkType(option.thumbnail.url,"string",path+"/thumbnail/url")
}else{
createError("'"+path+"/thumbnail' | there is no thumbnail object!")
}
//closedCategory //closedCategory
checkType(option.closedCategory.enable,"boolean",path/"/closedCategory/enable") if (option.closedCategory){
checkType(option.closedCategory.id,"string",path/"/closedCategory/id") checkType(option.closedCategory.enable,"boolean",path/"/closedCategory/enable")
if (option.closedCategory.enable){ checkType(option.closedCategory.id,"string",path/"/closedCategory/id")
checkDiscord("roleid",option.closedCategory.id,path+"/closedCategory/id") if (option.closedCategory.enable){
checkDiscord("roleid",option.closedCategory.id,path+"/closedCategory/id")
}
}else{
createError("'"+path+"/closedCategory' | there is no closedCategory object!")
} }
}else if (type == "website"){ }else if (type == "website"){
@@ -380,6 +397,7 @@ exports.checker = async () => {
if (!require("./api/api.json").disable.checkerjs.token) checkToken(config.auth_token) if (!require("./api/api.json").disable.checkerjs.token) checkToken(config.auth_token)
checkType(config.main_adminroles,"array","/main_adminroles")
checkDiscordArray("roleid",config.main_adminroles,"main_adminroles") checkDiscordArray("roleid",config.main_adminroles,"main_adminroles")
checkString(config.prefix,1,15,"prefix","prefix") checkString(config.prefix,1,15,"prefix","prefix")
//languagefile //languagefile
@@ -404,19 +422,31 @@ exports.checker = async () => {
//system: //system:
//ticket channel
if (config.system.ticket_channel){ if (config.system.ticket_channel){
if (config.system.ticket_channel.length < 16 || config.system.ticket_channel.length > 20 || !/^\d+$/.test(config.system.ticket_channel)){ if (config.system.ticket_channel.length < 16 || config.system.ticket_channel.length > 20 || !/^\d+$/.test(config.system.ticket_channel)){
createError("'system/ticket_channel' | this channel id is invalid") createError("'system/ticket_channel' | this channel id is invalid")
} }
}else createWarn("'"+path+"' | you have no ticket channel selected!") }else createWarn("'"+path+"' | you have no ticket channel selected!")
//max tickets
checkType(config.system.max_allowed_tickets,"number","system/max_allowed_tickets") checkType(config.system.max_allowed_tickets,"number","system/max_allowed_tickets")
//enableDMmessages
checkType(config.system.enable_DM_Messages,"boolean","system/enable_DM_Messages") checkType(config.system.enable_DM_Messages,"boolean","system/enable_DM_Messages")
//has@everyoneaccess
checkType(config.system["has@everyoneaccess"],"boolean","system/has@everyoneaccess") checkType(config.system["has@everyoneaccess"],"boolean","system/has@everyoneaccess")
//member_role
checkType(config.system.member_role,"string","system/member_role")
if (config.system.member_role != "" && config.system.member_role != " " && config.system.member_role != "false" && config.system.member_role != "null" && config.system.member_role != "0"){ if (config.system.member_role != "" && config.system.member_role != " " && config.system.member_role != "false" && config.system.member_role != "null" && config.system.member_role != "0"){
checkDiscord("roleid",config.system.member_role,"system/member_role") checkDiscord("roleid",config.system.member_role,"system/member_role")
}else{ }else{
createWarn("'system/member_role' | You don't have a member role, but it's recommended!") createWarn("'system/member_role' | You don't have a member role, but it's recommended!")
} }
//closemode
checkType(config.system.closeMode,"string","system/closeMode") checkType(config.system.closeMode,"string","system/closeMode")
if (!["normal","adminonly"].includes(config.system.closeMode)){ if (!["normal","adminonly"].includes(config.system.closeMode)){
createError("'system/closeMode' | the close mode must be adminonly or normal") createError("'system/closeMode' | the close mode must be adminonly or normal")
@@ -436,29 +466,6 @@ exports.checker = async () => {
}) })
//discord check
/**
const discord = require("discord.js")
const {GatewayIntentBits,Partials} = discord
const client = new discord.Client({
intents:[
GatewayIntentBits.DirectMessages,
GatewayIntentBits.GuildInvites,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.Guilds,
GatewayIntentBits.MessageContent
],
partials:[Partials.Channel,Partials.Message]
})
await client.guilds.fetch()
if (!client.guilds.cache.find(g => g.id == config.server_id)){
createError("'server_id' | i'm not in a server with this id!")
}
*/
//the end //the end
if (errorList.length > 0 || warnList.length > 0){ if (errorList.length > 0 || warnList.length > 0){
console.log("REPORT:\n===========================") console.log("REPORT:\n===========================")
+7 -6
View File
@@ -156,12 +156,13 @@ module.exports = () => {
if (config.system.member_role != "" && config.system.member_role != " " && config.system.member_role != "false" && config.system.member_role != "null" && config.system.member_role != "0"){ if (config.system.member_role != "" && config.system.member_role != " " && config.system.member_role != "false" && config.system.member_role != "null" && config.system.member_role != "0"){
try { try {
const userrole = guild.roles.cache.find(r => r.id == config.system.member_role) const userrole = guild.roles.cache.find(r => r.id == config.system.member_role)
if (!userrole) return if (userrole){
permissionsArray.push({ permissionsArray.push({
id:userrole, id:userrole,
type:"role", type:"role",
deny:[pfb.ViewChannel] deny:[pfb.ViewChannel]
}) })
}
}catch{ }catch{
log("system","invalid role! At 'config.json => system/member_role") log("system","invalid role! At 'config.json => system/member_role")
} }
@@ -69,7 +69,7 @@ exports.compile = (guild,channel,user,messagesInv,data) => {
author:{ author:{
name:msg.author.tag, name:msg.author.tag,
id:Number(msg.author.id), id:Number(msg.author.id),
color:msg.author.hexAccentColor || "#ffffff", color:msg.member.displayHexColor || "#ffffff",
pfp:msg.author.displayAvatarURL() pfp:msg.author.displayAvatarURL()
}, },
content:msg.content || "", content:msg.content || "",
+6 -2
View File
@@ -45,9 +45,13 @@ exports.tsready = (name,id,url,user) => {
.setColor(config.main_color) .setColor(config.main_color)
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()}) .setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
.setFooter({text:name}) .setFooter({text:name})
.setURL(url)
.setDescription("\n["+l.transcripts.available+"]("+url+")\n") if (url){
embed.setURL(url)
embed.setDescription("\n["+l.transcripts.available+"]("+url+")\n")
}else{
embed.setDescription("\n"+l.transcripts.available+"\n")
}
return embed return embed
} }
+86 -73
View File
@@ -12,6 +12,7 @@ const tsdb = require("./tsdb")
const checkAvailability = async () => { const checkAvailability = async () => {
if (process.argv.some((v) => v == "--tsoffline")) return true
const axios = require("axios").default const axios = require("axios").default
const res = await axios.get("https://transcripts.dj-dj.be/status.txt") const res = await axios.get("https://transcripts.dj-dj.be/status.txt")
if (!res || !(res.status == 200) || !res.data) return false if (!res || !(res.status == 200) || !res.data) return false
@@ -48,90 +49,102 @@ module.exports = async (messages,guild,channel,user,reason) => {
const ticketopener = client.users.cache.find(u => u.id == id) const ticketopener = client.users.cache.find(u => u.id == id)
if (tsconfig.sendTranscripts.useHTMLtranscripts){
const JSONDATA = require("./communication/compileJson").compile(guild,channel,user,messages,{ const JSONDATA = require("./communication/compileJson").compile(guild,channel,user,messages,{
style:{ style:{
titleColor:tsconfig.style.titleColor, titleColor:tsconfig.style.titleColor,
enableCustomBackground:tsconfig.style.background.enableCustomBackground, enableCustomBackground:tsconfig.style.background.enableCustomBackground,
backgroundModus:tsconfig.style.background.backgroundModus, backgroundModus:tsconfig.style.background.backgroundModus,
backgroundData:tsconfig.style.background.backgroundData backgroundData:tsconfig.style.background.backgroundData
}, },
bot:{ bot:{
name:client.user.username, name:client.user.username,
id:client.user.id, id:client.user.id,
pfp:client.user.displayAvatarURL() pfp:client.user.displayAvatarURL()
}, },
ticket:{ ticket:{
creatorid:ticketopener.id, creatorid:ticketopener.id,
creatorname:ticketopener.tag, creatorname:ticketopener.tag,
openedtime:opentime.getTime(), openedtime:opentime.getTime(),
closedtime:new Date().getTime() closedtime:new Date().getTime()
}
})
if (!await checkAvailability()){
const attachment = await require("./oldTranscript").createTranscript(messages,channel)
const errembed = tsembeds.tserror(chName,chId,user)
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]})
}
return
}
const TSdata = await require("./communication/index").upload(JSONDATA)
if (!TSdata) return false
if (TSdata.status == "success"){
const url = "https://transcripts.dj-dj.be/t/"+TSdata.time+"_"+TSdata.id+".html"
//calculate estimated time
const lastDumpTime = (new Date(TSdata.estimated.lastdump).getTime())
const dumpLoopTime = 15000
const nextDump = new Date(lastDumpTime+dumpLoopTime)
const processtime = TSdata.estimated.processtime+6000 //6sec extra time for overflow
const finaltime = new Date(nextDump.getTime()+processtime)
const duration = finaltime.getTime()-new Date().getTime()
//waiting
if (tsconfig.sendTranscripts.enableChannel){
/**@type {discord.TextChannel|undefined} */
const tc = guild.channels.cache.find((c) => c.id == tsconfig.sendTranscripts.channel)
if (!tc) return
const embed = tsembeds.beingprocessed(chName,chId,finaltime,user)
var msg = await tc.send({embeds:[embed]})
}else {var msg = false}
//ready
setTimeout(() => {
if (msg){
msg.edit({embeds:[tsembeds.tsready(chName,chId,url,user)]})
} }
})
if (tsconfig.sendTranscripts.enableDM){ if (!await checkAvailability()){
if (!user) return const attachment = await require("./oldTranscript").createTranscript(messages,channel)
const embed = tsembeds.tsready(chName,chId,url,user) const errembed = tsembeds.tserror(chName,chId,user)
try {
user.send({embeds:[embed]}) if (tsconfig.sendTranscripts.enableChannel){
}catch{} /**@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]})
} }
},duration) return
}
const TSdata = await require("./communication/index").upload(JSONDATA)
if (!TSdata) return false
if (TSdata.status == "success"){
const url = "https://transcripts.dj-dj.be/t/"+TSdata.time+"_"+TSdata.id+".html"
//calculate estimated time
const lastDumpTime = (new Date(TSdata.estimated.lastdump).getTime())
const dumpLoopTime = 15000
const nextDump = new Date(lastDumpTime+dumpLoopTime)
const processtime = TSdata.estimated.processtime+6000 //6sec extra time for overflow
const finaltime = new Date(nextDump.getTime()+processtime)
const duration = finaltime.getTime()-new Date().getTime()
//waiting
if (tsconfig.sendTranscripts.enableChannel){
/**@type {discord.TextChannel|undefined} */
const tc = guild.channels.cache.find((c) => c.id == tsconfig.sendTranscripts.channel)
if (!tc) return
const embed = tsembeds.beingprocessed(chName,chId,finaltime,user)
var msg = await tc.send({embeds:[embed]})
}else {var msg = false}
//ready
setTimeout(() => {
if (msg){
msg.edit({embeds:[tsembeds.tsready(chName,chId,url,user)]})
}
if (tsconfig.sendTranscripts.enableDM){
if (!user) return
const embed = tsembeds.tsready(chName,chId,url,user)
try {
user.send({embeds:[embed]})
}catch{}
}
},duration)
}else{
const attachment = await require("./oldTranscript").createTranscript(messages,channel)
const errembed = tsembeds.tserror(chName,chId,user,"`error type: transcript API error`")
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]})
}
}
}else{ }else{
const attachment = await require("./oldTranscript").createTranscript(messages,channel) const attachment = await require("./oldTranscript").createTranscript(messages,channel)
const errembed = tsembeds.tserror(chName,chId,user,"`error type: transcript API error`") const embed = tsembeds.tsready(chName,chId,false,user)
if (tsconfig.sendTranscripts.enableChannel){ if (tsconfig.sendTranscripts.enableChannel){
/**@type {discord.TextChannel|undefined} */ /**@type {discord.TextChannel|undefined} */
const tc = guild.channels.cache.find((c) => c.id == tsconfig.sendTranscripts.channel) const tc = guild.channels.cache.find((c) => c.id == tsconfig.sendTranscripts.channel)
if (!tc) return if (!tc) return
tc.send({embeds:[errembed],files:[attachment]}) tc.send({embeds:[embed],files:[attachment]})
} }
} }
} }
+14 -5
View File
@@ -7,15 +7,19 @@ const l = bot.language
/** /**
* *
* @param {discord.Message[]} messagecollection * @param {discord.Message[]} messagecollection
* @param {discord.TextChannel} channel
* @param {Boolean} backup
* @returns new `discord.attachmentBuilder` * @returns new `discord.attachmentBuilder`
*/ */
exports.createTranscript = async (messagecollection) => { exports.createTranscript = async (messagecollection,channel,backup) => {
try { try {
const cd = new Date() const cd = new Date()
const months = ["January","February","March","April","May","June","July","August","September","October","November","December"] const months = ["January","February","March","April","May","June","July","August","September","October","November","December"]
const dateString = cd.getDate()+" "+months[cd.getMonth()-1]+" "+cd.getFullYear()+" - "+cd.getHours()+":"+cd.getMinutes()+":"+cd.getSeconds() const dateString = cd.getDate()+" "+months[cd.getMonth()-1]+" "+cd.getFullYear()+" - "+cd.getHours()+":"+cd.getMinutes()+":"+cd.getSeconds()
const filearray = ["BACKUP TRANSCRIPT:\n"] let backuptitle = backup ? "BACKUP " : ""
let backupfilename = backup ? "backup" : ""
const filearray = [backuptitle+"TRANSCRIPT:\n"]
messagecollection.reverse() messagecollection.reverse()
@@ -23,15 +27,20 @@ exports.createTranscript = async (messagecollection) => {
const timestamp = new Date(msg.createdTimestamp) const timestamp = new Date(msg.createdTimestamp)
if (msg.content){var content = msg.content}else{var content = "*empty message*"} if (msg.content){var content = msg.content}else{var content = "*empty message*"}
const fileurls = []
const rawfiles = Array.from(msg.attachments)
rawfiles.forEach((file) => {
fileurls.push("attachment: "+file[1].url)
})
const filestring = fileurls.length > 0 ? fileurls.join("\n")+"\n" : ""
const msgstats = "files: "+msg.attachments.size+", embeds: "+msg.embeds.length const msgstats = "files: "+msg.attachments.size+", embeds: "+msg.embeds.length
filearray.push("["+timestamp.getDate()+"/"+timestamp.getMonth()+"/"+timestamp.getFullYear()+", "+timestamp.getHours()+":"+timestamp.getMinutes()+":"+timestamp.getSeconds()+"|"+msg.author.tag+"] ["+msgstats+"]\n"+content+"\n") filearray.push("["+timestamp.getDate()+"/"+timestamp.getMonth()+"/"+timestamp.getFullYear()+", "+timestamp.getHours()+":"+timestamp.getMinutes()+":"+timestamp.getSeconds()+"|"+msg.author.tag+"] ["+msgstats+"]\n"+content+"\n"+filestring)
}) })
if (filearray.length < 2) filearray.push("transcript is empty") if (filearray.length < 2) filearray.push("transcript is empty")
const filestring = filearray.join("\n") const filestring = filearray.join("\n")
const filebuff = Buffer.from(filestring,"utf-8") const filebuff = Buffer.from(filestring,"utf-8")
return new discord.AttachmentBuilder(filebuff,{name:"backuptranscript.txt",description:"Open Ticket transcript"}) return new discord.AttachmentBuilder(filebuff,{name:backupfilename+"transcript.txt",description:"Open Ticket transcript"})
}catch{ }catch{
return false return false
} }
+1 -1
View File
@@ -46,7 +46,7 @@ exports.createEmbed = (id) => {
embed.setColor(config.main_color) embed.setColor(config.main_color)
} }
if (data.other.embedTitleURL.enable) embed.setURL(data.other.embedTitleURL) if (data.other.embedTitleURL.enable) embed.setURL(data.other.embedTitleURL.url)
var description = data.description var description = data.description
if (data.other.enableTicketExplaination){ if (data.other.enableTicketExplaination){
+7 -1
View File
@@ -56,6 +56,12 @@ if (process.argv.some((v) => v == "--nochecker")){
console.log(chalk.blue("[FLAGS] => disabled checker.js")) console.log(chalk.blue("[FLAGS] => disabled checker.js"))
}; logFLAGS() }; logFLAGS()
} }
if (process.argv.some((v) => v == "--tsoffline")){
async function logFLAGS(){
const chalk = await (await import("chalk")).default
console.log(chalk.blue("[FLAGS] => offline check for html transcripts disabled!"))
}; logFLAGS()
}
if (process.argv.some((v) => v == "--debug")){ if (process.argv.some((v) => v == "--debug")){
async function logFLAGS(){ async function logFLAGS(){
const chalk = await (await import("chalk")).default const chalk = await (await import("chalk")).default
@@ -73,7 +79,7 @@ if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","loaded
const config = tempconfig const config = tempconfig
exports.config = config exports.config = config
const tsconfig = require("./transcriptconfig.json") const tsconfig = isDevConfig ? require("./devtsconfig.json") : require("./transcriptconfig.json")
exports.tsconfig = tsconfig exports.tsconfig = tsconfig
if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","loaded config") if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","loaded config")
+23 -22
View File
@@ -1,21 +1,22 @@
```json
{ {
"errors":{ "errors":{
"missingArgsTitle":"Ungültiges Argument!", "missingArgsTitle":"Ungültiges Argument!",
"missingArgsDescription":"Fehlendes Argument!", "missingArgsDescription":"Fehlendes Argument!",
"noPermsTitle":"Du hast keine Rechte!", "noPermsTitle":"Du hast keine Rechte!",
"noPermsDescription":"Sie haben nicht die richtigen Rollen, um diesen Befehl auszuführen!\nSie benötigen die `ADMINISTRATOR` Erlaubnis oder in der Liste der erlaubten Rollen sein!", "noPermsDescription":"Du benötigst die `ADMINISTRATOR` Rechte oder die erlaubte Rolle",
"noPermsDelete":"Only admins can delete a ticket!", "noPermsDelete":"Nur Administratoren können ein Ticket löschen!",
"chooseFromListTitle":"Ungültige ID", "chooseFromListTitle":"Ungültige ID",
"chooseFromListDescription":"Wählen Sie eine der folgenden ID:", "chooseFromListDescription":"Wählen Sie eine der folgenden ID's:",
"boterror":"Bot Fehler!", "boterror":"Bot Fehler!",
"notInTicketTitle":"Du bist ein kein Ticket!", "notInTicketTitle":"Du bist in keinem Ticket!",
"notInTicketDescription":"Der Befehl funktioniert nicht außerhalb eines Tickets!", "notInTicketDescription":"Der Befehl funktioniert außerhalb eines Tickets nicht!",
"ticketDoesntExist":"Das Ticket Exisitert nicht mehr!", "ticketDoesntExist":"Das Ticket exisitert nicht mehr!",
"roleDoesntExist":"Die Rolle Exisitiert nicht mehr!", "roleDoesntExist":"Die Rolle exisitiert nicht mehr!",
"anotherOption":"Diese Option ist kein Ticket, sondern eine andere Art!", "anotherOption":"Diese Option ist kein Ticket, sondern eine andere Art!",
"maxAmountTitle":"Das Limit wurde erreicht!", "maxAmountTitle":"Das Limit wurde erreicht!",
"maxAmountDescription":"Sie haben die maximal zulässige Anzahl von Tickets erreicht!\nSie können also keine neue erstellen.!", "maxAmountDescription":"Sie haben die maximal zulässige Anzahl von Tickets erreicht!\nSie können also keine neuen erstellen.!",
"somethingWentWrong":"Etwas ist schief gelaufen!**\nBitte versuchen Sie es ein anderes Mal!" "somethingWentWrong":"**Etwas ist schief gelaufen!**\nBitte versuchen Sie es ein anderes Mal!",
}, },
"commands":{ "commands":{
"userAddedTitle":"User geaddet!", "userAddedTitle":"User geaddet!",
@@ -24,9 +25,9 @@
"closeTitle":"Dieses Ticket schließen!", "closeTitle":"Dieses Ticket schließen!",
"deleteTitle":"Löschen Sie dieses Ticket!", "deleteTitle":"Löschen Sie dieses Ticket!",
"reopenTitle":"Öffne dieses Ticket erneut!", "reopenTitle":"Öffne dieses Ticket erneut!",
"claimTitle":"This ticket is now claimed to {0}", "claimTitle":"Das Ticket wurde beansprucht von {0}",
"unclaimTitle":"This ticket isn't claimed anymore!", "unclaimTitle":"Das Ticket wrid nicht mehr beansprucht",
"changeTitle":"Changed ticket type to {0}!", "changeTitle":"Ticket Typ wurde geändert auf {0}!",
"ticketWarning":"Die Einbettung befindet sich in der Nachricht unten!", "ticketWarning":"Die Einbettung befindet sich in der Nachricht unten!",
"maxTicketWarning":"**Warnung:** _Sie können nur {0} ticket(s) erstellen zu einer Zeit!_" "maxTicketWarning":"**Warnung:** _Sie können nur {0} ticket(s) erstellen zu einer Zeit!_"
@@ -63,25 +64,25 @@
"deletedTicketDmTitle":"Ticket löschen!", "deletedTicketDmTitle":"Ticket löschen!",
"closedTicketDmDescription":"Ihr Ticket ist geschlossen!", "closedTicketDmDescription":"Ihr Ticket ist geschlossen!",
"deletedTicketDmDescription":"Ihr Ticket ist gelöscht!", "deletedTicketDmDescription":"Ihr Ticket ist gelöscht!",
"reopenTicketDmTitle":"Ticket Re-opened!", "newTranscriptTitle":"Eine neue Transcript finden Sie hier!",
"reopenTicketDmDescription":"Your ticket is re-opened!", "hereIsTheTranscript":"Hier ist das Transcript:",
"chooseCategory":"Wähle eine Kategorie:", "chooseCategory":"Wähle eine Kategorie:",
"gettingdeleted":"Ticket is getting deleted...", "gettingdeleted":"Ticket wird gelöscht...",
"none":"keiner", "none":"none",
"reason":"Grund", "reason":"Grund",
"deletedby":"Gelöscht von", "deletedby":"Gelöscht von",
"closedby":"Geschlossen von", "closedby":"Geschlossen von",
"modalreason":"Was ist der Grund?", "modalreason":"Was ist der Grund?",
"chooseATicket": "Wähle ein Ticket" "chooseATicket": "Wähle ein passendes Thema!"
}, },
"transcripts":{ "transcripts":{
"title":"Transcript", "title":"Transcript",
"processed":"This transcript is being processed", "processed":"Das Transcript wird erstellt",
"wait":"Please wait!", "wait":"Bitte warten!",
"estimated":"Estimated time", "estimated":"Verbleibende Zeit",
"available":"The transcript is available here" "available":"Das Transcript ist hier verfügbar"
} }
} }```
+44 -44
View File
@@ -1,60 +1,60 @@
{ {
"errors":{ "errors":{
"missingArgsTitle":"Argomenti non validi!", "missingArgsTitle":"Argomenti non validi!",
"missingArgsDescription":"Argomento mancante", "missingArgsDescription":"Argomenti mancanti",
"noPermsTitle":"Permessi mancanti!", "noPermsTitle":"Non hai i permessi sufficienti!",
"noPermsDescription":"Hai bisogno del permesso `ADMINISTRATOR` e essere nella lista dei ruoli accettati!", "noPermsDescription":"Hai bisogno del permesso `ADMINISTRATOR` o essere nella lista dei ruoli consentiti!",
"noPermsDelete":"Solo gli amministratori possono chiudere un ticket!", "noPermsDelete":"Solo gli amministratori possono eliminare i ticket!",
"chooseFromListTitle":"ID non valido", "chooseFromListTitle":"ID non valido",
"chooseFromListDescription":"Scegli uno degli ID sotto:", "chooseFromListDescription":"Scegli uno degli id sottostanti:",
"boterror":"Errore del bot!", "boterror":"Errore del bot!",
"notInTicketTitle":"Non sei in un ticket!", "notInTicketTitle":"Non sei in un ticket!",
"notInTicketDescription":"Questo comando non funziona fuori da un ticket!", "notInTicketDescription":"Questo comando non funziona al di fuori di un ticket!",
"ticketDoesntExist":"Questo ticket non esiste più!", "ticketDoesntExist":"Questo ticket non esiste!",
"roleDoesntExist":"Questo ruolo non esiste più!", "roleDoesntExist":"Questo ruolo non esiste!",
"anotherOption":"Questa opzione non è di un ticket!", "anotherOption":"Questa opzione non è un ticket ma un'altra!",
"maxAmountTitle":"Massimo numero raggiunto!", "maxAmountTitle":"Massimo ammontare raggiunto!",
"maxAmountDescription":"Hai raggiunto il massimo numero di ticket consentiti!\nNon puoi crearne altri!", "maxAmountDescription":"Hai raggiunto il massimo di ticket aperti!\nNon puoi creare altri!",
"somethingWentWrong":"**Qualcosa è andato storto!**\nPerfavore riprova un'altra volta!" "somethingWentWrong":"*Qualcosa è andato storto!*\nPerfavore riprova un'altra volta!"
}, },
"commands":{ "commands":{
"userAddedTitle":"Aggiunto {0} al ticket!", "userAddedTitle":"Aggiunti {0} a questo ticket!",
"userRemovedTitle":"Rimosso {0} da questo ticket!", "userRemovedTitle":"Rimossi {0} da questo ticket!",
"renameTitle":"Cambia il nome in {0}!", "renameTitle":"Cambiato il nome a {0}!",
"closeTitle":"Chiudo questo ticket!", "closeTitle":"Ticket chiuso!",
"deleteTitle":"Eliminando questo ticket...", "deleteTitle":"Eliminando questo ticket...",
"reopenTitle":"Ri-Aperto questo ticket!", "reopenTitle":"Ri-aperto questo ticket!",
"claimTitle":"This ticket is now claimed to {0}", "claimTitle":"Questo ticket è ora gestito da {0}",
"unclaimTitle":"This ticket isn't claimed anymore!", "unclaimTitle":"Questo ticket non è più gestito!",
"changeTitle":"Changed ticket type to {0}!", "changeTitle":"Cambiato il tipo di ticket in {0}!",
"ticketWarning":"L'embed è nel messaggio sotto!", "ticketWarning":"L'embed è nel messaggio sotto!",
"maxTicketWarning":"**Attenzione:** _Tu puoi creare solo {0} ticket(s) per volta!_" "maxTicketWarning":"*Attenzione:* Tu puoi creare solo {0} ticket alla volta!"
}, },
"helpMenu":{ "helpMenu":{
"title":"Comandi disponibili:", "title":"Comandi disponibili:",
"header1":"**Vai a {0} per creare un ticket!**\n\n", "header1":"*Vai a {0} per creare un ticket!*\n\n",
"header2":"**Esegui il comando `/new` o `/ticket` per creare un ticket!**\n\n", "header2":"*Esegui il comando `/new` o `/ticket` per creare un ticket!*\n\n",
"msgCmd":"Crea un embed con pulsanti. (solo amministratori)", "msgCmd":"Crea un embed con bottoni. (solo amministratori)",
"renameCmd":"Rinomina un ticket. (senza spazi)", "renameCmd":"Rinomina un ticket. (senza spazi)",
"closeCmd":"Chiudi un ticket.", "closeCmd":"Chiudi un ticket.",
"deleteCmd":"Elimina un ticket.", "deleteCmd":"Elimina un ticket.",
"addCmd":"Aggiungi un membro al ticket.", "addCmd":"Aggiungi un utente al ticket.",
"removeCmd":"Rimuovi un membro dal ticket.", "removeCmd":"Rimuovi un utente da un ticket.",
"reopenCmd":"Riapri un ticket dopo averlo chiuso." "reopenCmd":"Ri-apri un ticket dopo averlo chiuso."
}, },
"buttons":{ "buttons":{
"close":"Chiudi il ticket", "close":"Chiudi",
"delete":"Elimina il ticket", "delete":"Elimini",
"reopen":"Riapri il ticket", "reopen":"Ri-apri un ticket",
"closeWithReason":"chiudi con un motivo" "closeWithReason":"chiudi con motivo"
}, },
"messages":{ "messages":{
"reopenTitle":"Riaperto questo ticket!", "reopenTitle":"Ticket ri-aperto!",
"reopenDescription":"Sentiti libero di parlare di nuovo!", "reopenDescription":"Sentiti libero di parlare nuovamente!",
"closedTitle":"Chiudo questo ticket!", "closedTitle":"Ticket chiuso!",
"closedDescription":"Solo gli amministratori possono parlare in questo ticket ora!\n\n*Clicca sul bottone sotto per chiudere o riaprire questo ticket!*", "closedDescription":"Solo gli amministratori possono parlare in questo ticket ora!\n\n*Clicca sul pulsante sotto per eliminare o ri-aprire questo ticket!*",
"createdTitle":"Ticket creato!", "createdTitle":"Ticket creato!",
"createdDescription":"Il tuo ticket è stato creato, puoi capirlo dal ping!", "createdDescription":"Il tuo ticket è stato creato, puoi capirlo dal ping!",
@@ -62,9 +62,9 @@
"closedTicketDmTitle":"Ticket chiuso!", "closedTicketDmTitle":"Ticket chiuso!",
"deletedTicketDmTitle":"Ticket eliminato!", "deletedTicketDmTitle":"Ticket eliminato!",
"closedTicketDmDescription":"Il tuo ticket è chiuso!", "closedTicketDmDescription":"Il tuo ticket è chiuso!",
"deletedTicketDmDescription":"Il tuo ticket è stato eliminato!", "deletedTicketDmDescription":"Il tuo ticket è eliminato!",
"reopenTicketDmTitle":"Ticket riaperto!", "reopenTicketDmTitle":"Ticket ri-aperto!",
"reopenTicketDmDescription":"Il tuo ticket è stato riaperto!", "reopenTicketDmDescription":"Il tuo ticket è stato ri-aperto!",
"chooseCategory":"scegli una categoria:", "chooseCategory":"scegli una categoria:",
"gettingdeleted":"Il ticket sta per essere chiuso...", "gettingdeleted":"Il ticket sta per essere chiuso...",
@@ -74,14 +74,14 @@
"deletedby":"eliminato da", "deletedby":"eliminato da",
"closedby":"chiuso da", "closedby":"chiuso da",
"modalreason":"Quale'è il motivo per chiudere il ticket?", "modalreason":"Quale è il motivo per chiudere questo ticket?",
"chooseATicket": "Scegli un ticket" "chooseATicket": "Scegli un ticket"
}, },
"transcripts":{ "transcripts":{
"title":"Transcript", "title":"Trascrizione",
"processed":"This transcript is being processed", "processed":"Questo ticket sta per essere processato",
"wait":"Please wait!", "wait":"Perfavore attendi!",
"estimated":"Estimated time", "estimated":"Tempo estimato",
"available":"The transcript is available here" "available":"La trascrizione è disponibile qui"
} }
} }
+8 -8
View File
@@ -24,9 +24,9 @@
"closeTitle":"Cerró este ticket!", "closeTitle":"Cerró este ticket!",
"deleteTitle":"Eliminando este ticket...", "deleteTitle":"Eliminando este ticket...",
"reopenTitle":"Re-abrió este boleto!", "reopenTitle":"Re-abrió este boleto!",
"claimTitle":"This ticket is now claimed to {0}", "claimTitle":"Este ticket será atendido por {0}",
"unclaimTitle":"This ticket isn't claimed anymore!", "unclaimTitle":"¡Este ticket ya no está reservado!",
"changeTitle":"Changed ticket type to {0}!", "changeTitle":"¡Cambiando el tipo de ticket a {0}!",
"ticketWarning":"La inserción está en el mensaje a continuación!", "ticketWarning":"La inserción está en el mensaje a continuación!",
"maxTicketWarning":"**Advertencia:** _Solo puedes crear {0} ticket(s) a la vez!_" "maxTicketWarning":"**Advertencia:** _Solo puedes crear {0} ticket(s) a la vez!_"
@@ -78,10 +78,10 @@
"chooseATicket": "Elije un ticket" "chooseATicket": "Elije un ticket"
}, },
"transcripts":{ "transcripts":{
"title":"Transcript", "title":"Transcripción",
"processed":"This transcript is being processed", "processed":"La transcripción del ticket está siendo procesada...",
"wait":"Please wait!", "wait":"¡Por favor, espere!",
"estimated":"Estimated time", "estimated":"Tiempo estimado",
"available":"The transcript is available here" "available":"La transcripción estará disponible aquí"
} }
} }
+1
View File
@@ -2,6 +2,7 @@
"sendTranscripts":{ "sendTranscripts":{
"enableChannel":false, "enableChannel":false,
"channel":"transcript channel id", "channel":"transcript channel id",
"useHTMLtranscripts":true,
"enableDM":false "enableDM":false
}, },