python - 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=>]
我不知道为什么它计算成员但看不到其他用户,我该怎么办?
解决方案
由于 derw 链接的答案不再可用;
正如OP所示,我设法通过实例化discord bot客户端来解决这个问题,如下所示:
intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)
此外,我必须在 Discord 开发人员门户中的机器人设置下启用“服务器成员意图”特权网关意图:
推荐阅读
- database - 检索数据库备份是否会在 OVH 中恢复用户密码?
- ruby-on-rails - 使用 Trailblazer,调用更新但未调用处理方法 - Rails
- asp.net-core - .net core 如何仅使用 ASP.NET Core Identity 进行授权
- android-jetpack-compose - 键入文本时向上撰写文本字段
- php - 调用未定义的方法 CodeIgniter\Database\MySQLi\Builder:: find()
- reactjs - 反应原生自定义抽屉导航器
- javascript - 我正在尝试将用户数据从 Php 表单发送到 firebase
- node.js - 为什么需要 while 循环来读取 Node.js 中的非流动模式流?
- php - In while loop, How to use $i value inside foreach in PHP?
- java - How can I use Tika to parse PDF without having Java on my PC(In Python)