繁体   English   中英

Discord JS V13 member.presence.status(无法读取 null 的属性(读取“状态”))

[英]Discord JS V13 member.presence.status (Cannot read properties of null (reading 'status'))

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")
            ]
        }) 
    }
}

在第 13 行我得到这个错误。 我想获取公会的所有在线成员并在频道名称中展示数字

TypeError: Cannot read properties of undefined (reading 'status')

但如果我查看文档,它应该是这样工作的

您首先需要使用<Guild>.members.fetch方法获取成员,请参阅此处

您的案例示例:

await member.guild.members.fetch();
var onlineCount = member.guild.members.cache.filter(m => m.presence.status === 'online').size

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM