Skip to content

Commit

Permalink
Fix modules (#37)
Browse files Browse the repository at this point in the history
* split modules

* split gui module

* relocate price calculator

* fix detekt
  • Loading branch information
makeevrserg committed Sep 20, 2024
1 parent edbde56 commit 255ffe3
Show file tree
Hide file tree
Showing 77 changed files with 561 additions and 320 deletions.
1 change: 0 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ plugins {

apply(plugin = "ru.astrainteractive.gradleplugin.dokka.root")
apply(plugin = "ru.astrainteractive.gradleplugin.detekt")
apply(plugin = "ru.astrainteractive.gradleplugin.root.info")

subprojects.forEach {
it.apply(plugin = "ru.astrainteractive.gradleplugin.dokka.module")
Expand Down
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=AstraShop
makeevrserg.project.group=ru.astrainteractive.astrashop
makeevrserg.project.version.string=4.12.0
makeevrserg.project.version.string=4.13.0-unstable
makeevrserg.project.description=Shop plugin for EmpireSMP
makeevrserg.project.developers=makeevrserg|Makeev Roman|[email protected]
makeevrserg.project.url=https://empireprojekt.ru
Expand Down
24 changes: 0 additions & 24 deletions modules/api/build.gradle.kts

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@ dependencies {
implementation(libs.minecraft.astralibs.core)
implementation(libs.minecraft.astralibs.orm)
implementation(libs.klibs.kdi)
implementation(libs.minecraft.astralibs.menu.bukkit)
implementation(libs.minecraft.astralibs.core.bukkit)
implementation(libs.klibs.mikro)
// Test
testImplementation(libs.bundles.testing.kotlin)
testImplementation(libs.tests.kotlin.test)
// Spigot dependencies
implementation(libs.minecraft.bstats)
compileOnly(libs.minecraft.paper.api)
compileOnly(libs.minecraft.papi)
compileOnly(libs.minecraft.vaultapi)
implementation(libs.minecraft.bstats)
implementation(libs.minecraft.astralibs.menu.bukkit)
implementation(libs.minecraft.astralibs.core.bukkit)
// Local
implementation(projects.modules.api.main)
}
16 changes: 16 additions & 0 deletions modules/api/main/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
plugins {
kotlin("jvm")
kotlin("plugin.serialization")
}

dependencies {
// Kotlin
implementation(libs.bundles.kotlin)
// AstraLibs
implementation(libs.minecraft.astralibs.core)
implementation(libs.minecraft.astralibs.orm)
implementation(libs.klibs.kdi)
// Test
testImplementation(libs.bundles.testing.kotlin)
testImplementation(libs.tests.kotlin.test)
}
24 changes: 24 additions & 0 deletions modules/core/bukkit/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
plugins {
kotlin("jvm")
kotlin("plugin.serialization")
}

dependencies {
// Kotlin
implementation(libs.bundles.kotlin)
// AstraLibs
implementation(libs.minecraft.astralibs.core)
implementation(libs.minecraft.astralibs.orm)
implementation(libs.klibs.kdi)
implementation(libs.minecraft.astralibs.menu.bukkit)
implementation(libs.minecraft.astralibs.core.bukkit)
implementation(libs.klibs.mikro)
// Spigot dependencies
compileOnly(libs.minecraft.paper.api)
// implementation(libs.minecraft.bstats)
// compileOnly(libs.minecraft.papi)
compileOnly(libs.minecraft.vaultapi)
// implementation(libs.minecraft.bstats)
// Local
implementation(projects.modules.core.main)
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package ru.astrainteractive.astrashop.core.di

import org.bukkit.plugin.java.JavaPlugin
import ru.astrainteractive.astralibs.async.AsyncComponent
import ru.astrainteractive.astralibs.async.BukkitDispatchers
import ru.astrainteractive.astralibs.async.DefaultBukkitDispatchers
import ru.astrainteractive.astralibs.event.EventListener
import ru.astrainteractive.astralibs.kyori.KyoriComponentSerializer
Expand All @@ -11,48 +10,45 @@ import ru.astrainteractive.astralibs.serialization.StringFormatExt.parse
import ru.astrainteractive.astralibs.serialization.StringFormatExt.writeIntoFile
import ru.astrainteractive.astralibs.serialization.YamlStringFormat
import ru.astrainteractive.astrashop.core.PluginTranslation
import ru.astrainteractive.astrashop.core.di.factory.BukkitCurrencyEconomyProviderFactory
import ru.astrainteractive.astrashop.core.di.factory.CurrencyEconomyProviderFactory
import ru.astrainteractive.astrashop.core.di.factory.CurrencyEconomyProviderFactoryImpl
import ru.astrainteractive.klibs.kdi.Lateinit
import ru.astrainteractive.klibs.kdi.Reloadable
import ru.astrainteractive.klibs.kdi.Single
import ru.astrainteractive.klibs.kdi.getValue

interface CoreModule {
interface BukkitCoreModule : CoreModule {
val plugin: Lateinit<JavaPlugin>
val translation: Reloadable<PluginTranslation>
val dispatchers: Single<BukkitDispatchers>
val scope: Single<AsyncComponent>
val inventoryClickEvent: Single<EventListener>
val kyoriComponentSerializer: Reloadable<KyoriComponentSerializer>
val currencyEconomyProviderFactory: CurrencyEconomyProviderFactory

class Default : CoreModule {
class Default : BukkitCoreModule {
override val plugin: Lateinit<JavaPlugin> = Lateinit()
override val inventoryClickEvent: Single<EventListener> = Single {
DefaultInventoryClickEvent()
}

override val currencyEconomyProviderFactory: CurrencyEconomyProviderFactory by lazy {
BukkitCurrencyEconomyProviderFactory(plugin.value)
}

override val translation = Reloadable {
val plugin by plugin
val serializer = YamlStringFormat()
val config = plugin.dataFolder.resolve("translations.yml")
val config = plugin.value.dataFolder.resolve("translations.yml")
serializer.parse<PluginTranslation>(config)
.onFailure(Throwable::printStackTrace)
.getOrElse { PluginTranslation() }
.also { serializer.writeIntoFile(it, config) }
}
override val dispatchers: Single<BukkitDispatchers> = Single {
val plugin by plugin
DefaultBukkitDispatchers(plugin)

override val dispatchers by lazy {
DefaultBukkitDispatchers(plugin.value)
}
override val scope: Single<AsyncComponent> = Single {

override val scope: AsyncComponent by lazy {
AsyncComponent.Default()
}
override val inventoryClickEvent: Single<EventListener> = Single {
DefaultInventoryClickEvent()
}

override val kyoriComponentSerializer: Reloadable<KyoriComponentSerializer> = Reloadable {
KyoriComponentSerializer.Legacy
}
override val currencyEconomyProviderFactory: CurrencyEconomyProviderFactory by lazy {
CurrencyEconomyProviderFactoryImpl(plugin.value)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,7 @@ import ru.astrainteractive.astralibs.economy.VaultEconomyProvider
import ru.astrainteractive.astralibs.logging.JUtiltLogger
import ru.astrainteractive.astralibs.logging.Logger

interface CurrencyEconomyProviderFactory {
fun findByCurrencyId(currencyId: String): EconomyProvider?
fun findDefault(): EconomyProvider?
}

internal class CurrencyEconomyProviderFactoryImpl(
internal class BukkitCurrencyEconomyProviderFactory(
private val plugin: JavaPlugin,
) : CurrencyEconomyProviderFactory,
Logger by JUtiltLogger("CurrencyEconomyProviderFactory") {
Expand Down
22 changes: 22 additions & 0 deletions modules/core/main/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
plugins {
kotlin("jvm")
kotlin("plugin.serialization")
}

dependencies {
// Kotlin
implementation(libs.bundles.kotlin)
// AstraLibs
implementation(libs.minecraft.astralibs.core)
implementation(libs.minecraft.astralibs.orm)
implementation(libs.klibs.kdi)
implementation(libs.minecraft.astralibs.menu.bukkit)
// implementation(libs.minecraft.astralibs.core.bukkit)
implementation(libs.klibs.mikro)
// Spigot dependencies
// implementation(libs.minecraft.bstats)
// compileOnly(libs.minecraft.paper.api)
// compileOnly(libs.minecraft.papi)
// compileOnly(libs.minecraft.vaultapi)
// implementation(libs.minecraft.bstats)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package ru.astrainteractive.astrashop.core.di

import ru.astrainteractive.astralibs.async.AsyncComponent
import ru.astrainteractive.astralibs.kyori.KyoriComponentSerializer
import ru.astrainteractive.astrashop.core.PluginTranslation
import ru.astrainteractive.astrashop.core.di.factory.CurrencyEconomyProviderFactory
import ru.astrainteractive.klibs.kdi.Reloadable
import ru.astrainteractive.klibs.mikro.core.dispatchers.KotlinDispatchers

interface CoreModule {
val dispatchers: KotlinDispatchers
val scope: AsyncComponent
val translation: Reloadable<PluginTranslation>
val kyoriComponentSerializer: Reloadable<KyoriComponentSerializer>
val currencyEconomyProviderFactory: CurrencyEconomyProviderFactory
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package ru.astrainteractive.astrashop.core.di.factory

import ru.astrainteractive.astralibs.economy.EconomyProvider

interface CurrencyEconomyProviderFactory {
fun findByCurrencyId(currencyId: String): EconomyProvider?
fun findDefault(): EconomyProvider?
}
33 changes: 0 additions & 33 deletions modules/domain/build.gradle.kts

This file was deleted.

32 changes: 32 additions & 0 deletions modules/domain/bukkit/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
plugins {
kotlin("jvm")
kotlin("plugin.serialization")
}

dependencies {
// Kotlin
implementation(libs.bundles.kotlin)
// AstraLibs
implementation(libs.minecraft.astralibs.core)
implementation(libs.minecraft.astralibs.orm)
implementation(libs.klibs.kdi)
implementation(libs.klibs.mikro)
// implementation(libs.minecraft.astralibs.menu.bukkit)
// implementation(libs.minecraft.astralibs.core.bukkit)
// Spigot dependencies
compileOnly(libs.minecraft.paper.api)
// implementation(libs.minecraft.bstats)
// compileOnly(libs.minecraft.papi)
// compileOnly(libs.minecraft.vaultapi)
// implementation(libs.minecraft.bstats)
compileOnly("com.github.LoneDev6:API-ItemsAdder:3.6.3-beta-14")
// Test
testImplementation(libs.bundles.testing.kotlin)
testImplementation(libs.tests.kotlin.test)
// Local
implementation(projects.modules.api.main)
implementation(projects.modules.api.bukkit)
implementation(projects.modules.core.main)
implementation(projects.modules.core.bukkit)
implementation(projects.modules.domain.main)
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ import dev.lone.itemsadder.api.CustomStack
import kotlinx.coroutines.withContext
import org.bukkit.Bukkit
import org.bukkit.inventory.ItemStack
import ru.astrainteractive.astralibs.async.BukkitDispatchers
import ru.astrainteractive.astralibs.kyori.KyoriComponentSerializer
import ru.astrainteractive.astralibs.string.StringDesc
import ru.astrainteractive.astrashop.api.model.ShopConfig
import ru.astrainteractive.astrashop.api.model.SpigotShopItemStack
import ru.astrainteractive.astrashop.domain.util.ItemStackExt.copy
import ru.astrainteractive.astrashop.domain.util.ItemStackExt.toItemStack
import ru.astrainteractive.klibs.mikro.core.dispatchers.KotlinDispatchers
import java.util.UUID

class BukkitPlayerBridge(
internal class BukkitPlayerBridge(
private val kyoriComponentSerializer: KyoriComponentSerializer,
private val dispatchers: BukkitDispatchers
private val dispatchers: KotlinDispatchers
) : PlayerBridge {
private fun UUID.toPlayer() = Bukkit.getPlayer(this) ?: error("Player not found")

Expand All @@ -33,7 +33,7 @@ class BukkitPlayerBridge(
val itemStack = item.toItemStack().copy(amount)
val notFittedItems = player.inventory.addItem(itemStack)
if (notFittedItems.isNotEmpty()) {
withContext(dispatchers.BukkitMain) {
withContext(dispatchers.Main) {
player.location.world.dropItemNaturally(player.location, itemStack.copy(notFittedItems.size))
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package ru.astrainteractive.astrashop.domain.di

import ru.astrainteractive.astrashop.api.di.ApiModule
import ru.astrainteractive.astrashop.core.di.CoreModule
import ru.astrainteractive.astrashop.domain.bridge.BukkitPlayerBridge

class BukkitDomainModule(
coreModule: CoreModule,
apiModule: ApiModule,
) : DomainModule by DomainModule.Default(
coreModule = coreModule,
apiModule = apiModule,
createPlayerBridge = {
BukkitPlayerBridge(
kyoriComponentSerializer = coreModule.kyoriComponentSerializer.value,
dispatchers = coreModule.dispatchers
)
}
)
20 changes: 20 additions & 0 deletions modules/domain/main/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
plugins {
kotlin("jvm")
kotlin("plugin.serialization")
}

dependencies {
// Kotlin
implementation(libs.bundles.kotlin)
// AstraLibs
implementation(libs.minecraft.astralibs.core)
implementation(libs.minecraft.astralibs.orm)
implementation(libs.klibs.kdi)
implementation(libs.klibs.mikro)
// Test
testImplementation(libs.bundles.testing.kotlin)
testImplementation(libs.tests.kotlin.test)
// Local
implementation(projects.modules.api.main)
implementation(projects.modules.core.main)
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package ru.astrainteractive.astrashop.domain.usecase
package ru.astrainteractive.astrashop.domain.calculator

import ru.astrainteractive.astrashop.api.model.ShopConfig
import kotlin.math.sqrt
Expand Down
Loading

0 comments on commit 255ffe3

Please sign in to comment.