Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

137
Visualizações
Actualizar los botones de discordia en InteractionCreate

En Discord MessageButtons, MessageActionRow

Tengo un MessageActionRow() ejecutándose en un mensaje incrustado, botones agregados addComponents a ese mensaje, en createInteraction cuando se hace clic en un "PauseButton", el botón se reemplaza con otro botón llamado "ResumeButton", igual.

 const PauseButton = new MessageButton() .setCustomId('PauseButton') .setLabel('Pause') .setStyle('SUCCESS') .setEmoji('⏸️'); const ResumeButton = new MessageButton() .setCustomId('ResumeButton') .setLabel('Resume') .setStyle('SUCCESS') .setEmoji('▶️'); //SkipButton, StopButton const Buttons = new MessageActionRow().addComponents(PauseButton, SkipButton, StopButton); const ResumeButtons = new MessageActionRow().addComponents(ResumeButton, SkipButton, StopButton); const sendMessage = await QueueChannel.send({ embeds: [sendMessageEmbed], components: [Buttons] }); this.client.on('interactionCreate', async interaction => { if (!interaction.isButton()) return; // Pause if (interaction.customId === "PauseButton") { player.pause(true); const int = await interaction.deferUpdate({ fetchReply: true, }); if (!int) return smt await int.edit({ components: [ResumeButtons], }); if(int.deleted) { interaction.channel.send() } } // Resume if (interaction.customId === "ResumeButton") { player.pause(false); const int = await interaction.deferUpdate({ fetchReply: true, }); if (!int) return smt await int.edit({ components: [Buttons], }); if(int.deleted) { interaction.channel.send() } }

Esto devuelve el error DiscordAPIError: Unknown interaction en la línea 23:13 await interaction.deferUpdate on await.

Básicamente, el código hace el trabajo (funciona completamente funcional) excepto: en la primera ejecución , todo funciona bien, en la segunda ejecución , cuando hago clic en cualquier botón, un error devuelve "Interacción desconocida" y la razón es que el código se está ejecutando dos veces, lo supe cuando agregué console.log("PauseButton") en la interacción, el registro regresó dos veces a la consola PauseButton PauseButton en lugar de una vez.

¿Significa que hay 2 oyentes para ineractionCreate o algo así? ¿Necesito eliminar alguna interacción cuando se elimine el mensaje?

Necesito ayuda por favor, cualquier cosa se agradece!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El proceso se estaba duplicando porque tenía una interactionCreate.js en ese proyecto. Me sentí tan confundido porque había tantos archivos, el código no tiene problemas, me disculpo.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda