From 4198f1e24580a99b870438de626fe24d4a806b5e Mon Sep 17 00:00:00 2001 From: GregTCLTK Date: Mon, 6 Jan 2020 18:38:02 +0100 Subject: [PATCH] Loop function --- .../java/com/bbn/hadder/audio/TrackManager.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bbn/hadder/audio/TrackManager.java b/src/main/java/com/bbn/hadder/audio/TrackManager.java index b4c1e9a..bb95194 100644 --- a/src/main/java/com/bbn/hadder/audio/TrackManager.java +++ b/src/main/java/com/bbn/hadder/audio/TrackManager.java @@ -19,6 +19,8 @@ public class TrackManager extends AudioEventAdapter { private final AudioPlayer player; private final Queue queue; + private boolean loop = false; + AudioTrack lastTrack; public TrackManager(AudioPlayer player) { this.player = player; @@ -48,7 +50,9 @@ public class TrackManager extends AudioEventAdapter { @Override public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) { Guild g = queue.poll().getAuthor().getGuild(); - if (queue.isEmpty()) { + if (loop) { + player.startTrack(lastTrack.makeClone(), false); + } else if (queue.isEmpty()) { g.getAudioManager().closeAudioConnection(); } else { player.playTrack(queue.element().getTrack()); @@ -67,6 +71,16 @@ public class TrackManager extends AudioEventAdapter { queue.remove(entry); } + public boolean isLoop() + { + return loop; + } + + public void setLoop(boolean repeating) + { + this.loop = repeating; + } + public AudioInfo getTrackInfo(AudioTrack track) { return queue.stream().filter(audioInfo -> audioInfo.getTrack().equals(track)).findFirst().orElse(null); }