【问题标题】:How to get a list of all non-bot members, rewriting Discord.py?如何获取所有非机器人成员的列表,重写 Discord.py?
【发布时间】:2020-07-06 05:12:49
【问题描述】:

我正在制作一个基于公会成员数量来缩放数字的机器人。但是,我不想包含机器人。

我的代码:

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

【问题讨论】:

    标签: python discord discord.py discord.py-rewrite


    【解决方案1】:

    您可以使用列表推导生成member.botFalse 的所有用户的列表。

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

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

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

    【讨论】:

      【解决方案2】:

      discord api 库中已经有一个功能。

      client.users

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

      简单使用

      len(client.users)
      

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

      【讨论】:

      • 刚刚测试得很快,似乎client.users 确实包含机器人,并且User对象也恰好有一个bot属性。
      【解决方案3】:

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

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

      【讨论】:

      • 你也可以使用if not member.bot而不是if member.bot == False
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 2020-10-26
      • 2021-08-18
      • 2021-10-04
      • 2018-06-04
      相关资源
      最近更新 更多