mirror of
https://github.com/GayPizzaSpecifications/foundation.git
synced 2025-08-03 13:31:32 +00:00
Implement common configuration loading mechanism.
This commit is contained in:
@ -1,11 +1,8 @@
|
||||
package gay.pizza.foundation.core.features.backup
|
||||
|
||||
import com.charleskorn.kaml.Yaml
|
||||
import gay.pizza.foundation.core.FoundationCorePlugin
|
||||
import gay.pizza.foundation.core.abstraction.Feature
|
||||
import gay.pizza.foundation.core.features.scheduler.cancel
|
||||
import gay.pizza.foundation.core.features.scheduler.cron
|
||||
import gay.pizza.foundation.shared.copyDefaultConfig
|
||||
import org.koin.core.component.inject
|
||||
import org.koin.dsl.module
|
||||
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials
|
||||
@ -13,7 +10,6 @@ import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider
|
||||
import software.amazon.awssdk.regions.Region
|
||||
import software.amazon.awssdk.services.s3.S3Client
|
||||
import java.net.URI
|
||||
import kotlin.io.path.inputStream
|
||||
|
||||
class BackupFeature : Feature() {
|
||||
private val s3Client by inject<S3Client>()
|
||||
@ -46,14 +42,10 @@ class BackupFeature : Feature() {
|
||||
|
||||
override fun module() = module {
|
||||
single {
|
||||
val configPath = copyDefaultConfig<FoundationCorePlugin>(
|
||||
plugin.slF4JLogger,
|
||||
plugin.pluginDataPath,
|
||||
"backup.yaml",
|
||||
)
|
||||
return@single Yaml.default.decodeFromStream(
|
||||
plugin.loadConfigurationWithDefault(
|
||||
plugin,
|
||||
BackupConfig.serializer(),
|
||||
configPath.inputStream()
|
||||
"backup.yaml"
|
||||
)
|
||||
}
|
||||
single {
|
||||
|
@ -1,8 +1,5 @@
|
||||
package gay.pizza.foundation.core.features.gameplay
|
||||
|
||||
import com.charleskorn.kaml.Yaml
|
||||
import gay.pizza.foundation.shared.copyDefaultConfig
|
||||
import gay.pizza.foundation.core.FoundationCorePlugin
|
||||
import gay.pizza.foundation.core.abstraction.Feature
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Material
|
||||
@ -17,21 +14,16 @@ import org.bukkit.event.player.PlayerInteractEntityEvent
|
||||
import org.bukkit.inventory.ItemStack
|
||||
import org.koin.core.component.inject
|
||||
import org.koin.dsl.module
|
||||
import kotlin.io.path.inputStream
|
||||
|
||||
class GameplayFeature : Feature() {
|
||||
private val config by inject<GameplayConfig>()
|
||||
|
||||
override fun module() = module {
|
||||
single {
|
||||
val configPath = copyDefaultConfig<FoundationCorePlugin>(
|
||||
plugin.slF4JLogger,
|
||||
plugin.pluginDataPath,
|
||||
"gameplay.yaml",
|
||||
)
|
||||
return@single Yaml.default.decodeFromStream(
|
||||
plugin.loadConfigurationWithDefault(
|
||||
plugin,
|
||||
GameplayConfig.serializer(),
|
||||
configPath.inputStream()
|
||||
"gameplay.yaml"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -1,12 +1,9 @@
|
||||
package gay.pizza.foundation.core.features.player
|
||||
|
||||
import com.charleskorn.kaml.Yaml
|
||||
import com.google.common.cache.Cache
|
||||
import com.google.common.cache.CacheBuilder
|
||||
import com.google.common.cache.RemovalCause
|
||||
import gay.pizza.foundation.core.FoundationCorePlugin
|
||||
import gay.pizza.foundation.core.abstraction.Feature
|
||||
import gay.pizza.foundation.shared.copyDefaultConfig
|
||||
import net.kyori.adventure.text.Component
|
||||
import org.bukkit.GameMode
|
||||
import org.bukkit.event.EventHandler
|
||||
@ -16,7 +13,6 @@ import org.bukkit.event.player.PlayerMoveEvent
|
||||
import org.bukkit.event.player.PlayerQuitEvent
|
||||
import org.koin.core.component.inject
|
||||
import java.time.Duration
|
||||
import kotlin.io.path.inputStream
|
||||
|
||||
class PlayerFeature : Feature() {
|
||||
private val config by inject<PlayerConfig>()
|
||||
@ -53,14 +49,10 @@ class PlayerFeature : Feature() {
|
||||
|
||||
override fun module() = org.koin.dsl.module {
|
||||
single {
|
||||
val configPath = copyDefaultConfig<FoundationCorePlugin>(
|
||||
plugin.slF4JLogger,
|
||||
plugin.pluginDataPath,
|
||||
"player.yaml",
|
||||
)
|
||||
return@single Yaml.default.decodeFromStream(
|
||||
plugin.loadConfigurationWithDefault(
|
||||
plugin,
|
||||
PlayerConfig.serializer(),
|
||||
configPath.inputStream()
|
||||
"player.yaml"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user