const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js') const { color } = require('../config/options.json') module.exports = { name: 'clear', description: 'Clears messages', type: 'slash', data: new SlashCommandBuilder() .setName('clear') .setDescription('Clears messages') .addIntegerOption(option => option .setName('amount') .setDescription('Amount of messages to clear') .setRequired(true)) .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) .setDMPermission(false), /** @param { import('discord.js').ChatInputCommandInteraction } interaction */ async execute(interaction) { await interaction.deferReply({ ephemeral: true }) const amount = interaction.options.getInteger('amount') const channel = interaction.channel const embedColor = Number(color.replace('#', '0x')) if (!amount || amount < 1 || amount > 100) { await interaction.editReply({ embeds: [{ description: 'Please provide an amount of messages to clear', color: embedColor }], }) } channel.messages.fetch({ limit: amount }).then(async messages => { const messagesToDelete = messages.map(m => m) .filter(m => m.pinned === false && m.system === false && m.createdTimestamp > Date.now() - 1209600000 ) await channel.bulkDelete(messagesToDelete, true) await interaction.editReply({ embeds: [{ description: `Deleted ${messages.size} messages`, color: embedColor }], }) }) } }