diff options
| author | Pinapelz <yukais@pinapelz.com> | 2023-12-13 10:18:04 -0800 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2023-12-13 10:18:04 -0800 |
| commit | 20e2e4d7e4d44a61bd920581fb38d8f204d8d94a (patch) | |
| tree | 52522b77511b5b44c50443d6f6026a4f4ad313ec | |
| parent | 5d6ca2e20373fd1b748caaa2c64742fe72f50594 (diff) | |
fix: make shuffle queue a synchronized action
- Fixes bug where sometimes the queue is not shuffled
Signed-off-by: Pinapelz <yukais@pinapelz.com>
| -rw-r--r-- | src/main/java/audio/Music.java | 11 |
1 files changed, 4 insertions, 7 deletions
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<Object> currentQueue = new ArrayList<>(queue); //Conversion of queue to arraylist to allow for shuffling
- Collections.shuffle(currentQueue);
- BlockingQueue<AudioTrack> newQueue = new LinkedBlockingQueue<>();
- for (Object track : currentQueue) {
- newQueue.add((AudioTrack) track);
+ synchronized (queue) {
+ ArrayList<AudioTrack> 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();
}
|
