diff --git a/README.md b/README.md index fc12b38..f503eab 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Add the following to the bottom of your Ledger config file: ```toml [database_extensions] -h2 = true +database = "H2" ``` ## MySQL @@ -23,7 +23,7 @@ Add the following to the bottom of your Ledger config file: ```toml [database_extensions] -mysql = true +database = "MYSQL" url = "" username = "" password = "" diff --git a/src/main/kotlin/net.quiltservertools.ledger.databases/DatabaseExtensionSpec.kt b/src/main/kotlin/net.quiltservertools.ledger.databases/DatabaseExtensionSpec.kt index 870a71a..3a08ddc 100644 --- a/src/main/kotlin/net.quiltservertools.ledger.databases/DatabaseExtensionSpec.kt +++ b/src/main/kotlin/net.quiltservertools.ledger.databases/DatabaseExtensionSpec.kt @@ -3,8 +3,7 @@ package net.quiltservertools.ledger.databases import com.github.quiltservertools.libs.com.uchuhimo.konf.ConfigSpec object DatabaseExtensionSpec : ConfigSpec("database_extensions") { - val h2 by optional(false, "h2") - val mySql by optional(false, "mysql") + val database by optional(Databases.SQLITE, "database") val userName by optional("root", "username") val password by optional("", "password") val url by optional("localhost", "url") diff --git a/src/main/kotlin/net.quiltservertools.ledger.databases/Databases.kt b/src/main/kotlin/net.quiltservertools.ledger.databases/Databases.kt new file mode 100644 index 0000000..7b24792 --- /dev/null +++ b/src/main/kotlin/net.quiltservertools.ledger.databases/Databases.kt @@ -0,0 +1,7 @@ +package net.quiltservertools.ledger.databases + +enum class Databases { + SQLITE, + MYSQL, + H2 +} \ No newline at end of file diff --git a/src/main/kotlin/net.quiltservertools.ledger.databases/LedgerDatabaseExtension.kt b/src/main/kotlin/net.quiltservertools.ledger.databases/LedgerDatabaseExtension.kt index b797585..fec6a69 100644 --- a/src/main/kotlin/net.quiltservertools.ledger.databases/LedgerDatabaseExtension.kt +++ b/src/main/kotlin/net.quiltservertools.ledger.databases/LedgerDatabaseExtension.kt @@ -13,12 +13,12 @@ class LedgerDatabaseExtension : DatabaseExtension { override fun getConfigSpecs(): List = listOf(DatabaseExtensionSpec) override fun getDatabase(server: MinecraftServer): Database { - if (Ledger.config[DatabaseExtensionSpec.h2]) { + if (Ledger.config[DatabaseExtensionSpec.database] == Databases.H2) { return Database.connect( url = "jdbc:h2:${server.getSavePath(WorldSavePath.ROOT).resolve("ledger.h2").toFile()};MODE=MySQL", driver = "org.h2.Driver" ) - } else if (Ledger.config[DatabaseExtensionSpec.mySql]) { + } else if (Ledger.config[DatabaseExtensionSpec.database] == Databases.MYSQL) { return Database.connect( url = "jdbc:mysql://${Ledger.config[DatabaseExtensionSpec.url]}?rewriteBatchedStatements=true", driver = "com.mysql.cj.jdbc.Driver", @@ -30,9 +30,9 @@ class LedgerDatabaseExtension : DatabaseExtension { } override fun getIdentifier(): Identifier { - if (Ledger.config.contains(DatabaseExtensionSpec.h2) && Ledger.config[DatabaseExtensionSpec.h2]) { + if (Ledger.config[DatabaseExtensionSpec.database] == Databases.H2) { return h2Identifier - } else if (Ledger.config.contains(DatabaseExtensionSpec.mySql) && Ledger.config[DatabaseExtensionSpec.mySql]) { + } else if (Ledger.config[DatabaseExtensionSpec.database] == Databases.MYSQL) { return mySqlIdentifier }