From 0d39cb6a01dd18330efae6462b81459f57e52991 Mon Sep 17 00:00:00 2001 From: Benjamin Sherriff Date: Sun, 13 Oct 2024 11:30:51 -0400 Subject: [PATCH] fixed bot handler play --- src/bot/commands/audio/play.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bot/commands/audio/play.rs b/src/bot/commands/audio/play.rs index 0e0f280..6d1778f 100644 --- a/src/bot/commands/audio/play.rs +++ b/src/bot/commands/audio/play.rs @@ -56,7 +56,7 @@ pub async fn run(ctx: &Context, command: &CommandInteraction) { Ok(channel_id) => { log::debug!("<{guild_id}> Play command executed on {channel_id} with track: {track_url:?}"); // Handle the track url - match play_track(ctx, manager, guild_id.to_owned(), track_url).await { + match enqueue_track(ctx, manager, guild_id.to_owned(), track_url, true).await { Ok(count) => { let mut message = format!("Playing {} tracks", count); if count == 0 { @@ -79,11 +79,12 @@ pub async fn run(ctx: &Context, command: &CommandInteraction) { } } -pub async fn play_track( +pub async fn enqueue_track( ctx: &Context, manager: Arc, guild_id: GuildId, track_url: &str, + play_now: bool, ) -> SirenResult { let mut track_count = 0; if let Some(handler_lock) = manager.get(guild_id) { @@ -140,11 +141,7 @@ pub async fn play_track( }; let track_handle: TrackHandle; let is_queue_empty = handler.queue().is_empty(); - if is_queue_empty { - track_handle = handler.play_input(input); - } else { - track_handle = handler.enqueue_input(input).await; - } + track_handle = handler.enqueue_input(input).await; // Set the volume let _ = track_handle.set_volume(volume); let track_title = metadata.title.unwrap(); @@ -159,6 +156,9 @@ pub async fn play_track( ); track_count += 1; } + if play_now && !handler.queue().is_empty() { + handler.queue().resume(); + } } Ok(track_count) }