Discord.js 存在活动状态和名称存在问题
Posted
技术标签:
【中文标题】Discord.js 存在活动状态和名称存在问题【英文标题】:Having issues with Discord.js Presence Activity state and name 【发布时间】:2021-03-03 19:33:07 【问题描述】:所以我正在制作一个机器人,我想为“userinfo”命令制作一个我很少或几乎从未在机器人上看到的很酷的小功能。
我目前卡在活动/游戏信息上。我已经为用户的所有活动制作了地图,以防用户有多个活动。
例如: 用户同时拥有自定义状态并且正在收听 Spotify 或玩游戏。我设法制作了一张地图,上面写着用户正在玩的游戏,我想让自定义状态也显示出来。不幸的是,对于自定义状态,它只写“自定义状态”而不是用户状态包含的文本。
这个想法是让机器人输入用户在他的状态下的文本,例如“今天无聊”状态。
我进行了一些研究,有人评论说活动的“.state”是状态中的文本,而“.name”是字面意义上的“自定义状态”。所以我尝试同时使用 .state 和 .name 但不幸的是它返回了一个未定义的值。
此外,“.name”的工作方式应该与现在没有它的工作方式相同。
例子:
user.presence.activities;
返回活动名称(“Spotify”、“游戏名称”、“自定义状态”)
user.presence.activities.name;
返回 undefined 和 if 应该返回活动的名称,如文档和问题线程中所述。 (“Spotify、“游戏名称”、自定义状态”)
user.presence.activities.state
返回 undefined 并且提到应该返回 Activity 的状态(“Spotify Song Name”、“Name of the game”、“Text in custom statu”)
问题线程:https://github.com/discordjs/discord.js/issues/3552
文档:https://discord.js.org/#/docs/main/master/class/Presence?scrollTo=activity(已编辑)
代码:
-
日志
undefined
var aktivnost = user.presence.activities.state;
console.log(`$aktivnost`);
-
日志
undefined
var aktivnost = user.presence.activities.name;
console.log(`$aktivnost`);
-
日志,例如
Spotify
或 Dead by Daylight
或 Custom Status
- 应该如此
var aktivnost = user.presence.activities;
console.log(`$aktivnost`);
-
日志,例如
Spotify
和 Custom Status
- 应该如此
var aktivnost = user.presence.activities.map(a => `<:arrow:779290699236900864> $a`).join(`\n`)
console.log(`$aktivnost`);
问题: 如何让它写出自定义状态的文本。显然,从文档和问题线程中,它应该给我文本,但它给了我未定义的内容。如果 .name 和 .state 被删除,我没有找到任何信息,因为它们存在于 v12 文档中。
提前致谢,卢克。
【问题讨论】:
【参考方案1】:游戏
为了与 API 保持一致,移除了 Game 类以支持 Activity 类。它也是一个多个活动的数组,因为一个用户可以有多个。
根据 v12 的文档,它是一个数组,您需要在活动上运行 foreach 或获取第一个。
一个foreach:
user.presence.activities.forEach((activity) =>
console.log(activity.name)
console.log(activity.state)
使用第一个
console.log(user.presence.activities[0].name)
console.log(user.presence.activities[0].state)
希望这有帮助:)
【讨论】:
【参考方案2】:据我所知,.state
和 .name
都在工作。
实际上,我试过了,它适用于
console.log(message.member.user.presence.activities[0].state)
【讨论】:
以上是关于Discord.js 存在活动状态和名称存在问题的主要内容,如果未能解决你的问题,请参考以下文章