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

时间:2021-03-21 14:43:48

标签: javascript discord discord.js

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

我试过了:

user.presence.activities[0];

user.presence.activities;

user.presence.activities.name;

user.presence.game;

预期输出:

Rainbow Six Siege

输出:

undefined

[] (empty array)

2 个答案:

答案 0 :(得分:2)

好吧,您已经非常接近自己找到答案了,但不幸的是,您当时决定走另一条路。根据 Discord.js documentsActivity#name 返回用户当前拥有的所有活跃状态的数组,因此为什么现在我说你的第一次尝试是最好的得到你的答案,它从那里慢慢恶化。现在,您第一次犯的唯一错误是您没有准确调用查找活动名称的方法,正如您稍后尝试的那样:Playing

现在,在我向您展示代码之前,我的一个快速建议是过滤掉所有不属于 Presence#activities 类型的活动,因为您目前正在寻找用户所在的游戏玩。由于 find 返回一个数组,我们可以使用 Playing 方法查找属于 console.log(user.presence.activities.find(activity => activity.type === 'PLAYING').name) 类型类别的第一个 Activity .

最终代码

user_input = input('Please Enter a word').split()

答案 1 :(得分:0)

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

要查看用户的活动,您必须启用此功能:

on bot settings

否则,user.presence.activities 将返回 undefined

相关问题