首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Discord.js无法读取未定义的属性“”activities“”

Discord.js无法读取未定义的属性“”activities“”
EN

Stack Overflow用户
提问于 2021-07-05 23:22:39
回答 1查看 72关注 0票数 0

我有以下discord.js代码作为我的不一致机器人的一部分:

代码语言:javascript
复制
client.on('presenceUpdate', (oldPresence, newPresence) => {
  let member = newPresence.member

  if (member.id === '471501478071238656') {
    if (oldPresence.activities !== newPresence.activities) {

      if (newPresence.status === "online") {
        client.channels.cache.get('860885953765048342').messages.fetch('860892525996539905').then(msg => {
          msg.edit('Online')
        })
      } else if (newPresence.status === "idle") {
        client.channels.cache.get('860885953765048342').messages.fetch('860892525996539905').then(msg => {
          msg.edit('Online')
        })
      } else if (newPresence.status === "dnd") {
        client.channels.cache.get('860885953765048342').messages.fetch('860892525996539905').then(msg => {
          msg.edit('Online')
        })
      } else if (newPresence.status === "offline") {
        client.channels.cache.get('860885953765048342').messages.fetch('860892525996539905').then(msg => {
          msg.edit('Offline')
        })
      }
    }
  } else if (member.id === '578054170628718612') {
    if (oldPresence.activities !== newPresence.activities) {

      if (newPresence.status === "online") {
        client.channels.cache.get('860885953765048342').messages.fetch('860892636235694080').then(msg => {
          msg.edit('Online')
        })
      } else if (newPresence.status === "idle") {
        client.channels.cache.get('860885953765048342').messages.fetch('860892636235694080').then(msg => {
          msg.edit('Online')
        })
      } else if (newPresence.status === "dnd") {
        client.channels.cache.get('860885953765048342').messages.fetch('860892636235694080').then(msg => {
          msg.edit('Online')
        })
      } else if (newPresence.status === "offline") {
        client.channels.cache.get('860885953765048342').messages.fetch('860892636235694080').then(msg => {
          msg.edit('Offline')
        })
      }
    }
  }
})

但是,在运行时(或者当其中一个用户的状态发生变化时,不能完全确定),代码总是会给出以下错误:

/home/runner/Awow/index.js:30 if (oldPresence.activities !== newPresence.activities) {^ TypeError:无法读取未定义的属性'activities‘

我该如何解决这个问题呢?

注意:客户端是在代码开头定义的(未显示)

EN

回答 1

Stack Overflow用户

发布于 2021-07-05 23:48:33

问题是,当它被调用时,newPresence总是一个存在对象,但oldPresence变量可以是未定义的,也可以是一个存在对象。

我不知道什么时候oldPresence是未定义的,因为我在文档中找不到它,但我假设它是在用户之前离线的时候。

编辑:找到文档here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68258550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档