Loop function

This commit is contained in:
GregTCLTK 2020-01-06 18:38:02 +01:00
parent c687cef65d
commit 4198f1e245
No known key found for this signature in database
GPG key ID: A91BADE5C070FF67

View file

@ -19,6 +19,8 @@ public class TrackManager extends AudioEventAdapter {
private final AudioPlayer player; private final AudioPlayer player;
private final Queue<AudioInfo> queue; private final Queue<AudioInfo> queue;
private boolean loop = false;
AudioTrack lastTrack;
public TrackManager(AudioPlayer player) { public TrackManager(AudioPlayer player) {
this.player = player; this.player = player;
@ -48,7 +50,9 @@ public class TrackManager extends AudioEventAdapter {
@Override @Override
public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) { public void onTrackEnd(AudioPlayer player, AudioTrack track, AudioTrackEndReason endReason) {
Guild g = queue.poll().getAuthor().getGuild(); Guild g = queue.poll().getAuthor().getGuild();
if (queue.isEmpty()) { if (loop) {
player.startTrack(lastTrack.makeClone(), false);
} else if (queue.isEmpty()) {
g.getAudioManager().closeAudioConnection(); g.getAudioManager().closeAudioConnection();
} else { } else {
player.playTrack(queue.element().getTrack()); player.playTrack(queue.element().getTrack());
@ -67,6 +71,16 @@ public class TrackManager extends AudioEventAdapter {
queue.remove(entry); queue.remove(entry);
} }
public boolean isLoop()
{
return loop;
}
public void setLoop(boolean repeating)
{
this.loop = repeating;
}
public AudioInfo getTrackInfo(AudioTrack track) { public AudioInfo getTrackInfo(AudioTrack track) {
return queue.stream().filter(audioInfo -> audioInfo.getTrack().equals(track)).findFirst().orElse(null); return queue.stream().filter(audioInfo -> audioInfo.getTrack().equals(track)).findFirst().orElse(null);
} }