discord.js v13中如何过滤会员计数器

How to filter the member counter in discord.js v13

我为我的服务器制作了一个成员计数系统,但它计算了加入的每个成员。 我想过滤计数器只计算 humans/users

我的代码:

module.exports = async (message, args, cmd, client, Discord, profileData) =>{
   const guild = client.guilds.cache.get('847071265100791849');
   setInterval(() =>{
     const memberCount = guild.memberCount;
       const channel = guild.channels.cache.get('863783336860975114');
       channel.setName(`Users: ${memberCount.toLocaleString()}`);
   }, 60000);
 }

我正在使用 discord.js v13 和 node.js v16

您可以使用 .filter() 筛选服务器中的所有成员并删除所有机器人成员。然后您可以将代码更新为:

module.exports = async(message, args, cmd, client, Discord, profileData) => {
  const guild = client.guilds.cache.get('847071265100791849');
  setInterval(() => {
    let humanMembers = guild.members.cache.filter(
      (user) => !user.user.bot // This checks if the the user is a bot
    );
    const channel = guild.channels.cache.get('863783336860975114');
    channel.setName(`Users: ${humanMembers.size.toString()}`);
  }, 60000);
}