不和谐角色的在线用户数

时间:2018-07-29 19:54:46

标签: discord discord.js

我希望Discord Bot将该角色的在线用户数显示为活动。
我似乎无法弄清楚,在网上也找不到任何东西。
有人可以给我示例代码或向我解释吗?

2 个答案:

答案 0 :(得分:1)

您可以使用Guild.members.forEach()遍历行会的每个成员,然后,如果他们具有该角色(可以使用GuildMember.roles.has (Role.id)进行检查),则增加一个计数器。完成成员循环之后,请使用Client.user.setActivity()中的计数器。
这就是您需要的东西。

尝试这些方法,如果您仍然遇到问题,请发布MCVE,我们会为您提供帮助,但首先您需要尝试一下。

答案 1 :(得分:1)

您也可以使用filter

// Discord.js v12 (latest version):
const count = guild.members.cache.filter(m =>
  // If the member has the role
  m.roles.cache.has('role id') &&
  // and the member is online
  m.presence.status === 'online'
).size

// Discord.js v11:
const count = guild.members.filter(m =>
  // If the member has the role
  m.roles.has('role id') &&
  // and the member is online
  m.presence.status === 'online'
).size

// Use count here:
client.user.setActivity('...')

要通过公会ID获得公会,请使用以下命令:

// v12
const guild = client.guilds.cache.get('id')
// v11
const guild = client.guilds.get('id')