commit
f8dbd302ab
3 changed files with 9 additions and 5 deletions
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
|
|
|
||||||
|
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue