Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ makeevrserg.java.ktarget=21
# Project
makeevrserg.project.name=AstraRating
makeevrserg.project.group=ru.astrainteractive.astrarating
makeevrserg.project.version.string=1.20.11
makeevrserg.project.version.string=1.21.0
makeevrserg.project.description=Rating plugin for EmpireProjekt
makeevrserg.project.developers=makeevrserg|Makeev Roman|makeevrserg@gmail.com
makeevrserg.project.url=https://empireprojekt.ru
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ minecraft-spigot = "1.21.3-R0.1-SNAPSHOT" # https://github.com/PaperMC/Paper
minecraft-papi = "2.11.6" # https://github.com/PlaceholderAPI/PlaceholderAPI
minecraft-protocollib = "5.3.0" # https://github.com/dmulloy2/ProtocolLib
minecraft-vault = "1.7.1" # https://github.com/MilkBowl/VaultAPI
minecraft-astralibs = "3.22.0" # https://github.com/Astra-Interactive/AstraLibs
minecraft-astralibs = "3.24.0" # https://github.com/Astra-Interactive/AstraLibs
minecraft-bstats = "3.1.0" # https://github.com/Bastian/bStats
minecraft-mockbukkit = "4.33.2" #https://github.com/MockBukkit/MockBukkit

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ package ru.astrainteractive.astrarating.core
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import ru.astrainteractive.astralibs.string.StringDesc
import ru.astrainteractive.astralibs.string.StringDescExt.replace
import ru.astrainteractive.astralibs.string.replace

@Serializable
class PluginTranslation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ import ru.astrainteractive.astralibs.async.CoroutineFeature
import ru.astrainteractive.astralibs.lifecycle.Lifecycle
import ru.astrainteractive.astralibs.logging.JUtiltLogger
import ru.astrainteractive.astralibs.logging.Logger
import ru.astrainteractive.astralibs.serialization.StringFormatExt.parseOrWriteIntoDefault
import ru.astrainteractive.astralibs.serialization.YamlStringFormat
import ru.astrainteractive.astrarating.core.EmpireConfig
import ru.astrainteractive.astrarating.core.PluginTranslation
import ru.astrainteractive.astrarating.core.di.factory.ConfigKrateFactory
import ru.astrainteractive.klibs.kstorage.api.StateFlowKrate
import ru.astrainteractive.klibs.kstorage.api.impl.DefaultMutableKrate
import ru.astrainteractive.klibs.kstorage.util.asStateFlowMutableKrate
import ru.astrainteractive.klibs.mikro.core.dispatchers.KotlinDispatchers
import java.io.File

Expand All @@ -40,18 +42,27 @@ interface CoreModule {
),
)
}
override val translation = ConfigKrateFactory.create(
fileNameWithoutExtension = "translations",
dataFolder = dataFolder,
stringFormat = yamlStringFormat,
factory = ::PluginTranslation
)
override val config = ConfigKrateFactory.create(
fileNameWithoutExtension = "config",
dataFolder = dataFolder,
stringFormat = yamlStringFormat,
factory = ::EmpireConfig
)
override val translation = DefaultMutableKrate(
factory = ::PluginTranslation,
loader = {
yamlStringFormat.parseOrWriteIntoDefault(
file = dataFolder.resolve("translations.yml"),
default = ::PluginTranslation,
logger = this
)
}
).asStateFlowMutableKrate()

override val config = DefaultMutableKrate(
factory = ::EmpireConfig,
loader = {
yamlStringFormat.parseOrWriteIntoDefault(
file = dataFolder.resolve("config.yml"),
default = ::EmpireConfig,
logger = this
)
}
).asStateFlowMutableKrate()
override val scope = CoroutineFeature.Default(Dispatchers.IO)

override val lifecycle: Lifecycle by lazy {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,18 @@ import org.jetbrains.exposed.sql.addLogger
import org.jetbrains.exposed.sql.transactions.TransactionManager
import org.jetbrains.exposed.sql.transactions.transaction
import ru.astrainteractive.astralibs.async.CoroutineFeature
import ru.astrainteractive.astralibs.exposed.factory.DatabaseFactory
import ru.astrainteractive.astralibs.exposed.model.connect
import ru.astrainteractive.astralibs.lifecycle.Lifecycle
import ru.astrainteractive.astralibs.util.FlowExt.mapCached
import ru.astrainteractive.astrarating.core.di.factory.ConfigKrateFactory
import ru.astrainteractive.astralibs.logging.JUtiltLogger
import ru.astrainteractive.astralibs.logging.Logger
import ru.astrainteractive.astralibs.serialization.StringFormatExt.parseOrWriteIntoDefault
import ru.astrainteractive.astralibs.util.mapCached
import ru.astrainteractive.astrarating.db.rating.entity.UserRatingTable
import ru.astrainteractive.astrarating.db.rating.entity.UserTable
import ru.astrainteractive.astrarating.db.rating.model.DbRatingConfiguration
import ru.astrainteractive.klibs.kstorage.api.impl.DefaultMutableKrate
import ru.astrainteractive.klibs.kstorage.api.value.ValueFactory
import ru.astrainteractive.klibs.kstorage.util.asStateFlowMutableKrate
import java.io.File

interface DBRatingModule {
Expand All @@ -32,22 +36,26 @@ interface DBRatingModule {
stringFormat: StringFormat,
private val dataFolder: File,
defaultConfig: ValueFactory<DbRatingConfiguration> = ValueFactory { DbRatingConfiguration() }
) : DBRatingModule {
) : DBRatingModule, Logger by JUtiltLogger("AstraRating-DBRatingModule") {
private val coroutineScope = CoroutineFeature.Default(Dispatchers.IO)

private val dbConfigurationConfig = ConfigKrateFactory.create<DbRatingConfiguration>(
fileNameWithoutExtension = "database",
dataFolder = dataFolder,
stringFormat = stringFormat,
factory = defaultConfig
)
private val dbConfigurationConfig = DefaultMutableKrate(
factory = defaultConfig,
loader = {
stringFormat.parseOrWriteIntoDefault(
file = dataFolder.resolve("database.yml"),
default = defaultConfig::create,
logger = this
)
}
).asStateFlowMutableKrate()

override val databaseFlow: Flow<Database> = dbConfigurationConfig
.cachedStateFlow
.distinctUntilChangedBy { it.databaseConfiguration }
.mapCached(coroutineScope) { dbConfig, oldDatabase ->
oldDatabase?.run(TransactionManager::closeAndUnregister)
val database = DatabaseFactory(dataFolder).create(dbConfig.databaseConfiguration)
val database = dbConfig.databaseConfiguration.connect(dataFolder)
TransactionManager.manager.defaultIsolationLevel = java.sql.Connection.TRANSACTION_SERIALIZABLE
transaction(database) {
addLogger(Slf4jSqlDebugLogger)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import ru.astrainteractive.astralibs.menu.inventory.util.PageContextExt.isFirstP
import ru.astrainteractive.astralibs.menu.inventory.util.PageContextExt.isLastPage
import ru.astrainteractive.astralibs.menu.slot.InventorySlot
import ru.astrainteractive.astralibs.permission.BukkitPermissibleExt.toPermissible
import ru.astrainteractive.astralibs.string.StringDescExt.replace
import ru.astrainteractive.astralibs.string.replace
import ru.astrainteractive.astrarating.core.EmpireConfig
import ru.astrainteractive.astrarating.core.PluginTranslation
import ru.astrainteractive.astrarating.core.RatingPermission
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.edit
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setIndex
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setItemStack
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setOnClickListener
import ru.astrainteractive.astralibs.string.StringDescExt.plus
import ru.astrainteractive.astralibs.string.plus
import ru.astrainteractive.astrarating.dto.RatedUserDTO
import ru.astrainteractive.astrarating.gui.slot.context.SlotContext
import ru.astrainteractive.astrarating.gui.util.PlayerHeadUtil
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setI
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setItemStack
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setOnClickListener
import ru.astrainteractive.astralibs.string.StringDesc
import ru.astrainteractive.astralibs.string.StringDescExt.plus
import ru.astrainteractive.astralibs.string.plus
import ru.astrainteractive.astrarating.gui.slot.context.SlotContext
import ru.astrainteractive.astrarating.gui.util.PlayerHeadUtil
import ru.astrainteractive.astrarating.gui.util.TimeUtility
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.edit
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setIndex
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setItemStack
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setOnClickListener
import ru.astrainteractive.astralibs.string.StringDescExt.plus
import ru.astrainteractive.astralibs.string.plus
import ru.astrainteractive.astrarating.gui.slot.context.SlotContext
import ru.astrainteractive.astrarating.gui.util.PlayerHeadUtil
import ru.astrainteractive.astrarating.gui.util.TimeUtility
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.edit
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setIndex
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setItemStack
import ru.astrainteractive.astralibs.menu.slot.util.InventorySlotBuilderExt.setOnClickListener
import ru.astrainteractive.astralibs.string.StringDescExt.plus
import ru.astrainteractive.astralibs.string.plus
import ru.astrainteractive.astrarating.gui.slot.context.SlotContext
import ru.astrainteractive.astrarating.gui.util.desc
import ru.astrainteractive.astrarating.gui.util.toItemStack
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@ import ru.astrainteractive.astralibs.expansion.PlaceholderExpansionFacade
import ru.astrainteractive.astralibs.lifecycle.Lifecycle
import ru.astrainteractive.astralibs.logging.JUtiltLogger
import ru.astrainteractive.astralibs.logging.Logger
import ru.astrainteractive.astralibs.serialization.StringFormatExt.parseOrWriteIntoDefault
import ru.astrainteractive.astrarating.api.rating.api.CachedApi
import ru.astrainteractive.astrarating.core.di.factory.ConfigKrateFactory
import ru.astrainteractive.astrarating.integration.papi.di.factory.PapiFactory
import ru.astrainteractive.astrarating.integration.papi.model.PapiConfig
import ru.astrainteractive.klibs.kstorage.api.impl.DefaultMutableKrate
import ru.astrainteractive.klibs.kstorage.util.asStateFlowMutableKrate
import java.io.File

interface PapiModule {
Expand All @@ -25,13 +27,16 @@ interface PapiModule {
private val isPapiEnabled: Boolean
get() = Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")

private val papiConfiguration = ConfigKrateFactory.create(
fileNameWithoutExtension = "papi",
dataFolder = dataFolder,
stringFormat = yamlStringFormat,
factory = ::PapiConfig
)

private val papiConfiguration = DefaultMutableKrate(
factory = ::PapiConfig,
loader = {
yamlStringFormat.parseOrWriteIntoDefault(
file = dataFolder.resolve("papi.yml"),
default = ::PapiConfig,
logger = this
)
}
).asStateFlowMutableKrate()
private val placeholderFacade: PlaceholderExpansionFacade by lazy {
PapiFactory(
dependencies = PapiDependencies.Default(
Expand Down
Loading