39 lines
1.7 KiB
JavaScript
39 lines
1.7 KiB
JavaScript
const { SlashCommandBuilder, PermissionsBitField } = require('discord.js');
|
|
|
|
const informationStatus = "[INFO]: ";
|
|
const warningStatus = "[WARNING]: ";
|
|
const errorStatus = "[ERROR]: ";
|
|
|
|
const wait = require('node:timers/promises').setTimeout;
|
|
|
|
module.exports = {
|
|
data: new SlashCommandBuilder()
|
|
.setName('clear')
|
|
.setDescription('Clears a certain amount of text!')
|
|
.addNumberOption(option =>
|
|
option.setName('amount')
|
|
.setDescription('Set the amount to clear!')
|
|
.setRequired(true)),
|
|
async execute(interaction) {
|
|
const amount = interaction.options.getNumber('amount');
|
|
|
|
if(amount <= 0) return interaction.reply({ content: "<:xmark:1238963594758979736> This is not a valid number!", ephemeral: true });
|
|
|
|
if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageMessages)) return interaction.reply({ content: "<:xmark:1238963594758979736> You dont have permission to use this command", ephemeral: true });
|
|
|
|
try {
|
|
await interaction.channel.bulkDelete(amount);
|
|
await interaction.reply({ content: `<:checkmark:1238964552482422844> Deleted ${amount} of messages!`, ephemeral: false });
|
|
|
|
console.log(informationStatus + `Cleared ${amount} amount of text in #${interaction.channel.name} with id of ${interaction.channel.id}`);
|
|
|
|
await wait(6_000);
|
|
await interaction.deleteReply();
|
|
} catch (error) {
|
|
await interaction.reply({ content: "Sorry! Could not execute the clear command. Something went wrong", ephemeral: true });
|
|
console.log(errorStatus + "Something went wrong while trying to clear messages! Debug information is below.");
|
|
console.error(error);
|
|
}
|
|
}
|
|
}
|