Skip to content

Commit

Permalink
update astralibs (#84)
Browse files Browse the repository at this point in the history
  • Loading branch information
makeevrserg committed Sep 11, 2024
1 parent 1325641 commit 3cc417a
Show file tree
Hide file tree
Showing 16 changed files with 57 additions and 113 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ makeevrserg.java.ktarget=21
# Project
makeevrserg.project.name=AspeKt
makeevrserg.project.group=ru.astrainteractive.aspekt
makeevrserg.project.version.string=2.27.0
makeevrserg.project.version.string=2.27.1
makeevrserg.project.description=Essentials plugin for EmpireProjekt
makeevrserg.project.developers=makeevrserg|Makeev Roman|[email protected]
makeevrserg.project.url=https://empireprojekt.ru
Expand Down
7 changes: 5 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ kotlin-kaml = "0.61.0" # https://github.com/charleskorn/kaml
# Drivers
driver-jdbc = "3.46.1.0" # https://github.com/xerial/sqlite-jdbc
driver-mysql = "8.0.33" # https://github.com/mysql/mysql-connector-j
driver-h2 = "2.2.224" # https://github.com/h2database/h2database

# klibs
klibs-gradleplugin = "1.3.4" # https://github.com/makeevrserg/gradle-plugin
Expand All @@ -22,7 +23,7 @@ minecraft-spigot = "1.21-R0.1-SNAPSHOT" # https://github.com/PaperMC/Paper
minecraft-papi = "2.11.6" # https://github.com/PlaceholderAPI/PlaceholderAPI
minecraft-protocollib = "5.1.0" # https://github.com/dmulloy2/ProtocolLib
minecraft-vault = "1.7.1" # https://github.com/MilkBowl/VaultAPI
minecraft-astralibs = "3.13.0" # https://github.com/Astra-Interactive/AstraLibs
minecraft-astralibs = "3.14.1" # https://github.com/Astra-Interactive/AstraLibs
minecraft-bstats = "3.0.2" # https://github.com/Bastian/bStats
minecraft-mockbukkit = "3.108.0" #https://github.com/MockBukkit/MockBukkit
minecraft-luckperms = "5.4" # https://github.com/LuckPerms/LuckPerms
Expand Down Expand Up @@ -64,6 +65,7 @@ gradle-shadow = { module = "gradle.plugin.com.github.johnrengelman:shadow", vers
# Drivers
driver-jdbc = { module = "org.xerial:sqlite-jdbc", version.ref = "driver-jdbc" }
driver-mysql = { module = "mysql:mysql-connector-java", version.ref = "driver-mysql" }
driver-h2 = { module = "com.h2database:h2", version.ref = "driver-h2" }

# Testing
tests-kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test" }
Expand Down Expand Up @@ -100,6 +102,7 @@ klibs-kstorage = { module = "ru.astrainteractive.klibs:kstorage", version.ref =

# AstraLibs
minecraft-astralibs-orm = { module = "ru.astrainteractive.astralibs:orm", version.ref = "minecraft-astralibs" }
minecraft-astralibs-exposed = { module = "ru.astrainteractive.astralibs:exposed", version.ref = "minecraft-astralibs" }
minecraft-astralibs-core = { module = "ru.astrainteractive.astralibs:core", version.ref = "minecraft-astralibs" }
minecraft-astralibs-menu-bukkit = { module = "ru.astrainteractive.astralibs:menu-bukkit", version.ref = "minecraft-astralibs" }
minecraft-astralibs-core-bukkit = { module = "ru.astrainteractive.astralibs:core-bukkit", version.ref = "minecraft-astralibs" }
Expand All @@ -111,7 +114,7 @@ cache4k = { module = "io.github.reactivecircus.cache4k:cache4k", version.ref = "
[bundles]
exposed = ["exposed-java-time", "exposed-jdbc", "exposed-dao", "exposed-core"]
minecraft-bukkit = ["minecraft-paper-api", "minecraft-spigot-api", "minecraft-spigot-core", "minecraft-vaultapi", "minecraft-papi"]
testing-kotlin = ["kotlin-coroutines-core", "kotlin-coroutines-coreJvm", "kotlin-coroutines-test", "driver-jdbc", "driver-mysql", "kotlin-serialization", "kotlin-serializationJson"]
testing-kotlin = ["kotlin-coroutines-core", "kotlin-coroutines-coreJvm", "kotlin-coroutines-test", "driver-jdbc", "driver-mysql", "driver-h2", "kotlin-serialization", "kotlin-serializationJson"]
kotlin = ["kotlin-coroutines-core", "kotlin-coroutines-coreJvm", "kotlin-serialization", "kotlin-serializationJson", "kotlin-serializationKaml", "kotlin-gradle"]


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import ru.astrainteractive.astralibs.command.api.argumenttype.PrimitiveArgumentT
import ru.astrainteractive.astralibs.command.api.context.BukkitCommandContext
import ru.astrainteractive.astralibs.command.api.context.BukkitCommandContextExt.requireArgument
import ru.astrainteractive.astralibs.command.api.context.BukkitCommandContextExt.requirePermission
import ru.astrainteractive.astralibs.command.api.exception.BadArgumentException
import ru.astrainteractive.astralibs.command.api.exception.DefaultCommandException
import ru.astrainteractive.astralibs.command.api.parser.CommandParser

internal class AdminPrivateCommandParser : CommandParser<AdminPrivateCommand.Model, BukkitCommandContext> {
Expand Down Expand Up @@ -47,7 +47,7 @@ internal class AdminPrivateCommandParser : CommandParser<AdminPrivateCommand.Mod
)
}

else -> throw BadArgumentException(args.getOrNull(0), PrimitiveArgumentType.String)
else -> throw DefaultCommandException.BadArgumentException(args.getOrNull(0), PrimitiveArgumentType.String)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ package ru.astrainteractive.aspekt.module.adminprivate.command.adminprivate

import ru.astrainteractive.aspekt.module.adminprivate.command.di.AdminPrivateCommandDependencies
import ru.astrainteractive.aspekt.module.adminprivate.model.ChunkFlag
import ru.astrainteractive.astralibs.command.api.exception.BadArgumentException
import ru.astrainteractive.astralibs.command.api.exception.NoPermissionException
import ru.astrainteractive.astralibs.command.api.exception.DefaultCommandException
import ru.astrainteractive.astralibs.command.api.util.PluginExt.registerCommand
import ru.astrainteractive.astralibs.util.StringListExt.withEntry

Expand Down Expand Up @@ -37,12 +36,20 @@ internal class AdminPrivateCommandRegistry(
context.sender.sendMessage(translation.general.onlyPlayerCommand.component)
}

is BadArgumentException -> with(kyoriComponentSerializer) {
context.sender.sendMessage(translation.general.wrongUsage.component)
}
is DefaultCommandException -> with(kyoriComponentSerializer) {
when (throwable) {
is DefaultCommandException.ArgumentTypeException -> {
context.sender.sendMessage(translation.general.wrongUsage.component)
}

is DefaultCommandException.BadArgumentException -> {
context.sender.sendMessage(translation.general.wrongUsage.component)
}

is NoPermissionException -> with(kyoriComponentSerializer) {
context.sender.sendMessage(translation.general.noPermission.component)
is DefaultCommandException.NoPermissionException -> {
context.sender.sendMessage(translation.general.noPermission.component)
}
}
}
}
}
Expand Down

This file was deleted.

1 change: 1 addition & 0 deletions modules/economy/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ dependencies {
// AstraLibs
implementation(libs.minecraft.astralibs.core)
implementation(libs.minecraft.astralibs.orm)
implementation(libs.minecraft.astralibs.exposed)
implementation(libs.minecraft.astralibs.command)
implementation(libs.minecraft.astralibs.command.bukkit)
implementation(libs.klibs.kdi)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import ru.astrainteractive.astralibs.command.api.context.BukkitCommandContext
import ru.astrainteractive.astralibs.command.api.context.BukkitCommandContextExt.argumentOrElse
import ru.astrainteractive.astralibs.command.api.context.BukkitCommandContextExt.requireArgument
import ru.astrainteractive.astralibs.command.api.context.BukkitCommandContextExt.requirePermission
import ru.astrainteractive.astralibs.command.api.exception.BadArgumentException
import ru.astrainteractive.astralibs.command.api.exception.DefaultCommandException
import ru.astrainteractive.astralibs.command.api.parser.CommandParser

internal class EkonCommandParser(
Expand Down Expand Up @@ -72,7 +72,7 @@ internal class EkonCommandParser(
}
}

else -> throw BadArgumentException(args.getOrNull(0), PrimitiveArgumentType.String)
else -> throw DefaultCommandException.BadArgumentException(args.getOrNull(0), PrimitiveArgumentType.String)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ import ru.astrainteractive.aspekt.module.economy.database.dao.CachedDao
import ru.astrainteractive.aspekt.module.economy.database.dao.EconomyDao
import ru.astrainteractive.aspekt.module.economy.model.CurrencyModel
import ru.astrainteractive.aspekt.plugin.PluginTranslation
import ru.astrainteractive.astralibs.command.api.exception.ArgumentTypeException
import ru.astrainteractive.astralibs.command.api.exception.BadArgumentException
import ru.astrainteractive.astralibs.command.api.exception.NoPermissionException
import ru.astrainteractive.astralibs.command.api.exception.DefaultCommandException
import ru.astrainteractive.astralibs.command.api.util.PluginExt.registerCommand
import ru.astrainteractive.astralibs.kyori.KyoriComponentSerializer
import ru.astrainteractive.astralibs.logging.JUtiltLogger
Expand Down Expand Up @@ -93,12 +91,20 @@ internal class EkonCommandRegistry(
),
errorHandler = { context, throwable ->
when (throwable) {
is BadArgumentException -> with(kyori) {
context.sender.sendMessage(translation.general.wrongUsage.component)
}
is DefaultCommandException -> with(kyori) {
when (throwable) {
is DefaultCommandException.ArgumentTypeException -> {
context.sender.sendMessage(translation.general.wrongUsage.component)
}

is ArgumentTypeException -> with(kyori) {
context.sender.sendMessage(translation.general.wrongUsage.component)
is DefaultCommandException.BadArgumentException -> {
context.sender.sendMessage(translation.general.wrongUsage.component)
}

is DefaultCommandException.NoPermissionException -> {
context.sender.sendMessage(translation.general.noPermission.component)
}
}
}

is CurrencyArgument.CurrencyNotFoundException -> with(kyori) {
Expand All @@ -109,10 +115,6 @@ internal class EkonCommandRegistry(
context.sender.sendMessage(translation.economy.playerNotFound.component)
}

is NoPermissionException -> with(kyori) {
context.sender.sendMessage(translation.general.noPermission.component)
}

else -> with(kyori) {
error { "#errorHandler handler for ${throwable::class} not found" }
context.sender.sendMessage(translation.general.noPermission.component)
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@ import ru.astrainteractive.aspekt.module.economy.database.dao.impl.CachedDaoImpl
import ru.astrainteractive.aspekt.module.economy.database.dao.impl.EconomyDaoImpl
import ru.astrainteractive.aspekt.module.economy.database.table.CurrencyTable
import ru.astrainteractive.aspekt.module.economy.database.table.PlayerCurrencyTable
import ru.astrainteractive.aspekt.module.economy.model.DatabaseConfiguration
import ru.astrainteractive.aspekt.util.FlowExt.mapHistory
import ru.astrainteractive.astralibs.exposed.factory.DatabaseFactory
import ru.astrainteractive.astralibs.exposed.model.DatabaseConfiguration
import ru.astrainteractive.astralibs.lifecycle.Lifecycle
import ru.astrainteractive.astralibs.util.FlowExt.mapCached
import ru.astrainteractive.klibs.kstorage.api.flow.StateFlowKrate
import java.io.File
import kotlin.coroutines.CoroutineContext
Expand All @@ -33,22 +34,9 @@ internal interface EconomyDatabaseModule {
coroutineScope: CoroutineScope,
ioDispatcher: CoroutineContext
) : EconomyDatabaseModule {
private val databaseFlow: Flow<Database> = dbConfig.cachedStateFlow.mapHistory { dbConfig, previous ->
private val databaseFlow: Flow<Database> = dbConfig.cachedStateFlow.mapCached { dbConfig, previous ->
previous?.connector?.invoke()?.close()

val database = when (dbConfig) {
is DatabaseConfiguration.H2 -> Database.connect(
url = "jdbc:sqlite:${dataFolder.resolve("${dbConfig.name}.db").absolutePath}",
driver = "org.sqlite.JDBC"
)

is DatabaseConfiguration.MySql -> Database.connect(
url = "jdbc:mysql://${dbConfig.host}:${dbConfig.port}/${dbConfig.name}",
driver = dbConfig.driver,
user = dbConfig.user,
password = dbConfig.password
)
}
val database = DatabaseFactory(dataFolder).create(dbConfig)
TransactionManager.manager.defaultIsolationLevel = java.sql.Connection.TRANSACTION_SERIALIZABLE
runBlocking {
transaction(database) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ru.astrainteractive.aspekt.module.economy.database.table

import ru.astrainteractive.aspekt.module.economy.database.core.StringIdTable
import ru.astrainteractive.astralibs.exposed.table.StringIdTable

internal object CurrencyTable : StringIdTable(name = "CURRENCY") {
val name = text("name")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ru.astrainteractive.aspekt.module.economy.database.table

import ru.astrainteractive.aspekt.module.economy.database.core.StringIdTable
import ru.astrainteractive.astralibs.exposed.table.StringIdTable

internal object PlayerCurrencyTable : StringIdTable(name = "PLAYER_CURRENCY", columnName = "uuid") {
val currencyId = reference("currency_id", CurrencyTable)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package ru.astrainteractive.aspekt.module.economy.di

import ru.astrainteractive.aspekt.di.CoreModule
import ru.astrainteractive.aspekt.module.economy.model.CurrencyConfiguration
import ru.astrainteractive.aspekt.module.economy.model.DatabaseConfiguration
import ru.astrainteractive.astralibs.exposed.model.DatabaseConfiguration
import ru.astrainteractive.astralibs.lifecycle.Lifecycle
import ru.astrainteractive.astralibs.logging.JUtiltLogger
import ru.astrainteractive.astralibs.logging.Logger
Expand All @@ -22,13 +22,19 @@ internal interface EconomyConfigModule {
override val folder = coreModule.plugin.value.dataFolder.resolve("economy")

override val databaseConfiguration = DefaultStateFlowMutableKrate(
factory = { DatabaseConfiguration.H2() },
factory = { DatabaseConfiguration.H2(name = "db", arguments = emptyList()) },
loader = {
folder.mkdirs()
val file = folder.resolve("db.yml")
if (!file.exists() || file.length() == 0L) {
file.createNewFile()
coreModule.yamlFormat.writeIntoFile<DatabaseConfiguration>(DatabaseConfiguration.H2(), file)
coreModule.yamlFormat.writeIntoFile<DatabaseConfiguration>(
value = DatabaseConfiguration.H2(
name = "db",
arguments = emptyList()
),
file = file
)
}
coreModule.yamlFormat.parse<DatabaseConfiguration>(file)
.onFailure { error { "#databaseConfiguration could not read db.yml: ${it.message}" } }
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import kotlinx.coroutines.test.TestCoroutineScheduler
import kotlinx.coroutines.test.runTest
import ru.astrainteractive.aspekt.module.economy.database.di.EconomyDatabaseModule
import ru.astrainteractive.aspekt.module.economy.model.CurrencyModel
import ru.astrainteractive.aspekt.module.economy.model.DatabaseConfiguration
import ru.astrainteractive.aspekt.module.economy.model.PlayerCurrency
import ru.astrainteractive.aspekt.module.economy.model.PlayerModel
import ru.astrainteractive.astralibs.exposed.model.DatabaseConfiguration
import ru.astrainteractive.klibs.kstorage.api.impl.DefaultStateFlowMutableKrate
import ru.astrainteractive.klibs.kstorage.util.KrateExt.update
import java.io.File
Expand Down
1 change: 1 addition & 0 deletions modules/moneydrop/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ dependencies {
// AstraLibs
implementation(libs.minecraft.astralibs.core)
implementation(libs.minecraft.astralibs.orm)
implementation(libs.minecraft.astralibs.exposed)
implementation(libs.klibs.kdi)
implementation(libs.klibs.mikro.core)
implementation(libs.minecraft.astralibs.menu.bukkit)
Expand Down

0 comments on commit 3cc417a

Please sign in to comment.