From 17793af2f1dfd56f596d348fb5677f655baf8892 Mon Sep 17 00:00:00 2001 From: Donald Shan Date: Sat, 10 Dec 2022 17:04:38 -0800 Subject: Initial Commit --- audio/TrackScheduler.java | 59 ----------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 audio/TrackScheduler.java (limited to 'audio/TrackScheduler.java') diff --git a/audio/TrackScheduler.java b/audio/TrackScheduler.java deleted file mode 100644 index 8377e7a..0000000 --- a/audio/TrackScheduler.java +++ /dev/null @@ -1,59 +0,0 @@ -package audio; - -import com.sedmelluq.discord.lavaplayer.player.AudioPlayer; -import com.sedmelluq.discord.lavaplayer.player.event.AudioEventAdapter; -import com.sedmelluq.discord.lavaplayer.track.AudioTrack; -import com.sedmelluq.discord.lavaplayer.track.AudioTrackEndReason; - -import java.util.Collections; -import java.util.List; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; - -/** - * This class schedules tracks for the audio player. It contains the queue of tracks. - */ -public class TrackScheduler extends AudioEventAdapter { - public final AudioPlayer player; - public BlockingQueue queue; - - /** - * @param player The audio player this scheduler uses - */ - public TrackScheduler(AudioPlayer player) { - this.player = player; - this.queue = new LinkedBlockingQueue<>(); - } - - /** - * Add the next track to queue or play right away if nothing is in the queue. - * - * @param track The track to play or add to queue. - */ - public void queue(AudioTrack track) { - if (!player.startTrack(track, true)) { - queue.offer(track); - } - } - - /** - * Start the next track, stopping the current one if it is playing. - */ - public void nextTrack() { - - player.startTrack(queue.poll(), false); - - } - - @Override - public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) { - // Only start the next track if the end reason is suitable for it (FINISHED or LOAD_FAILED) - if (endReason.mayStartNext) { - nextTrack(); - } - } - public void shuffle() - { - Collections.shuffle((List) queue); - } -} \ No newline at end of file -- cgit v1.2.3