🐛 fix client connection crash on guild create

This commit is contained in:
Flam3rboy 2021-09-03 12:53:25 +02:00
parent d3179098bb
commit ea4201c6f7
2 changed files with 28 additions and 4 deletions

View File

@ -208,7 +208,7 @@ export class Member extends BaseClassWithoutId {
where: { where: {
id: guild_id, id: guild_id,
}, },
relations: ["channels", "emojis", "members", "roles", "stickers"], relations: ["channels", "emojis", "members", "roles", "stickers", "voice_states"],
}); });
if (await Member.count({ id: user.id, guild: { id: guild_id } })) if (await Member.count({ id: user.id, guild: { id: guild_id } }))
@ -225,8 +225,6 @@ export class Member extends BaseClassWithoutId {
mute: false, mute: false,
pending: false, pending: false,
}; };
// @ts-ignore
guild.joined_at = member.joined_at.toISOString();
await Promise.all([ await Promise.all([
Member.insert({ Member.insert({
@ -255,7 +253,22 @@ export class Member extends BaseClassWithoutId {
} as GuildMemberAddEvent), } as GuildMemberAddEvent),
emitEvent({ emitEvent({
event: "GUILD_CREATE", event: "GUILD_CREATE",
data: { ...guild, members: [...guild.members, { ...member, user }] }, data: {
...guild,
members: [...guild.members, { ...member, user }],
member_count: (guild.member_count || 0) + 1,
guild_hashes: {
channels: { omitted: false, hash: "nkMQJ5nl5Cg" },
metadata: { omitted: false, hash: "+5ybMfcb8iw" },
roles: { omitted: false, hash: "Idhc6P9ktfM" },
version: 1,
},
guild_scheduled_events: [],
joined_at: member.joined_at,
presences: [],
stage_instances: [],
threads: [],
},
user_id, user_id,
} as GuildCreateEvent), } as GuildCreateEvent),
]); ]);

View File

@ -125,6 +125,17 @@ export interface GuildCreateEvent extends Event {
event: "GUILD_CREATE"; event: "GUILD_CREATE";
data: Guild & { data: Guild & {
joined_at: Date; joined_at: Date;
// TODO: add them to guild
guild_scheduled_events: never[];
guild_hashes: {
channels: { omitted: boolean; hash: string };
metadata: { omitted: boolean; hash: string };
roles: { omitted: boolean; hash: string };
version: number;
};
presences: never[];
stage_instances: never[];
threads: never[];
}; };
} }