为 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)我想为一个不和谐的服务器做一个点名机器人