discord.js v13 成员存在未定义

Posted

技术标签:

【中文标题】discord.js v13 成员存在未定义【英文标题】:discord.js v13 member presence is undefined 【发布时间】:2021-10-16 21:43:30 【问题描述】:

我正在尝试使用新的 discord.js 版本 13 获得用户的存在。我在我的连接中添加了以下意图:

const INTENTS = [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_PRESENCES,
    Intents.FLAGS.GUILD_MEMBERS,
    Intents.FLAGS.GUILD_MESSAGES,
    Intents.FLAGS.GUILD_WEBHOOKS,
    Intents.FLAGS.DIRECT_MESSAGES
]

但使用guild.members.fetch()后,presence属性为undefined

这就是我尝试访问它的方式

guild.members.fetch().then(members =>  
    const online = members.filter((member) => !member.user?.bot && member.user?.presence?.status != 'offline').map((member) => member); 
)

我错过了什么吗?这个用法和 v12 配合得很好,还有什么变化吗?

要添加更多信息,我会在活动presenceUpdate 中获得presence 信息

client.on('presenceUpdate', (oldMember, newMember) => 
    if (!newMember.user.bot && newMember.status != 'offline') 
        // do something
    

【问题讨论】:

您究竟是如何尝试访问该属性的? guild.members.fetch().then(members => const online = members.filter((member) => !member.user?.bot && member.user?.presence?.status != 'offline').map((member) => member); ) 【参考方案1】:

在 v13 中,User.presence 似乎不是属性。你需要GuildMember.presence

guild.members.fetch().then(members =>  
    const online = members.filter((member) => !member.user?.bot && member.presence?.status != 'offline').map((member) => member); 
)

【讨论】:

以上是关于discord.js v13 成员存在未定义的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js v13 机器人显示未定义而不是表情符号

discord.js 成员计数 - 无法读取未定义的属性“通道”

Discord.js - ReferenceError:未定义成员

无法读取未定义的属性“成员”(discord.js)

Discord.JS V13 client.on messagecreate 未触发

Discord.js v13 语音通道数据未更新