Javascript 如何获取用户正在玩的游戏?Discord.js

Javascript 如何获取用户正在玩的游戏?Discord.js,javascript,discord,discord.js,Javascript,Discord,Discord.js,我知道以前有人问过这个问题,但公认的解决方案并不能解决问题 我试过: user.presence.activities[0]; 及 及 及 预期产出: Rainbow Six Siege 输出: undefined 或 好吧,虽然你很不幸地决定走另一条路,但你很快就要找到答案了。根据User#presence#activities返回用户当前拥有的所有活动状态的数组,因此我现在要说的是,你的第一次尝试是最好的答案,然后慢慢恶化。现在,您第一次犯的唯一错误是您没有准确调用查找活动名称的方法,

我知道以前有人问过这个问题,但公认的解决方案并不能解决问题

我试过:

user.presence.activities[0];

预期产出:

Rainbow Six Siege
输出:

undefined


好吧,虽然你很不幸地决定走另一条路,但你很快就要找到答案了。根据User#presence#activities返回用户当前拥有的所有活动状态的数组,因此我现在要说的是,你的第一次尝试是最好的答案,然后慢慢恶化。现在,您第一次犯的唯一错误是您没有准确调用查找活动名称的方法,这与您稍后尝试的方法相同:
activity\name

现在,在我向您展示代码之前,我的一个快速建议是过滤掉所有不属于
播放类型的活动,因为您当前正在查找用户正在玩的游戏。由于
Presence#activities
返回一个数组,因此我们可以使用
find
方法来查找属于
播放
类型类别的第一个活动

最终代码
console.log(user.presence.activities.find(activity=>activity.type=='PLAYING').name)

我最近再次开始使用discord.js,并找到了问题的原因。实际上,导致错误的不是代码,而是bot拥有的权限设置

要查看用户的活动,您必须打开此选项:


否则,
user.presence.activities
将返回
未定义的

activities是一个数组,您是否尝试过
activities[0]。name
我想您可以使用
。find
而不是
。filter
来避免
[0]
。没错,我刚刚编辑了我的答案,谢谢:)我想我不能使用user.name,因为我得到一个TypeError,它说name是未定义的。然后,用户所说的不是在玩游戏。根据文档,如果用户在运行此方法时未玩任何游戏,则此方法将返回
未定义的
user.presence.game;
Rainbow Six Siege
undefined
[] (empty array)