Estoy ejecutando un aviso de dm desde mi bot, donde el jugador debe responder antes de que el bot continúe preguntando. Configuré un filtro para que el bot no detecte ni cuente su propio mensaje, pero no parece estar activando la función ".then()".
Mi código:
let filter = m => m.author.id != client.user.id channel.awaitMessages(filter, {max: 1, time: 1000*180, errors: ['time']}) .then(msg => { console.log("got to the then") let replymsgobject = msg.first() let reply = replymsgobject.content let checkstringarr = [ "payment", "about", "team", "requirements" ] if (contains("or", reply, checkstringarr)) { channel.send(`Your post doesn't follow the format.`) } else { channel.send(`succesfully set your post message, would you like to add any extra comments?`) let filter = m => m.author.id != client.user.id channel.awaitMessages(filter, {max: 1, time: 1000*120, errors: ['time']}) .then(replymsg => { if (contains("only", replymsg.content, "no")) { //some stuff } else { //some stuff } }) .catch(collectedcatchmsg => { channel.send(`timed out`) }) } }) .catch(collectedcatchmsg => { channel.send(`timed out`) })@Toasty dijo (lo siento, Toasty), "esperará hasta que termine el tiempo". Esto es incorrecto , le dará la promesa una vez que, por ejemplo, se haya alcanzado el máximo de mensajes.
¿Por qué esperaría 3 minutos si obtiene la respuesta requerida en 10 segundos?
Ahora estoy un poco perdido, ¿quieres que el ejecutor de comandos responda a ese recolector de mensajes o no? Porque en este momento su filtro no acepta ningún mensaje enviado por el ejecutor del comando/remitente del mensaje.
Para arreglar esto, simplemente edite su filtro
const filter = m => m.author.id === message.author.id;si desea que se recopile el mensaje de otra persona y no los autores del mensaje, entonces haría
const filter = m => m.author.id !== message.author.id;¡Resulta que hubo 2 errores! En primer lugar, se suponía que el diccionario de filtros estaba dentro de la tabla con los requisitos, etc. El segundo error fue usar != en lugar de !== Gracias a @Patrik por ayudar aquí!