Merge pull request #332 from BigBotNetwork/greg-dev

Fix
This commit is contained in:
Skidder 2020-01-19 11:52:48 +01:00 committed by GitHub
commit f8dbd302ab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 5 deletions

View file

@ -16,7 +16,6 @@ import net.dv8tion.jda.api.entities.Activity;
import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder; import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder;
import net.dv8tion.jda.api.sharding.ShardManager; import net.dv8tion.jda.api.sharding.ShardManager;
import javax.security.auth.login.LoginException;
import java.util.List; import java.util.List;
public class Hadder { public class Hadder {

View file

@ -53,7 +53,7 @@ public class AudioManager {
public AudioPlayer createPlayer(Guild guild) { public AudioPlayer createPlayer(Guild guild) {
AudioPlayer nPlayer = myManager.createPlayer(); AudioPlayer nPlayer = myManager.createPlayer();
TrackManager manager = new TrackManager(nPlayer); TrackManager manager = new TrackManager(nPlayer, this);
nPlayer.addListener(manager); nPlayer.addListener(manager);
guild.getAudioManager().setSendingHandler(new AudioPlayerSendHandler(nPlayer)); guild.getAudioManager().setSendingHandler(new AudioPlayerSendHandler(nPlayer));
players.put(guild.getId(), new AbstractMap.SimpleEntry<>(nPlayer, manager)); players.put(guild.getId(), new AbstractMap.SimpleEntry<>(nPlayer, manager));

View file

@ -18,10 +18,12 @@ import java.util.concurrent.LinkedBlockingQueue;
public class TrackManager extends AudioEventAdapter { public class TrackManager extends AudioEventAdapter {
private final AudioPlayer player; private final AudioPlayer player;
private final AudioManager manager;
private final Queue<AudioInfo> queue; private final Queue<AudioInfo> queue;
private boolean loop = false; private boolean loop = false;
public TrackManager(AudioPlayer player) { public TrackManager(AudioPlayer player, AudioManager manager) {
this.manager = manager;
this.player = player; this.player = player;
this.queue = new LinkedBlockingQueue<>(); this.queue = new LinkedBlockingQueue<>();
} }
@ -48,13 +50,16 @@ 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();
if (loop) { if (loop) {
player.playTrack(track.makeClone()); player.playTrack(track.makeClone());
} else if (queue.isEmpty()) { } else if (queue.isEmpty()) {
Guild g = queue.poll().getAuthor().getGuild(); manager.players.remove(g.getId());
manager.getPlayer(g).destroy();
manager.getTrackManager(g).purgeQueue();
g.getAudioManager().closeAudioConnection(); g.getAudioManager().closeAudioConnection();
} else { } else {
player.playTrack(queue.element().getTrack().makeClone()); player.playTrack(queue.element().getTrack());
} }
} }