Significado: hay algo de contenido y un botón en la respuesta al comando de barra. La tarea del botón es eliminar el mensaje. Lo que conseguimos fue forzar al botón para que borre el mensaje, pero el problema es que no solo se borra el mensaje en el que está el botón, sino también otros mensajes.
const { MessageEmbed, MessageActionRow, MessageButton } = require('discord.js') const { SlashCommandBuilder } = require('@discordjs/builders') const Color = 'RANDOM' module.exports = { name: 'Name', data: new SlashCommandBuilder() .setName('Name') .setDescription('Description') .addStringOption(option => option.setName('choice') .setDescription('Description') .setRequired(true) .addChoice('choice1', 'choice1') .addChoice('choice2', 'choice2') .addChoice('choice3', 'choice3') async run(interaction) { const Embed = new MessageEmbed() .setColor(Color) .setTimestamp() .setImage(url) const Btns = new MessageActionRow() .addComponents(new MessageButton() .setCustomId('DeleteMsg') .setStyle('DANGER') .setLabel('Удалить сообщение (Только автор или администратор)')) interaction.reply({ embeds: [Embed], components: [Btns] }) try { const collector = interaction.channel.createMessageComponentCollector({ time: 60000 }) collector.on('collect', async i => { interaction.deleteReply() }) } catch (error) { console.log(error) } } }Bien, antes que nada, siempre debe agregar un filtro a su recopilador de componentes. (Cuántos elementos recopilar, verifique si los usuarios correctos usaron su componente, ...)
También debe tener una identificación personalizada real (como un UUID o algo así) porque si hay varias llamadas de su comando en el mismo canal, su identificación personalizada ya no será personalizada y podría ser recopilada por cada colector que se ejecuta en el canal.