为 discord.py 机器人启用意图

Posted

技术标签:

【中文标题】为 discord.py 机器人启用意图【英文标题】:Enable intents for discord.py bot 【发布时间】:2021-05-02 05:37:11 【问题描述】:

我正在制作一个不和谐机器人,每次它加入新服务器时,该机器人都会向我发送服务器信息和邀请。但是,当我对此进行测试时,它总是显示一个成员本身。我在 discord 开发者门户中同时启用了状态和成员意图,但它仍然无法正常工作。

然后我将一些代码更改为收到错误的Guild.fetch_members()

discord.ext.commands.errors.CommandInvokeError:
Command raised an exception:
ClientException:
Intents.members must be enabled to use this.

正如我之前所说,discord 开发者网站上的成员意图已启用,我之前有过此代码,但没有出现此问题。

当我之前有这段代码工作时,它使用的是 1.5.x(我记不清了),现在它使用的是 1.6.0,所以新更新中的某些东西可能会阻止它工作,但这对我来说很不寻常,那么我该如何解决这个问题呢?

【问题讨论】:

你把它们传递给构造函数了吗?即bot= commands.Bot(..., intents=intents)? @ŁukaszKwieciński 我根本没有在我的代码中启用任何意图,因为我以前从未这样做过。 谁在几分钟前删除了他们的答案,谢谢你,因为这有帮助并且已经排序 嗯,这是我的答案,请取消删除。 【参考方案1】:

intents 是在1.5.0 中引入的,所以我认为它们以前没有工作过,但回答了你的问题

intents = discord.Intents.default()
intents.members = True

bot = commands.Bot(..., intents=intents)

还记得在developer portal 中启用特权成员意图

How to enable privigeled intents

【讨论】:

【参考方案2】:

有人将此作为答案发布但删除了它,它确实有效。

intents = discord.Intents.default()
intents.members = True

client = commands.Bot(command_prefix=prefix, intents=intents)

【讨论】:

以上是关于为 discord.py 机器人启用意图的主要内容,如果未能解决你的问题,请参考以下文章

如何将 discord.py 机器人状态设置为听/看/等

两个机器人之间的通信? (discord.py)

如何让机器人在 discord.py 重写中为频道设置慢速模式?

(discord.py)我想为一个不和谐的服务器做一个点名机器人

Heroku Discord Bot 构建但在部署时无法工作

discord.py Intents.members 无法正常工作