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

244
Vistas
¿Por qué mi recopilador de interacciones no recopila? (discord.js)

Soy un codificador principiante en javascript y especialmente en discord.js Después de entender la guía de discord.js, todavía no puedo hacer que el recopilador funcione.

 client.on('interactionCreate', interaction => { if (!interaction.isButton()) return; const filter = i => i.customId === '1' || i.customId === "2"; const collectchannel = interaction.channel; const collector = collectchannel.createMessageComponentCollector( filter, { time: 10000 }); collector.on('collect', i => { if (i.customId === '1') { client.commands.get('help').execute(interaction, 1, Discord); } else if (i.customId === '2') { client.commands.get('help').execute(interaction, 2, Discord); } }); collector.on('end', collected => { console.log(`Collected ${collected.size} interactions.`); }); });

Cuando presiono mi botón, la función de recolección no hace nada. Intenté colocar un console.log("test") pero no se dispara. Sin embargo, el collector.on('end', collected => { de hecho se dispara. Esto puede deberse a que no soy un buen codificador. Si puede, ¡ayúdeme!

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

0

Tiene un MessageComponentCollector dentro de un controlador de eventos para el evento interactionCreate , que, en esta circunstancia, probablemente no sea lo que desea.

Esto es lo que está pasando:

  1. Haces clic en el botón

  2. Su controlador eventCreate dispara, verifica si se está haciendo clic en un botón e inicia MessageComponentCollector

  3. El MessageComponentCollector espera que se haga clic en un botón y aún no se activa porque ya sucedió uno (el que activó su controlador de interactionCreate en primer lugar)

  4. Cada vez que vuelve a hacer clic en el botón, el recopilador se activa, pero el controlador de interactionCreate también lo hace, y vuelve al #2 , iniciando otro recopilador.


Lo que probablemente quieras es manejar los clics de tus botones sin un recopilador:

 client.on('interactionCreate', interaction => { if (!interaction.isButton()) return; if (i.customId === '1') { client.commands.get('help').execute(interaction, 1, Discord); } else if (i.customId === '2') { client.commands.get('help').execute(interaction, 2, Discord); } });
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