📜  如何在 discordjs 中计算在线用户数量 - Javascript (1)

📅  最后修改于: 2023-12-03 14:52:16.422000             🧑  作者: Mango

如何在 discordjs 中计算在线用户数量

在 Discord Bot 的开发中,我们常常需要统计在线用户的数量。discord.js 作为 Discord Bot 开发中常用的第三方库,提供了方便的接口用于获取在线用户数量。本文将介绍如何在 discord.js 中计算在线用户数量。

步骤
  1. 在 Discord Bot 中引入 discord.js 模块:
const Discord = require('discord.js');
  1. 在 client 对象上调用 guilds.cache 方法,获取服务器列表:
const guilds = client.guilds.cache;
  1. 对于每个服务器,调用 memberCount 属性,获取在线用户数量并将其累加:
let onlineUsers = 0;
guilds.forEach(guild => {
   onlineUsers += guild.memberCount;
});
  1. onlineUsers 变量即为在线用户数量。
注意事项
  • guild.memberCount 属性会返回服务器中的总用户数,包括离线用户。
  • 如果需要获取当前在线用户数而非总用户数,可以通过 guild.members 属性获取服务器中的用户列表,并根据用户的 presence 属性判断用户是否在线。
  • 计算在线用户数量需要用到 guilds 对象的 forEach 方法,该方法接受一个回调函数作为参数,在该函数中处理每个服务器的逻辑。
  • 当需要获取在线用户数量时,建议在 bot 更新状态时更新在线用户数量,以保证数据实时有效。
完整代码
const Discord = require('discord.js');
const client = new Discord.Client();

client.on('ready', () => {
   console.log(`Logged in as ${client.user.tag}!`);

   let onlineUsers = 0;
   const guilds = client.guilds.cache;

   guilds.forEach(guild => {
      onlineUsers += guild.memberCount;
   });

   console.log(`Online users: ${onlineUsers}`);
});

client.login('your-token-goes-here');

以上代码会在 bot 登录时输出当前的服务器总用户数,使用时请将 your-token-goes-here 替换为你的 bot token。