diff --git a/src/music/music_events.rs b/src/music/music_events.rs index 30abb9a..f35abe9 100644 --- a/src/music/music_events.rs +++ b/src/music/music_events.rs @@ -37,7 +37,7 @@ impl EventHandler for TrackEndNotifier { } return None; } - let mut head = match music_queue::get_head(&self.guild_id).await { + let mut head = match music_queue::next(&self.guild_id).await { Some(head) => head, None => { println!("Cannot get head of queue"); diff --git a/src/music/music_manager.rs b/src/music/music_manager.rs index 834cae7..169bcd2 100644 --- a/src/music/music_manager.rs +++ b/src/music/music_manager.rs @@ -84,7 +84,7 @@ pub async fn attempt_to_queue_song( return Embed::create_yt_playing(src, username, "Added to queue").await; } - let _query = music_queue::get_head(guild_id) + let _query = music_queue::next(guild_id) .await .expect("Cannot get head of queue"); music_queue::set_now_playing(guild_id, Some(src.clone())).await; @@ -103,6 +103,7 @@ pub async fn attempt_to_queue_song( // Start playing let mut handler = handler_lock.lock().await; let _ = handler.play_input(src.clone().into()); // TODO: Add event handlers + handler.add_global_event( Event::Track(TrackEvent::End), music_events::TrackEndNotifier { @@ -190,7 +191,7 @@ pub async fn attempt_to_skip_current_song( } } - let head = music_queue::get_head(guild_id).await; // TODO match + let head = music_queue::next(guild_id).await; // TODO match if head.is_none() { return Embed::create_error_respose( username, diff --git a/src/music/music_queue.rs b/src/music/music_queue.rs index e4480fe..fc286e7 100644 --- a/src/music/music_queue.rs +++ b/src/music/music_queue.rs @@ -10,7 +10,6 @@ type MusicQueueItem = Arc>; #[derive(Debug)] pub struct MusicQueue { // God this sucks. This needs to be reprogrammed properly. - pub guild_id: GuildId, pub queue: VecDeque, pub now_playing: Option, } @@ -25,7 +24,6 @@ async fn get_music_queue(guild_id: &GuildId) -> MusicQueueItem { queues .entry(*guild_id) .or_insert(Arc::new(Mutex::new(MusicQueue { - guild_id: *guild_id, queue: VecDeque::new(), now_playing: None, }))) @@ -55,7 +53,8 @@ pub async fn add_to_queue(guild_id: &GuildId, input: YoutubeDl) { with_music_queue(guild_id, |queue| queue.queue.push_back(input)).await; } -pub async fn get_head(guild_id: &GuildId) -> Option { +/// Get next track in queue +pub async fn next(guild_id: &GuildId) -> Option { with_music_queue(guild_id, |queue| queue.queue.pop_front()).await }