Fix issues with queue not playing.
This commit is contained in:
parent
9a6520f426
commit
4ec47df625
|
@ -295,6 +295,7 @@ public class Main extends ListenerAdapter
|
||||||
// Get an audio manager for this guild, this will be created upon first use for each guild
|
// Get an audio manager for this guild, this will be created upon first use for each guild
|
||||||
AudioManager audioManager = guild.getAudioManager();
|
AudioManager audioManager = guild.getAudioManager();
|
||||||
musicHandler = new MusicHandler();
|
musicHandler = new MusicHandler();
|
||||||
|
queueManager.setHandler(musicHandler);
|
||||||
// Create our Send/Receive handler for the audio connection
|
// Create our Send/Receive handler for the audio connection
|
||||||
// EchoHandler handler = new EchoHandler();
|
// EchoHandler handler = new EchoHandler();
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ public class MusicHandler implements AudioSendHandler, Closeable
|
||||||
// private final LinkedList<Song> songQueue = new LinkedList<>();
|
// private final LinkedList<Song> songQueue = new LinkedList<>();
|
||||||
// private final Queue<byte[]> queue = new ConcurrentLinkedQueue<>();
|
// private final Queue<byte[]> queue = new ConcurrentLinkedQueue<>();
|
||||||
private final CircularByteBuffer audioBuffer = new CircularByteBuffer(3840 * 1024);
|
private final CircularByteBuffer audioBuffer = new CircularByteBuffer(3840 * 1024);
|
||||||
private boolean playing = true;
|
private boolean shouldPlay = true;
|
||||||
private int byteCount;
|
private int byteCount;
|
||||||
|
|
||||||
private boolean arrayErr = false;
|
private boolean arrayErr = false;
|
||||||
|
@ -121,14 +121,19 @@ public class MusicHandler implements AudioSendHandler, Closeable
|
||||||
|
|
||||||
public boolean isPlaying()
|
public boolean isPlaying()
|
||||||
{
|
{
|
||||||
return playing;
|
return player != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPlaying(boolean playing)
|
public boolean isShouldPlay()
|
||||||
{
|
{
|
||||||
if (!this.playing && playing)
|
return shouldPlay;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShouldPlay(boolean shouldPlay)
|
||||||
|
{
|
||||||
|
if (!this.shouldPlay && shouldPlay)
|
||||||
nextSong();
|
nextSong();
|
||||||
this.playing = playing;
|
this.shouldPlay = shouldPlay;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -136,7 +141,7 @@ public class MusicHandler implements AudioSendHandler, Closeable
|
||||||
{
|
{
|
||||||
return player != null && player.has(1);
|
return player != null && player.has(1);
|
||||||
// If we have something in our buffer we can provide it to the send system
|
// If we have something in our buffer we can provide it to the send system
|
||||||
// return audioBuffer.getCurrentNumberOfBytes() > byteCount && playing;
|
// return audioBuffer.getCurrentNumberOfBytes() > byteCount && shouldPlay;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -42,7 +42,8 @@ public class QueueManager implements Consumer<Song>
|
||||||
{
|
{
|
||||||
jukeboxQueue.add(t);
|
jukeboxQueue.add(t);
|
||||||
|
|
||||||
handler.playNext();
|
if (!handler.isPlaying())
|
||||||
|
handler.playNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue