当前,如果用户未设置自定义状态,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"
}
}