【问题标题】:Discord bot conversation不和谐机器人对话
【发布时间】:2019-09-13 07:53:18
【问题描述】:
我正在创建一个不和谐机器人,它将根据所提出的问题运行一个功能,其中多个是/否问题。回答“是”将起到一定的作用,而“否”应该结束问题。
我不希望机器人每次读取“是”时都运行随机函数。
我能想到的唯一解决方案是,一旦提出问题(基于单词触发器),用户就会陷入一个循环,其中机器人不会响应“是”/“否”以外的任何触发器。
如果是,将运行相关功能。
如果否,则用户退出循环并能够触发另一个问题。
除了是/否,机器人会说“请回答是或否”
如何在 node.js/discord.js 中编写代码?
【问题讨论】:
标签:
javascript
node.js
discord.js
【解决方案1】:
如果这是用户必须运行才能启动此对话的命令...我建议在讨论 awaitMessages 的 discord.js official documentaion 中引用此命令。基本上,您可以使用它,然后使用一系列.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 是唯一可接受的答案。