Javascript 如何在presence.activities中定义活动?

Javascript 如何在presence.activities中定义活动?,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我试图让机器人在某人上线时为他们添加一个流媒体角色。每个人都告诉我我的代码是正确的,但当我启动bot时,我得到“无法读取未定义的属性‘活动’”。oldMember和newMember过去是oldPresence和newPresence,两者都不起作用 client.on('presenceUpdate', (oldMember, newMember) => { const guild = client.guilds.cache.get('614134721533968484');

我试图让机器人在某人上线时为他们添加一个流媒体角色。每个人都告诉我我的代码是正确的,但当我启动bot时,我得到“无法读取未定义的属性‘活动’”。oldMember和newMember过去是oldPresence和newPresence,两者都不起作用

client.on('presenceUpdate', (oldMember, newMember) => {
    const guild = client.guilds.cache.get('614134721533968484');
    const streamingRole = guild.roles.cache.find(role => role.id === '720050658149138444');
    const oldGame = oldMember.activities.find(activity => activity.type === 'STREAMING') ? true : false;
    const newGame = newMember.activities.find(activity => activity.type === 'STREAMING') ? true : false;
      
    //if (newMember.user.bot || oldMember.presence.activities !== newMember.presence.activities) return;
    
    if (!oldGame && newGame) {         // Started playing.
      newMember.roles.add(streamingRole)
        .then(() => console.log(`${streamingRole.name} added to ${newMember.user.tag}.`))
        .catch(console.error);
    } else if (oldGame && !newGame) {  // Stopped playing.
      newMember.roles.remove(streamingRole)
        .then(() => console.log(`${streamingRole.name} removed from ${newMember.user.tag}.`))
        .catch(console.error);
    }
});

您需要使用
presence
属性来访问GuildMember的活动

constoldGame=oldMember.presence.activities.find(activity=>activity.type==='STREAMING')?真:假;
const newGame=newMember.presence.activities.find(activity=>activity.type==='STREAMING')?真:假;

我也试过了,我也遇到了同样的问题。我发现有人说你不需要它,所以我把它拿走了。