So I'm currently trying to get all online members in a specific guild and count them. I already tried these methods:
let onlineMembers = (await interaction.guild.members.fetch()).filter(
(member) => !member.user.bot && member.user.presence.status !== "offline"
);
and
let onlineMembers = interaction.guild.members.cache.filter(member => member.presence.status !== "offline").size
I also tried fetching all members first and filter the result like this:
const allMembers = await interaction.guild.members.fetch();
const onlineMembers = allMembers.filter(member => !member.user.bot && member.presence.status !== "offline");
But I'm always getting this exception:
TypeError: Cannot read property 'status' of undefined
So I went looking for a solution and I noticed that I manually have to activate all intents I want my bot to use. I "activated" the needed intents in my index.js like this:
const client = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_MEMBERS,
Intents.FLAGS.GUILD_PRESENCES
],
});
But this didn't fix my problem either.
In the Discord Developer Portal I also enabled both privileged gateway intents:
And who could have guessed...it still doesn't work. It's weird, because for some members it's working but I need it to work for every member.
Does somebody know how to fix this?
