From 89a44f3f2f97d08e78af22d465de189e5d902b35 Mon Sep 17 00:00:00 2001 From: DJj123dj <80536295+DJj123dj@users.noreply.github.com> Date: Thu, 9 Jun 2022 20:23:34 +0200 Subject: [PATCH] v2.1.0 push 3 --- .gitignore | 3 ++- commands/add.js | 9 ++++---- commands/close.js | 5 +++-- commands/delete.js | 5 +++-- commands/help.js | 4 +++- commands/remove.js | 11 +++++---- commands/rename.js | 7 ++++-- commands/ticket.js | 9 ++++---- config.json | 4 ++-- core/checker.js | 9 ++++++-- core/errorLogSystem.js | 50 +++++++++++++++++++++++++++++++++++++++-- core/getoptions.js | 8 ++++--- core/reactionRoles.js | 24 ++++++++++++-------- core/ticketCloser.js | 12 ++++++---- core/ticketOpener.js | 31 ++++++++++++++++--------- core/transcript.js | 2 +- core/utils/getButton.js | 1 + index.js | 10 +++++++-- package.json | 2 +- 19 files changed, 148 insertions(+), 58 deletions(-) diff --git a/.gitignore b/.gitignore index 105d92c..ed1ae35 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ devConfig4.json devConfig5.json .DS_Store openticketdebug.txt -developerChangelog.md \ No newline at end of file +developerChangelog.md +storage/dynamicDB/ \ No newline at end of file diff --git a/commands/add.js b/commands/add.js index c4bbbc0..8534a8c 100644 --- a/commands/add.js +++ b/commands/add.js @@ -2,6 +2,7 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = bot.config +const log = bot.errorLog.log module.exports = () => { client.on("messageCreate",msg => { @@ -20,10 +21,10 @@ module.exports = () => { msg.channel.permissionOverwrites.create(user.id, { VIEW_CHANNEL:true, ADD_REACTIONS:true,ATTACH_FILES:true, EMBED_LINKS:true, SEND_MESSAGES:true}) msg.channel.send({embeds:[bot.errorLog.success("User Added!",user.tag+" is added to this ticket")]}) - if (config.logs){console.log("[system] added user to ticket (name:"+user.username+",ticket:"+msg.channel.name+")")} var loguser = msg.mentions.users.first() - if (config.logs){console.log("[command] "+config.prefix+"add "+loguser.username+" (user:"+msg.author.username+")")} + log("command","someone used the 'add' command",[{key:"user",value:msg.author.tag}]) + log("system","user added to ticket",[{key:"user",value:msg.author.tag},{key:"ticket",value:msg.channel.name},{key:"added_user",value:loguser.tag}]) }) }) @@ -47,10 +48,10 @@ module.exports = () => { interaction.channel.permissionOverwrites.create(user.id, { VIEW_CHANNEL:true, ADD_REACTIONS:true,ATTACH_FILES:true, EMBED_LINKS:true, SEND_MESSAGES:true}) interaction.reply({embeds:[bot.errorLog.success("User Added!",user.tag+" is added to this ticket")]}) - if (config.logs){console.log("[system] added user to ticket (name:"+user.username+",ticket:"+interaction.channel.name+")")} var loguser = user - if (config.logs){console.log("[command] "+config.prefix+"add "+loguser.username+" (user:"+interaction.user.username+")")} + log("command","someone used the 'add' command",[{key:"user",value:interaction.user.tag}]) + log("system","user added to ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name},{key:"added_user",value:loguser.tag}]) }) diff --git a/commands/close.js b/commands/close.js index 5601c25..ca191c6 100644 --- a/commands/close.js +++ b/commands/close.js @@ -2,6 +2,7 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = bot.config +const log = bot.errorLog.log module.exports = () => { client.on("messageCreate",msg => { @@ -24,7 +25,7 @@ module.exports = () => { msg.channel.send({embeds:[bot.errorLog.success("Close this ticket!","You can close this ticket by clicking on the button below!")],components:[closebutton]}) - console.log("[system] closed a ticket via command") + log("command","someone used the 'close' command",[{key:"user",value:msg.author.tag}]) }) @@ -51,7 +52,7 @@ module.exports = () => { interaction.reply({embeds:[bot.errorLog.success("Close this ticket!","You can close this ticket by clicking on the button below!")],components:[closebutton]}) - console.log("[system] closed a ticket via command") + log("command","someone used the 'close' command",[{key:"user",value:interaction.user.tag}]) }) }) diff --git a/commands/delete.js b/commands/delete.js index 72e2baf..a3aa927 100644 --- a/commands/delete.js +++ b/commands/delete.js @@ -2,6 +2,7 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = bot.config +const log = bot.errorLog.log module.exports = () => { client.on("messageCreate",msg => { @@ -24,7 +25,7 @@ module.exports = () => { msg.channel.send({embeds:[bot.errorLog.success("Delete this ticket!","You can delete this ticket by clicking on the button below!")],components:[closebutton]}) - console.log("[system] deleted a ticket via command") + log("command","someone used the 'delete' command",[{key:"user",value:msg.author.tag}]) }) @@ -51,7 +52,7 @@ module.exports = () => { interaction.reply({embeds:[bot.errorLog.success("Delete this ticket!","You can delete this ticket by clicking on the button below!")],components:[closebutton]}) - console.log("[system] deleted a ticket via command") + log("command","someone used the 'close' command",[{key:"user",value:interaction.user.tag}]) }) }) diff --git a/commands/help.js b/commands/help.js index fe5798e..f811915 100644 --- a/commands/help.js +++ b/commands/help.js @@ -2,6 +2,7 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = bot.config +const log = bot.errorLog.log module.exports = () => { const helpEmbed = new discord.MessageEmbed() @@ -22,7 +23,7 @@ module.exports = () => { if (!args[1].startsWith("close") && !args[1].startsWith("delete") && !args[1].startsWith("remove") && !args[1].startsWith("add") && !args[1].startsWith("msg") && !args[1].startsWith("remove") && !args[1].startsWith("rename")){ msg.channel.send({embeds:[helpEmbed]}) - if (config.logs){console.log("[command] "+config.prefix+"ticket help (user:"+msg.author.username+")")} + log("command","someone used the 'help' command",[{key:"user",value:msg.author.tag}]) } }) @@ -31,5 +32,6 @@ module.exports = () => { if (interaction.commandName != "help") return interaction.reply({embeds:[helpEmbed]}) + log("command","someone used the 'help' command",[{key:"user",value:interaction.user.tag}]) }) } \ No newline at end of file diff --git a/commands/remove.js b/commands/remove.js index 3096d61..5cc5d6b 100644 --- a/commands/remove.js +++ b/commands/remove.js @@ -2,6 +2,7 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = bot.config +const log = bot.errorLog.log module.exports = () => { client.on("messageCreate",msg => { @@ -20,10 +21,11 @@ module.exports = () => { msg.channel.permissionOverwrites.delete(user.id) msg.channel.send({embeds:[bot.errorLog.success("User removed!",user.tag+" is removed from this ticket")]}) - if (config.logs){console.log("[system] deleted user from ticket (name:"+user.username+",ticket:"+msg.channel.name+")")} var loguser = msg.mentions.users.first() - if (config.logs){console.log("[command] "+config.prefix+"remove "+loguser.username+" (user:"+msg.author.username+")")} + + log("command","someone used the 'remove' command",[{key:"user",value:msg.author.tag}]) + log("system","user removed from ticket",[{key:"user",value:msg.author.tag},{key:"ticket",value:msg.channel.name},{key:"removed_user",value:loguser.tag}]) }) }) @@ -48,10 +50,11 @@ module.exports = () => { interaction.channel.permissionOverwrites.delete(user.id) interaction.reply({embeds:[bot.errorLog.success("User removed!",user.tag+" is removed from this ticket")]}) - if (config.logs){console.log("[system] removed user from ticket (name:"+user.username+",ticket:"+interaction.channel.name+")")} var loguser = user - if (config.logs){console.log("[command] "+config.prefix+"remove "+loguser.username+" (user:"+interaction.user.username+")")} + + log("command","someone used the 'remove' command",[{key:"user",value:interaction.user.tag}]) + log("system","user removed from ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name},{key:"removed_user",value:loguser.tag}]) }) diff --git a/commands/rename.js b/commands/rename.js index d5bf6bd..fec2edb 100644 --- a/commands/rename.js +++ b/commands/rename.js @@ -2,6 +2,7 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = bot.config +const log = bot.errorLog.log module.exports = () => { client.on("messageCreate",msg => { @@ -35,7 +36,8 @@ module.exports = () => { msg.channel.setName(prefix+newname) msg.channel.send({embeds:[bot.errorLog.success("The name has changed!","Warning: you can only change the channel name 2 times per minute!\n(this is due discord rate limits)")]}) - console.log("[system] renamed a ticket via command") + log("command","someone used the 'rename' command",[{key:"user",value:msg.author.tag}]) + log("system","ticket renamed",[{key:"user",value:msg.author.tag},{key:"ticket",value:name},{key:"newname",value:newname}]) }) @@ -72,7 +74,8 @@ module.exports = () => { interaction.channel.setName(prefix+newname) interaction.reply({embeds:[bot.errorLog.success("The name has changed!","Warning: you can only change the channel name 2 times per minute!\n(this is due discord rate limits)")]}) - console.log("[system] renamed a ticket via command") + log("command","someone used the 'rename' command",[{key:"user",value:interaction.user.tag}]) + log("system","ticket renamed",[{key:"user",value:interaction.user.tag},{key:"ticket",value:name},{key:"newname",value:newname}]) }) }) diff --git a/commands/ticket.js b/commands/ticket.js index 62d15dc..bd706a1 100644 --- a/commands/ticket.js +++ b/commands/ticket.js @@ -2,6 +2,7 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = bot.config +const log = bot.errorLog.log /** ============================= ** NOT READY YET @@ -16,7 +17,7 @@ module.exports = () => { client.on("messageCreate", msg => { - if (msg.content.startsWith(config.prefix+"msg")){ + if (msg.content.startsWith(config.prefix+"msg"||config.prefix+"message")){ if (config.main_adminroles.some((item)=>{return msg.member.roles.cache.has(item)}) == false){ msg.channel.send({embeds:[bot.errorLog.noPermsMessage]}) return @@ -32,8 +33,7 @@ module.exports = () => { msg.channel.send({embeds:[embed],components:componentRows}) - if (config.logs){console.log("[command] "+config.prefix+"ticket msg (user:"+msg.author.username+")")} - if (config.logs){console.log("[system] created ticket message")} + log("command","someone used the 'msg' command",[{key:"user",value:msg.author.tag},{key:"id",value:id}]) } }) @@ -56,8 +56,7 @@ module.exports = () => { interaction.reply({content:"The embed is in the message below!"}) interaction.channel.send({embeds:[embed],components:componentRows}) - if (config.logs){console.log("[command] "+config.prefix+"ticket msg (user:"+interaction.member.user.username+")")} - if (config.logs){console.log("[system] created ticket message")} + log("command","someone used the 'msg' command",[{key:"user",value:interaction.user.tag},{key:"id",value:id}]) }) } \ No newline at end of file diff --git a/config.json b/config.json index af8b1e8..7f5f6f8 100644 --- a/config.json +++ b/config.json @@ -5,7 +5,6 @@ "auth_token":"auth token", "main_adminroles":["discord role id"], "prefix":"!ticket ", - "logs":true, "languagefile":"english.json (currently not working)", "credits":true, @@ -42,7 +41,8 @@ "channelprefix":"question-", "category":"category id", "message":"You created a ticket!", - "enableDMMessage":true + "enableDMMessage":true, + "ticketmessage":"The staff will help you soon!\n\n*Click on the button below to close the ticket!*" }, { diff --git a/core/checker.js b/core/checker.js index 493c9b0..51bd22f 100644 --- a/core/checker.js +++ b/core/checker.js @@ -132,13 +132,15 @@ exports.checker = async () => { createError("'"+path+"/id' | option id can't contain space characters!") } if (option.id.length > 20){ - createError("'"+path+"/id' | option id max lenght is 20") + createError("'"+path+"/id' | option id max lenght is 20!") } //name checkType(option.name,"string",path+"/name") if (option.name.length > 100){ createWarn("'"+path+"/name' | if your name is too long it maybe doesn't look so good!") + }else if (option.name.length < 1){ + createError("'"+path+"/name' | there is no name!") } //description @@ -193,6 +195,10 @@ exports.checker = async () => { //enableDMmessage checkType(option.enableDMMessage,"boolean",path+"/enableDMMessage") + + //ticketmessage + checkType(option.ticketmessage,"string",path+"/ticketmessage") + }else if (type == "website"){ //url checkType(option.url,"string",path+"/url") @@ -247,7 +253,6 @@ exports.checker = async () => { checkToken(config.auth_token) checkDiscordArray("roleid",config.main_adminroles,"main_adminroles") checkString(config.prefix,1,15,"prefix","prefix") - checkType(config.logs,"boolean","logs") //languagefile (comming soon) diff --git a/core/errorLogSystem.js b/core/errorLogSystem.js index 4b4df0d..085282b 100644 --- a/core/errorLogSystem.js +++ b/core/errorLogSystem.js @@ -42,14 +42,13 @@ exports.invalidIdChooseFromList = (list) => { return x } - -//seves exports.notInATicket = new embed() .setColor("RED") .setTitle(":x: You are not in a ticket! :x:") .setDescription("This command doesn't work outside tickets!") +/**@param {String} message @param {String} title */ exports.success = (title,message) => { var x = new embed() .setColor(config.main_color) @@ -57,4 +56,51 @@ exports.success = (title,message) => { .setDescription(message) return x +} + +/**@param {String} message @param {String} title */ +exports.warning = (title,message) => { + var x = new embed() + .setColor("ORANGE") + .setTitle(":warning: "+title+" :warning:") + .setDescription(message) + + return x +} + +/**@param {String} message the message @param {String} title the title @param {String} emoji an discord emoji @param {discord.ColorResolvable} color the embed color*/ +exports.custom = (title,message,emoji,color) => { + var x = new embed() + .setColor(color) + .setTitle(emoji+" "+title+" "+emoji) + .setDescription(message) + + return x +} + +/** + * + * @param {"system"|"command"|"info"} type + * @param {String} message + * @param {[{key:String,value:String}]} params + */ +exports.log = async (type,message,params) => { + const chalk = await loadChalk() + var paramstring = "" + if (params){ + if (params.length > 0){ + params.forEach((p) => { + paramstring = paramstring+p.key+": "+p.value+" " + }) + } + } + const parameters = params ? "("+paramstring+")" : " " + + if (type == "command"){ + console.log(chalk.green("[command] ")+message+" "+chalk.yellow(parameters)) + }else if (type == "info"){ + console.log(chalk.blue("[info] ")+message+" "+chalk.yellow(parameters)) + }else if (type == "system"){ + console.log(chalk.green("[system] ")+message+" "+chalk.yellow(parameters)) + } } \ No newline at end of file diff --git a/core/getoptions.js b/core/getoptions.js index a8a7744..ada3a01 100644 --- a/core/getoptions.js +++ b/core/getoptions.js @@ -3,7 +3,7 @@ const config = bot.config /** * @param {Number} index - * @param {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"adminroles"|"channelprefix"|"category"|"message"|"enableDMMessage"} value + * @param {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"adminroles"|"channelprefix"|"category"|"message"|"enableDMMessage"|"ticketmessage"} value */ exports.getTicketValue = (index,value) => { if (value == "id"){ @@ -29,7 +29,7 @@ exports.getRoleValue = (index,value) => { } /** - * @param {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"adminroles"|"channelprefix"|"category"|"message"|"enableDMMessage"} value + * @param {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"adminroles"|"channelprefix"|"category"|"message"|"enableDMMessage"|"ticketmessage"} value */ exports.getTicketValues = (value) => { var result = [] @@ -55,7 +55,7 @@ exports.getRoleValue = (index,value) => { } /** - * @param {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"roles"|"mode"|"enableDMMessage"} value + * @param {"id"|"name"|"description"|"icon"|"label"|"type"|"color"|"roles"|"mode"|"enableDMMessage""} value */ exports.getRoleValues = (value) => { var result = [] @@ -79,6 +79,7 @@ class TicketOptions { this.category = "" this.message = "" this.enableDMMessage = true + this.ticketmessage = "" } } /** @@ -110,5 +111,6 @@ exports.exportedOptionClass = class { this.category = "" this.message = "" this.enableDMMessage = true + this.ticketmessage = "" } } \ No newline at end of file diff --git a/core/reactionRoles.js b/core/reactionRoles.js index 9be8f22..aa4417b 100644 --- a/core/reactionRoles.js +++ b/core/reactionRoles.js @@ -2,6 +2,7 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = bot.config +const log = bot.errorLog.log const storage = bot.storage @@ -14,12 +15,13 @@ module.exports = async () => { interaction.deferUpdate() - const optionid = interaction.customId.split("newR")[1] - if (!optionid){ - interaction.reply({content:"This button doesn't exist anymore"}) - return + if (interaction.customId.startsWith("newR")){ + const optionid = interaction.customId.split("newR")[1] + if (!optionid){ + interaction.reply({embeds:[bot.errorLog.serverError("This role doesn't exist anymore!")]}) + return + } } - try { const option = require("./utils/getButton").getOption(optionid) @@ -30,21 +32,25 @@ module.exports = async () => { if (mode == "add"){ option.roles.forEach((role) => { interaction.guild.members.cache.find(u => u.id == user.id).roles.add(role) - console.log("[system] added role",role,"to",user.user.tag) + + log("system","added role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}]) }) }else if (mode == "remove"){ option.roles.forEach((role) => { interaction.guild.members.cache.find(u => u.id == user.id).roles.remove(role) - console.log("[system] removed role",role,"from",user.user.tag) + + log("system","removed role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}]) }) }else if (mode == "add&remove"){ option.roles.forEach((role) => { if (interaction.guild.members.cache.find(u => u.id == user.id).roles.cache.has(role)){ interaction.guild.members.cache.find(u => u.id == user.id).roles.remove(role) - console.log("[system] removed role",role,"from",user.user.tag) + + log("system","added role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}]) }else { interaction.guild.members.cache.find(u => u.id == user.id).roles.add(role) - console.log("[system] added role",role,"to",user.user.tag) + + log("system","removed role (reaction roles)",[{key:"user",value:interaction.user.tag},{key:"role",value:role}]) } }) } diff --git a/core/ticketCloser.js b/core/ticketCloser.js index 76de474..930562d 100644 --- a/core/ticketCloser.js +++ b/core/ticketCloser.js @@ -2,6 +2,7 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = bot.config +const log = bot.errorLog.log const storage = bot.storage @@ -42,7 +43,7 @@ exports.closeTicket = async (interaction,prefix,mode) => { if (mode == "delete"){ interaction.channel.delete() - if (config.logs){console.log("[system] deleted a ticket (name:"+interaction.channel.name+",user:"+interaction.user.username+")")} + log("system","deleted a ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name}]) if (!isDatabaseError) storage.set("ticketStorage",getuserID,Number(storage.get("ticketStorage",getuserID)) - 1) }else if (mode == "close"){ @@ -85,10 +86,13 @@ exports.closeTicket = async (interaction,prefix,mode) => { .setTitle("Closed this ticket!") .setDescription("Only admins can now talk in this ticket!\n\n*Click on the button below to delete this ticket*") interaction.channel.send({embeds:[embed],components:[closeButtonRow]}) + + log("system","closed a ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name}]) + }else if (mode == "deletenotranscript"){ enableTranscript = false interaction.channel.delete() - if (config.logs){console.log("[system] deleted a ticket (name:"+interaction.channel.name+",user:"+interaction.user.username+")")} + log("system","deleted a ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name}]) if (!isDatabaseError) storage.set("ticketStorage",getuserID,Number(storage.get("ticketStorage",getuserID)) - 1) } @@ -98,7 +102,7 @@ exports.closeTicket = async (interaction,prefix,mode) => { if (config.system.enable_transcript || config.system.enable_DM_transcript){ var fileattachment = await require("./transcript").createTranscript(channelmessages) - if (fileattachment == false){console.log("[transcript] internal error: no transcript is created!");return} + if (fileattachment == false){log("system","internal error: transcript is not created!");return} } if (config.system.enable_transcript){ @@ -146,7 +150,7 @@ exports.runThis = () => { var fileattachment = await require("./transcript").createTranscript(channelmessages) if (fileattachment == false){ - console.log("[transcript] internal error: no transcript is created!") + log("system","internal error: transcript is not created!") interaction.channel.send({embeds:[bot.errorLog.serverError("Something went wrong while making the transcript!**\nPlease try again another time!")]}) return } diff --git a/core/ticketOpener.js b/core/ticketOpener.js index 32f9deb..602ac8c 100644 --- a/core/ticketOpener.js +++ b/core/ticketOpener.js @@ -2,6 +2,7 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = bot.config +const log = bot.errorLog.log const getconfigoptions = require("./getoptions") const storage = bot.storage @@ -32,28 +33,36 @@ module.exports = () => { }else if (interaction.isButton()){ var customId = interaction.customId }else return + + if (interaction.customId.startsWith("newT")){ + const optionid = interaction.customId.split("newT")[1] + if (!optionid){ + interaction.reply({embeds:[bot.errorLog.serverError("This ticket doesn't exist anymore!")]}) + return + } + } if (getconfigoptions.getTicketValues("id").includes(customId)){ //ticketoptions from config const currentTicketOptions = getconfigoptions.getOptionsById(customId) - if (currentTicketOptions == false || currentTicketOptions.type != "ticket") return interaction.reply({content:"This button is not a ticket!"}) + if (currentTicketOptions == false || currentTicketOptions.type != "ticket") return interaction.reply({embeds:[bot.errorLog.serverError("This option is not a ticket but another type!")]}) if (interaction.isButton()){ interaction.deferUpdate() }else if (interaction.isCommand()){ - interaction.reply({content:"Your ticket is created!"}) + interaction.reply({embeds:[bot.errorLog.success("Ticket Created!","Your ticket is created, you can detect it by a ping!")]}) } if (storage.get("ticketStorage",interaction.member.id) == null || storage.get("ticketStorage",interaction.member.id) == "false"|| Number(storage.get("ticketStorage",interaction.member.id)) < config.system.max_allowed_tickets){ try{ if (config.system.enable_DM_Messages){ - interaction.member.send({content:currentTicketOptions.message}) + interaction.member.send({embeds:[bot.errorLog.custom("New Ticket!",currentTicketOptions.message,":ticket:",config.main_color)]}) } } - catch{console.log("[system] can't send DM to member, member doesn't allow dm's")} + catch{log("system","can't send DM to member, member doesn't allow dm's")} @@ -141,28 +150,28 @@ module.exports = () => { storage.set("userTicketStorage",ticketChannel.id,interaction.member.id) var ticketEmbed = new discord.MessageEmbed() - //.setColor(config.main_color) .setColor(config.main_color) - .setTitle("You created a ticket!") - .setDescription("The staff will help you soon!\n\n*Click on the button below to close the ticket!*") + .setTitle(currentTicketOptions.name) + if (currentTicketOptions.ticketmessage.length > 0) ticketEmbed.setDescription(currentTicketOptions.ticketmessage) ticketChannel.send({ - content:"<@"+interaction.member.id+"> @everyone", + content:"<@"+interaction.member.id+"> @here", embeds:[ticketEmbed], components:[closeButton] }).then(firstmsg => { firstmsg.pin() }) - if (config.logs){console.log("[system] created a new ticket (name:"+logsname+",user:"+interaction.user.username+")")} + + log("system","created new ticket",[{key:"ticket",value:ticketName},{key:"user",value:interaction.user.tag}]) }) }else{ try { if (config.system.enable_DM_Messages){ - interaction.member.send("you already have the maximum number of tickets allowed!") + interaction.member.send({embeds:[bot.errorLog.warning("Max amount reached!","You reached the maximum number of tickets allowed!\nSo you can't create a new one!")]}) } } - catch{console.log("[system] can't send DM to member, member doesn't allow dm's")} + catch{log("system","can't send DM to member, member doesn't allow dm's")} } diff --git a/core/transcript.js b/core/transcript.js index 61a0dd0..a290c69 100644 --- a/core/transcript.js +++ b/core/transcript.js @@ -30,7 +30,7 @@ exports.createTranscript = async (messagecollection) => { const filebuff = Buffer.from(filestring,"utf-8") return new discord.MessageAttachment(filebuff,"transcript.txt") }catch(err){ - console.log(err) + console.log("[error] "+err) return false } } \ No newline at end of file diff --git a/core/utils/getButton.js b/core/utils/getButton.js index e49a9da..af89802 100644 --- a/core/utils/getButton.js +++ b/core/utils/getButton.js @@ -87,6 +87,7 @@ exports.rawButtonData = class { this.channelprefix = "" this.category = "" this.message = "" + this.ticketmessage = "" } } \ No newline at end of file diff --git a/index.js b/index.js index 4e546eb..375850d 100644 --- a/index.js +++ b/index.js @@ -24,16 +24,22 @@ if (isDev){ }else{var config = require('./config.json')} exports.config = config exports.errorLog = require("./core/errorLogSystem") +const log = this.errorLog.log client.on('ready',async () => { const chalk = await (await import("chalk")).default + if (!process.argv[2].startsWith("slash")){ - console.log(chalk.green("open-ticket ready!")) - if (config.logs){console.log(chalk.white("\n\nlogs:\n============"))} + console.log(chalk.red("WELCOME TO OPEN TICKET!")) + log("info","open ticket ready") + + console.log(chalk.blue("\n\nlogs:")+"\n============") if (config.status.enabled){ client.user.setActivity(config.status.text,{type:config.status.type}) } + log("system","bot logged in!") + await client.guilds.cache.find((g) => g.id == config.server_id).members.fetch() }else{ console.log(chalk.red("STARTING IN ")+chalk.blue("SLASH MODE")+chalk.red("...")) diff --git a/package.json b/package.json index 9a07851..ed064d8 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "license": "ISC", "dependencies": { "chalk": "^5.0.1", - "discord.js": "^13.6.0", + "discord.js": "^13.8.0", "express": "^4.17.1", "node": "^16.10.0", "node-localstorage": "^2.2.1"