diff options
author | V3L0C1T13S <51764975+V3L0C1T13S@users.noreply.github.com> | 2023-01-16 23:44:29 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-17 15:44:29 +1100 |
commit | eb2f6ab79a68adae910c6823eabaaa14b534c106 (patch) | |
tree | 6f845315ceb306737afbbf457ef23f9dedf1f6dd | |
parent | Fix deleting an application if it has a bot (diff) | |
download | server-eb2f6ab79a68adae910c6823eabaaa14b534c106.tar.xz |
send GUILD_CREATE after READY event (#938)
* Fix lazy guilds being sent before READY event * Make casing consistent
-rw-r--r-- | src/gateway/opcodes/Identify.ts | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/gateway/opcodes/Identify.ts b/src/gateway/opcodes/Identify.ts index 1c3cab28..b508cbf6 100644 --- a/src/gateway/opcodes/Identify.ts +++ b/src/gateway/opcodes/Identify.ts @@ -141,18 +141,11 @@ export async function onIdentify(this: WebSocket, data: Payload) { }) as PublicMember[][]; let guilds = members.map((x) => ({ ...x.guild, joined_at: x.joined_at })); + const pending_guilds: typeof guilds = []; // @ts-ignore guilds = guilds.map((guild) => { if (user.bot) { - setTimeout(() => { - var promise = Send(this, { - op: OPCODES.Dispatch, - t: EVENTEnum.GuildCreate, - s: this.sequence++, - d: guild, - }); - if (promise) promise.catch(console.error); - }, 500); + pending_guilds.push(guild); return { id: guild.id, unavailable: true }; } @@ -314,6 +307,17 @@ export async function onIdentify(this: WebSocket, data: Payload) { d, }); + await Promise.all( + pending_guilds.map((guild) => + Send(this, { + op: OPCODES.Dispatch, + t: EVENTEnum.GuildCreate, + s: this.sequence++, + d: guild, + })?.catch(console.error), + ), + ); + //TODO send READY_SUPPLEMENTAL //TODO send GUILD_MEMBER_LIST_UPDATE //TODO send SESSIONS_REPLACE |