diff --git a/package.json b/package.json index e1200144..5a13f841 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "revolt.js", - "version": "7.0.4", + "version": "7.0.5", "main": "lib/cjs/index.js", "module": "lib/esm/index.js", "types": "lib/esm/index.d.ts", @@ -54,4 +54,4 @@ "typedoc": "^0.25.1", "typescript": "^5.4.2" } -} +} \ No newline at end of file diff --git a/src/events/v1.ts b/src/events/v1.ts index 0fb10f32..c0eb3e46 100644 --- a/src/events/v1.ts +++ b/src/events/v1.ts @@ -239,22 +239,18 @@ export async function handleEvent( } case "Message": { if (!client.messages.has(event._id)) { - // TODO: this should not be necessary in future protocols: - if ( - event.author && - event.author != "00000000000000000000000000" && - !event.webhook && - // TODO: this is causing a lot of extra requests! - // usually 2 extra requests before a message can come through!! - client.options.eagerFetching - ) { - await client.users.fetch(event.author); - const serverId = client.channels.get(event.channel)?.serverId; - if (serverId) - await client.serverMembers.fetch(serverId, event.author); - } - batch(() => { + if (event.member) { + client.serverMembers.getOrCreate(event.member._id, event.member); + } + + if (event.user) { + client.users.getOrCreate(event.user._id, event.user); + } + + delete event.member; + delete event.user; + client.messages.getOrCreate(event._id, event, true); client.channels.updateUnderlyingObject( event.channel, diff --git a/src/hydration/user.ts b/src/hydration/user.ts index 7b83868c..d57a18ec 100644 --- a/src/hydration/user.ts +++ b/src/hydration/user.ts @@ -15,6 +15,7 @@ export type HydratedUser = { discriminator: string; displayName?: string; relationship: RelationshipStatus; + relations: null; online: boolean; privileged: boolean; @@ -38,6 +39,7 @@ export const userHydration: Hydrate = { discriminator: (user) => user.discriminator, displayName: (user) => user.display_name!, relationship: (user) => user.relationship!, + relations: () => null, online: (user) => user.online!, privileged: (user) => user.privileged,