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