32 lines
906 B
Kotlin
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)
|
|
}
|
|
}
|
|
}
|