245 lines
7.9 KiB
JavaScript
245 lines
7.9 KiB
JavaScript
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
|
|
|
|
module.exports = () => {
|
|
var closeRowNormal = new discord.MessageActionRow()
|
|
.addComponents(
|
|
new discord.MessageButton()
|
|
.setCustomId("closeTicket")
|
|
.setDisabled(false)
|
|
.setStyle("SECONDARY")
|
|
.setLabel(l.buttons.close)
|
|
.setEmoji("🔒")
|
|
)
|
|
.addComponents(
|
|
new discord.MessageButton()
|
|
.setCustomId("deleteTicket")
|
|
.setDisabled(false)
|
|
.setStyle("DANGER")
|
|
.setLabel(l.buttons.delete)
|
|
.setEmoji("✖️")
|
|
)
|
|
|
|
var closeRowClosed = new discord.MessageActionRow()
|
|
.addComponents(
|
|
new discord.MessageButton()
|
|
.setCustomId("deleteTicket1")
|
|
.setDisabled(false)
|
|
.setStyle("DANGER")
|
|
.setLabel(l.buttons.delete)
|
|
.setEmoji("✖️")
|
|
)
|
|
.addComponents(
|
|
new discord.MessageButton()
|
|
.setCustomId("sendTranscript")
|
|
.setDisabled(false)
|
|
.setStyle("SECONDARY")
|
|
.setLabel(l.buttons.sendTranscript)
|
|
.setEmoji("📄")
|
|
)
|
|
.addComponents(
|
|
new discord.MessageButton()
|
|
.setCustomId("reopenTicket")
|
|
.setDisabled(false)
|
|
.setStyle("SUCCESS")
|
|
.setLabel(l.buttons.reopen)
|
|
.setEmoji("✔")
|
|
)
|
|
|
|
var reopenBar = new discord.MessageActionRow()
|
|
.addComponents(
|
|
new discord.MessageButton()
|
|
.setCustomId("reopenTicketTrue")
|
|
.setDisabled(false)
|
|
.setStyle("SECONDARY")
|
|
.setEmoji("✅")
|
|
)
|
|
.addComponents(
|
|
new discord.MessageButton()
|
|
.setCustomId("reopenTicketFalse")
|
|
.setDisabled(false)
|
|
.setStyle("SECONDARY")
|
|
.setEmoji("❌")
|
|
)
|
|
|
|
var reopenBar1 = new discord.MessageActionRow()
|
|
.addComponents(
|
|
new discord.MessageButton()
|
|
.setCustomId("reopenTicketTrue1")
|
|
.setDisabled(false)
|
|
.setStyle("SECONDARY")
|
|
.setEmoji("✅")
|
|
)
|
|
.addComponents(
|
|
new discord.MessageButton()
|
|
.setCustomId("reopenTicketFalse1")
|
|
.setDisabled(false)
|
|
.setStyle("SECONDARY")
|
|
.setEmoji("❌")
|
|
)
|
|
|
|
var reopenCommandBar = new discord.MessageActionRow()
|
|
.addComponents(
|
|
new discord.MessageButton()
|
|
.setCustomId("reopenTicket1")
|
|
.setDisabled(false)
|
|
.setStyle("SECONDARY")
|
|
.setEmoji("🔓")
|
|
)
|
|
|
|
//NORMAL WAY
|
|
client.on("interactionCreate",(interaction) => {
|
|
if (!interaction.isButton()) return
|
|
if (interaction.customId != "reopenTicket") return
|
|
|
|
interaction.deferUpdate()
|
|
interaction.message.edit({components:[reopenBar]})
|
|
|
|
})
|
|
|
|
client.on("interactionCreate",(interaction) => {
|
|
if (!interaction.isButton()) return
|
|
if (interaction.customId != "reopenTicketFalse") return
|
|
|
|
interaction.deferUpdate()
|
|
interaction.message.edit({components:[closeRowClosed]})
|
|
|
|
})
|
|
|
|
client.on("interactionCreate",(interaction) => {
|
|
if (!interaction.isButton()) return
|
|
if (interaction.customId != "reopenTicketTrue") return
|
|
|
|
interaction.deferUpdate()
|
|
|
|
const embed = new discord.MessageEmbed()
|
|
.setColor(config.main_color)
|
|
.setTitle(":unlock: "+l.messages.reopenTitle+" :unlock:")
|
|
.setDescription(l.messages.reopenDescription)
|
|
|
|
interaction.message.edit({embeds:[embed],components:[closeRowNormal]})
|
|
|
|
log("system","re-opened a ticket",[{key:"ticket",value:interaction.channel.name},{key:"user",value:interaction.user.tag}])
|
|
|
|
|
|
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.guild.id,
|
|
type:"role",
|
|
allow:everyoneAllowPerms,
|
|
deny:everyoneDenyPerms
|
|
})
|
|
|
|
interaction.channel.permissionOverwrites.cache.forEach((p) => {
|
|
if (p.type == "member"){
|
|
permissionsArray.push({
|
|
id:p.id,
|
|
type:"member",
|
|
allow:["ADD_REACTIONS","ATTACH_FILES","EMBED_LINKS","SEND_MESSAGES","VIEW_CHANNEL"],
|
|
deny:[]
|
|
})
|
|
}
|
|
})
|
|
|
|
interaction.channel.permissionOverwrites.set(permissionsArray)
|
|
})
|
|
|
|
|
|
//COMMAND WAY
|
|
client.on("interactionCreate",(interaction) => {
|
|
if (!interaction.isButton()) return
|
|
if (interaction.customId != "reopenTicket1") return
|
|
|
|
interaction.deferUpdate()
|
|
interaction.message.edit({components:[reopenBar1]})
|
|
|
|
})
|
|
|
|
client.on("interactionCreate",(interaction) => {
|
|
if (!interaction.isButton()) return
|
|
if (interaction.customId != "reopenTicketFalse1") return
|
|
|
|
interaction.deferUpdate()
|
|
interaction.message.edit({components:[reopenCommandBar]})
|
|
|
|
})
|
|
|
|
client.on("interactionCreate",(interaction) => {
|
|
if (!interaction.isButton()) return
|
|
if (interaction.customId != "reopenTicketTrue1") return
|
|
|
|
interaction.deferUpdate()
|
|
|
|
const embed = new discord.MessageEmbed()
|
|
.setColor(config.main_color)
|
|
.setTitle(":unlock: "+l.messages.reopenTitle+" :unlock:")
|
|
.setDescription(l.messages.reopenDescription)
|
|
|
|
interaction.message.edit({content:null,embeds:[embed],components:[closeRowNormal]})
|
|
|
|
log("system","re-opened a ticket",[{key:"ticket",value:interaction.channel.name},{key:"user",value:interaction.user.tag}])
|
|
|
|
|
|
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.guild.id,
|
|
type:"role",
|
|
allow:everyoneAllowPerms,
|
|
deny:everyoneDenyPerms
|
|
})
|
|
|
|
interaction.channel.permissionOverwrites.cache.forEach((p) => {
|
|
if (p.type == "member"){
|
|
permissionsArray.push({
|
|
id:p.id,
|
|
type:"member",
|
|
allow:["ADD_REACTIONS","ATTACH_FILES","EMBED_LINKS","SEND_MESSAGES","VIEW_CHANNEL"],
|
|
deny:[]
|
|
})
|
|
}
|
|
})
|
|
|
|
interaction.channel.permissionOverwrites.set(permissionsArray)
|
|
|
|
//getID & send DM
|
|
interaction.channel.messages.fetchPinned().then(msglist => {
|
|
var firstmsg = msglist.last()
|
|
|
|
if (firstmsg == undefined || firstmsg.author.id != client.user.id) return false
|
|
|
|
const id = firstmsg.embeds[0].author.name
|
|
|
|
if (!id) return false
|
|
|
|
try{
|
|
if (config.system.enable_DM_Messages){
|
|
interaction.member.send({embeds:[bot.errorLog.custom(l.messages.reopenTicketDmTitle,l.messages.reopenTicketDmDescription,":ticket:",config.main_color)]})
|
|
}
|
|
}
|
|
catch{log("system","can't send DM to member, member doesn't allow dm's")}
|
|
})
|
|
})
|
|
} |