首页 > 解决方案 > 如何阻止 Discord 机器人响应其他机器人?

问题描述

我是使用 discord.js (JavaScript) 编写不和谐机器人的新手。所以,最近我的机器人获得了 discordbots.org 的批准。同一天,我测试了它。结果是其他机器人响应了我的命令,但我的机器人没有。我检查 Heroku 应用程序中的日志,并且出现错误。当我在我的服务器中测试命令时,它会响应。所以我认为我的机器人有问题。当我在“Discord Bot Lists”服务器中检查我的 Bot 角色时,我看到我的 bot 获得了“静音”角色。这意味着我的机器人有问题。当我检查 mod 日志频道时,它显示我的机器人已静音,因为我的机器人响应其他机器人。我该如何解决这个问题,以便我的机器人在该服务器中取消静音?抱歉我的英语不好,没有提供代码。

标签: javascriptdiscord.js

解决方案


当我检查 mod 日志频道时,它显示我的机器人已静音,因为我的机器人响应其他机器人。

好的,所以您似乎被静音了,因为您的机器人会响应所有人,而不仅仅是人类。以下是如何避免响应机器人。

首先,您需要获取 Bot 角色 ID(操作示例:此处此处)或名称。

接下来,您需要忽略来自该角色的所有消息,并且仅在发件人没有该角色时才回复消息。例如,其中 BOT_ROLE 是机器人的角色或角色 ID:

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

或者,一些更简单的东西(如果你遵循官方https://discordjs.guide教程,你应该从这里的教程中得到这个):

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

至于让自己解禁,我从来没有遇到过这个问题,所以不知道。也许私下联系该服务器的管理员,看看你所做的是否足够,或者按照服务器设定的任何官方步骤让你解禁。


推荐阅读