如何统计guild内总成员数、bot数量及人类用户数量?
暂时没有找到计算guild中总成员数、bot数量及人类用户数量的方法,目前已经可以查询到总成员数,但不知道如何分别统计bot和人类用户的各自总量。
服务器(Guild)成员分类统计实现方案
核心判断逻辑
Discord 平台的所有用户对象都内置bot布尔属性,属性值为真时代表该账号是机器人,反之则为普通人类用户,你只需要遍历服务器全量成员列表,通过该属性即可分别统计两类账号的数量。
主流开发框架代码实现
Discord.js v14 版本
- 前置要求:已在 Discord 开发者后台开启 bot 的「Server Members Intent」权限,否则无法拉取完整的离线成员列表
- 统计示例代码:
// guild 为已实例化的目标服务器对象 let humanCount = 0; let botCount = 0; guild.members.fetch().then(members => { members.forEach(member => { member.user.bot ? botCount++ : humanCount++ }) // 打印统计结果 console.log('总成员数:', guild.memberCount) console.log('人类用户数:', humanCount) console.log('机器人数量:', botCount) })
Pycord v2 版本
- 前置要求:已在 Discord 开发者后台开启 bot 的「Server Members Intent」权限
- 统计示例代码:
# guild 为已实例化的目标服务器对象 human_count = 0 bot_count = 0 for member in guild.members: if member.bot: bot_count += 1 else: human_count += 1 # 打印统计结果 print(f"总成员数:{guild.member_count}") print(f"人类用户数:{human_count}") print(f"机器人数量:{bot_count}")
注意事项
- 未开启 Server Members Intent 时拉取的成员列表仅包含在线成员和 bot 自身,统计结果会存在明显偏差
- 总成员数可直接调用对应框架的内置属性获取,无需自行遍历统计
内容的提问来源于stack exchange,提问作者MrRed
相关产品推荐
相关产品推荐

