mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-01 20:46:08 +00:00
27 lines
863 B
TypeScript
27 lines
863 B
TypeScript
import type { DiscordMemberWithUser, Snowflake } from './deps.ts';
|
|
import type { SessionCache } from './mod.ts';
|
|
import type { CachedUser } from './users.ts';
|
|
import { Member } from './deps.ts';
|
|
|
|
export interface CachedMember extends Omit<Member, 'user'> {
|
|
userId: Snowflake;
|
|
user?: CachedUser;
|
|
}
|
|
|
|
export function memberBootstrapper(cache: SessionCache, member: DiscordMemberWithUser, guildId: Snowflake) {
|
|
cache.guilds.retrieve(guildId, (guild) => {
|
|
guild.members.set(
|
|
member.user.id,
|
|
Object.assign(
|
|
new Member(cache.session, member, guildId),
|
|
{
|
|
userId: member.user.id,
|
|
get user(): CachedUser | undefined {
|
|
return cache.users.get(this.userId);
|
|
},
|
|
},
|
|
),
|
|
);
|
|
});
|
|
}
|