Skip to content

Commit

Permalink
feat(GuildMemberManager): add 'list' method (#6403)
Browse files Browse the repository at this point in the history
Co-authored-by: SpaceEEC <spaceeec@yahoo.com>
Co-authored-by: Ben <BenjammingKirby@users.noreply.github.com>
  • Loading branch information
3 people committed Aug 12, 2021
1 parent dcc556c commit 2bf0970
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/managers/GuildMemberManager.js
Expand Up @@ -205,6 +205,24 @@ class GuildMemberManager extends CachedManager {
return data.reduce((col, member) => col.set(member.user.id, this._add(member, cache)), new Collection());
}

/**
* Options used for listing guild members.
* @typedef {Object} GuildListMembersOptions
* @property {Snowflake} [after] Limit fetching members to those with an id greater than the supplied id
* @property {number} [limit=1] Maximum number of members to list
* @property {boolean} [cache=true] Whether or not to cache the fetched member(s)
*/

/**
* Lists up to 1000 members of the guild.
* @param {GuildListMembersOptions} [options] Options for listing members
* @returns {Promise<Collection<Snowflake, GuildMember>>}
*/
async list({ after, limit = 1, cache = true } = {}) {
const data = await this.client.api.guilds(this.guild.id).members.get({ query: { after, limit } });
return data.reduce((col, member) => col.set(member.user.id, this._add(member, cache)), new Collection());
}

/**
* Edits a member of the guild.
* <info>The user must be a member of the guild</info>
Expand Down
7 changes: 7 additions & 0 deletions typings/index.d.ts
Expand Up @@ -2477,6 +2477,7 @@ export class GuildMemberManager extends CachedManager<Snowflake, GuildMember, Gu
): Promise<GuildMember>;
public fetch(options?: FetchMembersOptions): Promise<Collection<Snowflake, GuildMember>>;
public kick(user: UserResolvable, reason?: string): Promise<GuildMember | User | Snowflake>;
public list(options?: GuildListMembersOptions): Promise<Collection<Snowflake, GuildMember>>;
public prune(options: GuildPruneMembersOptions & { dry?: false; count: false }): Promise<null>;
public prune(options?: GuildPruneMembersOptions): Promise<number>;
public search(options: GuildSearchMembersOptions): Promise<Collection<Snowflake, GuildMember>>;
Expand Down Expand Up @@ -3867,6 +3868,12 @@ export interface GuildSearchMembersOptions {
cache?: boolean;
}

export interface GuildListMembersOptions {
after?: Snowflake;
limit?: number;
cache?: boolean;
}

export type GuildTemplateResolvable = string;

export type GuildVoiceChannelResolvable = VoiceChannel | StageChannel | Snowflake;
Expand Down

0 comments on commit 2bf0970

Please sign in to comment.