diff options
Diffstat (limited to 'src/ext')
| -rw-r--r-- | src/ext/cache/mod.rs | 11 | ||||
| -rw-r--r-- | src/ext/voice/handler.rs | 28 | ||||
| -rw-r--r-- | src/ext/voice/payload.rs | 59 |
3 files changed, 51 insertions, 47 deletions
diff --git a/src/ext/cache/mod.rs b/src/ext/cache/mod.rs index ee26816..84c21a7 100644 --- a/src/ext/cache/mod.rs +++ b/src/ext/cache/mod.rs @@ -842,14 +842,15 @@ impl Cache { for guild in ready.guilds { match guild { - PossibleGuild::Offline(guild_id) => { - self.unavailable_guilds.insert(guild_id); - self.guilds.remove(&guild_id); + GuildStatus::Offline(unavailable) => { + self.guilds.remove(&unavailable.id); + self.unavailable_guilds.insert(unavailable.id); }, - PossibleGuild::Online(guild) => { - self.channels.extend(guild.channels.clone()); + GuildStatus::OnlineGuild(guild) => { + self.unavailable_guilds.remove(&guild.id); self.guilds.insert(guild.id, Arc::new(RwLock::new(guild))); }, + GuildStatus::OnlinePartialGuild(_) => {}, } } diff --git a/src/ext/voice/handler.rs b/src/ext/voice/handler.rs index 60cc6e6..c81a57f 100644 --- a/src/ext/voice/handler.rs +++ b/src/ext/voice/handler.rs @@ -1,4 +1,3 @@ -use serde_json::builder::ObjectBuilder; use std::sync::mpsc::{self, Sender as MpscSender}; use super::{AudioReceiver, AudioSource}; use super::connection_info::ConnectionInfo; @@ -162,11 +161,11 @@ impl Handler { // Safe as all of these being present was already checked. self.send(VoiceStatus::Connect(ConnectionInfo { - endpoint, - guild_id, - session_id, - token, - user_id, + endpoint: endpoint, + guild_id: guild_id, + session_id: session_id, + token: token, + user_id: user_id, })); true @@ -409,14 +408,15 @@ impl Handler { /// [`standalone`]: #method.standalone fn update(&self) { if let Some(ref ws) = self.ws { - let map = ObjectBuilder::new() - .insert("op", VoiceOpCode::SessionDescription.num()) - .insert_object("d", |o| o - .insert("channel_id", self.channel_id.map(|c| c.0)) - .insert("guild_id", self.guild_id.0) - .insert("self_deaf", self.self_deaf) - .insert("self_mute", self.self_mute)) - .build(); + let map = json!({ + "op": VoiceOpCode::SessionDescription.num(), + "d": { + "channel_id": self.channel_id.map(|c| c.0), + "guild_id": self.guild_id.0, + "self_deaf": self.self_deaf, + "self_mute": self.self_mute, + } + }); let _ = ws.send(GatewayStatus::SendMessage(map)); } diff --git a/src/ext/voice/payload.rs b/src/ext/voice/payload.rs index 964d6d2..c2e7c0c 100644 --- a/src/ext/voice/payload.rs +++ b/src/ext/voice/payload.rs @@ -1,47 +1,50 @@ -use serde_json::builder::ObjectBuilder; use serde_json::Value; use super::connection_info::ConnectionInfo; use ::constants::VoiceOpCode; #[inline] pub fn build_identify(info: &ConnectionInfo) -> Value { - ObjectBuilder::new() - .insert("op", VoiceOpCode::Identify.num()) - .insert_object("d", |o| o - .insert("server_id", info.guild_id.0) - .insert("session_id", &info.session_id) - .insert("token", &info.token) - .insert("user_id", info.user_id.0)) - .build() + json!({ + "op": VoiceOpCode::Identify.num(), + "d": { + "server_id": info.guild_id.0, + "session_id": &info.session_id, + "token": &info.token, + "user_id": info.user_id.0, + } + }) } #[inline] pub fn build_keepalive() -> Value { - ObjectBuilder::new() - .insert("op", VoiceOpCode::KeepAlive.num()) - .insert("d", Value::Null) - .build() + json!({ + "op": VoiceOpCode::KeepAlive.num(), + "d": Value::Null, + }) } #[inline] pub fn build_select_protocol(address: ::std::borrow::Cow<str>, port: u16) -> Value { - ObjectBuilder::new() - .insert("op", VoiceOpCode::SelectProtocol.num()) - .insert_object("d", |o| o - .insert("protocol", "udp") - .insert_object("data", |o| o - .insert("address", address) - .insert("mode", super::CRYPTO_MODE) - .insert("port", port))) - .build() + json!({ + "op": VoiceOpCode::SelectProtocol.num(), + "d": { + "protocol": "udp", + "data": { + "address": address, + "mode": super::CRYPTO_MODE, + "port": port, + } + } + }) } #[inline] pub fn build_speaking(speaking: bool) -> Value { - ObjectBuilder::new() - .insert("op", VoiceOpCode::Speaking.num()) - .insert_object("d", |o| o - .insert("delay", 0) - .insert("speaking", speaking)) - .build() + json!({ + "op": VoiceOpCode::Speaking.num(), + "d": { + "delay": 0, + "speaking": speaking, + } + }) } |