Loop function
This commit is contained in:
parent
c687cef65d
commit
4198f1e245
1 changed files with 15 additions and 1 deletions
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue