1.4.0 beta
This commit is contained in:
@@ -1,21 +0,0 @@
|
||||
const discord = require('discord.js')
|
||||
const bot = require('../index')
|
||||
const client = bot.client
|
||||
const config = require("../config.json")
|
||||
|
||||
|
||||
module.exports = () => {
|
||||
client.on("messageCreate",(msg) => {
|
||||
var args = msg.content.split(" ")
|
||||
if (args[0] == config.prefix+"resetdatabase" || args[0] == config.prefix+"resetdb"){
|
||||
const databaseEmbed = new discord.MessageEmbed()
|
||||
.setColor(config.main_color)
|
||||
.setTitle("How to reset the database:")
|
||||
.setDescription("1: Go to the folder `./storage` in your bot's directory.\n\n2: If posible remove the folders\n`./tickets`, `./transcripts` & `./userTickets`\nfrom the folder `./storage`\n\n3: Restart the bot")
|
||||
.setFooter({text:"if it doesn't work, create an issue on github or DM me on discord!"})
|
||||
|
||||
msg.channel.send({embeds:[databaseEmbed]})
|
||||
if (config.logs){console.log("[command] "+config.prefix+"resetdatabase (user:"+msg.author.username+")")}
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -3,28 +3,11 @@ const bot = require('../index')
|
||||
const client = bot.client
|
||||
const config = require("../config.json")
|
||||
|
||||
|
||||
//=============================
|
||||
// NOT READY YET
|
||||
//=============================
|
||||
|
||||
module.exports = () => {
|
||||
client.on("messageCreate",msg => {
|
||||
var args = msg.content.split(" ")
|
||||
if (args[0] == config.prefix+"ticket" && (args[1] == undefined ||args[1] == "" ||args[1] == null)){
|
||||
var TicketHelpMsg = new discord.MessageEmbed()
|
||||
.setColor(config.main_color)
|
||||
.setTitle("Ticket commands")
|
||||
|
||||
const prefix = config.prefix
|
||||
TicketHelpMsg.setDescription("**Go to <#"+config.system.ticket_channel+"> to create a ticket!**\n\n`"+prefix+"ticket msg` ➜ _Admin command._\n`"+prefix+"ticket rename` ➜ _Rename a ticket (no spaces)._\n`"+prefix+"ticket close` ➜ _Close a ticket._\n`"+prefix+"ticket add <user>` ➜ _Add a user to the ticket._\n`"+prefix+"ticket remove <user>` ➜ _Remove a user from the ticket._\n`"+prefix+"resetdatabase` ➜ _Steps to reset the database._\n`"+prefix+"resetdb` ➜ _Also database stuff._")
|
||||
|
||||
if (config.credits){
|
||||
TicketHelpMsg.setFooter({text:"Open-Ticket by DJdj Development | view on github for source code"})
|
||||
}
|
||||
|
||||
msg.channel.send({embeds:[TicketHelpMsg]})
|
||||
if (config.logs){console.log("[command] "+config.prefix+"ticket help (user:"+msg.author.username+")")}
|
||||
}
|
||||
})
|
||||
|
||||
client.on("messageCreate",msg => {
|
||||
var args = msg.content.split(" ")
|
||||
if (args[0] == config.prefix+"ticket" && args[1] == "close"){
|
||||
@@ -0,0 +1,34 @@
|
||||
const discord = require('discord.js')
|
||||
const bot = require('../index')
|
||||
const client = bot.client
|
||||
const config = require("../config.json")
|
||||
|
||||
module.exports = () => {
|
||||
const helpEmbed = new discord.MessageEmbed()
|
||||
.setColor(config.main_color)
|
||||
.setTitle("Help Menu:")
|
||||
|
||||
const prefix = config.prefix
|
||||
helpEmbed.setDescription("**Go to <#"+config.system.ticket_channel+"> to create a ticket!**\n\n`"+prefix+"msg <id>` ➜ _Spawn an embed with buttons. (admin only)_\n\n`"+prefix+"rename <name>` ➜ _Rename a ticket. (no spaces)_\n`"+prefix+"close` ➜ _Close a ticket._\n`"+prefix+"delete` ➜ _Delete a ticket._\n\n`"+prefix+"add <user>` ➜ _Add a user to the ticket._\n`"+prefix+"remove <user>` ➜ _Remove a user from the ticket._`")
|
||||
|
||||
if (config.credits) helpEmbed.setFooter({text:"Open-Ticket by DJdj Development | view on github for source code"})
|
||||
|
||||
|
||||
client.on("messageCreate",msg => {
|
||||
if (!msg.content.startsWith(config.prefix)) return
|
||||
var args = msg.content.split(config.prefix)
|
||||
|
||||
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("msg")){
|
||||
|
||||
msg.channel.send({embeds:[helpEmbed]})
|
||||
if (config.logs){console.log("[command] "+config.prefix+"ticket help (user:"+msg.author.username+")")}
|
||||
}
|
||||
})
|
||||
|
||||
client.on("interactionCreate",(interaction) => {
|
||||
if (!interaction.isCommand()) return
|
||||
if (interaction.commandName != "help") return
|
||||
|
||||
interaction.reply({embeds:[helpEmbed]})
|
||||
})
|
||||
}
|
||||
+41
-221
@@ -3,240 +3,60 @@ const bot = require('../index')
|
||||
const client = bot.client
|
||||
const config = require("../config.json")
|
||||
|
||||
/** =============================
|
||||
** NOT READY YET
|
||||
** =============================*/
|
||||
|
||||
module.exports = () => {
|
||||
/**@type {String[]} */
|
||||
var msgIds = []
|
||||
config.messages.forEach((msg) => {
|
||||
msgIds.push(msg.id)
|
||||
})
|
||||
|
||||
|
||||
client.on("messageCreate", msg => {
|
||||
if (msg.content == config.prefix+"ticket msg"){
|
||||
if (msg.member.roles.cache.has(config.botperms_role) == false){
|
||||
msg.channel.send({content:config.messages.general.nopermissions})
|
||||
if (msg.content.startsWith(config.prefix+"msg")){
|
||||
if (config.main_adminroles.some((item)=>{return msg.member.roles.cache.has(item)}) == false){
|
||||
msg.channel.send({content:"You have no permission to run this command!"})
|
||||
return
|
||||
}
|
||||
|
||||
var currentTicketButtons = 0
|
||||
var ticketButton = new discord.MessageActionRow()
|
||||
var ticketButton2 = new discord.MessageActionRow()
|
||||
const id = msg.content.split(config.prefix+"msg")[1].substring(1) ? msg.content.split(config.prefix+"msg")[1].substring(1) : false
|
||||
|
||||
const getColor = (color) => {
|
||||
if (color.toLowerCase() == "red"){
|
||||
return "DANGER"
|
||||
}else if (color.toLowerCase() == "green"){
|
||||
return "SUCCESS"
|
||||
}else if (color.toLowerCase() == "blue" || color.toLowerCase() == "blurple"){
|
||||
return "PRIMARY"
|
||||
}else if (color.toLowerCase() == "black" || color.toLowerCase() == "gray" || color.toLowerCase() == "grey"){
|
||||
return "SECONDARY"
|
||||
}else if (color == "DANGER" || color == "SECONDARY" || color == "SUCCESS" || color == "PRIMARY"){
|
||||
return color
|
||||
}else if (color.toLowerCase() == "none" || color.toLowerCase() == "false" || color.toLowerCase() == ""){
|
||||
return "SECONDARY"
|
||||
}else return "SECONDARY"
|
||||
}
|
||||
if (!id) return msg.channel.send({content:"**There is no id!**\nUse: `"+config.prefix+"msg <id>`"})
|
||||
if (!msgIds.includes(id)) return msg.channel.send({content:"**Invalid id!**\nChoose from this list:\n_"+msgIds.join("_\n_")+"_"})
|
||||
|
||||
if (config.options.ticket1.enabled){
|
||||
if (currentTicketButtons < 4){
|
||||
var localTicketButton = ticketButton
|
||||
}else{
|
||||
var localTicketButton = ticketButton2
|
||||
}
|
||||
|
||||
currentTicketButtons = currentTicketButtons + 1
|
||||
|
||||
if (config.options.ticket1.isURL == false){
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setCustomId("newTicket1")
|
||||
.setDisabled(false)
|
||||
.setStyle(getColor(config.options.ticket1.color))
|
||||
.setEmoji(config.options.ticket1.icon)
|
||||
)
|
||||
}else{
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setDisabled(false)
|
||||
.setStyle("LINK")
|
||||
.setEmoji(config.options.ticket1.icon)
|
||||
.setURL(config.options.ticket1.url)
|
||||
)
|
||||
}
|
||||
}
|
||||
if (config.options.ticket2.enabled){
|
||||
if (currentTicketButtons < 4){
|
||||
var localTicketButton = ticketButton
|
||||
}else{
|
||||
var localTicketButton = ticketButton2
|
||||
}
|
||||
|
||||
currentTicketButtons = currentTicketButtons + 1
|
||||
|
||||
if (config.options.ticket2.isURL == false){
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setCustomId("newTicket2")
|
||||
.setDisabled(false)
|
||||
.setStyle(getColor(config.options.ticket2.color))
|
||||
.setEmoji(config.options.ticket2.icon)
|
||||
)
|
||||
}else{
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setDisabled(false)
|
||||
.setStyle("LINK")
|
||||
.setEmoji(config.options.ticket2.icon)
|
||||
.setURL(config.options.ticket2.url)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (config.options.ticket3.enabled){
|
||||
if (currentTicketButtons < 4){
|
||||
var localTicketButton = ticketButton
|
||||
}else{
|
||||
var localTicketButton = ticketButton2
|
||||
}
|
||||
|
||||
currentTicketButtons = currentTicketButtons + 1
|
||||
|
||||
if (config.options.ticket3.isURL == false){
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setCustomId("newTicket3")
|
||||
.setDisabled(false)
|
||||
.setStyle(getColor(config.options.ticket3.color))
|
||||
.setEmoji(config.options.ticket3.icon)
|
||||
)
|
||||
}else{
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setDisabled(false)
|
||||
.setStyle("LINK")
|
||||
.setEmoji(config.options.ticket3.icon)
|
||||
.setURL(config.options.ticket3.url)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (config.options.ticket4.enabled){
|
||||
if (currentTicketButtons < 4){
|
||||
var localTicketButton = ticketButton
|
||||
}else{
|
||||
var localTicketButton = ticketButton2
|
||||
}
|
||||
|
||||
currentTicketButtons = currentTicketButtons + 1
|
||||
|
||||
if (config.options.ticket4.isURL == false){
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setCustomId("newTicket4")
|
||||
.setDisabled(false)
|
||||
.setStyle(getColor(config.options.ticket4.color))
|
||||
.setEmoji(config.options.ticket4.icon)
|
||||
)
|
||||
}else{
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setDisabled(false)
|
||||
.setStyle("LINK")
|
||||
.setEmoji(config.options.ticket4.icon)
|
||||
.setURL(config.options.ticket4.url)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (config.options.ticket5.enabled){
|
||||
if (currentTicketButtons < 4){
|
||||
var localTicketButton = ticketButton
|
||||
}else{
|
||||
var localTicketButton = ticketButton2
|
||||
}
|
||||
|
||||
currentTicketButtons = currentTicketButtons + 1
|
||||
|
||||
if (config.options.ticket5.isURL == false){
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setCustomId("newTicket5")
|
||||
.setDisabled(false)
|
||||
.setStyle(getColor(config.options.ticket5.color))
|
||||
.setEmoji(config.options.ticket5.icon)
|
||||
)
|
||||
}else{
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setDisabled(false)
|
||||
.setStyle("LINK")
|
||||
.setEmoji(config.options.ticket5.icon)
|
||||
.setURL(config.options.ticket5.url)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (config.options.ticket6.enabled){
|
||||
if (currentTicketButtons < 4){
|
||||
var localTicketButton = ticketButton
|
||||
}else{
|
||||
var localTicketButton = ticketButton2
|
||||
}
|
||||
|
||||
currentTicketButtons = currentTicketButtons + 1
|
||||
|
||||
if (config.options.ticket6.isURL == false){
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setCustomId("newTicket6")
|
||||
.setDisabled(false)
|
||||
.setStyle(getColor(config.options.ticket6.color))
|
||||
.setEmoji(config.options.ticket6.icon)
|
||||
)
|
||||
}else{
|
||||
localTicketButton.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setDisabled(false)
|
||||
.setStyle("LINK")
|
||||
.setEmoji(config.options.ticket6.icon)
|
||||
.setURL(config.options.ticket6.url)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
var categorylist = ""
|
||||
if (config.options.ticket1.enabled){categorylist = categorylist+"\n"+config.options.ticket1.icon+": **"+config.options.ticket1.name+"**\n"+config.options.ticket1.description}
|
||||
|
||||
if (config.options.ticket2.enabled){categorylist = categorylist+"\n\n"+config.options.ticket2.icon+": **"+config.options.ticket2.name+"**\n"+config.options.ticket2.description}
|
||||
|
||||
if (config.options.ticket3.enabled){categorylist = categorylist+"\n\n"+config.options.ticket3.icon+": **"+config.options.ticket3.name+"**\n"+config.options.ticket3.description}
|
||||
|
||||
if (config.options.ticket4.enabled){categorylist = categorylist+"\n\n"+config.options.ticket4.icon+": **"+config.options.ticket4.name+"**\n"+config.options.ticket4.description}
|
||||
|
||||
if (config.options.ticket5.enabled){categorylist = categorylist+"\n\n"+config.options.ticket5.icon+": **"+config.options.ticket5.name+"**\n"+config.options.ticket5.description}
|
||||
|
||||
if (config.options.ticket6.enabled){categorylist = categorylist+"\n\n"+config.options.ticket6.icon+": **"+config.options.ticket6.name+"**\n"+config.options.ticket6.description}
|
||||
|
||||
|
||||
|
||||
var ticketEmbed = new discord.MessageEmbed()
|
||||
if (config.layout.ticketMsg.customColorEnabled){
|
||||
ticketEmbed.setColor(config.layout.ticketMsg.customColor)
|
||||
}else{ticketEmbed.setColor(config.main_color)}
|
||||
|
||||
if (config.layout.ticketMsg.footerEnabled){
|
||||
ticketEmbed.setFooter({text:config.layout.ticketMsg.footer})
|
||||
}
|
||||
if (config.layout.ticketMsg.thumbnailEnabled){
|
||||
ticketEmbed.setThumbnail(config.layout.ticketMsg.thumbnailURL)
|
||||
}
|
||||
|
||||
ticketEmbed.setDescription("**Create a ticket:**\nClick one of the buttons below to create a ticket.\n\n__choose a category:__"+categorylist+"\n\n**watch out:**_You can only create "+config.system.max_allowed_tickets+" ticket(s) at a time!_")
|
||||
const {embed,componentRows} = require("../core/ticketMessageEmbed").createEmbed(id)
|
||||
|
||||
|
||||
if (currentTicketButtons <= 4){
|
||||
var embedComponents = [ticketButton]
|
||||
}else{var embedComponents = [ticketButton,ticketButton2]}
|
||||
|
||||
msg.channel.send({embeds:[ticketEmbed],components:embedComponents})
|
||||
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")}
|
||||
}
|
||||
})
|
||||
|
||||
client.on("interactionCreate", (interaction) => {
|
||||
if (!interaction.isCommand()) return
|
||||
if (interaction.commandName != "message") return
|
||||
|
||||
if (config.main_adminroles.some((item)=>{return interaction.guild.members.cache.find((m) => m.id == interaction.member.id).roles.cache.has(item)}) == false){
|
||||
interaction.reply({content:"You have no permission to run this command!"})
|
||||
return
|
||||
}
|
||||
|
||||
const id = interaction.options.getString("id")
|
||||
|
||||
if (!msgIds.includes(id)) return interaction.reply({content:"**Invalid id!**\nChoose from this list:\n_"+msgIds.join("_\n_")+"_"})
|
||||
|
||||
const {embed,componentRows} = require("../core/ticketMessageEmbed").createEmbed(id)
|
||||
|
||||
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")}
|
||||
|
||||
})
|
||||
}
|
||||
@@ -1,309 +0,0 @@
|
||||
const discord = require('discord.js')
|
||||
const bot = require('../index')
|
||||
const client = bot.client
|
||||
const config = require("../config.json")
|
||||
|
||||
const ticketStorage = bot.TicketStorage
|
||||
const userTicketStorage = bot.userTicketStorage
|
||||
const transcriptStorage = bot.transcriptStorage
|
||||
|
||||
module.exports = () => {
|
||||
|
||||
var closeButton = new discord.MessageActionRow()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setCustomId("closeTicket")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setLabel("Close Ticket")
|
||||
.setEmoji("❌")
|
||||
)
|
||||
|
||||
//ticket button click / create ticket
|
||||
client.on("interactionCreate",interaction => {
|
||||
|
||||
if (interaction.isButton() == false){
|
||||
return
|
||||
}
|
||||
|
||||
if (interaction.customId == "newTicket1"||interaction.customId == "newTicket2"||interaction.customId == "newTicket3"||interaction.customId == "newTicket4"||interaction.customId == "newTicket5"||interaction.customId == "newTicket6"){
|
||||
|
||||
interaction.deferUpdate()
|
||||
|
||||
if (ticketStorage.getItem(interaction.member.id) == null ||ticketStorage.getItem(interaction.member.id) == "false"|| Number(ticketStorage.getItem(interaction.member.id)) < config.system.max_allowed_tickets){
|
||||
|
||||
try{
|
||||
if (config.system.enable_DM_Messages){
|
||||
interaction.member.send(config.messages.dm.newTicket)
|
||||
}
|
||||
}
|
||||
catch{console.log("can't send DM to member || member doesn't allow dm's")}
|
||||
|
||||
|
||||
//update storage
|
||||
ticketStorage.setItem(interaction.member.id,Number(ticketStorage.getItem(interaction.member.id))+1)
|
||||
var ticketNumber = interaction.member.user.username
|
||||
|
||||
//set ticketName
|
||||
if (interaction.customId == "newTicket1"){
|
||||
var ticketName = config.options.ticket1.channel_prefix+ticketNumber
|
||||
var logsname = config.options.ticket1.name
|
||||
}else if (interaction.customId == "newTicket2"){
|
||||
var ticketName = config.options.ticket2.channel_prefix+ticketNumber
|
||||
var logsname = config.options.ticket2.name
|
||||
}else if (interaction.customId == "newTicket3"){
|
||||
var ticketName = config.options.ticket3.channel_prefix+ticketNumber
|
||||
var logsname = config.options.ticket3.name
|
||||
}else if (interaction.customId == "newTicket4"){
|
||||
var ticketName = config.options.ticket4.channel_prefix+ticketNumber
|
||||
var logsname = config.options.ticket4.name
|
||||
}else if (interaction.customId == "newTicket5"){
|
||||
var ticketName = config.options.ticket5.channel_prefix+ticketNumber
|
||||
var logsname = config.options.ticket5.name
|
||||
}else if (interaction.customId == "newTicket6"){
|
||||
var ticketName = config.options.ticket6.channel_prefix+ticketNumber
|
||||
var logsname = config.options.ticket6.name
|
||||
}
|
||||
|
||||
//set category
|
||||
if (config.system.enable_category){
|
||||
var Category = config.system.ticket_category
|
||||
}else{var Category = null}
|
||||
|
||||
var permissionsArray = []
|
||||
|
||||
//set everyone allowed
|
||||
if (config.system['has@everyoneaccess']){
|
||||
var everyoneAllowPerms = ["ADD_REACTIONS","ATTACH_FILES","EMBED_LINKS","SEND_MESSAGES","VIEW_CHANNEL"]
|
||||
var everyoneDenyPerms = []
|
||||
}else{
|
||||
var everyoneAllowPerms = []
|
||||
var everyoneDenyPerms = ["VIEW_CHANNEL"]
|
||||
}
|
||||
permissionsArray.push({
|
||||
id:interaction.member.id,
|
||||
type:"member",
|
||||
allow:["ADD_REACTIONS","ATTACH_FILES","EMBED_LINKS","SEND_MESSAGES","VIEW_CHANNEL"]
|
||||
})
|
||||
permissionsArray.push({
|
||||
id:config.botperms_role,
|
||||
type:"role",
|
||||
allow:["ADD_REACTIONS","ATTACH_FILES","EMBED_LINKS","SEND_MESSAGES","VIEW_CHANNEL"]
|
||||
})
|
||||
permissionsArray.push({
|
||||
id:interaction.guild.id,
|
||||
type:"role",
|
||||
allow:everyoneAllowPerms,
|
||||
deny:everyoneDenyPerms
|
||||
})
|
||||
if (config.system.member_role == "" || config.system.member_role == " " || config.system.member_role == "false" || config.system.member_role == "null" || config.system.member_role == "0"){
|
||||
permissionsArray.push({
|
||||
id:config.system.member_role,
|
||||
type:"role",
|
||||
deny:["VIEW_CHANNEL"]
|
||||
})
|
||||
}
|
||||
|
||||
//create the channel
|
||||
interaction.guild.channels.create(ticketName,{
|
||||
type:"GUILD_TEXT",
|
||||
parent:Category,
|
||||
permissionOverwrites:permissionsArray
|
||||
}).then(tChannel => {
|
||||
userTicketStorage.setItem(tChannel.id,interaction.member.id)
|
||||
|
||||
|
||||
var ticketEmbed = new discord.MessageEmbed()
|
||||
if (config.layout.ticketEmbed.customColorEnabled){
|
||||
ticketEmbed.setColor(config.layout.ticketEmbed.customColor)
|
||||
}else{ticketEmbed.setColor(config.main_color)}
|
||||
|
||||
if (config.layout.ticketEmbed.footerEnabled){
|
||||
ticketEmbed.setFooter({text:"config.layout.ticketEmbed.footer"})
|
||||
}
|
||||
if (config.layout.ticketEmbed.thumbnailEnabled){
|
||||
ticketEmbed.setThumbnail(config.layout.ticketEmbed.thumbnailURL)
|
||||
}
|
||||
ticketEmbed.setTitle("You created a ticket!")
|
||||
ticketEmbed.setDescription(config.messages.ticket.newTicketEmbed)
|
||||
|
||||
tChannel.send({content:"<@"+interaction.member.id+"> <@&"+config.botperms_role+">",embeds:[ticketEmbed],components:[closeButton]}).then(firstmsg => {
|
||||
firstmsg.pin()
|
||||
})
|
||||
if (config.logs){console.log("[system] created a new ticket (name:"+logsname+",user:"+interaction.user.username+")")}
|
||||
})
|
||||
|
||||
|
||||
|
||||
}else{
|
||||
try {
|
||||
if (config.system.enable_DM_Messages){
|
||||
interaction.member.send(config.messages.dm.alreadyCreated)
|
||||
}
|
||||
}
|
||||
catch{console.log("can't send DM to member || member doesn't allow dm's")}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
})
|
||||
|
||||
//closeBAR
|
||||
var closeBar = new discord.MessageActionRow()
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setCustomId("closeTicketTrue")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setEmoji("✅")
|
||||
)
|
||||
.addComponents(
|
||||
new discord.MessageButton()
|
||||
.setCustomId("closeTicketFalse")
|
||||
.setDisabled(false)
|
||||
.setStyle("SECONDARY")
|
||||
.setEmoji("❌")
|
||||
)
|
||||
|
||||
|
||||
|
||||
client.on("interactionCreate",interaction => {
|
||||
if (interaction.isButton() == false){
|
||||
return
|
||||
}
|
||||
if (interaction.customId == "closeTicket"){
|
||||
interaction.deferUpdate()
|
||||
interaction.message.edit({components:[closeBar]})
|
||||
}
|
||||
})
|
||||
|
||||
client.on("interactionCreate",interaction => {
|
||||
if (interaction.isButton() == false){
|
||||
return
|
||||
}
|
||||
if (interaction.customId == "closeTicketFalse"){
|
||||
interaction.deferUpdate()
|
||||
|
||||
interaction.message.edit({components:[closeButton]})
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
client.on("interactionCreate",interaction => {
|
||||
if (interaction.isButton() == false){
|
||||
return
|
||||
}
|
||||
if (interaction.customId == "closeTicketTrue"){
|
||||
interaction.deferUpdate()
|
||||
interaction.channel.messages.fetch().then(messages => {
|
||||
var transcriptArray = []
|
||||
messages.forEach(msg => {
|
||||
if (msg.author.id != client.user.id){
|
||||
transcriptArray.push("["+msg.author.username+"]: "+msg.content)
|
||||
}
|
||||
})
|
||||
var getuserID = userTicketStorage.getItem(interaction.channel.id)
|
||||
var getusernameStep1 = client.users.cache.find(u => u.id === getuserID)
|
||||
if (getusernameStep1 == null || getusernameStep1 == undefined || getusernameStep1 == false || getusernameStep1 == ""){
|
||||
var getuserNAME = ":usernotfound:"
|
||||
}else {
|
||||
var getuserNAME = getusernameStep1.username
|
||||
}
|
||||
|
||||
|
||||
if (config.system.enable_transcript){
|
||||
var transcript = transcriptArray.reverse().join("\n")
|
||||
transcriptStorage.setItem(interaction.channel.id,transcript)
|
||||
|
||||
//transcript color & thumbnail
|
||||
if (config.layout.transcripts.customColorEnabled){
|
||||
var transcriptColor = config.layout.transcripts.customColor
|
||||
}else{var transcriptColor = config.main_color}
|
||||
|
||||
if (config.layout.transcripts.thumbnailEnabled){
|
||||
var transcriptThumbnail = config.layout.transcripts.thumbnailURL
|
||||
}else{var transcriptThumbnail = ""}
|
||||
|
||||
var splittedTranscript = [transcript.slice(0,2000)]
|
||||
if (transcript.length > 4000){
|
||||
splittedTranscript.push(transcript.slice(2000,4000))
|
||||
splittedTranscript.push(transcript.slice(4000))
|
||||
}else if (transcript.length > 2000){
|
||||
splittedTranscript.push(transcript.slice(2000))
|
||||
}
|
||||
var transcriptEmbed = new discord.MessageEmbed()
|
||||
.setColor(transcriptColor)
|
||||
.setAuthor({name:interaction.channel.name + " - ticket created by "+getuserNAME})
|
||||
.setTitle("There is a new transcript!")
|
||||
.setDescription(splittedTranscript[0])
|
||||
.setFooter({text:"ticket closed by "+interaction.member.user.username})
|
||||
.setThumbnail(transcriptThumbnail)
|
||||
|
||||
if (transcript.length > 4000){
|
||||
var transcriptEmbed2 = new discord.MessageEmbed()
|
||||
.setColor(transcriptColor)
|
||||
.setAuthor({name:interaction.channel.name + " - ticket created by "+getuserNAME})
|
||||
.setTitle("transcript #2")
|
||||
.setDescription(splittedTranscript[1])
|
||||
.setFooter("ticket closed by "+interaction.member.user.username)
|
||||
.setThumbnail(transcriptThumbnail)
|
||||
|
||||
var transcriptEmbed3 = new discord.MessageEmbed()
|
||||
.setColor(transcriptColor)
|
||||
.setAuthor({name:interaction.channel.name + " - ticket created by "+getuserNAME})
|
||||
.setTitle("transcript #3")
|
||||
.setDescription(splittedTranscript[1])
|
||||
.setFooter({text:"ticket closed by "+interaction.member.user.username})
|
||||
.setThumbnail(transcriptThumbnail)
|
||||
|
||||
client.channels.cache.find(ch => ch.id == config.system.transcript_channel).send({embeds:[transcriptEmbed,transcriptEmbed2,transcriptEmbed3]})
|
||||
|
||||
}else if (transcript.length > 2000){
|
||||
var transcriptEmbed2 = new discord.MessageEmbed()
|
||||
.setColor(transcriptColor)
|
||||
.setAuthor({name:interaction.channel.name + " - ticket created by "+getuserNAME})
|
||||
.setTitle("transcript #2")
|
||||
.setDescription(splittedTranscript[1])
|
||||
.setFooter({text:"ticket closed by "+interaction.member.user.username})
|
||||
.setThumbnail(transcriptThumbnail)
|
||||
|
||||
client.channels.cache.find(ch => ch.id == config.system.transcript_channel).send({embeds:[transcriptEmbed,transcriptEmbed2]})
|
||||
}else{
|
||||
client.channels.cache.find(ch => ch.id == config.system.transcript_channel).send({embeds:[transcriptEmbed]})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
interaction.channel.delete()
|
||||
if (config.logs){console.log("[system] closed a ticket (name:"+interaction.channel.name+",user:"+interaction.user.username+")")}
|
||||
|
||||
|
||||
|
||||
ticketStorage.setItem(getuserID,Number(ticketStorage.getItem(getuserID)) - 1)
|
||||
|
||||
try {
|
||||
if (config.system.enable_DM_Messages){
|
||||
interaction.member.send(config.messages.dm.closeTicket)
|
||||
}
|
||||
}
|
||||
catch{console.log("can't send DM to member || member doesn't allow dm's")}
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
process.on('unhandledRejection',error => {
|
||||
console.log("ERROR: "+error)
|
||||
})
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user