应该使用什么事件来检查用户的自定义状态何时更新?



我正试图为Discord制作一个虚荣的机器人,但我不确定我是否使用了正确的事件。这是我的代码:

client.on("presenceUpdate", newPresence => {
let vanityRole = newPresence.guild.roles.cache.find(role => role.id === "940679835456536596");
const activity = newPresence.member.user.presence.activities[0].state
if (activity === null) return;
if (activity.includes("gg/pm")) {
let memberTarget = newPresence.guild.members.cache.get(newPresence.member.id);
memberTarget.roles.add(vanityRole);
const vanity = new Discord.MessageEmbed()
.setColor(color)
.setDescription(`<@${memberTarget.id}>, thanks for putting us in your status <3`);
message.channel.send(vanity)
}
else return;
});

以下是我收到的错误:在这条线上:const activity = newPresence.member.user.presence.activities[0].state错误:[TypeError: Cannot read property 'state' of undefined]repl process died unexpectedly: exit status 1

感谢

newPresence.member.user.presence.activities中的一个项等于空的arrayundefined,因此等于newPresence.member.user.presence.activities[0] === undefined

您可以尝试:const activity = newPresence.member.user.presence.activities[0]?.state

可选的链接运算符(?.(使您能够读取位于连接对象链深处的属性的值,而无需检查链中的每个引用是否有效。

最新更新