How do I wait for a reply in discord.js?
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