簡體   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