如何获取所有非bot成员的列表,重写Discord.py?

How to get a list of all non-bot members, rewriting Discord.py?

我正在制作一个根据行会成员数量来衡量数字的机器人。但是,我不想包括机器人。

我的代码:

members = []
for member in client.get_all_members():
    if str(member.type) != 'bot':
        members.append(member)
print(members)
number = 10 * len(members)

discord api 库中已有一个功能。

client.users

Returns 机器人可以看到的所有用户的列表。

简单使用

len(client.users)

请注意,成员可能是机器人,但用户永远不是机器人。

我发现了问题,我使用了错误的格式,所有成员对象都有一个名为 bot 的布尔值,我只需要查询它是否为 false

        members = []
        for member in client.get_all_members():
            if member.bot == False:
                members.append(member)
        print(members)
        number = 10 * len(members)

您可以使用列表推导来制作所有用户的列表,其中 member.botFalse

members = [member for member in client.get_all_members() if not member.bot]
print(len(members))

这需要 client.get_all_members() 生成器并在一行中创建一个新列表,其中所有用户都不是机器人。

然后,我们只打印该列表的长度,您可以根据需要使用它。