fix: get member from cache on guild_member_remove event

This commit is contained in:
MARCROCK22 2024-12-18 17:13:55 -04:00
parent f9c5f46d50
commit 2e35884946
2 changed files with 9 additions and 4 deletions

View File

@ -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) => {

View File

@ -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))),
};
};