¿Cómo desactivo un botón en discord.js después de hacer clic en él? Intenté usar la función collecter.on, ya que parece funcionar, pero no puedo hacer que funcione con mi código y lo sé, no copié y pegué, pero parece que no puedo resolverlo y es estresante. Yo mucho, busqué en toda la web para obtener respuestas, pero nada en ninguna parte. la guía discord-buttons js acaba de desaparecer. Bueno, has venido al lugar correcto, simplemente puedes hacer lo siguiente a continuación, se explica y realmente puede ayudarte 😃.
Entonces, debido a que la última respuesta no fue correcta pero tenía algunos formatos correctos, esto es lo que quieres hacer. El código se explica lo mejor que puedo a continuación.
El código:
// After you have made your buttons and the embed you then need to do // You can do this method a lot of times just make sure to add a cooldown. // You can also do the same with the MessageActionRow() constructor const embed = new Discord.MessageEmbed().setColor('red').setDescription('click the below buttons').setTimestamp() const dbutton = new MessageButton().setStyle('blurple').setID('lol').setLabel('disabled button').setDisabled(true).setEmoji('😃') const button = new MessageButton().setStyle('blurple').setID('yes').setLabel('enabled button').setEmoji('😃') const after = await message.channel.send({ embed: embed, components: [button] }) client.on("clickButton", async (button) => { if (button.id === "yes") { message.channel.send({ content: "you clicked the first button" }) after.edit({ embed: embed, components: [dbutton] }) } button.reply.defer(); }); El embed: y components: son compatibles con v12. Espero que esto te haya ayudado con más preguntas.
La clase MessageButton tiene un método "setDisabled" que puede establecer en verdadero.
Cuando termine, no lo desactivará automáticamente. Debe editar la inserción, pasando los componentes nuevamente.
const button11 = const row = new MessageActionRow() .addComponents( new MessageButton() .setStyle('green') .setID('yes') .setLabel('Lock') .setEmoji('🔒') ) const supportembedy = new Discord.MessageEmbed() .set(....) let botMsg = await channel.send(supportembedy, row); const filter = i => ((i.customId === "yes") || (i.customId === "no")) && i.user.id === message.author.id const collector = interaction.channel.createMessageComponentCollector({filter, time: 15000}) collector.on("collect", async (i) => { if (i.customId === 'yes') { row[0].setDisabled(true) // first way botMsg.edit({ embeds: [supportembedy], components: [row] }) //second way i.update({ embeds: [supportembedy], components: [row] }) } }