You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Discord.js V13/V14机器人所在服务器的总用户数?

解决Discord.js V13/V14获取机器人所在服务器总用户数的问题

在Discord.js V13及以后版本中,client.users.cache.size无法返回所有服务器的用户总数——因为该缓存仅存储机器人已经交互过的用户(默认只有机器人自身),所以会出现仅显示1个用户的情况。以下是两种可行解决方案:

方法一:遍历服务器成员数(精确值)

通过累加机器人所在所有服务器的成员数得到总数,需满足两个前提:

  • 启用GuildMembers权限意图(Intent)
  • 确保服务器成员已被缓存(或主动获取)

步骤1:开启GuildMembers意图

先在Discord开发者门户的机器人设置中打开"Server Members Intent",再在客户端初始化时传入该意图:

const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMembers, // 必须添加此意图
    // 根据需求添加其他意图,比如GuildMessages等
  ]
});

步骤2:修改ready事件代码

替换原有的client.users.cache.size为累加逻辑:

client.once("ready", () => {
  // 计算所有服务器总用户数(可选择排除机器人)
  const totalUsers = client.guilds.cache.reduce((total, guild) => {
    // 若要排除机器人,使用此行替代
    // const validMembers = guild.members.cache.filter(member => !member.user.bot).size;
    return total + guild.memberCount;
  }, 0);

  console.log(`I'm currently on ${client.guilds.cache.size} Servers with ${totalUsers} people.`)

  const activities = [
    `with ${totalUsers} people.`,
    "music.",
    "with my Owner.",
    ` | Version ${client.BotVersion}`,
    `on ${client.guilds.cache.size} Servers.`,
    "/help"
  ];

  setInterval(() => {
    const randomIndex = Math.floor(Math.random() * activities.length);
    const newActivity = activities[randomIndex];
    client.user.setActivity(newActivity);
  }, 10000);

  client.user.setActivity(` | Version ${client.BotVersion}`)
});

注意:若服务器成员未被缓存,guild.memberCount可能不准确。对大型服务器可使用guild.members.fetch()主动获取成员,但需遵守Discord API限流规则。

方法二:使用近似成员数(无需特殊权限)

如果不需要精确实时数值,可使用Discord提供的approximateMemberCount属性——返回服务器近似成员数,无需启用GuildMembers意图,获取速度更快:

client.once("ready", () => {
  const totalUsers = client.guilds.cache.reduce((total, guild) => {
    return total + guild.approximateMemberCount;
  }, 0);

  // 后续代码同方法一...
});

该方法优点是无需额外权限和缓存操作,缺点是数值为近似值,可能与实际成员数有小幅偏差。

内容的提问来源于stack exchange,提问作者Blaxyy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 14:29:10