获取Discord用户当前的游戏和自定义状态?

时间:2019-12-12 13:20:41

标签: discord.js

当前,如果用户未设置自定义状态,member.user.presence.game.name将使用 Discord.js 返回游戏名称,但是如果用户设置了自定义状态,则返回“自定义状态” 。不是他们的实际状态,也不是他们的游戏名称,只是...“自定义状态”。我希望能够分别返回游戏名称和自定义状态(如果已设置)。目前,我的代码如下:

    const embed = new RichEmbed()
    let statusField

    if (member.user.presence.status)
      statusField = statusField + `\n**► Status:** ${member.user.presence.status}`

    if (member.user.presence.game.name)
      statusField = statusField + `\n**► ${gameTypeToString(member.user.presence.game.type)}:** ${member.user.presence.game.name}`

    embed.addField("User Status", statusField)
    message.channel.send(embed);

注意:

  • 作为语境的补充说明,我的嵌入内容更大且具有更多 其中的信息,我只是在显示相关内容。
  • 我知道member.user.presence.status是在线/空闲/ dnd /离线状态,我还在嵌入状态中显示了该状态,但同时显示了自定义状态和/或当前游戏。
  • gameTypeToString是一个简单的函数,如下所示:
gameTypeToString: function(gameType) {
    switch (gameType) {
      case 0:
        return "Playing"
      case 1:
        return "Streaming"
      case 2:
        return "Listening to"
      case 3:
        return "Watching"
      default:
        return "Doing"
    }
  }

0 个答案:

没有答案