Mohid Mushtaq
Mohid Mushtaq

Reputation: 31

Not properly retrieving number of bots and people

I'm making a member counter, when I type ,member-count it gives me the total number of members on the server at that time in an embed as the title. The fields are supposed to show the number of people on the server and the number of bots separately but they only show 0 for each and I don't know how to make them change values.

Here is the code:

module.exports = {
    name: 'member-count',
    async execute(Client, message, args, Discord) {
        const MembersInServer = message.guild.memberCount;
        var BotsInServer = 0;
        var PeopleInServer = 0;
        if(MembersInServer === message.author.bot){
            BotsInServer++
        }
        else if(MembersInServer === message.author.member) {
            PeopleInServer++
        }
        MemberEmbed = new Discord.MessageEmbed()
        .setColor("RANDOM")
        .setTitle(`${message.guild.name} has ${MembersInServer} members in the server!`)
        .addFields(
            { name: "People in the server:", value: PeopleInServer },
            { name: "Bots in the server:", value: BotsInServer },
        )


        message.channel.send(MemberEmbed);
    } 
}

Upvotes: 0

Views: 54

Answers (1)

Wide
Wide

Reputation: 339

You can do like:

const members = message.guild.members.cache;
let BotsInServer = members.filter(member => member.user.bot).size
let PeopleInServer = members.filter(member => !member.user.bot).size

Keep in mind you need to have presence intent on refer to this post to know how

Upvotes: 1

Related Questions