const { GuildMember, MessageEmbed } = require("discord.js"); module.exports = { name: "guildMemberAdd", /** * @param {GuildMember} member */ execute(member){ const totalUsers = member.guild.channels.cache.get(process.env.totalUsers) const onlineUsers = member.guild.channels.cache.get(process.env.onlineUsers) var userCount = member.guild.memberCount var onlineCount = member.guild.members.cache.filter(m => m.presence.status === 'online').size totalUsers.setName("Total Users: " + userCount) onlineUsers.setName("Online Users: " + onlineCount) member.guild.channels.cache.get(process.env.WELCOME_MESSAGE_CHANNEL_ID).send({ embeds: [ new MessageEmbed() .setTitle("Welcome! :smiley:") .setDescription(`${member.toString()} has joined the server!\n Thanks for joining. Head over to <#${process.env.RULE_CHANNEL_ID}> and verify yourself in <#${process.env.VERIFY_CHANNEL_ID}> to get access to all other channels.`) .setThumbnail(member.user.displayAvatarURL()) .setColor("GREEN") ] }) } }En la línea 13 me sale este error. Quiero obtener todos los miembros en línea del gremio y mostrar el número en el nombre de un canal
TypeError: Cannot read properties of undefined (reading 'status')pero debería funcionar así si miro en los documentos
En primer lugar, debe obtener los miembros con el método <Guild>.members.fetch , consulte aquí .
Ejemplo para tu caso:
await member.guild.members.fetch(); var onlineCount = member.guild.members.cache.filter(m => m.presence.status === 'online').size