From ee7d42196da5adab0f309bb900982647d5d63d97 Mon Sep 17 00:00:00 2001 From: Noah Date: Thu, 28 Oct 2021 18:03:51 -0500 Subject: [PATCH] Create remove.js --- Commands/remove.js | 95 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 Commands/remove.js diff --git a/Commands/remove.js b/Commands/remove.js new file mode 100644 index 0000000..d062584 --- /dev/null +++ b/Commands/remove.js @@ -0,0 +1,95 @@ +// SupportBot | Emerald Services +// Ticket Remove Command + +const fs = require("fs"); + +const Discord = require("discord.js"); +const yaml = require("js-yaml"); +const supportbot = yaml.load( + fs.readFileSync("./Configs/supportbot.yml", "utf8") +); +const cmdconfig = yaml.load(fs.readFileSync("./Configs/commands.yml", "utf8")); + +const Command = require("../Structures/Command.js"); + +async function asyncForEach(array, callback) { + for (let index = 0; index < array.length; index++) { + await callback(array[index], index, array); + } +} + +module.exports = new Command({ + name: cmdconfig.TicketRemove, + description: cmdconfig.TicketRemoveDesc, + slashCommandOptions: [ + { + name: "user", + description: "User to remove", + type: "USER", + required: true, + }, + ], + permission: "SEND_MESSAGES", + + async run(interaction) { + let SupportStaff = + interaction.guild.roles.cache.find( + (SupportTeam) => SupportTeam.name === supportbot.Staff + ) || + interaction.guild.roles.cache.find( + (SupportTeam) => SupportTeam.id === supportbot.Staff + ); + let Admins = + interaction.guild.roles.cache.find( + (AdminUser) => AdminUser.name === supportbot.Admin + ) || + interaction.guild.roles.cache.find( + (AdminUser) => AdminUser.id === supportbot.Admin + ); + + const NoPerms = new Discord.MessageEmbed() + .setTitle("Invalid Permissions!") + .setDescription( + `${supportbot.IncorrectPerms}\n\nRole Required: \`${supportbot.Staff}\` or \`${supportbot.Admin}\`` + ) + .setColor(supportbot.WarningColour); + + if ( + interaction.member.roles.cache.has(SupportStaff.id) || + interaction.member.roles.cache.has(Admins.id) + ) { + if (!interaction.channel.name.startsWith(`${supportbot.TicketPrefix}`)) { + const Exists = new Discord.MessageEmbed() + .setTitle("No Ticket Found!") + .setDescription(`${supportbot.NoValidTicket}`) + .setColor(supportbot.WarningColour); + return interaction.reply({ embeds: [Exists] }); + } + + let uMember = interaction.options.getUser("user"); + const UserNotExist = new Discord.MessageEmbed() + .setTitle("User Not Found!") + .setDescription( + `${supportbot.UserNotFound}\n\nTry Again:\`/${cmdconfig.TicketRemove} \`` + ) + .setColor(supportbot.ErrorColour); + + if (!uMember) return interaction.reply({ embeds: [UserNotExist] }); + + interaction.channel.permissionOverwrites.edit(uMember, { + VIEW_CHANNEL: false, + READ_MESSAGE_HISTORY: false, + SEND_MESSAGES: false, + }); + + const Complete = new Discord.MessageEmbed() + .setTitle("User Removed!") + .setDescription(supportbot.RemovedUser.replace(/%user%/g, uMember.id)) + .setTimestamp() + .setColor(supportbot.EmbedColour); + interaction.reply({ embeds: [Complete] }); + } else { + return interaction.reply({ embeds: [NoPerms] }); + } + }, +});