在一个房间忽略松弛编辑,但不直接对机器人

我有一个bot使用botkit运行。 我想给出一个警告消息,就是当你直接与机器人对话时,编辑的消息被忽略,所以我在做:

controller.on('message_changed', function(bot, message) { bot.reply(message, ":warning: Your edit was ignored."); }); 

机器人在一个有很多人的房间里,这样这些人就可以私密地“进入”机器人。

问题 :当有人在房间中编辑信息时,机器人会发出警告。 避免这种情况的最好方法是什么?

我希望避免将房间ID硬编码到机器人不应该回复的房间,因为我们可能在其他房间中有机器人。

       

网上收集的解决方案 "在一个房间忽略松弛编辑,但不直接对机器人"

您可以通过查看通道是否以D开头来查看消息通道是否为“direct_message”。 如果以D开头,则是正在编辑的直接消息。 像这样的东西应该工作。

 controller.on('message_changed', function(bot, message) { if (message.channel.match(/^D/)) { bot.reply(message, ":warning: Your edit was ignored."); } }); 

此外,如果您希望在用户直接向bot发送消息的聊天室中工作,则可以检查消息文本以查看是否以@yourBotsName开头