Discord.js:如何使用服务器上的机器人读取用户状态?

use*_*420 3 node.js

我写了一个小机器人,需要服务器上所有用户的状态(在线、离线、空闲)。我发现https://discord.js.org/#/docs/main/master/class/Client?scrollTo=users

bot.on('ready', function() { console.log(bot.users); });
Run Code Online (Sandbox Code Playgroud)

这将显示所有用户:

'352....128': User { username: 'NAME', id: '352....128', discriminator: '5000' avatar: null, bot: false },
Run Code Online (Sandbox Code Playgroud)

所以没有状态。Bot 没有访问权限?在 embed.js 中可以读取所有在线和空闲用户的状态(不列出离线用户):https ://discordapp.com/api/guilds/SERVERID/embed.json

{"username": "NAME", "status": "online", "nick": "NICK", "avatar_url": "...", "avatar": "...", "discriminator": "5000", "id": "..."}
Run Code Online (Sandbox Code Playgroud)

embed.json 是获取所有在线和空闲用户状态的唯一方法吗?所以我需要安装这个包吗?https://www.npmjs.com/package/jsonfile并阅读此文件?

小智 9

你可以在这里找到它:https : //discord.js.org/#/docs/main/stable/typedef/PresenceStatus

您可以使用:

user.presence.status
Run Code Online (Sandbox Code Playgroud)

或者:

member.user.presence.status
Run Code Online (Sandbox Code Playgroud)

它返回“online”、“idle”、“dnd”或“offline”