diff --git a/src/main/java/co/moosic/music/TrackScheduler.java b/src/main/java/co/moosic/music/TrackScheduler.java index f091fd1..57a5807 100644 --- a/src/main/java/co/moosic/music/TrackScheduler.java +++ b/src/main/java/co/moosic/music/TrackScheduler.java @@ -23,7 +23,9 @@ public class TrackScheduler extends AudioEventAdapter { AudioPlayer player; private AudioPlayerManager playerManager; private List AutoPlay = new ArrayList<>(); + private List AutoDone = new ArrayList<>(); private final Random RANDOM = new Random(); + private int lastSongIngex = -1; TrackScheduler(AudioPlayer player, AudioPlayerManager playerManager) { try (Scanner scanner = new Scanner(new File("songs.txt"))) { @@ -110,7 +112,18 @@ public void onTrackStuck(AudioPlayer player, AudioTrack track, long thresholdMs) private String getRandomSong() { synchronized (RANDOM) { - return AutoPlay.get(RANDOM.nextInt(AutoPlay.size())); + if (AutoPlay.isEmpty()) { + System.out.println("Copying songs back into queue for next cycle"); + for (String nextTrack : AutoDone) { + AutoPlay.add(nextTrack); + } + AutoDone.clear(); + } + int trackPicked = RANDOM.nextInt(AutoPlay.size()); + String pickedTrack = AutoPlay.get(trackPicked); + AutoDone.add(pickedTrack); + AutoPlay.remove(trackPicked); + return pickedTrack; } } @@ -153,4 +166,4 @@ public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason nextTrack(); } } -} \ No newline at end of file +}