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

143
Vistas
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 Respuestas
Responde la pregunta

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 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