diff --git a/src/main/java/codes/ztereohype/ztereomusic/audio/CustomAudioLoadResultHandler.java b/src/main/java/codes/ztereohype/ztereomusic/audio/CustomAudioLoadResultHandler.java new file mode 100644 index 0000000..f35bab2 --- /dev/null +++ b/src/main/java/codes/ztereohype/ztereomusic/audio/CustomAudioLoadResultHandler.java @@ -0,0 +1,40 @@ +package codes.ztereohype.ztereomusic.audio; + +import com.sedmelluq.discord.lavaplayer.player.AudioLoadResultHandler; +import com.sedmelluq.discord.lavaplayer.tools.FriendlyException; +import com.sedmelluq.discord.lavaplayer.track.AudioPlaylist; +import com.sedmelluq.discord.lavaplayer.track.AudioTrack; +import net.dv8tion.jda.api.events.message.MessageReceivedEvent; + +public class CustomAudioLoadResultHandler implements AudioLoadResultHandler { + private final TrackManager trackManager; + private final MessageReceivedEvent messageEvent; + + public CustomAudioLoadResultHandler(TrackManager trackManager, MessageReceivedEvent messageEvent) { + this.trackManager = trackManager; + this.messageEvent = messageEvent; + } + + @Override + public void trackLoaded(AudioTrack track) { + this.trackManager.queue(track); + } + + @Override + public void playlistLoaded(AudioPlaylist playlist) { + for (AudioTrack track : playlist.getTracks()) { + this.trackManager.queue(track); + } + } + + @Override + public void noMatches() { + this.messageEvent.getMessage().reply("I found no matches for that song!").queue(); + } + + @Override + public void loadFailed(FriendlyException throwable) { + this.messageEvent.getMessage().reply("everything blew up and died. i'm sorry.").queue(); + } +} + diff --git a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Play.java b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Play.java index 6a8149e..dcaa040 100644 --- a/src/main/java/codes/ztereohype/ztereomusic/command/commands/Play.java +++ b/src/main/java/codes/ztereohype/ztereomusic/command/commands/Play.java @@ -1,6 +1,7 @@ package codes.ztereohype.ztereomusic.command.commands; import codes.ztereohype.ztereomusic.ZtereoMUSIC; +import codes.ztereohype.ztereomusic.audio.CustomAudioLoadResultHandler; import codes.ztereohype.ztereomusic.audio.TrackManager; import codes.ztereohype.ztereomusic.audio.TrackManagers; import codes.ztereohype.ztereomusic.command.Command; @@ -71,28 +72,6 @@ public class Play implements Command { TrackManager trackManager = TrackManagers.getGuildTrackManager(guild, messageChannel, manager.getConnectedChannel(), voiceChannel); - playerManager.loadItem(identifier, new AudioLoadResultHandler() { - @Override - public void trackLoaded(AudioTrack track) { - trackManager.queue(track); - } - - @Override - public void playlistLoaded(AudioPlaylist playlist) { - for (AudioTrack track : playlist.getTracks()) { - trackManager.queue(track); - } - } - - @Override - public void noMatches() { - messageEvent.getMessage().reply("I found no matches for that song!").queue(); - } - - @Override - public void loadFailed(FriendlyException throwable) { - messageEvent.getMessage().reply("everything blew up and died. i'm sorry.").queue(); - } - }); + playerManager.loadItem(identifier, new CustomAudioLoadResultHandler(trackManager, messageEvent)); } }