Files
SupportBot/Commands/remove.js
T

94 lines
2.9 KiB
JavaScript
Raw Normal View History

2021-10-28 18:03:51 -05:00
// 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");
module.exports = new Command({
name: cmdconfig.TicketRemove,
description: cmdconfig.TicketRemoveDesc,
options: [
2021-10-28 18:03:51 -05:00
{
name: "user",
description: "User to remove",
type: "USER",
required: true,
},
],
permissions: ["SEND_MESSAGES"],
2021-10-28 18:03:51 -05:00
async run(interaction) {
2022-01-30 00:07:04 -06:00
const { getRole } = interaction.client;
let Staff = await getRole(supportbot.Staff, interaction.guild);
let Admin = await getRole(supportbot.Admin, interaction.guild);
if (!Staff || !Admin)
2021-11-21 18:42:18 -06:00
return interaction.reply(
"Some roles seem to be missing!\nPlease check for errors when starting the bot."
2021-10-28 18:03:51 -05:00
);
const NoPerms = new Discord.MessageEmbed()
.setTitle("Invalid Permissions!")
.setDescription(
`${supportbot.IncorrectPerms}\n\nRole Required: \`${supportbot.Staff}\` or \`${supportbot.Admin}\``
)
.setColor(supportbot.WarningColour);
if (
2021-12-18 19:24:39 -06:00
!interaction.member.roles.cache.has(Staff.id) &&
!interaction.member.roles.cache.has(Admin.id)
2021-12-14 18:04:38 -06:00
)
return interaction.reply({ embeds: [NoPerms] });
let TicketData = await JSON.parse(
fs.readFileSync("./Data/TicketData.json", "utf8")
);
let ticket = await TicketData.tickets.findIndex(
2022-01-29 23:57:10 -06:00
(t) => t.id === interaction.channel.id
2021-12-14 18:04:38 -06:00
);
2022-01-29 23:57:10 -06:00
if (ticket === -1) {
2021-12-14 18:04:38 -06:00
const Exists = new Discord.MessageEmbed()
.setTitle("No Ticket Found!")
2022-02-11 23:47:06 -06:00
.setDescription(supportbot.NoValidTicket)
2021-12-14 18:04:38 -06:00
.setColor(supportbot.WarningColour);
return interaction.reply({ embeds: [Exists] });
}
2021-10-28 18:03:51 -05:00
2021-12-14 18:04:38 -06:00
let uMember = interaction.options.getUser("user");
const UserNotExist = new Discord.MessageEmbed()
.setTitle("User Not Found!")
.setDescription(
`${supportbot.UserNotFound}\n\nTry Again:\`/${cmdconfig.TicketRemove} <user#0000>\``
)
.setColor(supportbot.ErrorColour);
2021-10-28 18:03:51 -05:00
2021-12-14 18:04:38 -06:00
if (!uMember) return interaction.reply({ embeds: [UserNotExist] });
2021-10-28 18:03:51 -05:00
2022-01-29 23:57:10 -06:00
await interaction.channel.permissionOverwrites.edit(uMember.id, {
2022-01-30 00:07:04 -06:00
VIEW_CHANNEL: false,
2021-12-14 18:04:38 -06:00
});
2021-10-28 18:03:51 -05:00
2021-12-14 18:04:38 -06:00
const Complete = new Discord.MessageEmbed()
.setTitle("User Removed!")
.setDescription(supportbot.RemovedUser.replace(/%user%/g, uMember.id))
.setTimestamp()
.setColor(supportbot.EmbedColour);
interaction.reply({ embeds: [Complete] });
TicketData.tickets[ticket].subUsers = TicketData.tickets[
ticket
2022-01-29 23:57:10 -06:00
].subUsers.filter((u) => u !== uMember.id);
2021-12-14 18:04:38 -06:00
fs.writeFileSync(
"./Data/TicketData.json",
JSON.stringify(TicketData, null, 4),
(err) => {
if (err) console.error(err);
}
);
2021-10-28 18:03:51 -05:00
},
});