From a274576589cebd1823b6a07bae4b422b1e320463 Mon Sep 17 00:00:00 2001 From: DJj123dj <80536295+DJj123dj@users.noreply.github.com> Date: Thu, 9 Jun 2022 20:43:41 +0200 Subject: [PATCH] v2.1.0 push 4 Added re-open mechanics --- core/closebuttons.js | 32 ++++++++++++- core/ticketCloser.js | 13 +++++- core/ticketReopener.js | 101 +++++++++++++++++++++++++++++++++++++++++ index.js | 1 + 4 files changed, 144 insertions(+), 3 deletions(-) create mode 100644 core/ticketReopener.js diff --git a/core/closebuttons.js b/core/closebuttons.js index 1f1c903..351968d 100644 --- a/core/closebuttons.js +++ b/core/closebuttons.js @@ -86,6 +86,32 @@ module.exports = () => { .setLabel("Send Transcript File") .setEmoji("📄") ) + .addComponents( + new discord.MessageButton() + .setCustomId("reopenTicket") + .setDisabled(false) + .setStyle("SUCCESS") + .setLabel("Re-Open Ticket") + .setEmoji("✔") + ) + + var closeRowDisabled = new discord.MessageActionRow() + .addComponents( + new discord.MessageButton() + .setCustomId("closeTicket") + .setDisabled(true) + .setStyle("SECONDARY") + .setLabel("Close Ticket") + .setEmoji("🔒") + ) + .addComponents( + new discord.MessageButton() + .setCustomId("deleteTicket") + .setDisabled(true) + .setStyle("DANGER") + .setLabel("Delete Ticket") + .setEmoji("✖️") + ) //NORMAL CLOSE @@ -109,7 +135,7 @@ module.exports = () => { if (interaction.customId != "closeTicketTrue") return interaction.deferUpdate() - interaction.message.edit({components:[closeRowClosed]}) + interaction.message.edit({components:[closeRowDisabled]}) /** * @type {String} @@ -141,6 +167,10 @@ module.exports = () => { ]) interaction.message.edit({components:[closedButtonDisabled]}) + interaction.channel.messages.fetchPinned().then((messages) => { + messages.first().edit({components:[closeRowDisabled]}) + }) + /** * @type {String} */ diff --git a/core/ticketCloser.js b/core/ticketCloser.js index 930562d..8b4edd9 100644 --- a/core/ticketCloser.js +++ b/core/ticketCloser.js @@ -81,10 +81,19 @@ exports.closeTicket = async (interaction,prefix,mode) => { .setLabel("Send Transcript File") .setEmoji("📄") ) + .addComponents( + new discord.MessageButton() + .setCustomId("reopenTicket") + .setDisabled(false) + .setStyle("SUCCESS") + .setLabel("Re-Open Ticket") + .setEmoji("✔") + ) + const embed = new discord.MessageEmbed() .setColor(config.main_color) - .setTitle("Closed this ticket!") - .setDescription("Only admins can now talk in this ticket!\n\n*Click on the button below to delete this ticket*") + .setTitle(":lock: Closed this ticket! :lock:") + .setDescription("Only admins can talk in this ticket now!\n\n*Click on the button below to delete this ticket or to re-open it!*") interaction.channel.send({embeds:[embed],components:[closeButtonRow]}) log("system","closed a ticket",[{key:"user",value:interaction.user.tag},{key:"ticket",value:interaction.channel.name}]) diff --git a/core/ticketReopener.js b/core/ticketReopener.js new file mode 100644 index 0000000..78c4734 --- /dev/null +++ b/core/ticketReopener.js @@ -0,0 +1,101 @@ +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 + +module.exports = () => { + var closeRowNormal = new discord.MessageActionRow() + .addComponents( + new discord.MessageButton() + .setCustomId("closeTicket") + .setDisabled(false) + .setStyle("SECONDARY") + .setLabel("Close Ticket") + .setEmoji("🔒") + ) + .addComponents( + new discord.MessageButton() + .setCustomId("deleteTicket") + .setDisabled(false) + .setStyle("DANGER") + .setLabel("Delete Ticket") + .setEmoji("✖️") + ) + + var closeRowClosed = new discord.MessageActionRow() + .addComponents( + new discord.MessageButton() + .setCustomId("deleteTicket1") + .setDisabled(false) + .setStyle("DANGER") + .setLabel("Delete Ticket") + .setEmoji("✖️") + ) + .addComponents( + new discord.MessageButton() + .setCustomId("sendTranscript") + .setDisabled(false) + .setStyle("SECONDARY") + .setLabel("Send Transcript File") + .setEmoji("📄") + ) + .addComponents( + new discord.MessageButton() + .setCustomId("reopenTicket") + .setDisabled(false) + .setStyle("SUCCESS") + .setLabel("Re-Open Ticket") + .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("❌") + ) + 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: Re-Opened this ticket! :unlock:") + .setDescription("Feel free to talk again!") + + interaction.message.edit({embeds:[embed],components:[closeRowNormal]}) + + }) +} \ No newline at end of file diff --git a/index.js b/index.js index 375850d..5af9262 100644 --- a/index.js +++ b/index.js @@ -81,6 +81,7 @@ if (process.argv[2] && !process.argv[2].startsWith("slash")){ require("./core/ticketCloser").runThis() require("./core/closebuttons")() require("./core/reactionRoles")() + require("./core/ticketReopener")() }