mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-03 05:26:07 +00:00
feat: Guild.fetchMember(s) and Member.fetch
This commit is contained in:
parent
75e35a1ecb
commit
fe82c9b4a2
@ -73,6 +73,20 @@ export function GUILD_MEMBER(guildId: Snowflake, userId: Snowflake): string {
|
||||
return `/guilds/${guildId}/members/${userId}`;
|
||||
}
|
||||
|
||||
export interface ListGuildMembers {
|
||||
limit?: number;
|
||||
after?: string;
|
||||
}
|
||||
|
||||
export function GUILD_MEMBERS(guildId: Snowflake, options?: ListGuildMembers) {
|
||||
let url = `/guilds/${guildId}/members?`;
|
||||
|
||||
if (options?.limit) url += `limit=${options.limit}`;
|
||||
if (options?.after) url += `&after=${options.after}`;
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
/** used to ban members */
|
||||
export function GUILD_BAN(guildId: Snowflake, userId: Snowflake): string {
|
||||
return `/guilds/${guildId}/bans/${userId}`;
|
||||
|
@ -24,6 +24,7 @@ import {
|
||||
VideoQualityModes,
|
||||
GetBans,
|
||||
GetInvite,
|
||||
ListGuildMembers,
|
||||
} from '@biscuitland/api-types';
|
||||
import type { ImageFormat, ImageSize } from '../utils/util';
|
||||
import { GuildFeatures, PremiumTiers } from '@biscuitland/api-types';
|
||||
@ -44,6 +45,7 @@ import {
|
||||
GUILD_PRUNE,
|
||||
GUILD_INVITES,
|
||||
GUILD_MEMBER,
|
||||
GUILD_MEMBERS,
|
||||
GUILD_MEMBER_ROLE,
|
||||
GUILD_ROLE,
|
||||
GUILD_ROLES,
|
||||
@ -1210,4 +1212,22 @@ export class Guild extends BaseGuild implements Model {
|
||||
|
||||
return new GuildPreview(this.session, preview);
|
||||
}
|
||||
|
||||
/** fetches a member */
|
||||
async fetchMember(memberId: Snowflake): Promise<Member> {
|
||||
const member = await this.session.rest.get<DiscordMemberWithUser>(
|
||||
GUILD_MEMBER(this.id, memberId)
|
||||
);
|
||||
|
||||
return new Member(this.session, member, this.id);
|
||||
}
|
||||
|
||||
/** fetches multiple members */
|
||||
async fetchMembers(options?: ListGuildMembers): Promise<Member[]> {
|
||||
const members = await this.session.rest.get<DiscordMemberWithUser[]>(
|
||||
GUILD_MEMBERS(this.id, options)
|
||||
);
|
||||
|
||||
return members.map((member) => new Member(this.session, member, this.id));
|
||||
}
|
||||
}
|
||||
|
@ -164,6 +164,12 @@ export class Member implements Model {
|
||||
);
|
||||
}
|
||||
|
||||
async fetch(): Promise<Member> {
|
||||
const member = await Guild.prototype.fetchMember.call({ session: this.session, id: this.guildId }, this.id);
|
||||
|
||||
return member;
|
||||
}
|
||||
|
||||
/** gets the members's guild avatar, not to be confused with Member.user.avatarURL() */
|
||||
avatarURL(options: AvatarOptions): string {
|
||||
let url: string;
|
||||
|
Loading…
x
Reference in New Issue
Block a user