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

141
Views
Cómo excluir la reacción del bot en el colector de reacciones

Tenía un código antiguo, que hice durante la V12 de discord.js, que funcionaba correctamente. El código me falló recientemente al cambiar la mayoría de las cosas requeridas para cambiar (cosas que habían cambiado para v13) e hice una versión más simplificada para ver cuál era el problema y parece que el mensaje se envió al bot, en lugar de cualquier persona que reaccionó al mensaje.

 const { client, message } = require("discord.js") module.exports = { name: "collect", description: "--", category: "info", async execute(message, args, client) { const newMsg = await message.channel.send("words") newMsg.react("✅") const filter = (reaction, user) => { return !user.bot }; const collector = newMsg.createReactionCollector(filter, { time: 6000000 }); collector.on('collect', (reaction, user) => { user.send("it worked") }); } }

Este es el código, donde quiero que el bot cree un mensaje, cree una reacción a continuación y permita que el usuario reaccione, para que pueda obtener la identificación del usuario y enviarle un mensaje.

Sin embargo, una vez que ejecuto el código, envía el mensaje, crea la reacción y arroja este error a continuación;

 DiscordAPIError: Cannot send messages to this user at RequestHandler.execute (E:\Github\Valorant-Curios-Tournaments\node_modules\discord.js\src\rest\RequestHandler.js:350:13) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async RequestHandler.push (E:\Github\Valorant-Curios-Tournaments\node_modules\discord.js\src\rest\RequestHandler.js:51:14) at async UserManager.createDM (E:\Github\Valorant-Curios-Tournaments\node_modules\discord.js\src\managers\UserManager.js:58:18) at async ClientUser.send (E:\Github\Valorant-Curios-Tournaments\node_modules\discord.js\src\structures\interfaces\TextBasedChannel.js:162:18) { method: 'post', path: '/users/852994509628768298/channels', code: 50007, httpStatus: 400, requestData: { json: { recipient_id: '852994509628768298' }, files: [] } }

La identificación del destinatario es la misma que la identificación del bot, por lo que asumo que no está filtrando la identificación del bot con el filtro;

 const filter = (reaction, user) => { return !user.bot === message.author.id; };

Cualquier ayuda sería apreciada, gracias.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No importa, soy muy tonto

El filtro está en el objeto.

 const collector = newMsg.createReactionCollector(filter, { time: 6000000 });

para arreglar esto, solo necesitaba hacerlo

 const collector = newMsg.createReactionCollector({filter, time: 6000000 });
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!