const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js'); const { color } = require('../config/options.json'); const { waitinglistSchema } = require("../schemas/waitinglistSchema.js") module.exports = { name: 'remove', description: 'Remove a person on the waiting list.', type: 'slash', data: new SlashCommandBuilder() .setName('remove') .setDescription('Remove a person on the waiting list.') .addUserOption(option => option .setName('user') .setDescription('The user to remove.') .setRequired(true) ) .addStringOption(option => option .setName('reason') .setDescription('The reason for removing the user.') .setRequired(false) ) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), /** @param { import('discord.js').ChatInputCommandInteraction } interaction */ async execute(interaction) { interaction.deferReply() const user = interaction.options.getUser('user'); const reason = interaction.options.getString('reason') ?? "No reason provided." const mod = interaction.user const embedColor = Number(color.replace('#', '0x')) const waitinglist = await waitinglistSchema.findOne({ UserID: user.id }) if (!waitinglist) { await interaction.editReply({ embeds: [{ description: userMention(user.id) + " is not on the waiting list.", color: color }] }) return } await waitinglistSchema.findOneAndDelete({ UserID: user.id }) await interaction.editReply({ embeds: [{ description: userMention(user.id) + " has been removed from the waiting list.\n" + "**Reason:** `" + reason + "`\n" + "**Moderator:** " + userMention(mod.id), color: embedColor, }] }) } }