v3.2 push 1 NOT WORKING YET!!!
This commit is contained in:
@@ -12,6 +12,7 @@ developerChangelog.md
|
|||||||
storage/dynamicDB/
|
storage/dynamicDB/
|
||||||
storage/slashcmdEnabled.txt
|
storage/slashcmdEnabled.txt
|
||||||
storage/database.json
|
storage/database.json
|
||||||
|
storage/tsdatabase.json
|
||||||
storage/.DS_Store
|
storage/.DS_Store
|
||||||
.vscode/
|
.vscode/
|
||||||
livestatus.json
|
livestatus.json
|
||||||
|
|||||||
@@ -15,14 +15,15 @@ Start using it now, you can do anything!
|
|||||||
- Sanke: for translation & new ideas
|
- Sanke: for translation & new ideas
|
||||||
- Everyone that reported a bug
|
- Everyone that reported a bug
|
||||||
#### And our translators!
|
#### And our translators!
|
||||||
- ExothDE
|
- Sanke#6086 (Romanian & French)
|
||||||
- 1x1
|
- Redactado#1673 (Spanish)
|
||||||
- Redactado
|
- t0miiis#3022 (Czech)
|
||||||
- t0miiis
|
- josuens14 (Spanish)
|
||||||
- josuens14
|
- M4#5882 (Arabic)
|
||||||
- M4
|
- ChilledBroke#9986 (Arabic)
|
||||||
- David.
|
- David.#0187 (German)
|
||||||
- Maurizio
|
- Maurizio#0268 (Italian)
|
||||||
|
- the_gamer#5095 (Danish)
|
||||||
|
|
||||||
## features
|
## features
|
||||||
- discord interaction buttons
|
- discord interaction buttons
|
||||||
|
|||||||
+105
@@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
"version": "1.0.0",
|
||||||
|
"otversion": "3.1.0",
|
||||||
|
"style": {
|
||||||
|
"backgroundData": "https://pbs.twimg.com/media/EBjFBlVXsAAhvXl?format=jpg&name=4096x4096",
|
||||||
|
"backgroundModus": "image",
|
||||||
|
"enableCustomBackground": true,
|
||||||
|
"titleColor": "#49c100"
|
||||||
|
},
|
||||||
|
"bot": {
|
||||||
|
"name": "DJdj Test Bot",
|
||||||
|
"id": 958290611331539000,
|
||||||
|
"pfp": "https://cdn.discordapp.com/avatars/958290611331538975/7a989e8ce6cde2b3e3c7fc15001452a0.webp"
|
||||||
|
},
|
||||||
|
"ticket": {
|
||||||
|
"name": "question-djj123dj",
|
||||||
|
"id": 1064653735772565500,
|
||||||
|
"guildname": "DJDJ bot test",
|
||||||
|
"guildid": 935983011281903600,
|
||||||
|
"creatorname": "DJj123dj#1706",
|
||||||
|
"creatorid": 779742674932072400,
|
||||||
|
"closedbyname": "DJj123dj#1706",
|
||||||
|
"closedbyid": 779742674932072400,
|
||||||
|
"closedtime": 1673903703543,
|
||||||
|
"openedtime": 1673903631015,
|
||||||
|
"messages": 4,
|
||||||
|
"files": 0
|
||||||
|
},
|
||||||
|
"messages": [
|
||||||
|
{
|
||||||
|
"author": {
|
||||||
|
"name": "DJdj Test Bot#7338",
|
||||||
|
"id": 958290611331539000,
|
||||||
|
"color": "#ffffff",
|
||||||
|
"pfp": "https://cdn.discordapp.com/avatars/958290611331538975/7a989e8ce6cde2b3e3c7fc15001452a0.webp"
|
||||||
|
},
|
||||||
|
"content": "<@779742674932072469> @here",
|
||||||
|
"timestamp": 1673903631356,
|
||||||
|
"embeds": [
|
||||||
|
{
|
||||||
|
"title": "Question",
|
||||||
|
"description": "The staff will help you soon!\n\n*Click on the button below to close the ticket!*",
|
||||||
|
"authorimg": false,
|
||||||
|
"authortext": false,
|
||||||
|
"footerimg": false,
|
||||||
|
"footertext": false,
|
||||||
|
"color": "#49c100",
|
||||||
|
"image": false,
|
||||||
|
"thumbnail": false,
|
||||||
|
"url": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"files": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"author": {
|
||||||
|
"name": "DJdj Test Bot#7338",
|
||||||
|
"id": 958290611331539000,
|
||||||
|
"color": "#ffffff",
|
||||||
|
"pfp": "https://cdn.discordapp.com/avatars/958290611331538975/7a989e8ce6cde2b3e3c7fc15001452a0.webp"
|
||||||
|
},
|
||||||
|
"content": "",
|
||||||
|
"timestamp": 1673903631652,
|
||||||
|
"embeds": [],
|
||||||
|
"files": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"author": {
|
||||||
|
"name": "DJj123dj#1706",
|
||||||
|
"id": 779742674932072400,
|
||||||
|
"color": "#ffffff",
|
||||||
|
"pfp": "https://cdn.discordapp.com/avatars/779742674932072469/4588af0ccb6a18a66d66c77bddbdfc81.webp"
|
||||||
|
},
|
||||||
|
"content": "**test markdown (again)**\n__hi__\n~~hello!~~\n\n_nice_\n\n**___super text!__**",
|
||||||
|
"timestamp": 1673903693407,
|
||||||
|
"embeds": [],
|
||||||
|
"files": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"author": {
|
||||||
|
"name": "DJdj Test Bot#7338",
|
||||||
|
"id": 958290611331539000,
|
||||||
|
"color": "#ffffff",
|
||||||
|
"pfp": "https://cdn.discordapp.com/avatars/958290611331538975/7a989e8ce6cde2b3e3c7fc15001452a0.webp"
|
||||||
|
},
|
||||||
|
"content": "",
|
||||||
|
"timestamp": 1673903697253,
|
||||||
|
"embeds": [
|
||||||
|
{
|
||||||
|
"title": "❌ Deleting this ticket...",
|
||||||
|
"description": false,
|
||||||
|
"authorimg": false,
|
||||||
|
"authortext": false,
|
||||||
|
"footerimg": "https://cdn.discordapp.com/avatars/779742674932072469/4588af0ccb6a18a66d66c77bddbdfc81.webp",
|
||||||
|
"footertext": "DJj123dj#1706",
|
||||||
|
"color": "#49c100",
|
||||||
|
"image": false,
|
||||||
|
"thumbnail": false,
|
||||||
|
"url": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"files": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -21,8 +21,6 @@ module.exports = () => {
|
|||||||
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+"_")
|
||||||
|
|
||||||
if (config.credits) helpEmbed.setFooter({text:"Open-Ticket by DJdj Development | view on github for source code",iconURL:"https://raw.githubusercontent.com/DJj123dj/open-ticket/main/logo.png"})
|
|
||||||
|
|
||||||
var otherprefix = prefix.endsWith(" ") ? prefix.substring(0,prefix.length-1) : prefix
|
var otherprefix = prefix.endsWith(" ") ? prefix.substring(0,prefix.length-1) : prefix
|
||||||
|
|
||||||
if (!DISABLE.commands.text.help) client.on("messageCreate",msg => {
|
if (!DISABLE.commands.text.help) client.on("messageCreate",msg => {
|
||||||
|
|||||||
+1
-4
@@ -6,7 +6,6 @@
|
|||||||
"prefix":"!ticket ",
|
"prefix":"!ticket ",
|
||||||
"languagefile":"english",
|
"languagefile":"english",
|
||||||
|
|
||||||
"credits":true,
|
|
||||||
"status":{
|
"status":{
|
||||||
"enabled":true,
|
"enabled":true,
|
||||||
"type":"PLAYING",
|
"type":"PLAYING",
|
||||||
@@ -22,9 +21,7 @@
|
|||||||
"member_role":"member role (doesn't have access to tickets)",
|
"member_role":"member role (doesn't have access to tickets)",
|
||||||
"closeMode":"adminonly|normal",
|
"closeMode":"adminonly|normal",
|
||||||
|
|
||||||
"enable_transcript":false,
|
"transcripts":"!!!! ALL SETTINGS FOR TRANSCRIPTS ARE LOCATED IN: transcriptconfig.json !!!!",
|
||||||
"enable_DM_transcript":false,
|
|
||||||
"transcript_channel":"channel id",
|
|
||||||
|
|
||||||
"showSlashcmdsInHelp":false
|
"showSlashcmdsInHelp":false
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-7
@@ -368,7 +368,7 @@ exports.checker = async () => {
|
|||||||
//--------------------------|
|
//--------------------------|
|
||||||
//--------------------------|
|
//--------------------------|
|
||||||
|
|
||||||
var configArray = ["main_color","server_id","auth_token","main_adminroles","prefix","languagefile","credits","status","system","options","messages"]
|
var configArray = ["main_color","server_id","auth_token","main_adminroles","prefix","languagefile","status","system","options","messages"]
|
||||||
configArray.forEach((item) => {
|
configArray.forEach((item) => {
|
||||||
if (config[item] == undefined){
|
if (config[item] == undefined){
|
||||||
throw new Error("\n\nMAIN ERROR: the item '"+item+"' doesn't exist in config.json")
|
throw new Error("\n\nMAIN ERROR: the item '"+item+"' doesn't exist in config.json")
|
||||||
@@ -390,7 +390,6 @@ exports.checker = async () => {
|
|||||||
createError("'languagefile' | invalid language, more info in the wiki")
|
createError("'languagefile' | invalid language, more info in the wiki")
|
||||||
}
|
}
|
||||||
|
|
||||||
checkType(config.credits,"boolean","credits")
|
|
||||||
//status:
|
//status:
|
||||||
checkType(config.status.enabled,"boolean","status/enabled")
|
checkType(config.status.enabled,"boolean","status/enabled")
|
||||||
if (config.status.enabled){
|
if (config.status.enabled){
|
||||||
@@ -423,11 +422,6 @@ exports.checker = async () => {
|
|||||||
createError("'system/closeMode' | the close mode must be adminonly or normal")
|
createError("'system/closeMode' | the close mode must be adminonly or normal")
|
||||||
}
|
}
|
||||||
|
|
||||||
checkType(config.system.enable_transcript,"boolean","system/enable_transcript")
|
|
||||||
checkType(config.system.enable_DM_transcript,"boolean","system/enable_DM_transcript")
|
|
||||||
if (config.system.enable_transcript){
|
|
||||||
checkDiscord("channelid",config.system.transcript_channel,"system/transcript_channel")
|
|
||||||
}
|
|
||||||
checkType(config.system.showSlashcmdsInHelp,"boolean","system/showSlashcmdsInHelp")
|
checkType(config.system.showSlashcmdsInHelp,"boolean","system/showSlashcmdsInHelp")
|
||||||
|
|
||||||
//options
|
//options
|
||||||
|
|||||||
@@ -25,16 +25,26 @@ exports.closeCommandRow = new arb()
|
|||||||
)
|
)
|
||||||
.addComponents(
|
.addComponents(
|
||||||
new button()
|
new button()
|
||||||
.setCustomId("OTsendTranscript")
|
.setCustomId("OTreopenTicket")
|
||||||
.setDisabled(false)
|
.setDisabled(false)
|
||||||
.setStyle(bs.Secondary)
|
.setStyle(bs.Success)
|
||||||
.setLabel(l.buttons.sendTranscript)
|
.setLabel(l.buttons.reopen)
|
||||||
.setEmoji("📄")
|
.setEmoji("✔")
|
||||||
|
)
|
||||||
|
|
||||||
|
exports.closeCommandRowDisabled = new arb()
|
||||||
|
.addComponents(
|
||||||
|
new button()
|
||||||
|
.setCustomId("OTdeleteTicket1")
|
||||||
|
.setDisabled(true)
|
||||||
|
.setStyle(bs.Danger)
|
||||||
|
.setLabel(l.buttons.delete)
|
||||||
|
.setEmoji("✖️")
|
||||||
)
|
)
|
||||||
.addComponents(
|
.addComponents(
|
||||||
new button()
|
new button()
|
||||||
.setCustomId("OTreopenTicket")
|
.setCustomId("OTreopenTicket")
|
||||||
.setDisabled(false)
|
.setDisabled(true)
|
||||||
.setStyle(bs.Success)
|
.setStyle(bs.Success)
|
||||||
.setLabel(l.buttons.reopen)
|
.setLabel(l.buttons.reopen)
|
||||||
.setEmoji("✔")
|
.setEmoji("✔")
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ module.exports = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
interaction.channel.send({embeds:[bot.embeds.commands.deleteEmbed(interaction.user)]})
|
|
||||||
await interaction.message.edit({components:[bot.buttons.close.openRowDisabled]})
|
await interaction.message.edit({components:[bot.buttons.close.openRowDisabled]})
|
||||||
|
await interaction.channel.send({embeds:[bot.embeds.commands.deleteEmbed(interaction.user)]})
|
||||||
await require("../../../ticketActions/ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"delete",false,true)
|
await require("../../../ticketActions/ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"delete",false,true)
|
||||||
deleteTicketButtonChecker = false
|
deleteTicketButtonChecker = false
|
||||||
})
|
})
|
||||||
@@ -90,8 +90,10 @@ module.exports = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
interaction.channel.send({embeds:[bot.embeds.commands.deleteEmbed(interaction.user)]})
|
await interaction.message.edit({components:[bot.buttons.close.closeCommandRowDisabled]})
|
||||||
await require("../../../ticketActions/ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"deletenotranscript",false,true)
|
await interaction.channel.send({embeds:[bot.embeds.commands.deleteEmbed(interaction.user)]})
|
||||||
|
await require("../../../ticketActions/ticketCloser").NEWcloseTicket(interaction.member,interaction.channel,prefix,"delete",false,true)
|
||||||
deleteTicketButtonChecker1 = false
|
deleteTicketButtonChecker1 = false
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
module.exports = () => {
|
module.exports = () => {
|
||||||
require("./firstmsg")()
|
require("./firstmsg")()
|
||||||
require("./sendTranscript")()
|
|
||||||
require("./verifyBars")()
|
require("./verifyBars")()
|
||||||
|
|
||||||
//accepted
|
//accepted
|
||||||
|
|||||||
@@ -1,46 +0,0 @@
|
|||||||
const discord = require('discord.js')
|
|
||||||
const bot = require('../../../index')
|
|
||||||
const client = bot.client
|
|
||||||
const config = bot.config
|
|
||||||
const l = bot.language
|
|
||||||
const log = bot.errorLog.log
|
|
||||||
|
|
||||||
const storage = bot.storage
|
|
||||||
const hiddendata = bot.hiddenData
|
|
||||||
const embed = discord.EmbedBuilder
|
|
||||||
const mc = config.main_color
|
|
||||||
|
|
||||||
const button = discord.ButtonBuilder
|
|
||||||
const arb = discord.ActionRowBuilder
|
|
||||||
const bs = discord.ButtonStyle
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = () => {
|
|
||||||
client.on("interactionCreate",async (interaction) => {
|
|
||||||
if (!interaction.isButton()) return
|
|
||||||
if (interaction.customId != "OTsendTranscript") return
|
|
||||||
|
|
||||||
try {
|
|
||||||
interaction.deferUpdate()
|
|
||||||
} catch{}
|
|
||||||
const tsmsg = await interaction.channel.send({embeds:[bot.embeds.commands.sendTranscriptEmbed(false,interaction.channel,interaction.user)]})
|
|
||||||
|
|
||||||
const channelmessages = await interaction.channel.messages.fetch()
|
|
||||||
|
|
||||||
channelmessages.sweep((msgSweep) => {
|
|
||||||
return msgSweep.author.id == client.user.id
|
|
||||||
})
|
|
||||||
|
|
||||||
var fileattachment = await require("../../transcript").createTranscript(channelmessages,interaction.channel)
|
|
||||||
|
|
||||||
if (fileattachment == false){
|
|
||||||
log("system","internal error: transcript is not created!")
|
|
||||||
tsmsg.edit({embeds:[bot.errorLog.serverError(l.errors.somethingWentWrongTranscript)]})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
tsmsg.edit({embeds:[bot.embeds.commands.sendTranscriptEmbed(true,interaction.channel,interaction.user)],files:[fileattachment]})
|
|
||||||
}catch{}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
@@ -16,6 +16,7 @@ else if (config.languagefile.startsWith("arabic")) localLanguage = require("../l
|
|||||||
else if (config.languagefile.startsWith("spanish")) localLanguage = require("../language/spanish.json")
|
else if (config.languagefile.startsWith("spanish")) localLanguage = require("../language/spanish.json")
|
||||||
else if (config.languagefile.startsWith("portuguese")) localLanguage = require("../language/portuguese.json")
|
else if (config.languagefile.startsWith("portuguese")) localLanguage = require("../language/portuguese.json")
|
||||||
else if (config.languagefile.startsWith("italian")) localLanguage = require("../language/italian.json")
|
else if (config.languagefile.startsWith("italian")) localLanguage = require("../language/italian.json")
|
||||||
|
else if (config.languagefile.startsWith("danish")) localLanguage = require("../language/danish.json")
|
||||||
|
|
||||||
|
|
||||||
const errorLog = async () => {
|
const errorLog = async () => {
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
|||||||
var enableTranscript = true
|
var enableTranscript = true
|
||||||
var deleteRequired = false
|
var deleteRequired = false
|
||||||
|
|
||||||
if (mode == "delete"){
|
if (mode == "delete" || mode == "deletenotranscript"){
|
||||||
//delete
|
//delete
|
||||||
//check perms
|
//check perms
|
||||||
if (!guild) return
|
if (!guild) return
|
||||||
@@ -196,14 +196,6 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
|||||||
.setLabel(l.buttons.delete)
|
.setLabel(l.buttons.delete)
|
||||||
.setEmoji("✖️")
|
.setEmoji("✖️")
|
||||||
)
|
)
|
||||||
.addComponents(
|
|
||||||
new discord.ButtonBuilder()
|
|
||||||
.setCustomId("OTsendTranscript")
|
|
||||||
.setDisabled(false)
|
|
||||||
.setStyle(discord.ButtonStyle.Secondary)
|
|
||||||
.setLabel(l.buttons.sendTranscript)
|
|
||||||
.setEmoji("📄")
|
|
||||||
)
|
|
||||||
.addComponents(
|
.addComponents(
|
||||||
new discord.ButtonBuilder()
|
new discord.ButtonBuilder()
|
||||||
.setCustomId("OTreopenTicket")
|
.setCustomId("OTreopenTicket")
|
||||||
@@ -246,108 +238,23 @@ exports.NEWcloseTicket = async (member,channel,prefix,mode,reason,nomessage) =>
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
}else if (mode == "deletenotranscript"){
|
|
||||||
//delete with no transcript
|
|
||||||
//check perms
|
|
||||||
if (!guild) return
|
|
||||||
if (!permsChecker.command(user.id,guild.id)){
|
|
||||||
permsChecker.sendUserNoPerms(user)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
//start delete proccess
|
|
||||||
enableTranscript = false
|
|
||||||
deleteRequired = true
|
|
||||||
if (!nomessage){
|
|
||||||
await channel.send({content:"**"+l.messages.gettingdeleted+"**"})
|
|
||||||
}
|
|
||||||
log("system","deleted a ticket",[{key:"user",value:user.tag},{key:"ticket",value:channel.name}])
|
|
||||||
|
|
||||||
if (!isDatabaseError) storage.set("ticketStorage",getuserID,Number(storage.get("ticketStorage",getuserID)) - 1)
|
|
||||||
|
|
||||||
//getID & send DM & send api event
|
|
||||||
await channel.messages.fetchPinned().then(msglist => {
|
|
||||||
var firstmsg = msglist.last()
|
|
||||||
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return false
|
|
||||||
const hiddendata = bot.hiddenData.readHiddenData(firstmsg.embeds[0].description)
|
|
||||||
const ticketId = hiddendata.data.find(d => d.key == "type").value
|
|
||||||
const ticketData = require("../utils/configParser").getTicketById(ticketId,true)
|
|
||||||
|
|
||||||
require("../api/modules/events").onTicketDelete(user,channel,guild,new Date(),{name:channel.name,status:"deleted",ticketOptions:ticketData})
|
|
||||||
|
|
||||||
const id = hiddendata.data.find(d => d.key == "openerid").value
|
|
||||||
|
|
||||||
if (!id) return false
|
|
||||||
|
|
||||||
try{
|
|
||||||
if (config.system.enable_DM_Messages){
|
|
||||||
member.send({embeds:[bot.errorLog.custom(l.messages.deletedTicketDmTitle,l.messages.deletedTicketDmDescription,":ticket:",config.main_color)]})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch{log("system","can't send DM to member, member doesn't allow dm's")}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const transcriptHandler = async () => {
|
const transcriptHandler = async () => {
|
||||||
if (enableTranscript == true && mode != "deletenotranscript"){
|
if (!bot.tsconfig.sendTranscripts.enableChannel && !bot.tsconfig.sendTranscripts.enableDM) return false
|
||||||
//transcript messages
|
|
||||||
const transcriptReason = (mode == "close") ? "**"+l.messages.reason+":** "+newReason : "**"+l.messages.reason+":** "+l.messages.none
|
|
||||||
const closedByPrefix = (mode.startsWith("delete")) ? l.messages.deletedby : l.messages.closedby
|
|
||||||
|
|
||||||
if (config.system.enable_transcript || config.system.enable_DM_transcript){
|
const APIEvents = require("../api/modules/events")
|
||||||
const channelmessages = await channel.messages.fetch({cache:true})
|
const messages = await channel.messages.fetch({cache:true})
|
||||||
//remove ot bot from transcript
|
await require("../transcriptSystem/manager")(messages,guild,channel,user,reason)
|
||||||
channelmessages.sweep((msgSweep) => {return msgSweep.author.id == client.user.id})
|
APIEvents.onTranscriptCreation(messages,channel,guild,new Date())
|
||||||
|
|
||||||
var fileattachment = await require("../transcript").createTranscript(channelmessages,channel)
|
|
||||||
|
|
||||||
if (fileattachment == false){log("system","internal error: transcript is not created!");return}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (config.system.enable_transcript && !require("../api/api.json").disable.transcripts.server){
|
|
||||||
const transcriptEmbed = new discord.EmbedBuilder()
|
|
||||||
.setColor(config.main_color)
|
|
||||||
.setTitle("📄 "+l.messages.newTranscriptTitle)
|
|
||||||
.setDescription(transcriptReason)
|
|
||||||
.setFooter({text:closedByPrefix+": "+user.tag+" | ticket: "+channelname,iconURL:user.displayAvatarURL()})
|
|
||||||
|
|
||||||
guild.channels.cache.find(c => c.id == config.system.transcript_channel).send({
|
|
||||||
embeds:[transcriptEmbed],
|
|
||||||
files:[fileattachment]
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
if (config.system.enable_DM_transcript && !require("../api/api.json").disable.transcripts.dm){
|
|
||||||
const transcriptEmbed = new discord.EmbedBuilder()
|
|
||||||
.setColor(config.main_color)
|
|
||||||
.setTitle("📄 "+l.messages.newTranscriptTitle)
|
|
||||||
.setDescription(transcriptReason)
|
|
||||||
.setFooter({text:closedByPrefix+": "+user.tag+" | ticket: "+channelname,iconURL:user.displayAvatarURL()})
|
|
||||||
|
|
||||||
if (!isDatabaseError) ticketOpener.send({
|
|
||||||
embeds:[transcriptEmbed],
|
|
||||||
files:[fileattachment]
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
const deleteHandler = async () => {
|
const deleteHandler = async () => {
|
||||||
if (deleteRequired){
|
if (deleteRequired){
|
||||||
//const timer = () => {return new Promise((resolve,reject) => {
|
|
||||||
// setTimeout(() => {resolve(true)},7000)
|
|
||||||
//})}
|
|
||||||
//await timer()
|
|
||||||
|
|
||||||
pendingDelete.shift()
|
pendingDelete.shift()
|
||||||
await channel.delete()
|
await channel.delete()
|
||||||
|
|
||||||
//setTimeout(async () => {
|
|
||||||
// pendingDelete.shift()
|
|
||||||
// await channel.delete()
|
|
||||||
//},6000)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await transcriptHandler()
|
if (mode == "delete" || mode == "deletenotranscript") await transcriptHandler()
|
||||||
deleteHandler()
|
deleteHandler()
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
const discord = require('discord.js')
|
||||||
|
|
||||||
|
const bot = require("../../../index")
|
||||||
|
const tsconfig = bot.tsconfig
|
||||||
|
const tsembeds = require("../embeds")
|
||||||
|
const tsdb = require("../tsdb")
|
||||||
|
|
||||||
|
const otversion = require("../../../package.json").version
|
||||||
|
const version = require("../info.json").version
|
||||||
|
|
||||||
|
/**@typedef {{style:{enableCustomBackground:Boolean, backgroundModus:"color"|"image", backgroundData:String, titleColor:String}, bot:{name:String, id:Number, pfp:String}, ticket:{creatorname:String, creatorid:Number, closedtime:Number, openedtime:Number}}} OThtsDataOption */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {discord.Guild} guild
|
||||||
|
* @param {discord.Channel} channel
|
||||||
|
* @param {discord.User} user
|
||||||
|
* @param {discord.Message[]} messagesInv
|
||||||
|
* @param {OThtsDataOption} data
|
||||||
|
*/
|
||||||
|
exports.compile = (guild,channel,user,messagesInv,data) => {
|
||||||
|
const messages = messagesInv.reverse()
|
||||||
|
|
||||||
|
const rawfiles = messages.filter((m) => Array.from(m.attachments).length > 0)
|
||||||
|
var fileAmount = 0
|
||||||
|
rawfiles.forEach((msg) => {
|
||||||
|
fileAmount = fileAmount + Array.from(msg.attachments).length
|
||||||
|
})
|
||||||
|
|
||||||
|
const messagesArray = []
|
||||||
|
messages.forEach((msg) => {
|
||||||
|
const embedArray = []
|
||||||
|
const fileArray = []
|
||||||
|
|
||||||
|
msg.attachments.forEach((file) => {
|
||||||
|
fileArray.push({
|
||||||
|
name:file.name,
|
||||||
|
type:file.contentType,
|
||||||
|
size:file.size.toString()+" bytes",
|
||||||
|
url:file.url
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
msg.embeds.forEach((embed) => {
|
||||||
|
if (embed.description){
|
||||||
|
var desc = bot.hiddenData.removeHiddenData(embed.description).description
|
||||||
|
}else{var desc = false}
|
||||||
|
|
||||||
|
embedArray.push({
|
||||||
|
title:embed.title || false,
|
||||||
|
description:desc,
|
||||||
|
authorimg:((embed.author && embed.author.iconURL) ? embed.author.iconURL : false),
|
||||||
|
authortext:(embed.author ? embed.author.name : false),
|
||||||
|
footerimg:((embed.footer && embed.footer.iconURL) ? embed.footer.iconURL : false),
|
||||||
|
footertext:(embed.footer ? embed.footer.text : false),
|
||||||
|
color:embed.hexColor,
|
||||||
|
image:((embed.image && embed.image.url) ? embed.image.url : false),
|
||||||
|
thumbnail:((embed.thumbnail && embed.thumbnail.url) ? embed.thumbnail.url : false),
|
||||||
|
url:(embed.url ? embed.url : false)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
messagesArray.push({
|
||||||
|
author:{
|
||||||
|
name:msg.author.tag,
|
||||||
|
id:Number(msg.author.id),
|
||||||
|
color:msg.author.hexAccentColor || "#ffffff",
|
||||||
|
pfp:msg.author.displayAvatarURL()
|
||||||
|
},
|
||||||
|
content:msg.content || "",
|
||||||
|
timestamp:msg.createdTimestamp,
|
||||||
|
embeds:embedArray,
|
||||||
|
files:fileArray
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
const result = {
|
||||||
|
version,otversion,
|
||||||
|
style:{
|
||||||
|
backgroundData:data.style.backgroundData || "",
|
||||||
|
backgroundModus:data.style.backgroundModus || "",
|
||||||
|
enableCustomBackground:data.style.enableCustomBackground || false,
|
||||||
|
titleColor:data.style.titleColor || "#F8BA00"
|
||||||
|
},
|
||||||
|
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"
|
||||||
|
},
|
||||||
|
ticket:{
|
||||||
|
name:channel.name,
|
||||||
|
id:Number(channel.id),
|
||||||
|
|
||||||
|
guildname:guild.name,
|
||||||
|
guildid:Number(guild.id),
|
||||||
|
|
||||||
|
creatorname:data.ticket.creatorname,
|
||||||
|
creatorid:Number(data.ticket.creatorid),
|
||||||
|
closedbyname:user.tag,
|
||||||
|
closedbyid:Number(user.id),
|
||||||
|
|
||||||
|
closedtime:data.ticket.closedtime,
|
||||||
|
openedtime:data.ticket.openedtime,
|
||||||
|
|
||||||
|
messages:Array.from(messages).length,
|
||||||
|
files:fileAmount
|
||||||
|
},
|
||||||
|
messages:messagesArray
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
const axios = require("axios").default
|
||||||
|
const discord = require('discord.js')
|
||||||
|
|
||||||
|
const bot = require("../../../index")
|
||||||
|
const tsconfig = bot.tsconfig
|
||||||
|
const tsembeds = require("../embeds")
|
||||||
|
const tsdb = require("../tsdb")
|
||||||
|
|
||||||
|
/**@typedef {{status:"success"|"error", id:String, time:Number, estimated:{lastdump: Number, processtime:Number}, transcriptstatus:{value:2, data:{fetchedmsgs:true, uploaded:true, inqueue:true, processed:false, waiting:false, available:false}}}} OTuploadResponse */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Object} json
|
||||||
|
* @returns {OTuploadResponse}
|
||||||
|
*/
|
||||||
|
exports.upload = async (json) => {
|
||||||
|
|
||||||
|
const data = encodeURIComponent(JSON.stringify(json))
|
||||||
|
|
||||||
|
try {
|
||||||
|
const res = await axios.get("https://api.transcripts.dj-dj.be/upload?auth=openticketTRANSCRIPT1234&version=1.0.0&data="+data)
|
||||||
|
if (res.status != 200) return false
|
||||||
|
|
||||||
|
return res.data
|
||||||
|
}catch{
|
||||||
|
console.log("failed transcript upload!")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"version":"1.0.0",
|
||||||
|
"otversion":"3.2.0",
|
||||||
|
"style":{
|
||||||
|
"enableCustomBackground":false,
|
||||||
|
"backgroundModus":"color OR image",
|
||||||
|
"backgroundData":"#ffffff OR https://www.example.com/image.png",
|
||||||
|
"titleColor":"#ffffff"
|
||||||
|
},
|
||||||
|
"bot":{
|
||||||
|
"name":"DJdj Support Bot",
|
||||||
|
"id":12345678910,
|
||||||
|
"pfp":"https://www.example.com/image.png"
|
||||||
|
},
|
||||||
|
"ticket":{
|
||||||
|
"name":"support-DJj123dj",
|
||||||
|
"id":12345678910,
|
||||||
|
|
||||||
|
"guildname":"DJdj Development",
|
||||||
|
"guildid":12345678910,
|
||||||
|
|
||||||
|
"creatorname":"DJj123dj#1706",
|
||||||
|
"creatorid":12345678910,
|
||||||
|
"closedbyname":"DJj123dj#1706",
|
||||||
|
"closedbyid":12345678910,
|
||||||
|
|
||||||
|
"closedtime":12345678910,
|
||||||
|
"openedtime":12345678910,
|
||||||
|
|
||||||
|
"messages":1,
|
||||||
|
"files":1
|
||||||
|
},
|
||||||
|
"messages":[
|
||||||
|
{
|
||||||
|
"author":{
|
||||||
|
"name":"DJj123dj#1706",
|
||||||
|
"id":12345678910,
|
||||||
|
"color":"#ffffff",
|
||||||
|
"pfp":"https://www.example.com/image.png"
|
||||||
|
},
|
||||||
|
"content":"string or FALSE",
|
||||||
|
"timestamp":12345678910,
|
||||||
|
"embeds":[
|
||||||
|
{
|
||||||
|
"title":"string or FALSE",
|
||||||
|
"description":"string or FALSE",
|
||||||
|
"authorimg":"https://www.example.com/image.png or FALSE",
|
||||||
|
"authortext":"string or FALSE",
|
||||||
|
"footerimg":"https://www.example.com/image.png or FALSE",
|
||||||
|
"footertext":"string or FALSE",
|
||||||
|
"color":"#ffffff",
|
||||||
|
"image":"https://www.example.com/image.png or FALSE",
|
||||||
|
"thumbnail":"https://www.example.com/image.png or FALSE",
|
||||||
|
"url":"https://www.example.com/image.png or FALSE"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"files":[
|
||||||
|
{
|
||||||
|
"name":"image.png",
|
||||||
|
"type":"PNG",
|
||||||
|
"size":"1MB",
|
||||||
|
"url":"https://www.example.com/image.png"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
const discord = require('discord.js')
|
||||||
|
const bot = require('../../index')
|
||||||
|
const client = bot.client
|
||||||
|
const config = bot.config
|
||||||
|
const log = bot.errorLog.log
|
||||||
|
const l = bot.language
|
||||||
|
const storage = bot.storage
|
||||||
|
const tsconfig = bot.tsconfig
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {String} name
|
||||||
|
* @param {String} id
|
||||||
|
* @param {Number} rawprocesstime milliseconds
|
||||||
|
* @param {discord.User} user
|
||||||
|
*/
|
||||||
|
exports.beingprocessed = (name,id,rawprocesstime,user) => {
|
||||||
|
|
||||||
|
const newtime = new Date(new Date().getTime() + rawprocesstime)
|
||||||
|
|
||||||
|
const processtime = "<t:"+newtime.getTime().toString().substring(0,newtime.getTime().toString().length-3)+":R>"
|
||||||
|
|
||||||
|
const embed = new discord.EmbedBuilder()
|
||||||
|
.setTitle("🧾 Transcript")
|
||||||
|
.setColor(config.main_color)
|
||||||
|
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
|
||||||
|
.setFooter({text:name})
|
||||||
|
|
||||||
|
.setDescription("`This transcript is being processed...`\nPlease wait!\n\nEstimated time: "+processtime)
|
||||||
|
|
||||||
|
return embed
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {String} name
|
||||||
|
* @param {String} id
|
||||||
|
* @param {String} url
|
||||||
|
* @param {discord.User} user
|
||||||
|
*/
|
||||||
|
exports.tsready = (name,id,url,user) => {
|
||||||
|
const embed = new discord.EmbedBuilder()
|
||||||
|
.setTitle("🧾 Transcript")
|
||||||
|
.setColor(config.main_color)
|
||||||
|
.setAuthor({name:user.tag,iconURL:user.displayAvatarURL()})
|
||||||
|
.setFooter({text:name})
|
||||||
|
.setURL(url)
|
||||||
|
|
||||||
|
.setDescription("The transcript is available [here]("+url+")")
|
||||||
|
|
||||||
|
return embed
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"version":"1.0.0"
|
||||||
|
}
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
const discord = require('discord.js')
|
||||||
|
const bot = require('../../index')
|
||||||
|
const client = bot.client
|
||||||
|
const config = bot.config
|
||||||
|
const log = bot.errorLog.log
|
||||||
|
const l = bot.language
|
||||||
|
const storage = bot.storage
|
||||||
|
|
||||||
|
const tsconfig = bot.tsconfig
|
||||||
|
const tsembeds = require("./embeds")
|
||||||
|
const tsdb = require("./tsdb")
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {discord.Message[]} messages
|
||||||
|
* @param {discord.Guild} guild
|
||||||
|
* @param {discord.TextChannel} channel
|
||||||
|
* @param {discord.User} user
|
||||||
|
* @param {String|false} reason
|
||||||
|
*/
|
||||||
|
module.exports = async (messages,guild,channel,user,reason) => {
|
||||||
|
const msglist = await channel.messages.fetchPinned()
|
||||||
|
|
||||||
|
const chName = channel.id
|
||||||
|
const chId = channel.name
|
||||||
|
|
||||||
|
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,60000,user)
|
||||||
|
var msg = await tc.send({embeds:[embed]})
|
||||||
|
}else {var msg = false}
|
||||||
|
|
||||||
|
/**@param {discord.Collection<string, discord.Message<true>>} msglist*/
|
||||||
|
const asyncmanager = async (msglist) => {
|
||||||
|
var firstmsg = msglist.last()
|
||||||
|
|
||||||
|
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return false
|
||||||
|
const hiddendata = bot.hiddenData.readHiddenData(firstmsg.embeds[0].description)
|
||||||
|
const ticketId = hiddendata.data.find(d => d.key == "type")
|
||||||
|
|
||||||
|
const id = hiddendata.data.find(d => d.key == "openerid").value
|
||||||
|
const opentime = new Date(Number(hiddendata.data.find(d => d.key == "createdms").value))
|
||||||
|
|
||||||
|
const ticketopener = client.users.cache.find(u => u.id == id)
|
||||||
|
|
||||||
|
|
||||||
|
const JSONDATA = require("./communication/compileJson").compile(guild,channel,user,messages,{
|
||||||
|
style:{
|
||||||
|
titleColor:tsconfig.style.titleColor,
|
||||||
|
enableCustomBackground:tsconfig.style.background.enableCustomBackground,
|
||||||
|
backgroundModus:tsconfig.style.background.backgroundModus,
|
||||||
|
backgroundData:tsconfig.style.background.backgroundData
|
||||||
|
},
|
||||||
|
bot:{
|
||||||
|
name:client.user.username,
|
||||||
|
id:client.user.id,
|
||||||
|
pfp:client.user.displayAvatarURL()
|
||||||
|
},
|
||||||
|
ticket:{
|
||||||
|
creatorid:ticketopener.id,
|
||||||
|
creatorname:ticketopener.tag,
|
||||||
|
openedtime:opentime.getTime(),
|
||||||
|
closedtime:new Date().getTime()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
require("fs").writeFileSync("./TESTJSON.json",JSON.stringify(JSONDATA,null,"\t"))
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
if (msg){
|
||||||
|
msg.edit(tsembeds.tsready(chName,chId,url,user))
|
||||||
|
console.log("URL:",url)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tsconfig.sendTranscripts.enableDM){
|
||||||
|
if (!user) return
|
||||||
|
const embed = tsembeds.tsready(chName,chId,url,user)
|
||||||
|
try {
|
||||||
|
user.send({embeds:[embed]})
|
||||||
|
}catch{}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
asyncmanager(msglist)
|
||||||
|
}
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
const fs = require("fs")
|
||||||
|
const location = "./storage/tsdatabase.json"
|
||||||
|
|
||||||
|
|
||||||
|
/**@returns {[{category:String, key:String, value:String}]}*/
|
||||||
|
function getData(){
|
||||||
|
if (fs.existsSync(location)){
|
||||||
|
return JSON.parse(fs.readFileSync(location).toString())
|
||||||
|
}else{
|
||||||
|
fs.writeFileSync(location,"[]")
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**@param {[{category:String, key:String, value:String}]} data*/
|
||||||
|
function setData(data){
|
||||||
|
fs.writeFileSync(location,JSON.stringify(data,null,"\t"))
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.set = (category,key,value) => {
|
||||||
|
const currentData = getData()
|
||||||
|
const exists = currentData.find((d) => (d.category == category) && (d.key == key)) ? true : false
|
||||||
|
var newData = []
|
||||||
|
if (exists){
|
||||||
|
currentData.forEach((d,i) => {
|
||||||
|
if (d.category == category && d.key == key){
|
||||||
|
newData.push({category,key,value})
|
||||||
|
}else{
|
||||||
|
newData.push(d)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
currentData.push({category,key,value})
|
||||||
|
newData = currentData
|
||||||
|
}
|
||||||
|
|
||||||
|
setData(newData)
|
||||||
|
return exists
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param {String} category
|
||||||
|
* @param {String} key
|
||||||
|
* @returns {String|false}
|
||||||
|
*/
|
||||||
|
exports.get = (category,key) => {
|
||||||
|
const currentData = getData()
|
||||||
|
const tempresult = currentData.find((d) => (d.category == category) && (d.key == key))
|
||||||
|
const result = tempresult ? tempresult.value : false
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @param {String} category
|
||||||
|
* @param {String} key
|
||||||
|
* @param {String} value
|
||||||
|
*/
|
||||||
|
exports.delete = (category,key) => {
|
||||||
|
const currentData = getData()
|
||||||
|
const exists = currentData.find((d) => (d.category == category) && (d.key == key)) ? true : false
|
||||||
|
var newData = []
|
||||||
|
if (exists){
|
||||||
|
currentData.forEach((d,i) => {
|
||||||
|
if (!(d.category == category && d.key == key)){
|
||||||
|
newData.push(d)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
newData = currentData
|
||||||
|
}
|
||||||
|
|
||||||
|
setData(newData)
|
||||||
|
return exists
|
||||||
|
}
|
||||||
@@ -35,7 +35,10 @@ exports.createEmbed = (id) => {
|
|||||||
const embed = new discord.EmbedBuilder()
|
const embed = new discord.EmbedBuilder()
|
||||||
.setTitle(data.name)
|
.setTitle(data.name)
|
||||||
if (data.enableFooter) embed.setFooter({text:data.footer})
|
if (data.enableFooter) embed.setFooter({text:data.footer})
|
||||||
|
|
||||||
|
try {
|
||||||
if (data.enableThumbnail) embed.setThumbnail(data.thumbnail)
|
if (data.enableThumbnail) embed.setThumbnail(data.thumbnail)
|
||||||
|
}catch{bot.errorLog.log("info","THUMBNAIL FAILED TO LOAD, probably invalid url!")}
|
||||||
|
|
||||||
if (data.enableCustomColor){
|
if (data.enableCustomColor){
|
||||||
embed.setColor(data.color)
|
embed.setColor(data.color)
|
||||||
|
|||||||
@@ -69,8 +69,13 @@ const language = require("./core/languageManager").language
|
|||||||
exports.language = language
|
exports.language = language
|
||||||
if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","loaded language")
|
if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","loaded language")
|
||||||
|
|
||||||
|
|
||||||
const config = tempconfig
|
const config = tempconfig
|
||||||
exports.config = config
|
exports.config = config
|
||||||
|
|
||||||
|
const tsconfig = require("./transcriptconfig.json")
|
||||||
|
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")
|
||||||
exports.storage = require('./core/dynamicdatabase/storage')
|
exports.storage = require('./core/dynamicdatabase/storage')
|
||||||
if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","loaded storage")
|
if (process.argv.some((v) => v == "--debug")) console.log("[TEMP_DEBUG]","loaded storage")
|
||||||
|
|||||||
@@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
"errors":{
|
||||||
|
"missingArgsTitle":"Ugyldige argumenter",
|
||||||
|
"missingArgsDescription":"Manglende argumenter",
|
||||||
|
"noPermsTitle":"Ingen adgang",
|
||||||
|
"noPermsDescription":"Du har ikke adgang til denne kommando",
|
||||||
|
"noPermsDelete":"Kun administrators kan slette tickets",
|
||||||
|
"chooseFromListTitle":"Ugyldig ID",
|
||||||
|
"chooseFromListDescription":"Vælg et ID nedenunder",
|
||||||
|
"boterror":"Bot Fejl!",
|
||||||
|
"notInTicketTitle":"Du er ikke i en ticket!",
|
||||||
|
"notInTicketDescription":"Denne kommando fungere kun i tickets!",
|
||||||
|
"ticketDoesntExist":"Denne ticket eksistere ikke mere!",
|
||||||
|
"roleDoesntExist":"Denne rolle eksistere ikke mere!",
|
||||||
|
"anotherOption":"Dette er ikke en ticket, men noget andet!",
|
||||||
|
"maxAmountTitle":"For mange tickets er blevet oprettet!",
|
||||||
|
"maxAmountDescription":"Du har for mange tickets åbne!\nSå luk dem hvis du gerne vil oprette nye!",
|
||||||
|
"somethingWentWrong":"**Noget gik galt**\nKontakt en udvikler!",
|
||||||
|
"somethingWentWrongTranscript":"Noget gik galt med transcript!**\nKontakt en udvikler!"
|
||||||
|
},
|
||||||
|
"commands":{
|
||||||
|
"userAddedTitle":"Tilføjer {0} til denne ticket!",
|
||||||
|
"userRemovedTitle":"Fjernet {0} fra denne ticket!",
|
||||||
|
"renameTitle":"Ændret navnet til{0}!",
|
||||||
|
"closeTitle":"Closed this ticket!",
|
||||||
|
"deleteTitle":"Fjerner ticketen",
|
||||||
|
"reopenTitle":"Genåbnede denne ticket",
|
||||||
|
"claimTitle":"Denne ticket er blevet taget af {0}",
|
||||||
|
"unclaimTitle":"Denne ticket er nu tilgængelig!",
|
||||||
|
|
||||||
|
"ticketWarning":"Emebeddet er i beskeden nedenunder",
|
||||||
|
"maxTicketWarning":"**Fejl:** _Du kan kun oprettre {0} ticket adgangen!_"
|
||||||
|
},
|
||||||
|
"helpMenu":{
|
||||||
|
"title":"Tilgængelig kommandoer:",
|
||||||
|
"header1":"**Gå til {0} For at oprette en ticket!**\n\n",
|
||||||
|
"header2":"**Skriv kommandoen `/new` eller `/ticket` for at oprette en ticket!**\n\n",
|
||||||
|
|
||||||
|
"msgCmd":"Lav en embed med knapper (admins kun)",
|
||||||
|
"renameCmd":"Ændre navnet (ingen mellemrum)",
|
||||||
|
"closeCmd":"Luk denne ticket",
|
||||||
|
"deleteCmd":"Fjern denne ticket",
|
||||||
|
"addCmd":"Tilføj en person til ticketen",
|
||||||
|
"removeCmd":"Fjern en person fra ticketen",
|
||||||
|
"reopenCmd":"Genåben en ticket efter den har været lukket"
|
||||||
|
},
|
||||||
|
"buttons":{
|
||||||
|
"close":"Luk ticket",
|
||||||
|
"delete":"Fjern ticket",
|
||||||
|
"reopen":"Genåben ticket",
|
||||||
|
"sendTranscript":"Transcript",
|
||||||
|
"closeWithReason":"Luk med grundlag"
|
||||||
|
},
|
||||||
|
"messages":{
|
||||||
|
"reopenTitle":"Genåbener denne ticket",
|
||||||
|
"reopenDescription":"Du kan nu skrive igen",
|
||||||
|
"closedTitle":"Lukker ticketen!",
|
||||||
|
"closedDescription":"Kun administrators kan skrive lige nu!\n\n*Klik på knappen nedenunder for at slette eller genåbne ticketen!*",
|
||||||
|
"createdTitle":"Ticket oprettet!",
|
||||||
|
"createdDescription":"Din ticket er oprettet!",
|
||||||
|
|
||||||
|
"newTicketDmTitle":"Ny Ticket!",
|
||||||
|
"closedTicketDmTitle":"Ticket Lukket!",
|
||||||
|
"deletedTicketDmTitle":"Ticket Fjernet!",
|
||||||
|
"closedTicketDmDescription":"Din ticket er blevet lukket!",
|
||||||
|
"deletedTicketDmDescription":"Din ticket er blevet fjernet!",
|
||||||
|
"reopenTicketDmTitle":"Ticket Genåbnet!",
|
||||||
|
"reopenTicketDmDescription":"Din ticket er blevet genåbent!",
|
||||||
|
"newTranscriptTitle":" En ny transcript er tilføjet!",
|
||||||
|
"hereIsTheTranscript":"Følgende transcript:",
|
||||||
|
|
||||||
|
"chooseCategory":"Vælg en kategori:",
|
||||||
|
"gettingdeleted":"Ticketen slettes..",
|
||||||
|
|
||||||
|
"none":"Ingen",
|
||||||
|
"reason":"Grundlag",
|
||||||
|
|
||||||
|
"deletedby":"Fjernet af",
|
||||||
|
"closedby":"Lukket af",
|
||||||
|
"modalreason":"Hvad er grundlaget for lukkens af denne ticket?",
|
||||||
|
"chooseATicket": "Vælg en ticket"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -69,9 +69,8 @@
|
|||||||
"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!",
|
||||||
"newTranscriptTitle":"Eine neue Transscript finden Sie hier!",
|
"newTranscriptTitle":"Eine neue Transcript finden Sie hier!",
|
||||||
"newTranscriptDescription":"Die Abschrift finden Sie in der obigen Textdatei!",
|
"hereIsTheTranscript":"Hier ist das Transcript:",
|
||||||
"hereIsTheTranscript":"Hier ist das Transscript:",
|
|
||||||
|
|
||||||
"chooseCategory":"Wähle eine Kategorie:",
|
"chooseCategory":"Wähle eine Kategorie:",
|
||||||
|
|
||||||
|
|||||||
+1
-3
@@ -16,9 +16,7 @@
|
|||||||
"axios": "^0.27.2",
|
"axios": "^0.27.2",
|
||||||
"chalk": "^5.0.1",
|
"chalk": "^5.0.1",
|
||||||
"discord.js": "^14.7.1",
|
"discord.js": "^14.7.1",
|
||||||
"express": "^4.17.1",
|
"node": "^16.10.0"
|
||||||
"node": "^16.10.0",
|
|
||||||
"node-localstorage": "^2.2.1"
|
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"sendTranscripts":{
|
||||||
|
"enableChannel":true,
|
||||||
|
"channel":"968899606912061490",
|
||||||
|
|
||||||
|
"enableDM":true
|
||||||
|
},
|
||||||
|
"style":{
|
||||||
|
"titleColor":"#49c100",
|
||||||
|
"background":{
|
||||||
|
"enableCustomBackground":true,
|
||||||
|
"backgroundModus":"image",
|
||||||
|
"backgroundData":"https://pbs.twimg.com/media/EBjFBlVXsAAhvXl?format=jpg&name=4096x4096"
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user