Velvet Star Monitor

Standout celebrity highlights with iconic style.

general

How do I wait for a reply in discord.js?

Writer Andrew Henderson

So what I want my bot to do is wait for a message from the user so when a user sends "!spec" the bot recieves that message and will respond with "See or Change?" then wait for you to type back "see" or "change" but I cant get it to wor. The docs aren't clear to me and I am not sure on how to do it.

This has to be able to work in PM as i dont want to spam the Discord with what i plan to do.

I have already tried this:

 if (command === 'spec'){ message.author.send("See or Change?"); const collector = new Discord.MessageCollector(message.channel, m => m.author.id === message.author.id, { time: 10000 }); console.log(collector) collector.on('collect', message => { if (message.content === "See") { message.channel.send("You Want To See Someones Spec OK!"); } else if (message.content === "Change") { message.channel.send("You Want To Change Your Spec OK!"); } })

I may be writing this wrong. I am not used to the library.

2 Answers

let filter = m => m.author.id === message.author.id message.channel.send(`Are you sure to delete all data? \`YES\` / \`NO\``).then(() => { message.channel.awaitMessages(filter, { max: 1, time: 30000, errors: ['time'] }) .then(message => { message = message.first() if (message.content.toUpperCase() == 'YES' || message.content.toUpperCase() == 'Y') { message.channel.send(`Deleted`) } else if (message.content.toUpperCase() == 'NO' || message.content.toUpperCase() == 'N') { message.channel.send(`Terminated`) } else { message.channel.send(`Terminated: Invalid Response`) } }) .catch(collected => { message.channel.send('Timeout'); }); })

Compare with == And Try.

if (command === 'spec'){ message.author.send("See or Change?"); const collector = new Discord.MessageCollector(message.channel, m => m.author.id === message.author.id, { time: 10000 }); console.log(collector) collector.on('collect', message => { if (message.content == "See") { message.channel.send("You Want To See Someones Spec OK!"); } else if (message.content == "Change") { message.channel.send("You Want To Change Your Spec OK!"); } })
8