From 20e2e4d7e4d44a61bd920581fb38d8f204d8d94a Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Wed, 13 Dec 2023 10:18:04 -0800 Subject: fix: make shuffle queue a synchronized action - Fixes bug where sometimes the queue is not shuffled Signed-off-by: Pinapelz --- src/main/java/audio/Music.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/main/java/audio/Music.java b/src/main/java/audio/Music.java index 222c211..9aafb48 100644 --- a/src/main/java/audio/Music.java +++ b/src/main/java/audio/Music.java @@ -186,14 +186,11 @@ public class Music extends ListenerAdapter { return; } else{ - - ArrayList currentQueue = new ArrayList<>(queue); //Conversion of queue to arraylist to allow for shuffling - Collections.shuffle(currentQueue); - BlockingQueue newQueue = new LinkedBlockingQueue<>(); - for (Object track : currentQueue) { - newQueue.add((AudioTrack) track); + synchronized (queue) { + ArrayList currentQueue = new ArrayList<>(queue); //Conversion of queue to AudioTrack arraylist to allow for shuffling + Collections.shuffle(currentQueue); + mng.scheduler.queue = new LinkedBlockingQueue<>(currentQueue); } - mng.scheduler.queue = newQueue; } event.reply("The queue has been shuffled!").queue(); } -- cgit v1.2.3