ottobotv2/src/main/kotlin/nl/voidcorp/discord/music/AudioLoadHandler.kt

32 lines
906 B
Kotlin

package nl.voidcorp.discord.music
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
class AudioLoadHandler(private val trackScheduler: TrackScheduler) : AudioLoadResultHandler {
override fun loadFailed(exception: FriendlyException) {
throw exception
}
override fun trackLoaded(track: AudioTrack) {
trackScheduler.queue(track)
}
override fun noMatches() {
}
override fun playlistLoaded(playlist: AudioPlaylist) {
if (playlist.isSearchResult) {
trackScheduler.queue(playlist.selectedTrack ?: playlist.tracks.first())
} else
for (t in playlist.tracks) {
trackScheduler.queue(t)
}
}
}