无法检查 discord.js 用户的自定义状态

Posted

技术标签:

【中文标题】无法检查 discord.js 用户的自定义状态【英文标题】:Can't check custom status of discord.js user 【发布时间】:2022-01-15 20:00:03 【问题描述】:

我正在尝试在 discord.js 版本 12 中创建一个系统,如果您的状态中有我的虚荣邀请,您将获得支持者角色

每当我尝试这个时,它总是说TypeError: Cannot read property 'find' of undefined

这是我的代码

const roleID = "MyRoleID"
const inviteLink = "discord.gg/MyVanityInvite"

client.on('presenceUpdate', (_oldPresence, newPresence) => 
  const member = newPresence.member
  if (member) 
    // Ignore members who already have the role
    if (!member.roles.cache.has(roleID)) 
      console.log(newPresence)
      const customStatus = newPresence.activities.find(activity => activity.type === 'CUSTOM_STATUS').state
      if (customStatus) 
        if (customStatus.includes(inviteLink)) 
          member.roles.add(roleID)
            .catch(console.error)
        
      
    
  
)

如果我尝试记录 newPresence 是记录一个数组

【问题讨论】:

【参考方案1】:

<Presence>.activities返回活动数组,不需要获取cache,直接找like即可:

newPresence.activities.find(activity => activity.type === 'CUSTOM_STATUS').state

【讨论】:

仍然出现同样的错误:/ 尝试记录 newPresence.activities 返回未定义 只有newPresence? 返回一个长表数组

以上是关于无法检查 discord.js 用户的自定义状态的主要内容,如果未能解决你的问题,请参考以下文章

无法添加角色,Discord.js

带有公会编号的自定义状态[关闭]

Discord 自定义状态未显示在 Discord.js v12 [关闭]

Swift - 处理表格视图多个部分的自定义复选标记按钮状态

Discord 返回指定用户的活动状态

discord.js 没有发送到自定义频道