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

385
Vistas
¿Por qué no funciona message.channel.awaitMessages()? | Discordia.js V13

Estoy tratando de recopilar un mensaje después de un determinado mensaje que un usuario ha enviado en un canal específico. Entonces, el usuario enviaría hello world y luego los mensajes de espera esperarían una respuesta de un usuario específico y tomarían la identificación de ese mensaje. Sin embargo, no funciona.

Aquí está mi código:

 let filter = message => { return message.author.id == 'ID OF USER'; } if(message.channel.id == 'channel id of sent message') { console.log('here'); if(message.content.valueOf("hello world")) { console.log('here'); message.channel.awaitMessages(bumpFilter, { max: 1, time: 5000, errors: ['time']}) .then(c => { console.log('here'); console.log(c); }); } }

En la consola, here se registra 2 veces. Sin embargo, la tercera vez no se registra, incluso después de que hayan pasado 5 segundos desde este mensaje. La consola no registra nada, ni siquiera un error, lo que me hizo especular que tal vez sea un problema de intentos de discordia, pero tampoco creo que haya sido eso. Así que no entiendo cuál es el problema y por qué no obtengo ningún resultado. Además, si message.channel.awaitMessages(...) a una var y luego registré la var , generaría Promise { <pending> } y leí que se debe agregar una declaración .then para evitar eso. Y ahora que se agrega, todavía no genera nada.

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Primero, if (message.content.valueOf("hello world")) siempre devolverá verdadero ya que el método valueOf devuelve el valor primitivo del objeto especificado. Incluso si message.content no es "hello world" , sigue siendo veraz. Debe verificar si el valor de message.content en sí mismo es igual a "hello world" .

En segundo lugar, declara una variable de filter pero usa bumpFilter en sus awaitMessages

Y tercero, en discord.js v13, awaitMessages acepta un solo parámetro, un objeto de opciones . (En v12 el primer parámetro era un filtro y el segundo son las opciones).

 let filter = (message) => { return message.author.id === 'ID OF USER'; }; if (message.channel.id === 'channel id of sent message') { console.log('channel matches'); if (message.content === 'hello world') { console.log('message is hello world'); message.channel .awaitMessages({ filter, max: 1, time: 5000, errors: ['time'] }) .then((c) => { console.log('New message collected'); console.log(c); }) .catch((c) => console.log(`After five seconds, ${c.size} messages are collected.`), ); } }
about 4 years ago · Santiago Trujillo 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