我正在创建一个discord机器人,该机器人将根据提出的问题来运行功能,其中多个问题是/不是。回答“是”将起到一定作用,而回答“否”将结束问题。 我不希望机器人在每次读取“是”时都运行随机函数。 我唯一想到的解决方案是,一旦提出问题(基于单词触发器),用户就会陷入一个循环,在该循环中,机器人将不会响应“是” /“否”以外的任何触发器。 如果是,相关功能将运行。 如果否,则用户会跳出循环并能够触发另一个问题。 除了是/否外,漫游器还会说“请以是或否答复” 如何在node.js / discord.js中进行编码?
答案 0 :(得分:0)
如果这是用户必须运行以启动此对话的命令...我建议在谈论awaitMessages
的{{3}}中引用它。基本上,您可以使用此命令,然后使用一系列.then()
和if statements
,这些命令会根据用户的答案将其过滤掉,从而使他们沿着多个路径走下去。
如果这是机器人的默认功能,而无需触发命令,则建议您在此区域谨慎操作,因为类似这样的内容可能非常垃圾。
一个例子:
message.channel.send('Is this a great bot?').then(async (start) => {
message.channel.awaitMessages(filter, { maxMatches: 1, time: 60000, errors: ['time']}).then(async (collected) => {
if (collected.first().content === "yes") {} else if (collected.first().content === "no") {}
})
您可以使用filter
或其他方式过滤邮件,以使yes/no
是唯一可接受的答案。