diff --git a/litecord/gateway/schemas.py b/litecord/gateway/schemas.py index 08260b2..4928a37 100644 --- a/litecord/gateway/schemas.py +++ b/litecord/gateway/schemas.py @@ -99,6 +99,16 @@ REQ_GUILD_SCHEMA = { }, } +GUILD_SYNC_SCHEMA = { + **BASE, + **{ + "d": { + "type": "list", + "schema": {"type": "snowflake"}, + } + }, +} + GW_ACTIVITY = { "name": {"type": "string", "required": True}, diff --git a/litecord/gateway/websocket.py b/litecord/gateway/websocket.py index 091493c..8e58c28 100644 --- a/litecord/gateway/websocket.py +++ b/litecord/gateway/websocket.py @@ -64,6 +64,7 @@ from litecord.gateway.schemas import ( GW_STATUS_UPDATE, RESUME_SCHEMA, REQ_GUILD_SCHEMA, + GUILD_SYNC_SCHEMA, ) from litecord.storage import int_ @@ -952,6 +953,7 @@ class GatewayWebsocket: async def handle_12(self, payload: Dict[str, Any]): """Handle OP 12 Guild Sync.""" + payload = validate(payload, GUILD_SYNC_SCHEMA) data = payload["d"] gids = await self.user_storage.get_user_guilds(self.state.user_id)