discord.js 来自状态的自动角色 activity

discord.js auto role from status activity

我正在为我的服务器编写一个机器人程序,我希望该机器人程序能够读取所有成员的状态,并在他们有虚荣心时为他们分配一个特定的角色 link。我从头开始编写这段代码,但它似乎不起作用。 这是代码:

client.on('presenceUpdate', async (oldPresence, newPresence) => {
  const role = newPresence.guild.roles.cache.get("844047538797281310");
  const member = newPresence.member


  if (member.user.presence.activities[0]?state.includes( ".gg/moonxile" || "discord.gg/moonxile" )) {
    return newPresence.member.roles.add(role)
  } else {
    if(member.roles.cache.has(role.id)) {
      newPresence.member.roles.remove(role)
    }
  }
})

我是编码新手,我不知道哪里出错了

一开始.includesjs方法里面是不支持条件的 member.user.presence.activities 是 activity 的数组,声明是 属性 所以代码应该看起来像

client.on('presenceUpdate', async (oldPresence, newPresence) => {
    const role = newPresence.guild.roles.cache.get("844047538797281310");
    const member = newPresence.member
    const activities = member.user.presence.activities[0];
  
    if (activities && (activities.state.includes( ".gg/moonxile" ) || activities.state.includes("discord.gg/moonxile" ))) {
      return newPresence.member.roles.add(role)
    } else {
      if(member.roles.cache.get(role.id)) {
        newPresence.member.roles.remove(role)
      }
    }
})