From d5596e6ecdbd9e417d886c3e1189eae9878ccf4d Mon Sep 17 00:00:00 2001 From: Gabriel Fontes Date: Sun, 11 Jun 2023 13:16:22 -0300 Subject: [PATCH] autojoin call if needed --- src/discord.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/discord.rs b/src/discord.rs index a7e0461..59af766 100644 --- a/src/discord.rs +++ b/src/discord.rs @@ -349,10 +349,18 @@ fn get_channel(ctx: &Context, msg: &Message) -> Result { async fn get_call(ctx: &Context, msg: &Message) -> Result>> { let manager = get_manager(ctx).await?; let guild = get_guild(ctx, msg)?; - let call = manager - .get(guild) - .ok_or_else(|| anyhow!("Not in a voice channel"))?; - Ok(call) + let call = manager.get(guild); + + if let Some(c) = call { + Ok(c) + } else { + let channel = get_channel(ctx, msg)?; + log::warn!("Not in a voice channel, trying to join"); + let _handler = manager.join(guild, channel).await; + manager + .get(guild) + .ok_or_else(|| anyhow!("Not in a voice channel, try running 'join'")) + } } async fn get_song(track: &TrackHandle) -> Result {