Skip to content

Commit 326a014

Browse files
committed
change: change plugin-island configuration file from TOML to YAML
1 parent 54ce6c4 commit 326a014

File tree

7 files changed

+53
-66
lines changed

7 files changed

+53
-66
lines changed

gradle/libs.versions.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ packetevents = "2.11.2"
2121
paperweight = "2.0.0-beta.19"
2222
postgresql = "42.7.10"
2323
shadow = "9.3.1"
24-
tomlkt = "0.6.0"
2524

2625
[plugins]
2726
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
@@ -64,4 +63,3 @@ postgresql = { module = "org.postgresql:postgresql", version.ref = "postgresql"
6463
# Utility
6564
jnoise-pipeline = { module = "de.articdive:jnoise-pipeline", version.ref = "jnoise" }
6665
kaml = { module = "com.charleskorn.kaml:kaml", version.ref = "kaml" }
67-
tomlkt = { module = "dev.eav.tomlkt:tomlkt", version.ref = "tomlkt" }

plugins/plugin-islands/src/main/kotlin/net/azisaba/vanilife/islands/Config.kt

Lines changed: 0 additions & 51 deletions
This file was deleted.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package net.azisaba.vanilife.islands
2+
3+
import com.charleskorn.kaml.Yaml
4+
import kotlinx.serialization.SerialName
5+
import kotlinx.serialization.Serializable
6+
import java.nio.file.Files
7+
import java.nio.file.StandardOpenOption
8+
import kotlin.io.path.exists
9+
import kotlin.io.path.readText
10+
import kotlin.io.path.writeText
11+
12+
private val defaultYaml: Yaml = Yaml.default
13+
14+
internal fun Main.yamlConfig(yaml: Yaml = defaultYaml): Configuration {
15+
val path = dataFolder.toPath().resolve("config.yml")
16+
if (!path.exists()) {
17+
val content = yaml.encodeToString(Configuration.serializer(), Configuration())
18+
path.parent?.let { Files.createDirectories(it) }
19+
path.writeText(
20+
content, options = arrayOf(
21+
StandardOpenOption.CREATE,
22+
StandardOpenOption.TRUNCATE_EXISTING,
23+
StandardOpenOption.WRITE
24+
)
25+
)
26+
}
27+
val pathContent = path.readText()
28+
return yaml.decodeFromString(Configuration.serializer(), pathContent)
29+
}
30+
31+
@Serializable
32+
internal data class Configuration(
33+
val database: DatabaseConfiguration = DatabaseConfiguration(),
34+
)
35+
36+
@Serializable
37+
internal data class DatabaseConfiguration(
38+
val url: String = "jdbc:postgresql://localhost:5432/vanilife",
39+
val usernameEnv: String = "DATABASE_USERNAME",
40+
val passwordEnv: String = "DATABASE_PASSWORD",
41+
val maxPoolSize: Int = 12,
42+
)

plugins/plugin-islands/src/main/kotlin/net/azisaba/vanilife/islands/Database.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import org.jetbrains.exposed.v1.jdbc.Database
88
import org.jetbrains.exposed.v1.jdbc.SchemaUtils
99
import org.jetbrains.exposed.v1.jdbc.transactions.transaction
1010

11-
internal fun Main.setupDatabase(databaseConfig: DatabaseConfig): Database {
11+
internal fun Main.setupDatabase(config: DatabaseConfiguration): Database {
1212
val hikariConfig =
1313
HikariConfig().apply {
14-
jdbcUrl = databaseConfig.url
15-
username = System.getenv(databaseConfig.usernameEnv)
16-
password = System.getenv(databaseConfig.passwordEnv)
14+
jdbcUrl = config.url
15+
username = System.getenv(config.usernameEnv)
16+
password = System.getenv(config.passwordEnv)
1717
driverClassName = "org.postgresql.Driver"
18-
maximumPoolSize = databaseConfig.maxPoolSize
18+
maximumPoolSize = config.maxPoolSize
1919
}
2020

2121
val dataSource = HikariDataSource(hikariConfig)

plugins/plugin-islands/src/main/kotlin/net/azisaba/vanilife/islands/Main.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import net.azisaba.vanilife.islands.repository.IslandRepository
1313
import net.azisaba.vanilife.islands.wrack.WrackType
1414
import org.bukkit.plugin.Plugin
1515
import org.bukkit.plugin.java.JavaPlugin
16+
import org.jetbrains.exposed.v1.jdbc.Database
1617
import org.koin.core.KoinApplication
1718
import org.koin.core.context.startKoin
1819
import org.koin.dsl.module
@@ -26,7 +27,7 @@ class Main : JavaPlugin() {
2627
}
2728

2829
override fun onEnable() {
29-
val config = tomlConfig()
30+
val config = yamlConfig()
3031
val database = setupDatabase(config.database).setupTables()
3132

3233
PacketEvents.getAPI().init()
@@ -38,8 +39,8 @@ class Main : JavaPlugin() {
3839
modules(
3940
module {
4041
single<Plugin> { this@Main }
41-
single { config }
42-
single { database }
42+
single<Configuration> { config }
43+
single<Database> { database }
4344
single<IslandRepository> { DatabaseIslandRepository(get()) }
4445
single<IslandEnchantmentRepository> { DatabaseIslandEnchantmentRepository(get()) }
4546
single<IslandManager> { IslandManager(get(), get(), Vanilife.getIslandsWorld(), get()) }

plugins/plugin-npc/src/main/kotlin/net/azisaba/vanilife/npc/Configuration.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package net.azisaba.vanilife.npc
33
import com.charleskorn.kaml.Yaml
44
import kotlinx.serialization.Serializable
55
import net.azisaba.vanilife.npc.spawn.NpcNaturalSpawner
6-
import java.nio.file.Files
76
import java.nio.file.StandardOpenOption
87
import kotlin.io.path.createDirectories
98
import kotlin.io.path.exists
@@ -13,13 +12,12 @@ import kotlin.io.path.writeText
1312
private val defaultYaml: Yaml = Yaml.default
1413

1514
internal fun Main.yamlConfig(yaml: Yaml = defaultYaml): Configuration {
16-
val path = dataFolder.toPath().resolve("config.yaml")
15+
val path = dataFolder.toPath().resolve("config.yml")
1716
if (!path.exists()) {
1817
val content = yaml.encodeToString(Configuration.serializer(), Configuration())
1918
path.parent?.createDirectories()
2019
path.writeText(
21-
content,
22-
options = arrayOf(
20+
content, options = arrayOf(
2321
StandardOpenOption.CREATE,
2422
StandardOpenOption.TRUNCATE_EXISTING,
2523
StandardOpenOption.WRITE,

plugins/plugin-runtime/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,4 @@ dependencies {
1717
api(libs.packed.server)
1818
api(libs.packetevents)
1919
api(libs.postgresql)
20-
api(libs.tomlkt)
2120
}

0 commit comments

Comments
 (0)