首页 > 解决方案 > discord.py bot 看不到成员

问题描述

我正在尝试创建一个不和谐的机器人,它创建一个类别并为角色和用户设置权限,将用户 ID 作为参数:

for x in range(2, len(args)):
member= client.get_user(int(args[x]))
await message.guild.categories[-1].set_permissions(member, send_messages = True)

其中 args 是包含命令、类别名称和用户 ID 的字符串数组。用法应该是:

!create category-name 0000000 1111111

我对此有一些问题,因为就像机器人看不到服务器的成员一样,他唯一可以添加的用户是我,如果在第一个参数中指定了服务器的所有者(在我的示例中为 000000)。如果我输入其他人的 ID,则机器人不会在类别中为该用户添加权限。我发现机器人可能看不到其他用户,事实上,如果我把这条线:

print(message.guild.members)

它只会将机器人打印为成员,

打印:[<会员 id=762749337700007946 name='RoomBzot' discriminator='1334' bot=True nick=None guild=>]

我不知道为什么它计算成员但看不到其他用户,我该怎么办?

标签: pythondiscorddiscord.py

解决方案


由于 derw 链接的答案不再可用;

正如OP所示,我设法通过实例化discord bot客户端来解决这个问题,如下所示:

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

此外,我必须在 Discord 开发人员门户中的机器人设置下启用“服务器成员意图”特权网关意图:

启用服务器成员意图


推荐阅读