From 5519bb2ee54fd4b00ac37e52b20c1ee9e143af76 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 21 Aug 2022 03:33:16 +0200 Subject: [PATCH] fix: handle unavailable guilds --- src/events/ready.rs | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/src/events/ready.rs b/src/events/ready.rs index 4ffd052..b6c48b6 100644 --- a/src/events/ready.rs +++ b/src/events/ready.rs @@ -10,8 +10,8 @@ pub async fn load_muted_members(ctx: &serenity::Context, _: &serenity::Ready) { let data = get_data_lock(ctx).await; let data = data.read().await; let database = &data.database; - let mute_role_id = data.configuration.read().await.general.mute.role; - let mut pending_unmutes = data.pending_unmutes.write().await; + let mute_role_id = data.configuration.general.mute.role; + let mut pending_unmutes = data.pending_unmutes.lock().await; let mut cursor = database .find::( @@ -32,28 +32,26 @@ pub async fn load_muted_members(ctx: &serenity::Context, _: &serenity::Ready) { let guild_id = current.guild_id.unwrap().parse::().unwrap(); let member_id = current.user_id.unwrap().parse::().unwrap(); - if let Ok(member) = http_ref - .get_guild(guild_id) - .await - .unwrap() - .member(http_ref, member_id) - .await - { - let amount_left = - std::cmp::max(current.expires.unwrap() as i64 - Utc::now().timestamp(), 0); + if let Ok(guild) = http_ref.get_guild(guild_id).await { + if let Ok(member) = guild.member(http_ref, member_id).await { + let amount_left = + std::cmp::max(current.expires.unwrap() as i64 - Utc::now().timestamp(), 0); - pending_unmutes.insert( - member.user.id.0, - queue_unmute_member( - ctx, - database, - &member, - mute_role_id, - amount_left as u64, // i64 as u64 is handled properly here - ), - ); + pending_unmutes.insert( + member.user.id.0, + queue_unmute_member( + ctx, + database, + &member, + mute_role_id, + amount_left as u64, // i64 as u64 is handled properly here + ), + ); + } else { + trace!("Failed to find member {} in guild {}", member_id, guild_id); + } } else { - trace!("Failed to find member {} in guild {}", member_id, guild_id); + trace!("Guild {} unavailable", guild_id); } } }