27 lines
890 B
Kotlin
27 lines
890 B
Kotlin
package moe.kageru.kagebot.config
|
|
|
|
import arrow.core.ListK
|
|
import arrow.core.k
|
|
import com.uchuhimo.konf.Config
|
|
import com.uchuhimo.konf.source.toml
|
|
import moe.kageru.kagebot.command.Command
|
|
import moe.kageru.kagebot.features.Features
|
|
import org.javacord.api.entity.server.Server
|
|
|
|
object Config {
|
|
val systemSpec = Config { addSpec(SystemSpec) }.from.toml
|
|
val localeSpec = Config { addSpec(LocalizationSpec) }.from.toml
|
|
val commandSpec = Config { addSpec(CommandSpec) }.from.toml
|
|
val featureSpec = Config { addSpec(FeatureSpec) }.from.toml
|
|
|
|
lateinit var system: Config
|
|
lateinit var localization: Config
|
|
lateinit var commandConfig: Config
|
|
lateinit var featureConfig: Config
|
|
lateinit var server: Server
|
|
|
|
// for easier access
|
|
val features: Features get() = featureConfig[FeatureSpec.features]
|
|
val commands: ListK<Command> get() = commandConfig[CommandSpec.command].k()
|
|
}
|