Skip to content

Commit 808b450

Browse files
committed
feat(RoleManager): add fetchMemberCounts
1 parent 6a129bc commit 808b450

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

packages/discord.js/src/managers/RoleManager.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,17 @@ class RoleManager extends CachedManager {
8181
return this._add(data, cache);
8282
}
8383

84+
/**
85+
* Fetches the number of members that have each role in the guild.
86+
* <info>This does not include the `@everyone` role.</info>
87+
*
88+
* @returns {Promise<Collection<Snowflake, number>>} A collection mapping role ids to their respective member counts.
89+
*/
90+
async fetchMemberCounts() {
91+
const data = await this.client.rest.get(Routes.guildRoleMemberCounts(this.guild.id));
92+
return new Collection(Object.entries(data));
93+
}
94+
8495
/**
8596
* Data that can be resolved to a Role object. This can be:
8697
* - A Role

packages/discord.js/typings/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4707,6 +4707,7 @@ export class RoleManager extends CachedManager<Snowflake, Role, RoleResolvable>
47074707
public botRoleFor(user: UserResolvable): Role | null;
47084708
public fetch(id: Snowflake, options?: BaseFetchOptions): Promise<Role>;
47094709
public fetch(id?: undefined, options?: BaseFetchOptions): Promise<Collection<Snowflake, Role>>;
4710+
public fetchMemberCounts(): Promise<Collection<Snowflake, number>>;
47104711
public create(options?: RoleCreateOptions): Promise<Role>;
47114712
public edit(role: RoleResolvable, options: RoleEditOptions): Promise<Role>;
47124713
public delete(role: RoleResolvable, reason?: string): Promise<void>;

0 commit comments

Comments
 (0)