Discord.py-无法获得频道成员

时间:2020-10-26 23:28:41

标签: python discord.py

print(message.guild.member_count)  # 7
print(len(message.guild.members)) # 1
for member in message.guild.members:
    print(str(member))  # the bot itself

我正在尝试获取Discord频道的成员,但它仅列出了漫游器本身。它曾经工作过,我根本没有更改代码,但是突然没有。我授予了漫游器管理员权限,不知道出了什么问题。

2 个答案:

答案 0 :(得分:1)

您需要做两项利用Intents Data Class的事情,您的代码才能按预期工作。

  1. 更新开发者门户以启用您的机器人的成员操作。

enter image description here

  1. 将以下代码添加到您的机器人:
intents = discord.Intents.default()
intents.members = True

bot = Bot(command_prefix=list(PREFIX), intents=intents)

请参阅Where'd my members go documentation

答案 1 :(得分:0)

如果您要获取公会中所有成员的人数和姓名,请使用guild.fetch_members()

@client.event
async def on_ready():
    guild = client.get_guild(123456789)
    member_count = guild.member_count
    print(f"Total member count: {member_count}")
    async for member in guild.fetch_members(limit=150):
        print(member.name)

还要确保将您的意图设置为上面所说的@DaveStSomeWhere。