From 2e35884946609c0396c4eb2b137b715ca00e5ad4 Mon Sep 17 00:00:00 2001 From: MARCROCK22 Date: Wed, 18 Dec 2024 17:13:55 -0400 Subject: [PATCH] fix: get member from cache on guild_member_remove event --- src/events/hooks/guild.ts | 9 +++++++-- src/events/hooks/message.ts | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/events/hooks/guild.ts b/src/events/hooks/guild.ts index 84ee30c..9195424 100644 --- a/src/events/hooks/guild.ts +++ b/src/events/hooks/guild.ts @@ -65,8 +65,13 @@ export const GUILD_MEMBER_ADD = (self: UsingClient, data: GatewayGuildMemberAddD return Transformers.GuildMember(self, data, data.user, data.guild_id); }; -export const GUILD_MEMBER_REMOVE = (self: UsingClient, data: GatewayGuildMemberRemoveDispatchData) => { - return { ...toCamelCase(data), user: Transformers.User(self, data.user) }; +export const GUILD_MEMBER_REMOVE = async (self: UsingClient, data: GatewayGuildMemberRemoveDispatchData) => { + return ( + (await self.cache.members?.get(data.user.id, data.guild_id)) ?? { + ...toCamelCase(data), + user: Transformers.User(self, data.user), + } + ); }; export const GUILD_MEMBERS_CHUNK = (self: UsingClient, data: GatewayGuildMembersChunkDispatchData) => { diff --git a/src/events/hooks/message.ts b/src/events/hooks/message.ts index 1d5c3b4..985c0d9 100644 --- a/src/events/hooks/message.ts +++ b/src/events/hooks/message.ts @@ -1,6 +1,6 @@ import { type MessageStructure, Transformers } from '../../client/transformers'; import type { UsingClient } from '../../commands'; -import { type ObjectToLower, type OmitInsert, toCamelCase } from '../../common'; +import { type ObjectToLower, type OmitInsert, fakePromise, toCamelCase } from '../../common'; import type { GatewayMessageCreateDispatchData, GatewayMessageDeleteBulkDispatchData, @@ -27,7 +27,7 @@ export const MESSAGE_DELETE = async ( export const MESSAGE_DELETE_BULK = async (self: UsingClient, data: GatewayMessageDeleteBulkDispatchData) => { return { ...data, - messages: await Promise.all(data.ids.map(id => self.cache.messages?.get(id))), + messages: await Promise.all(data.ids.map(id => fakePromise(self.cache.messages?.get(id)).then(x => x ?? id))), }; };