fix: skip & use extra fields where necessary

This commit is contained in:
Paul Makles
2024-12-17 16:53:00 +00:00
parent c332974d90
commit 33f8941182
3 changed files with 15 additions and 17 deletions
+2 -2
View File
@@ -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"
}
}
}
+11 -15
View File
@@ -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,
+2
View File
@@ -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<ApiUser, HydratedUser> = {
discriminator: (user) => user.discriminator,
displayName: (user) => user.display_name!,
relationship: (user) => user.relationship!,
relations: () => null,
online: (user) => user.online!,
privileged: (user) => user.privileged,