我有以下discord.js代码作为我的不一致机器人的一部分:
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‘
我该如何解决这个问题呢?
注意:客户端是在代码开头定义的(未显示)
发布于 2021-07-05 23:48:33
问题是,当它被调用时,newPresence总是一个存在对象,但oldPresence变量可以是未定义的,也可以是一个存在对象。
我不知道什么时候oldPresence是未定义的,因为我在文档中找不到它,但我假设它是在用户之前离线的时候。
编辑:找到文档here
https://stackoverflow.com/questions/68258550
复制相似问题