From 46b0981b6a51622342fea9ed8d159abad59883d4 Mon Sep 17 00:00:00 2001 From: trivernis Date: Thu, 22 Apr 2021 10:39:57 +0200 Subject: [PATCH] Improve client initialization Signed-off-by: trivernis --- src/client.rs | 17 ++++++++++------- src/handler.rs | 1 + 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/client.rs b/src/client.rs index 51e3eb4..7cad104 100644 --- a/src/client.rs +++ b/src/client.rs @@ -20,7 +20,6 @@ use crate::utils::error::{BotError, BotResult}; use bot_serenityutils::menu::EventDrivenMessageContainer; use lavalink_rs::LavalinkClient; use serenity::framework::standard::buckets::LimitedFor; -use serenity::http::Http; use std::env; use std::sync::Arc; use std::time::SystemTime; @@ -29,15 +28,23 @@ use tokio::sync::Mutex; pub async fn get_client() -> BotResult { let token = env::var("BOT_TOKEN").map_err(|_| BotError::MissingToken)?; let database = get_database()?; - let http = Http::new_with_token(&token); - let current_application = http.get_current_application_info().await?; let client = Client::builder(token) .event_handler(Handler) .framework(get_framework().await) .register_songbird() + .type_map_insert::(StoreData::new()) + .type_map_insert::(database) + .type_map_insert::(HashMap::new()) + .type_map_insert::(Arc::new(Mutex::new(HashMap::new()))) .await?; let data = client.data.clone(); + let current_application = client + .cache_and_http + .http + .get_current_application_info() + .await?; + let lava_client = LavalinkClient::builder(current_application.id.0) .set_host(env::var("LAVALINK_HOST").unwrap_or("172.0.0.1".to_string())) .set_password(env::var("LAVALINK_PASSWORD").expect("Missing lavalink password")) @@ -51,10 +58,6 @@ pub async fn get_client() -> BotResult { .await?; { let mut data = client.data.write().await; - data.insert::(StoreData::new()); - data.insert::(database); - data.insert::(Arc::new(Mutex::new(HashMap::new()))); - data.insert::(HashMap::new()); data.insert::(Arc::new(lava_client)); } diff --git a/src/handler.rs b/src/handler.rs index 76389e9..da69ba8 100644 --- a/src/handler.rs +++ b/src/handler.rs @@ -127,6 +127,7 @@ impl EventHandler for Handler { player.set_leave_flag(count == 0); } } + // handle disconnects if let (Some(state), None) = (old_state, new_state.channel_id) { let current_user = ctx.cache.current_user().await;