Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

242
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!