discord python:guild.members仅返回bot但没有返回成员

时间:2020-10-05 20:46:01

标签: discord.py

尝试使用python创建不和谐的机器人。

在不协调的开发人员界面中,在我的机器人面板上,检查了“特权网关意图”(SERVER MEMBERS INTENT)。

Bot位于具有管理员授权的服务器(行会)上。

            for guild in self.discord_client.guilds:
                print(f"guild found : {guild}")
                print(guild.members)
            for member in guild.members:
                print(member)

不明白为什么机器人只给了他,却没有找到我或我的朋友。

返回

guild found : Testdev

[<Member id=76277237853886878X name='Dev_Bot' discriminator='6271' bot=True nick=None guild=<Guild id=76114559936167936X name='Testdev' shard_id=None chunked=False member_count=3>>]

成员数= 3,但之后

       for member in list(guild.members):
           print(member)

仅返回

Dev_Bot#6271

您能帮忙吗?谢谢

2 个答案:

答案 0 :(得分:3)

https://discordpy.readthedocs.io/en/latest/intents.html

或者简单地,安装该库的1.4.2版本:pip install -U discord.py==1.4.2

答案 1 :(得分:3)

我找到的唯一有用的答案是在这里:

Discord Bot can only see itself and no other users in guild

基本上,它说您必须设置intents才能看到行会的成员。

因此,您不仅需要client = discord.Client(),还需要这样做:

...

intents = discord.Intents.all()
client = discord.Client(intents=intents)

...

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

如果您想只是具有该意图