不和谐机器人对话

Posted

技术标签:

【中文标题】不和谐机器人对话【英文标题】:Discord bot conversation 【发布时间】:2019-09-13 07:53:18 【问题描述】:

我正在创建一个不和谐机器人,它将根据所提出的问题运行一个功能,其中多个是/否问题。回答“是”将起到一定的作用,而“否”应该结束问题。 我不希望机器人每次读取“是”时都运行随机函数。 我能想到的唯一解决方案是,一旦提出问题(基于单词触发器),用户就会陷入一个循环,其中机器人不会响应“是”/“否”以外的任何触发器。 如果是,将运行相关功能。 如果否,则用户退出循环并能够触发另一个问题。 除了是/否,机器人会说“请回答是或否” 如何在 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 是唯一可接受的答案。

【讨论】:

以上是关于不和谐机器人对话的主要内容,如果未能解决你的问题,请参考以下文章

如何设置一个不和谐的不和谐机器人来玩游戏?

不和谐机器人只显示不和谐版本

如何阻止不和谐机器人响应自身/所有其他机器人 [Python 3.6 中的不和谐机器人]

如何使用不和谐机器人从不和谐频道随机发布文本?

我的不和谐机器人没有上线 - 不和谐 v13

如何使不和谐机器人将消息发送到不和谐 Node js 的特定频道机器人