From f4364151c36af58dc0d398e9f5bd446498a0367c Mon Sep 17 00:00:00 2001 From: GnomedDev Date: Wed, 13 Mar 2024 23:17:55 +0000 Subject: [PATCH] Fix breaking due to removal of channel cache --- Cargo.lock | 107 ++++++++++++---------------------- tts_commands/src/other.rs | 7 ++- tts_events/src/voice_state.rs | 33 ++++++----- 3 files changed, 62 insertions(+), 85 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5c1808c..ffff46c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -72,9 +72,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.80" +version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" [[package]] name = "arrayvec" @@ -105,16 +105,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "atomic-write-file" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8204db279bf648d64fe845bd8840f78b39c8132ed4d6a4194c3b10d4b4cfb0b" -dependencies = [ - "nix", - "rand", -] - [[package]] name = "audiopus" version = "0.3.0-rc.0" @@ -215,9 +205,9 @@ checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205" [[package]] name = "bytemuck" -version = "1.14.3" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" +checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15" [[package]] name = "byteorder" @@ -274,12 +264,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - [[package]] name = "chrono" version = "0.4.35" @@ -1342,18 +1326,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "nix" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" -dependencies = [ - "bitflags 2.4.2", - "cfg-if", - "cfg_aliases", - "libc", -] - [[package]] name = "no-std-net" version = "0.6.0" @@ -1605,7 +1577,7 @@ dependencies = [ [[package]] name = "poise" version = "0.6.1" -source = "git+https://github.com/serenity-rs/poise?branch=serenity-next#70c7b26613a209e9a626772bdd1dbe8e1bd74bce" +source = "git+https://github.com/serenity-rs/poise?branch=serenity-next#354712f401a7e2655c4d459c33d695e114b32bf6" dependencies = [ "async-trait", "derivative", @@ -1621,7 +1593,7 @@ dependencies = [ [[package]] name = "poise_macros" version = "0.6.1" -source = "git+https://github.com/serenity-rs/poise?branch=serenity-next#70c7b26613a209e9a626772bdd1dbe8e1bd74bce" +source = "git+https://github.com/serenity-rs/poise?branch=serenity-next#354712f401a7e2655c4d459c33d695e114b32bf6" dependencies = [ "darling", "proc-macro2", @@ -1663,9 +1635,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" dependencies = [ "unicode-ident", ] @@ -1804,9 +1776,9 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" -version = "0.11.25" +version = "0.11.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eea5a9eb898d3783f17c6407670e3592fd174cb81a10e51d4c37f49450b9946" +checksum = "78bf93c4af7a8bb7d879d51cebe797356ff10ae8516ace542b5182d9dcac10b2" dependencies = [ "base64 0.21.7", "bytes", @@ -2243,7 +2215,7 @@ dependencies = [ [[package]] name = "serenity" version = "0.12.1" -source = "git+https://github.com/serenity-rs/serenity?branch=next#494ee637e4a9eba1f6e58d3a720dfe6bb1642ab0" +source = "git+https://github.com/serenity-rs/serenity?branch=next#f569bd34f8fe1680792a31b0b6403eea7a97266a" dependencies = [ "arrayvec", "async-trait", @@ -2463,9 +2435,9 @@ dependencies = [ [[package]] name = "sqlx" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf" +checksum = "c9a2ccff1a000a5a59cd33da541d9f2fdcd9e6e8229cc200565942bff36d0aaa" dependencies = [ "sqlx-core", "sqlx-macros", @@ -2474,9 +2446,9 @@ dependencies = [ [[package]] name = "sqlx-core" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd" +checksum = "24ba59a9342a3d9bab6c56c118be528b27c9b60e490080e9711a04dccac83ef6" dependencies = [ "ahash", "atoi", @@ -2484,7 +2456,6 @@ dependencies = [ "bytes", "crc", "crossbeam-queue", - "dotenvy", "either", "event-listener", "futures-channel", @@ -2517,9 +2488,9 @@ dependencies = [ [[package]] name = "sqlx-macros" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5" +checksum = "4ea40e2345eb2faa9e1e5e326db8c34711317d2b5e08d0d5741619048a803127" dependencies = [ "proc-macro2", "quote", @@ -2530,11 +2501,10 @@ dependencies = [ [[package]] name = "sqlx-macros-core" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841" +checksum = "5833ef53aaa16d860e92123292f1f6a3d53c34ba8b1969f152ef1a7bb803f3c8" dependencies = [ - "atomic-write-file", "dotenvy", "either", "heck", @@ -2555,9 +2525,9 @@ dependencies = [ [[package]] name = "sqlx-postgres" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24" +checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" dependencies = [ "atoi", "base64 0.21.7", @@ -2582,7 +2552,6 @@ dependencies = [ "rand", "serde", "serde_json", - "sha1", "sha2", "smallvec", "sqlx-core", @@ -2634,18 +2603,18 @@ checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" [[package]] name = "strum" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.26.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18" +checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" dependencies = [ "heck", "proc-macro2", @@ -2801,20 +2770,20 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.6.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bc6ee10a9b4fcf576e9b0819d95ec16f4d2c02d39fd83ac1c8789785c4a42" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ - "bitflags 2.4.2", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.6.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" dependencies = [ "core-foundation-sys", "libc", @@ -2840,18 +2809,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", @@ -3070,9 +3039,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.10" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" +checksum = "af06656561d28735e9c1cd63dfd57132c8155426aa6af24f36a00a351f88c48e" dependencies = [ "serde", "serde_spanned", @@ -3091,9 +3060,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.6" +version = "0.22.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" +checksum = "18769cd1cec395d70860ceb4d932812a0b4d06b1a4bb336745a4d21b9496e992" dependencies = [ "indexmap", "serde", diff --git a/tts_commands/src/other.rs b/tts_commands/src/other.rs index c5bb7af..1b8955d 100644 --- a/tts_commands/src/other.rs +++ b/tts_commands/src/other.rs @@ -425,8 +425,11 @@ pub async fn invite(ctx: Context<'_>) -> CommandResult { .replace("{channel_mention}", &invite_channel.mention().to_string()) .replace("{bot_mention}", &bot_mention) } else { - cache - .channel(invite_channel) + let guild = cache.guild(config.main_server).try_unwrap()?; + + guild + .channels + .get(&invite_channel) .map(|c| { ctx.gettext( "Join {server_invite} and look in #{channel_name} to invite {bot_mention}", diff --git a/tts_events/src/voice_state.rs b/tts_events/src/voice_state.rs index 3e62adf..178d0ca 100644 --- a/tts_events/src/voice_state.rs +++ b/tts_events/src/voice_state.rs @@ -29,21 +29,26 @@ pub async fn voice_state_update( return Ok(()); } - let channel_members = ctx - .cache - .channel(old.channel_id.try_unwrap()?) - .try_unwrap()? - .members(&ctx.cache)?; - - // Bot is in the voice channel being left from - if channel_members.iter().all(|m| m.user.id != bot_id) { - return Ok(()); + { + let channel_id = old.channel_id.try_unwrap()?; + let guild = ctx.cache.guild(guild_id).try_unwrap()?; + let mut channel_members = guild.members.iter().filter(|(m, _)| { + guild + .voice_states + .get(m) + .is_some_and(|v| v.channel_id == Some(channel_id)) + }); + + // Bot is in the voice channel being left from + if channel_members.clone().all(|(_, m)| m.user.id != bot_id) { + return Ok(()); + } + + // All the users in the vc are now bots + if channel_members.any(|(_, m)| !m.user.bot()) { + return Ok(()); + }; } - // All the users in the vc are now bots - if channel_members.into_iter().any(|m| !m.user.bot()) { - return Ok(()); - }; - data.songbird.remove(guild_id).await.map_err(Into::into) }