I want my Discord Bot to display the Number of Online Users of a Role as an Activity.
I can\'t seem to figure it out and i can\'t find anything on the Web.
Can someone g
You can use Guild.members.forEach() to loop through every member of the guild, then if they have that role (you can use GuildMember.roles.has(Role.id) to check that) increase a counter. When you have finished your loop through the members, use the counter in your Client.user.setActivity().
That is what you need in order to get what you want.
Try this stuff, if you still have problems post a MCVE and we'll help you, but first you need to try yourself.
You can also use 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('...')
To get a guild by its ID, use this:
// v12
const guild = client.guilds.cache.get('id')
// v11
const guild = client.guilds.get('id')