为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 Bot 与 member_count 中的成员分开?

如何将 Bot 与 member_count 中的成员分开?

牧羊人nacy 2022-04-23 17:12:53
在显示服务器成员数量的命令期间,我想将机器人的数量与人类成员的数量分开并分别显示。我可以输出服务器中的成员总数,但我不确定如何让机器人区分机器人用户和人类用户。if message.content.startswith('<count'):         channel = message.channel         members = message.guild.member_count         msg = discord.Embed(title="Amount of members in this Discord:", description=members, color=0x0000ff)                 await channel.send(embed=msg)我如何将机器人用户与计数分开并单独显示该数字?
查看完整描述

1 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

在 Discordpy 文档中并没有真正找到任何允许获取成员的特定内容。

所以我决定在服务器中获取整个成员列表,并通过机器人过滤列表。


if message.content.startswith('<count'):    

        membersInServer = message.guild.members

        # Filter to the list, returns a list of bot-members

        botsInServer = list(filter(filterOnlyBots, membersInServer))


        botsInServerCount = len(botsInServer)

        # (Total Member count - bot count) = Total user count

        usersInServerCount = message.guild.member_count - botsInServerCount


        # Whatever you want to do with the count here


# Put this function somewhere...

# Filter the member list to only bots

def filterOnlyBots(member):

    return member.bot

随着服务器变得更大(更多成员),速度/性能可能是不利的,希望有人发布比我更好的解决方案。


查看完整回答
反对 回复 2022-04-23
  • 1 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信