javascript - 如何阻止 Discord 机器人响应其他机器人?
问题描述
我是使用 discord.js (JavaScript) 编写不和谐机器人的新手。所以,最近我的机器人获得了 discordbots.org 的批准。同一天,我测试了它。结果是其他机器人响应了我的命令,但我的机器人没有。我检查 Heroku 应用程序中的日志,并且出现错误。当我在我的服务器中测试命令时,它会响应。所以我认为我的机器人有问题。当我在“Discord Bot Lists”服务器中检查我的 Bot 角色时,我看到我的 bot 获得了“静音”角色。这意味着我的机器人有问题。当我检查 mod 日志频道时,它显示我的机器人已静音,因为我的机器人响应其他机器人。我该如何解决这个问题,以便我的机器人在该服务器中取消静音?抱歉我的英语不好,没有提供代码。
解决方案
当我检查 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
})
至于让自己解禁,我从来没有遇到过这个问题,所以不知道。也许私下联系该服务器的管理员,看看你所做的是否足够,或者按照服务器设定的任何官方步骤让你解禁。
推荐阅读
- javascript - 有没有相当于.Contains of c#的js
- mysql - 如何使用 python 与 MySQL 服务器上的其他客户端连接进行通信?
- calendar - 如何设计日历提醒/提醒系统
- python - 如何简洁地获取 Sympy 表达式的单位
- node.js - node.js 插入到 mongodb
- macos - 如何在 MacOS 上通过 TCP 连接到 Docker
- c# - JWT 身份验证 - UserManager.GetUserAsync 返回 null
- java - Android 应用程序在使用 Room 数据库滑动删除 recyclerview 时崩溃
- google-cloud-platform - Container Builder 未正确标记图像,$TAG_NAME 无法正常工作
- html - 修复了由于 Font-Size 而下推 Text 的 Width 和 Height Div