From c57122a94b380b12adc241fff103d04527f88287 Mon Sep 17 00:00:00 2001 From: kozabrada123 <“kozabrada123@users.noreply.github.com”> Date: Fri, 5 May 2023 16:08:12 +0200 Subject: [PATCH] Add gateway Ready event --- src/api/types.rs | 18 ++++++++++++++++++ src/gateway.rs | 3 +++ 2 files changed, 21 insertions(+) diff --git a/src/api/types.rs b/src/api/types.rs index 2efbc1a..2bed6b5 100644 --- a/src/api/types.rs +++ b/src/api/types.rs @@ -134,6 +134,12 @@ pub struct Error { pub code: String, } +#[derive(Serialize, Deserialize, Debug, Default)] +pub struct UnavailableGuild { + id: String, + unavailable: bool +} + #[derive(Serialize, Deserialize, Debug, Default)] pub struct UserObject { id: String, @@ -802,6 +808,18 @@ pub struct GatewayResume { impl WebSocketEvent for GatewayResume {} +#[derive(Debug, Deserialize, Serialize, Default)] +pub struct GatewayReady { + pub v: u8, + pub user: UserObject, + pub guilds: Vec, + pub session_id: String, + pub resume_gateway_url: String, + pub shard: Option<(u64, u64)>, +} + +impl WebSocketEvent for GatewayReady {} + #[derive(Debug, Default, Deserialize, Serialize)] pub struct GatewayHello { pub op: i32, diff --git a/src/gateway.rs b/src/gateway.rs index 012e764..83cf07c 100644 --- a/src/gateway.rs +++ b/src/gateway.rs @@ -64,6 +64,9 @@ impl<'a> Gateway<'a> { // See https://discord.com/developers/docs/topics/gateway-events#receive-events match gateway_payload_t.as_str() { + "READY" => { + let data: GatewayReady = serde_json::from_str(gateway_payload.d.unwrap().as_str()).unwrap(); + } "APPLICATION_COMMAND_PERMISSIONS_UPDATE" => {} "AUTO_MODERATION_RULE_CREATE" => {} "AUTO_MODERATION_RULE_UPDATE" => {}