Skip to content
Advertisement

How to filter the member counter in discord.js v13

I made a member counting system for my server but it counts every member that is joined. I want to filter the counter to just count the humans/users

My code:

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);
 }

I am using discord.js v13 and node.js v16

Advertisement

Answer

You can just filter through all the members in a server and remove all the members which are bots by checking the member.user.bot property. You can then update your code to:

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);
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement