Estaba haciendo un simple comando de lanzamiento de monedas en mi bot de discordia. Está funcionando pero genera un evento de "Error de interacción" sin motivo. Edita la inserción y cambia las cosas que debería cambiar. y borra el mensaje sin ningún problema.
Mi código:
const randomResult = Math.floor(Math.random() * 2) == 0 ? "Heads" : "Tails"; const embed = new MessageEmbed() .setTitle("Coin Flip") .setColor("YELLOW") .setDescription(` > ${randomResult}`) .setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL(), }); const row = new MessageActionRow().addComponents( new MessageButton() .setCustomId("again") .setLabel("Throw Again") .setEmoji("🔁") .setStyle("PRIMARY"), new MessageButton() .setCustomId("delete") .setLabel("Delete") .setEmoji("♻") .setStyle("DANGER") ); message.channel.send({ embeds: [embed], components: [row] }).then(msg => { global.msg = msg; }) const iFilter = (i) => i.user.id === message.author.id; const collector = message.channel.createMessageComponentCollector({ filter: iFilter, time: 30000, }); collector.on("collect", async (i) => { if (i.customId === "again") { const randomResult = Math.floor(Math.random() * 2) == 0 ? "Heads" : "Tails"; const newEmbed = new MessageEmbed() .setTitle("Coin Flip") .setColor("YELLOW") .setDescription(` > ${randomResult}`) .setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL(), }); const row = new MessageActionRow().addComponents( new MessageButton() .setCustomId("again") .setLabel("Throw Again") .setEmoji("🔁") .setStyle("PRIMARY"), new MessageButton() .setCustomId("delete") .setLabel("Delete") .setEmoji("♻") .setStyle("DANGER") ); msg.edit({ embeds: [newEmbed], components: [row] }); } if (i.customId === "delete") { msg.delete(); } }) collector.on("end", async (i) => { const newEmbed2 = new MessageEmbed() .setTitle("Coin Flip") .setColor("YELLOW") .setDescription(` > ${randomResult}`) .setFooter({ text: `Requested by ${message.author.username}`, iconURL: message.author.displayAvatarURL(), }); const row = new MessageActionRow().addComponents( new MessageButton() .setCustomId("ended") .setLabel("Coin Flip Ended") .setEmoji("❎") .setStyle("DANGER") .setDisabled(true), ); msg.edit({embed: [newEmbed2], components: [row]}) })Nota: No recibo ningún error. Estoy usando discord.js v13 y node.js v16
Todavía tiene que responder a la interacción usando el método Interaction#reply(). Esto es para reconocer a Discord que usted manejó la interacción. Algo como interaction.reply("success") probablemente hará el trabajo