Hubot错误识别单个用户

时间:2018-10-29 15:16:49

标签: hubot rocket.chat

我在我们的Rocket.Chat服务器上附加了一个Hubot。我们有《反人类的卡片》的游戏脚本。有一天,我和另一位玩家大约同时加入,从那以后,Hubot认为我是另一位玩家。

使用以下脚本对此进行测试,hubot会使用其他用户的姓名和ID(而不是我自己的名字和ID)进行响应(也会响应他而不是我):

return robot.respond(/who am i(\?)?/ig, function(msg) {
  return msg.reply("*Id: *" + msg.message.user.id + "\n*Name: *" + msg.message.user.name);
});

我已尝试停止hubot进程并重新部署,但这不能解决问题。它似乎在所有Hubot脚本中都保持不变,就像从那时起创建的其他脚本一样,将我视为其他玩家。

是否有任何方法可以撤消Hubot所做的任何玩家映射,或者有什么方法可以“重置”该问题,从而使此问题消失呢?我找不到用户存储上的任何文档不同步,或者其他任何人都遇到了这个问题。

编辑:我还应该提到,日志和控制台输出(在手动测试时)中的用户ID和名称显示了正确的名称和ID(我自己的)。这仅是不正确的,因为它被“解释”并发布到频道。我没有修改消息对象的代码。

1 个答案:

答案 0 :(得分:0)

找出问题所在。我们正在使用MySQL Hubot Brain适配器。由于某种原因,它重写了大脑数据中的用户名。通过更新大脑来解决。

考虑到我看不到任何更新用户名的代码,因此不确定如何执行。我猜这不是线程安全的,并且两个调用太靠近会导致问题。