Merge remote-tracking branch 'origin/master' into develop

This commit is contained in:
Matthew Cech
2020-02-09 20:11:00 -08:00
2 changed files with 45 additions and 48 deletions
+43 -46
View File
@@ -20,7 +20,6 @@ public class AudioUtils
public AudioManager am; public AudioManager am;
public final AudioPlayer player; public final AudioPlayer player;
public final AudioPlayerManager playerManager; public final AudioPlayerManager playerManager;
private boolean isPlaying = false;
private ArrayList <AudioTrack> playlist = new ArrayList<AudioTrack>(); private ArrayList <AudioTrack> playlist = new ArrayList<AudioTrack>();
@@ -86,11 +85,8 @@ public class AudioUtils
public class SmallAudio implements AudioLoadResultHandler public class SmallAudio implements AudioLoadResultHandler
{ {
private AudioPlayer player;
private SmallAudio(AudioPlayer player) private SmallAudio(AudioPlayer player)
{ {
this.player = player;
} }
@Override public void loadFailed(FriendlyException arg0) { } @Override public void loadFailed(FriendlyException arg0) { }
@@ -104,11 +100,6 @@ public class AudioUtils
{ {
playlist.add(track); playlist.add(track);
} }
if(player.getPlayingTrack() == null)
{
startPlay(player);
}
} }
} }
@@ -117,50 +108,20 @@ public class AudioUtils
{ {
guild.getAudioManager().setSendingHandler(new AudioPlayerSendHandler(player)); guild.getAudioManager().setSendingHandler(new AudioPlayerSendHandler(player));
playerManager.loadItemOrdered(player, videoURL, new SmallAudio(player)); playerManager.loadItemOrdered(player, videoURL, new SmallAudio(player));
try {
Thread.sleep(1000);
return null; } catch (InterruptedException e) {}
} if(player.getPlayingTrack() == null)
private void startPlay(AudioPlayer player)
{
do
{ {
if(player.getPlayingTrack() == null) MusicController control = new MusicController(player, playlist);
{ control.start();
System.out.println("HERE");
if(playlist.isEmpty())
{
isPlaying = false;
}
else
{
System.out.println("NEXT SONG");
player.startTrack(playlist.get(0), false);
isPlaying = true;
if(!playlist.isEmpty())
playlist.remove(0);
}
}
} }
while(isPlaying); return null;
isPlaying = false;
} }
public String skipVideo(AudioPlayer player) public String skipVideo(AudioPlayer player)
{ {
player.stopTrack(); player.stopTrack();
try
{
playlist.remove(0);
player.getPlayingTrack();
}
catch(Exception e)
{
return "Stopped";
}
return "Skipped"; return "Skipped";
} }
@@ -176,3 +137,39 @@ public class AudioUtils
return playlist; return playlist;
} }
} }
class MusicController extends Thread
{
AudioPlayer player;
private ArrayList <AudioTrack> playlist;
public MusicController(AudioPlayer player, ArrayList <AudioTrack> playlist)
{
this.player = player;
this.playlist = playlist;
}
@Override
public void run()
{
AudioTrack nowPlaying = null;
do
{
if(!playlist.isEmpty() || nowPlaying != null)
{
if(player.getPlayingTrack() == null)
{
if(playlist.isEmpty())
nowPlaying = null;
else
{
nowPlaying = playlist.get(0);
playlist.remove(0);
}
player.startTrack(nowPlaying, false);
}
}
}
while(!playlist.isEmpty() || player.getPlayingTrack() != null);
}
}