Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

394
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda