如何停止Discord机器人对其他机器人的响应?

时间:2019-01-29 15:23:53

标签: javascript discord.js

我是第一次使用discord.js(JavaScript)对Discord机器人进行编程。因此,最近,我的机器人已被discordbots.org批准。在同一天,我对其进行了测试。结果是其他机器人响应了我的命令,但我的机器人没有响应。我检查了Heroku应用程序中的日志,但出现错误。当我在服务器中测试命令时,它会响应。所以我认为我的机器人程序有问题。当我在“ Discord Bot Lists”服务器中检查Bot的角色时,我看到我的机器人获得了“静音”角色。这意味着我的机器人有问题。当我检查mod日志通道时,它表明我的机器人已被静音,因为我的机器人对其他机器人做出了响应。如何解决此问题,使我的机器人在该服务器上保持静音?对不起,我的英语不好,没有提供代码。

1 个答案:

答案 0 :(得分:2)

  

当我检查mod日志通道时,它表明我的机器人已被静音,因为我的机器人对其他机器人做出了响应。

好吧,看来您已被静音了,因为您的机器人对所有人(而不是人类)做出了反应。以下是避免对漫游器进行响应的方法。

首先,您需要获取Bot角色ID(例如操作herehere的名称)或名称。

接下来,您需要忽略来自该角色的所有消息,仅在发件人不具有该角色的情况下才响应消息。例如,其中BOT_ROLE是机器人的角色或角色ID:

Formula does not pass

或者,更简单一些(如果您遵循官方here教程,则应该从教程https://discordjs.guide中获得):

client.on('message', message => {
  if(message.member.roles.has(BOT_ROLE)) return; // do nothing
  // if not responding to a bot, do bot stuff
})

至于让自己不受限制,我从来没有遇到过这样的问题,所以不知道。也许可以私下联系该服务器的管理员,以查看您所做的工作是否足够,或者按照该服务器开始执行的所有正式步骤来解除限制。