From 863f31fa35ccb8ce1b069db3487adf2a301f5fa0 Mon Sep 17 00:00:00 2001 From: CyberL1 Date: Thu, 4 Dec 2025 16:56:39 +0100 Subject: fix: send presences array (empty for now) in READY event data --- src/gateway/opcodes/Identify.ts | 1 + src/util/interfaces/Event.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/gateway/opcodes/Identify.ts b/src/gateway/opcodes/Identify.ts index 352fd6fe..0c36829e 100644 --- a/src/gateway/opcodes/Identify.ts +++ b/src/gateway/opcodes/Identify.ts @@ -536,6 +536,7 @@ export async function onIdentify(this: WebSocket, data: Payload) { version: 0, // TODO }, private_channels: channels, + presences: [], // TODO: Send actual data session_id: this.session_id, country_code: user.settings.locale, // TODO: do ip analysis instead users: Array.from(users), diff --git a/src/util/interfaces/Event.ts b/src/util/interfaces/Event.ts index b70b92f8..24157efd 100644 --- a/src/util/interfaces/Event.ts +++ b/src/util/interfaces/Event.ts @@ -69,6 +69,7 @@ export interface ReadyEventData { v: number; user: UserPrivate; private_channels: ReadyPrivateChannel[]; // this will be empty for bots + presences: Presence[]; session_id: string; // resuming guilds: IReadyGuildDTO[] | GuildOrUnavailable[]; // depends on capability analytics_token?: string; -- cgit 1.5.1 From c130810ad2d0c2c4a5c00a3a5207451f3ae15290 Mon Sep 17 00:00:00 2001 From: CyberL1 Date: Thu, 4 Dec 2025 16:59:31 +0100 Subject: fix: `highest_last_message_id` is apparently a number and never a string also I discovered that there's a bug in lambert-server's check function that ignores arrays of types --- src/schemas/gateway/IdentifySchema.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/schemas/gateway/IdentifySchema.ts b/src/schemas/gateway/IdentifySchema.ts index 7d0eedae..f52b8ff1 100644 --- a/src/schemas/gateway/IdentifySchema.ts +++ b/src/schemas/gateway/IdentifySchema.ts @@ -18,7 +18,7 @@ // TODO: Need a way to allow camalCase and pascal_case without just duplicating the schema -import { ActivitySchema } from "@spacebar/schemas" +import { ActivitySchema } from "@spacebar/schemas"; export const IdentifySchema = { token: String, @@ -58,7 +58,7 @@ export const IdentifySchema = { $capabilities: Number, $client_state: { $guild_hashes: Object, - $highest_last_message_id: String || Number, + $highest_last_message_id: Number, $read_state_version: Number, $user_guild_settings_version: Number, $user_settings_version: undefined, @@ -70,7 +70,7 @@ export const IdentifySchema = { }, $clientState: { $guildHashes: Object, - $highestLastMessageId: String || Number, + $highestLastMessageId: Number, $readStateVersion: Number, $useruserGuildSettingsVersion: undefined, $userGuildSettingsVersion: undefined, @@ -120,7 +120,7 @@ export interface IdentifySchema { capabilities?: number; client_state?: { guild_hashes?: unknown; - highest_last_message_id?: string | number; + highest_last_message_id?: number; read_state_version?: number; user_guild_settings_version?: number; user_settings_version?: number; @@ -132,7 +132,7 @@ export interface IdentifySchema { }; clientState?: { guildHashes?: unknown; - highestLastMessageId?: string | number; + highestLastMessageId?: number; readStateVersion?: number; userGuildSettingsVersion?: number; useruserGuildSettingsVersion?: number; -- cgit 1.5.1 From 41e375f89658006bc2f081b996c42f10fda4274c Mon Sep 17 00:00:00 2001 From: CyberL1 Date: Thu, 4 Dec 2025 17:00:05 +0100 Subject: chore: re-generate openapi.json and schemas.json --- assets/openapi.json | 10 ++-------- assets/schemas.json | 10 ++-------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/assets/openapi.json b/assets/openapi.json index 6bf6f922..5d73449d 100644 --- a/assets/openapi.json +++ b/assets/openapi.json @@ -1440,10 +1440,7 @@ "properties": { "guild_hashes": {}, "highest_last_message_id": { - "type": [ - "string", - "integer" - ] + "type": "integer" }, "read_state_version": { "type": "integer" @@ -1475,10 +1472,7 @@ "properties": { "guildHashes": {}, "highestLastMessageId": { - "type": [ - "string", - "integer" - ] + "type": "integer" }, "readStateVersion": { "type": "integer" diff --git a/assets/schemas.json b/assets/schemas.json index 4d3646d6..3e597f09 100644 --- a/assets/schemas.json +++ b/assets/schemas.json @@ -1473,10 +1473,7 @@ "properties": { "guild_hashes": {}, "highest_last_message_id": { - "type": [ - "string", - "integer" - ] + "type": "integer" }, "read_state_version": { "type": "integer" @@ -1508,10 +1505,7 @@ "properties": { "guildHashes": {}, "highestLastMessageId": { - "type": [ - "string", - "integer" - ] + "type": "integer" }, "readStateVersion": { "type": "integer" -- cgit 1.5.1