mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-04 22:16:08 +00:00
feat: guild members chunk which fixes #11
This commit is contained in:
parent
d1766cd862
commit
9a9379b4a6
@ -11,6 +11,7 @@ import type {
|
|||||||
DiscordGuildMemberAdd,
|
DiscordGuildMemberAdd,
|
||||||
DiscordGuildMemberRemove,
|
DiscordGuildMemberRemove,
|
||||||
DiscordGuildMemberUpdate,
|
DiscordGuildMemberUpdate,
|
||||||
|
DiscordGuildMembersChunk,
|
||||||
DiscordGuildRoleCreate,
|
DiscordGuildRoleCreate,
|
||||||
DiscordGuildRoleDelete,
|
DiscordGuildRoleDelete,
|
||||||
DiscordGuildRoleUpdate,
|
DiscordGuildRoleUpdate,
|
||||||
@ -675,6 +676,17 @@ export const VOICE_SERVER_UPDATE: RawHandler<DiscordVoiceServerUpdate> = (sessio
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const GUILD_MEMBERS_CHUNK: RawHandler<DiscordGuildMembersChunk> = (session, _shardId, payload) => {
|
||||||
|
session.events.emit('guildMembersChunk', {
|
||||||
|
guildId: payload.guild_id,
|
||||||
|
members: new Map(payload.members.map(m => [m.user.id, new Member(session, m, payload.guild_id)])),
|
||||||
|
chunkIndex: payload.chunk_index,
|
||||||
|
chunkCount: payload.chunk_count,
|
||||||
|
notFound: payload.not_found,
|
||||||
|
presences: payload.presences?.map(p => new Presence(session, p)) ?? [],
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
export const raw: RawHandler<unknown> = (session, shardId, data) => {
|
export const raw: RawHandler<unknown> = (session, shardId, data) => {
|
||||||
session.events.emit('raw', data as { t: string; d: unknown }, shardId);
|
session.events.emit('raw', data as { t: string; d: unknown }, shardId);
|
||||||
};
|
};
|
||||||
@ -683,6 +695,16 @@ export interface Ready extends Omit<DiscordReady, 'user'> {
|
|||||||
user: User;
|
user: User;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface GuildMembersChunk {
|
||||||
|
guildId: Snowflake;
|
||||||
|
members: Map<Snowflake, Member>;
|
||||||
|
chunkIndex: number;
|
||||||
|
chunkCount: number;
|
||||||
|
notFound?: string[];
|
||||||
|
presences: Presence[];
|
||||||
|
nonce?: string;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Alias of `keyof Events`. List of all events that can be emitted by the session.
|
* Alias of `keyof Events`. List of all events that can be emitted by the session.
|
||||||
* Ex: ready, messageCreate, guildCreate, etc.
|
* Ex: ready, messageCreate, guildCreate, etc.
|
||||||
@ -706,6 +728,7 @@ export interface Events {
|
|||||||
guildMemberAdd: Handler<[Member]>;
|
guildMemberAdd: Handler<[Member]>;
|
||||||
guildMemberUpdate: Handler<[Member]>;
|
guildMemberUpdate: Handler<[Member]>;
|
||||||
guildMemberRemove: Handler<[User, Snowflake]>;
|
guildMemberRemove: Handler<[User, Snowflake]>;
|
||||||
|
guildMembersChunk: Handler<[GuildMembersChunk]>;
|
||||||
guildBanAdd: Handler<[{ guildId: Snowflake; user: DiscordUser }]>;
|
guildBanAdd: Handler<[{ guildId: Snowflake; user: DiscordUser }]>;
|
||||||
guildBanRemove: Handler<[{ guildId: Snowflake; user: DiscordUser }]>;
|
guildBanRemove: Handler<[{ guildId: Snowflake; user: DiscordUser }]>;
|
||||||
guildEmojisUpdate: Handler<
|
guildEmojisUpdate: Handler<
|
||||||
|
Loading…
x
Reference in New Issue
Block a user