Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

265
Vistas
Discord.js cómo usar el botón varias veces
const filter = (interaction) => { if (interaction.user.id === message.author.id) return true; return interaction.reply({ content: "An error has occurred", ephemeral: true }) } const collectorValue1 = message.channel.createMessageComponentCollector({ filter, max: 1 }) collectorValue1.on("end", (ButtonInteraction) => { const id = ButtonInteraction.first().customId; if (id == '1') { ButtonInteraction.first().reply({ content: "CONTENT", ephemeral: true }) } else if (id == '2') { ButtonInteraction.first().reply({ content: "CONTENT", ephemeral: true }) } else if (id == '3') { ButtonInteraction.first().reply({ content: "CONTENT.", ephemeral: true }) } })

Me gustaría que cuando se crean los botones sean ejecutables múltiples, sin embargo, solo puedo usar el botón una vez, después de eso siempre recibo el mensaje "Esta interacción falló". ¿Cómo puedo hacer que los botones sean ejecutables múltiples?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Por favor intenta lo siguiente:

 collectorValue1.on("end", (ButtonInteraction) => { ButtonInteraction.deferUpdate(); const id = ButtonInteraction.first().customId; if (id == '1') { ButtonInteraction.first().editReply({ content: "CONTENT", ephemeral: true })

Use deferUpdate() de la misma manera en cada una de las sentencias if. Sin embargo, tenga en cuenta que cuando use deferUpdate(), deberá cambiar el método .reply() a .editReply().

Puede intentar poner deferUpdate() en la definición del filtro.

No hay mucha orientación en el sitio web de Discord.js ni documentación sobre el uso de deferUpdate(). Sin embargo, obtenga lo que pueda de la documentación. Aquí hay un ejemplo de los documentos:

 // Defer updating and reset the component's loading state interaction.deferUpdate() .then(console.log) .catch(console.error);

En particular, el comentario menciona que "restablece el estado de carga del componente". Creo que esto está relacionado con la forma en que permite usar un botón varias veces.

Espero que esto haya sido útil:]

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda