38 lines
1.7 KiB
Kotlin
38 lines
1.7 KiB
Kotlin
package nl.voidcorp.discord
|
|
|
|
import com.sedmelluq.discord.lavaplayer.source.bandcamp.BandcampAudioSourceManager
|
|
import com.sedmelluq.discord.lavaplayer.source.beam.BeamAudioSourceManager
|
|
import com.sedmelluq.discord.lavaplayer.source.soundcloud.SoundCloudAudioSourceManager
|
|
import com.sedmelluq.discord.lavaplayer.source.twitch.TwitchStreamAudioSourceManager
|
|
import com.sedmelluq.discord.lavaplayer.source.vimeo.VimeoAudioSourceManager
|
|
import net.dv8tion.jda.api.entities.Activity
|
|
import net.dv8tion.jda.api.hooks.ListenerAdapter
|
|
import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder
|
|
import nl.voidcorp.discord.music.CustomYoutubeSourceManager
|
|
import nl.voidcorp.discord.music.PlayerManager
|
|
import nl.voidcorp.discord.storage.ConfigStore
|
|
import org.springframework.stereotype.Service
|
|
|
|
|
|
@Service
|
|
class Loader(listeners: List<ListenerAdapter>, playerManager: PlayerManager, store: ConfigStore) {
|
|
init {
|
|
val token = System.getenv("DISCORD_TOKEN") ?: throw RuntimeException("'DISCORD_TOKEN' not set!")
|
|
val builder = DefaultShardManagerBuilder(token)
|
|
|
|
|
|
builder.addEventListeners(listeners)
|
|
|
|
jda = builder.build()
|
|
jda.setActivityProvider {
|
|
Activity.playing("v${store.version} ($it)")
|
|
}
|
|
|
|
playerManager.registerSourceManager(SoundCloudAudioSourceManager())
|
|
playerManager.registerSourceManager(BandcampAudioSourceManager())
|
|
playerManager.registerSourceManager(VimeoAudioSourceManager())
|
|
playerManager.registerSourceManager(TwitchStreamAudioSourceManager())
|
|
playerManager.registerSourceManager(BeamAudioSourceManager())
|
|
playerManager.registerSourceManager(CustomYoutubeSourceManager())
|
|
}
|
|
} |