【问题标题】:How can discord bot get thumbnail of the game that user is playing at the moment?discord bot 如何获取用户当前正在玩的游戏的缩略图?
【发布时间】:2021-10-09 01:57:38
【问题描述】:

我正在尝试使用 discord.js(nodejs 应用程序)编写简单的 Discord Bot,它将跟踪用户的游戏时间。一旦用户停止玩游戏,我还想向频道发送嵌入消息。

我对所有这些逻辑都使用了“presenceUpdate”事件,并且已经能够获取游戏名称并发送消息到聊天室。但是我也想在消息中显示游戏的缩略图,但不幸的是我不知道如何找到这个缩略图。

这是我用来检测已完成游戏、获取游戏时间和发送消息聊天的代码的 sn-p。

const user = newPresence.user;
const activities = activityDiff(oldPresnece, newPresence);

activities.forEach(activity => {
    const playTime = getPlayTime(activity);
    newPresence.guild.channels.cache.filter(c => c.isText()).each(channel => {
        channel.send("Mesasge...")
    })
})

在 Activity 对象中,我发现名为 applicationId 的属性具有一定的价值,但我不知道如何使用它。我已经看到其他机器人在他们的聊天消息中显示游戏的缩略图,他们不太可能拥有自己的缩略图数据库并使用 (applicationId, thumbnail) 对填充它。当有这么多游戏时,工作量太大了。这些缩略图必须有一些通用数据库...

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    您可以使用RichPresenceAssets.smallImageURL()。这是如何实现它:

    member.presence.activities[0].assets.smallImageURL()
    

    【讨论】:

    • 很抱歉,“assets”属性为 NULL。我正在使用 Steam 上的 No Man Sky 游戏进行测试。
    • 我也试过steam上的CS:GO和赛博朋克游戏,“assets”属性也是空的。
    猜你喜欢
    • 2021-08-19
    • 1970-01-01
    • 2016-11-07
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2021-03-15
    相关资源
    最近更新 更多