Fix #332
2 changed files with 7 additions and 2 deletions
|
|
@ -53,7 +53,7 @@ public class AudioManager {
|
|||
|
||||
public AudioPlayer createPlayer(Guild guild) {
|
||||
AudioPlayer nPlayer = myManager.createPlayer();
|
||||
TrackManager manager = new TrackManager(nPlayer);
|
||||
TrackManager manager = new TrackManager(nPlayer, this);
|
||||
nPlayer.addListener(manager);
|
||||
guild.getAudioManager().setSendingHandler(new AudioPlayerSendHandler(nPlayer));
|
||||
players.put(guild.getId(), new AbstractMap.SimpleEntry<>(nPlayer, manager));
|
||||
|
|
|
|||
|
|
@ -18,10 +18,12 @@ import java.util.concurrent.LinkedBlockingQueue;
|
|||
public class TrackManager extends AudioEventAdapter {
|
||||
|
||||
private final AudioPlayer player;
|
||||
private final AudioManager manager;
|
||||
private final Queue<AudioInfo> queue;
|
||||
private boolean loop = false;
|
||||
|
||||
public TrackManager(AudioPlayer player) {
|
||||
public TrackManager(AudioPlayer player, AudioManager manager) {
|
||||
this.manager = manager;
|
||||
this.player = player;
|
||||
this.queue = new LinkedBlockingQueue<>();
|
||||
}
|
||||
|
|
@ -52,6 +54,9 @@ public class TrackManager extends AudioEventAdapter {
|
|||
if (loop) {
|
||||
player.playTrack(track.makeClone());
|
||||
} else if (queue.isEmpty()) {
|
||||
manager.players.remove(g.getId());
|
||||
manager.getPlayer(g).destroy();
|
||||
manager.getTrackManager(g).purgeQueue();
|
||||
g.getAudioManager().closeAudioConnection();
|
||||
} else {
|
||||
player.playTrack(queue.element().getTrack());
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue