NodeJS setActivity和setPresence之间的区别是什么?

mrzz3bfm  于 2022-12-03  发布在  Node.js
关注(0)|答案(3)|浏览(107)

my other post所示,我在主帖中的代码一直使用setActivity来给Discord bot一个播放状态。然而,我在Stack Overflow上找到的一些播放状态代码使用了setPresence。那么,两者之间的区别是什么呢?

xggvc2p6

xggvc2p61#

它们基本上是一样的,你都可以设置一个播放/观看等状态。但是用setPresence你也可以设置你的机器人的在线,不可见,请勿打扰和空闲。下面是一些例子:

client.user.setActivity(`a game`, {type: 'PLAYING'});
// will set the bot's activity to 'Playing a game' with the status online

bot.user.setPresence({
   status: 'dnd',
   activity: {
      name: 'a video',
       type: 'WATCHING'
    }
 });
 // will set the bot's activity to 'Watching a video' with the status Do Not Disturb
plicqrtu

plicqrtu2#

更具体地说,setActivity()setPresence()之间的区别在于活动是存在的一部分。
用户在线状态分为以下几种设置:用户状态(在线/不可见/空闲/dnd/流媒体)、活动(用户正在播放、流媒体、收听的内容等)和客户端状态(用户是在Web、移动的还是桌面上)。因此,使用setPresence,您可以与所有这些设置进行交互,而使用setActivity,您只能与活动组件进行交互。
您可以在此处看到构成"在场“的所有内容。

vq8itlhq

vq8itlhq3#

根据@mmoomocow的评论,setPresence只有四种基本状态(在线、空闲、请勿打扰、隐身)。
setActivity具有播放状态。
编辑:这需要更详细。你看,

client.user.setActivity('status', {type: 'PLAYING'});

是相同的,

client.user.setPresence({
    status: 'online',
    activity: {
        name: 'status',
        type: 'PLAYING
    }
});

相关问题