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

在显示服务器成员数量的命令期间,我想将机器人的数量与人类成员的数量分开并分别显示。我可以输出服务器中的成员总数,但我不确定如何让机器人区分机器人用户和人类用户。

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)

我如何将机器人用户与计数分开并单独显示该数字?


牧羊人nacy
浏览 114回答 1
1回答

暮色呼如

在 Discordpy 文档中并没有真正找到任何允许获取成员的特定内容。所以我决定在服务器中获取整个成员列表,并通过机器人过滤列表。if message.content.startswith('<count'):&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; membersInServer = message.guild.members&nbsp; &nbsp; &nbsp; &nbsp; # Filter to the list, returns a list of bot-members&nbsp; &nbsp; &nbsp; &nbsp; botsInServer = list(filter(filterOnlyBots, membersInServer))&nbsp; &nbsp; &nbsp; &nbsp; botsInServerCount = len(botsInServer)&nbsp; &nbsp; &nbsp; &nbsp; # (Total Member count - bot count) = Total user count&nbsp; &nbsp; &nbsp; &nbsp; usersInServerCount = message.guild.member_count - botsInServerCount&nbsp; &nbsp; &nbsp; &nbsp; # Whatever you want to do with the count here# Put this function somewhere...# Filter the member list to only botsdef filterOnlyBots(member):&nbsp; &nbsp; return member.bot随着服务器变得更大(更多成员),速度/性能可能是不利的,希望有人发布比我更好的解决方案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python