@@ -13,38 +13,30 @@ class LedgerDatabaseExtension : DatabaseExtension {
1313 override fun getConfigSpecs (): List <ConfigSpec > = listOf (DatabaseExtensionSpec )
1414
1515 override fun getDatabase (server : MinecraftServer ): Database {
16- if (Ledger .config[DatabaseExtensionSpec .database] == Databases .H2 ) {
17- return Database .connect(
18- url = " jdbc:h2:${server.getSavePath(WorldSavePath .ROOT ).resolve(" ledger.h2" ).toFile()} ;MODE=MySQL" ,
19- driver = " org.h2.Driver"
16+ return when (Ledger .config[DatabaseExtensionSpec .database]) {
17+ Databases .SQLITE -> Database .connect(
18+ url = " jdbc:sqlite:${server.getSavePath(WorldSavePath .ROOT ).resolve(" ledger.sqlite" ).pathString} " ,
2019 )
21- } else if (Ledger .config[DatabaseExtensionSpec .database] == Databases .MYSQL ) {
22- return Database .connect(
20+ Databases .H2 -> Database .connect(
21+ url = " jdbc:h2:${server.getSavePath(WorldSavePath .ROOT ).resolve(" ledger.h2" ).toFile()} ;MODE=MySQL"
22+ )
23+ Databases .MYSQL -> Database .connect(
2324 url = " jdbc:mysql://${Ledger .config[DatabaseExtensionSpec .url]} ?rewriteBatchedStatements=true" ,
24- driver = " com.mysql.cj.jdbc.Driver" ,
25+ user = Ledger .config[DatabaseExtensionSpec .userName],
26+ password = Ledger .config[DatabaseExtensionSpec .password]
27+ )
28+ Databases .POSTGRESQL -> Database .connect(
29+ url = " jdbc:postgresql://${Ledger .config[DatabaseExtensionSpec .url]} ?rewriteBatchedStatements=true" ,
2530 user = Ledger .config[DatabaseExtensionSpec .userName],
2631 password = Ledger .config[DatabaseExtensionSpec .password]
2732 )
2833 }
29- return sqlite(server)
30- }
31-
32- override fun getIdentifier (): Identifier {
33- if (Ledger .config[DatabaseExtensionSpec .database] == Databases .H2 ) {
34- return h2Identifier
35- } else if (Ledger .config[DatabaseExtensionSpec .database] == Databases .MYSQL ) {
36- return mySqlIdentifier
37-
38- }
39- return Ledger .identifier(Ledger .DEFAULT_DATABASE )
4034 }
4135
42- private fun sqlite (server : MinecraftServer ) = Database .connect(
43- url = " jdbc:sqlite:${server.getSavePath(WorldSavePath .ROOT ).resolve(" ledger.sqlite" ).pathString} " ,
44- )
45-
46- companion object {
47- val h2Identifier = Ledger .identifier(" h2_extension" )
48- val mySqlIdentifier = Ledger .identifier(" mysql_extension" )
36+ override fun getIdentifier (): Identifier = when (Ledger .config[DatabaseExtensionSpec .database]) {
37+ Databases .MYSQL -> Ledger .identifier(" mysql_extension" )
38+ Databases .H2 -> Ledger .identifier(" h2_extension" )
39+ Databases .POSTGRESQL -> Ledger .identifier(" postgresql_extension" )
40+ else -> Ledger .identifier(Ledger .DEFAULT_DATABASE )
4941 }
5042}
0 commit comments