Search code examples
javascriptnode.jsdiscorddiscord.js

user.presence.status is now working in discord.js v13


I wanted my bot to set the name of a channel: the number of users. I wanted to filter online/dnd/idle members and offline members. but my code is not working.

My code:

let humanMembers = guild.members.cache.filter(
  (user) => !user.user.bot
);
let onlineMembers = guild.members.cache.filter(
  (member) => !member.user.bot && member.user.presence.status !== "offline"
)
const channel = guild.channels.cache.get('863783336860975114');
channel.setName(`🚀 Online: ${onlineMembers.size.toString()}/${humanMembers.size.toString()}`);

The error:

cannot read properties of undefined <reading 'status'>
at main.js:37:65

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


Solution

  • User.presence has been removed in v13

    You can use GuildMember.presence if you have GUILD_PRESENCES intent enabled.

    Instead of using member.user.presence use member.presence