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 @@ -13,7 +13,7 @@ makeevrserg.java.ktarget=21
# Project
makeevrserg.project.name=SoulKeeper
makeevrserg.project.group=ru.astrainteractive.soulkeeper
makeevrserg.project.version.string=1.4.0
makeevrserg.project.version.string=1.5.0
makeevrserg.project.description=Keep your items after death
makeevrserg.project.developers=makeevrserg|Makeev Roman|makeevrserg@gmail.com
makeevrserg.project.url=https://github.com/Astra-Interactive/SoulKeeper
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ kotlin-serialization = "1.10.0"
kotlin-serialization-kaml = "0.104.0"
kotlin-version = "2.2.0"
ktor = "3.4.0"
minecraft-astralibs = "3.31.3"
minecraft-astralibs = "3.32.0"
minecraft-bstats = "3.2.1"
minecraft-bungee = "1.21-R0.5-SNAPSHOT"
minecraft-essentialsx = "2.21.2"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ import org.bukkit.command.CommandSender
import org.bukkit.entity.Player
import ru.astrainteractive.astralibs.kyori.KyoriComponentSerializer
import ru.astrainteractive.astralibs.kyori.unwrap
import ru.astrainteractive.astralibs.permission.BukkitPermissibleExt.toPermissible
import ru.astrainteractive.astralibs.server.permission.asKPermissible
import ru.astrainteractive.astralibs.server.util.asBukkitLocation
import ru.astrainteractive.astralibs.util.clickable
import ru.astrainteractive.astralibs.util.isEmpty
import ru.astrainteractive.astralibs.util.orEmpty
Expand All @@ -19,7 +20,6 @@ import ru.astrainteractive.soulkeeper.core.datetime.TimeAgoFormatter
import ru.astrainteractive.soulkeeper.core.datetime.TimeAgoTranslationFormatter
import ru.astrainteractive.soulkeeper.core.plugin.PluginPermission
import ru.astrainteractive.soulkeeper.core.plugin.PluginTranslation
import ru.astrainteractive.soulkeeper.core.util.toBukkitLocation
import ru.astrainteractive.soulkeeper.module.souls.dao.SoulsDao
import ru.astrainteractive.soulkeeper.module.souls.database.model.DatabaseSoul
import ru.astrainteractive.soulkeeper.module.souls.database.model.Soul
Expand Down Expand Up @@ -56,7 +56,7 @@ internal class SoulsCommandExecutor(
}
.filter { soul ->
soul.isFree
.or(sender.toPermissible().hasPermission(PluginPermission.ViewAllSouls))
.or(sender.asKPermissible().hasPermission(PluginPermission.ViewAllSouls))
.or((sender as? Player)?.uniqueId == soul.ownerUUID)
}
}
Expand Down Expand Up @@ -94,15 +94,15 @@ internal class SoulsCommandExecutor(
y = soul.location.y.toInt(),
z = soul.location.z.toInt(),
distance = location
?.distance(soul.location.toBukkitLocation())
?.distance(soul.location.asBukkitLocation())
?.toInt()
?: 0
).component
}

private fun CommandSender.canFreeSouls(soul: DatabaseSoul): Boolean {
val sender = this
val hasPermission = sender.toPermissible().hasPermission(PluginPermission.FreeAllSouls)
val hasPermission = sender.asKPermissible().hasPermission(PluginPermission.FreeAllSouls)
val isOwner = (sender as? Player)?.uniqueId == soul.ownerUUID
if (soul.isFree) return false
if (!hasPermission) return false
Expand All @@ -124,7 +124,7 @@ internal class SoulsCommandExecutor(
private fun CommandSender.canTeleportToSoul(): Boolean {
val sender = this
if (sender !is Player) return false
if (!sender.toPermissible().hasPermission(PluginPermission.TeleportToSouls)) {
if (!sender.asKPermissible().hasPermission(PluginPermission.TeleportToSouls)) {
return false
}
return true
Expand Down Expand Up @@ -219,7 +219,7 @@ internal class SoulsCommandExecutor(
val location = soulsDao.getSoul(input.soulId)
.getOrNull()
?.location
?.toBukkitLocation()
?.asBukkitLocation()
if (location == null) {
input.sender.sendMessage(translation.souls.soulNotFound.component)
return@launch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@ import net.kyori.adventure.text.Component
import net.minecraft.commands.CommandSourceStack
import ru.astrainteractive.astralibs.kyori.KyoriComponentSerializer
import ru.astrainteractive.astralibs.kyori.unwrap
import ru.astrainteractive.astralibs.server.location.Location
import ru.astrainteractive.astralibs.server.location.KLocation
import ru.astrainteractive.astralibs.server.location.dist
import ru.astrainteractive.astralibs.server.util.asLocatable
import ru.astrainteractive.astralibs.server.util.asOnlineMinecraftPlayer
import ru.astrainteractive.astralibs.server.util.asPermissible
import ru.astrainteractive.astralibs.server.util.asTeleportable
import ru.astrainteractive.astralibs.server.util.toNative
import ru.astrainteractive.astralibs.util.clickable
import ru.astrainteractive.astralibs.util.isEmpty
Expand Down Expand Up @@ -83,7 +82,7 @@ internal class SoulsCommandExecutor(
soul: Soul,
page: Int,
i: Int,
location: Location?
location: KLocation?
): Component {
val timeAgo = TimeAgoFormatter.format(soul.createdAt)
val timeAgoFormatted = TimeAgoTranslationFormatter(translation)
Expand Down Expand Up @@ -232,9 +231,7 @@ internal class SoulsCommandExecutor(
input.sender.sendSystemMessage(translation.souls.soulNotFound.component.toNative())
return
}
player.asOnlineMinecraftPlayer()
.asTeleportable()
.teleport(location)
player.asOnlineMinecraftPlayer().teleport(location)
}
}
}
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ru.astrainteractive.soulkeeper.core.plugin

import ru.astrainteractive.astralibs.permission.Permission
import ru.astrainteractive.astralibs.server.permission.Permission

sealed class PluginPermission(override val value: String) : Permission {
data object Reload : PluginPermission("soulkeeper.reload")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ru.astrainteractive.soulkeeper.module.souls.dao

import kotlinx.coroutines.flow.Flow
import ru.astrainteractive.astralibs.server.location.Location
import ru.astrainteractive.astralibs.server.location.KLocation
import ru.astrainteractive.soulkeeper.module.souls.database.model.DatabaseSoul
import ru.astrainteractive.soulkeeper.module.souls.database.model.DefaultSoul
import ru.astrainteractive.soulkeeper.module.souls.database.model.ItemDatabaseSoul
Expand All @@ -17,7 +17,7 @@ interface SoulsDao {

suspend fun insertSoul(soul: DefaultSoul): Result<DatabaseSoul>

suspend fun getSoulsNear(location: Location, radius: Int): Result<List<DatabaseSoul>>
suspend fun getSoulsNear(location: KLocation, radius: Int): Result<List<DatabaseSoul>>

suspend fun deleteSoul(id: Long): Result<Unit>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import org.jetbrains.exposed.sql.insertAndGetId
import org.jetbrains.exposed.sql.selectAll
import org.jetbrains.exposed.sql.transactions.transaction
import org.jetbrains.exposed.sql.update
import ru.astrainteractive.astralibs.server.location.Location
import ru.astrainteractive.astralibs.server.location.KLocation
import ru.astrainteractive.astralibs.server.location.dist
import ru.astrainteractive.klibs.mikro.core.dispatchers.KotlinDispatchers
import ru.astrainteractive.klibs.mikro.core.logging.JUtiltLogger
Expand Down Expand Up @@ -62,7 +62,7 @@ internal class SoulsDaoImpl(
isFree = it[SoulTable.isFree],
exp = it[SoulTable.exp],
hasItems = true, // todo
location = Location(
location = KLocation(
x = it[SoulTable.locationX],
y = it[SoulTable.locationY],
z = it[SoulTable.locationZ],
Expand Down Expand Up @@ -130,7 +130,7 @@ internal class SoulsDaoImpl(
}.onSuccess { soulsChangedSharedFlow.emit(Unit) }

override suspend fun getSoulsNear(
location: Location,
location: KLocation,
radius: Int
): Result<List<DatabaseSoul>> = safeRun("getSoulsNear") {
transaction(databaseFlow.first()) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ru.astrainteractive.soulkeeper.module.souls.database.model

import ru.astrainteractive.astralibs.server.location.Location
import ru.astrainteractive.astralibs.server.location.KLocation
import java.time.Instant
import java.util.UUID

Expand All @@ -10,7 +10,7 @@ data class DatabaseSoul(
override val ownerLastName: String,
override val createdAt: Instant,
override val isFree: Boolean,
override val location: Location,
override val location: KLocation,
override val hasItems: Boolean,
override val exp: Int,
) : Soul
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package ru.astrainteractive.soulkeeper.module.souls.database.model

import kotlinx.serialization.Serializable
import ru.astrainteractive.astralibs.server.location.Location
import ru.astrainteractive.astralibs.server.location.KLocation
import ru.astrainteractive.klibs.mikro.extensions.serialization.JInstantSerializer
import ru.astrainteractive.klibs.mikro.extensions.serialization.JUuidSerializer
import java.time.Instant
Expand All @@ -15,7 +15,7 @@ data class DefaultSoul(
@Serializable(with = JInstantSerializer::class)
override val createdAt: Instant,
override val isFree: Boolean,
override val location: Location,
override val location: KLocation,
override val exp: Int,
val items: List<StringFormatObject>
) : Soul {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ru.astrainteractive.soulkeeper.module.souls.database.model

import ru.astrainteractive.astralibs.server.location.Location
import ru.astrainteractive.astralibs.server.location.KLocation
import java.time.Instant
import java.util.UUID

Expand All @@ -10,7 +10,7 @@ data class ItemDatabaseSoul(
override val ownerLastName: String,
override val createdAt: Instant,
override val isFree: Boolean,
override val location: Location,
override val location: KLocation,
override val hasItems: Boolean,
override val exp: Int,
val items: List<StringFormatObject>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package ru.astrainteractive.soulkeeper.module.souls.database.model

import ru.astrainteractive.astralibs.server.location.Location
import ru.astrainteractive.astralibs.server.location.KLocation
import java.time.Instant
import java.util.UUID

Expand All @@ -9,7 +9,7 @@ interface Soul {
val ownerLastName: String
val createdAt: Instant
val isFree: Boolean
val location: Location
val location: KLocation
val hasItems: Boolean
val exp: Int
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ import org.bukkit.event.EventHandler
import org.bukkit.event.EventPriority
import org.bukkit.event.entity.PlayerDeathEvent
import ru.astrainteractive.astralibs.event.EventListener
import ru.astrainteractive.astralibs.server.location.Location
import ru.astrainteractive.astralibs.server.location.KLocation
import ru.astrainteractive.astralibs.server.util.asBukkitLocation
import ru.astrainteractive.astralibs.server.util.asKLocation
import ru.astrainteractive.klibs.kstorage.api.CachedKrate
import ru.astrainteractive.klibs.kstorage.util.getValue
import ru.astrainteractive.klibs.mikro.core.logging.JUtiltLogger
Expand All @@ -18,8 +20,6 @@ import ru.astrainteractive.soulkeeper.core.plugin.SoulsConfig
import ru.astrainteractive.soulkeeper.core.serialization.ItemStackSerializer
import ru.astrainteractive.soulkeeper.core.util.playSoundForPlayer
import ru.astrainteractive.soulkeeper.core.util.spawnParticleForPlayer
import ru.astrainteractive.soulkeeper.core.util.toBukkitLocation
import ru.astrainteractive.soulkeeper.core.util.toDatabaseLocation
import ru.astrainteractive.soulkeeper.module.souls.dao.SoulsDao
import ru.astrainteractive.soulkeeper.module.souls.database.model.DefaultSoul
import ru.astrainteractive.soulkeeper.module.souls.database.model.StringFormatObject
Expand Down Expand Up @@ -49,7 +49,7 @@ internal class BukkitSoulEvents(
}
}

private fun getSoulLocation(event: PlayerDeathEvent): Location {
private fun getSoulLocation(event: PlayerDeathEvent): KLocation {
return when {
event.player.location.world.environment == World.Environment.THE_END -> {
val endLocation = event.player.location.clone()
Expand All @@ -60,7 +60,7 @@ internal class BukkitSoulEvents(
}

else -> event.player.location
}.toDatabaseLocation()
}.asKLocation()
}

private fun getAndClearDroppedXp(event: PlayerDeathEvent): Int {
Expand All @@ -77,10 +77,10 @@ internal class BukkitSoulEvents(

private fun playEffects(soul: DefaultSoul, player: Player) {
soul.location
.toBukkitLocation()
.asBukkitLocation()
.spawnParticleForPlayer(player, soulsConfig.particles.soulCreated)
soul.location
.toBukkitLocation()
.asBukkitLocation()
.playSoundForPlayer(player, soulsConfig.sounds.soulDropped)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ import net.neoforged.bus.api.EventPriority
import net.neoforged.neoforge.event.entity.living.LivingDropsEvent
import net.neoforged.neoforge.event.entity.living.LivingExperienceDropEvent
import ru.astrainteractive.astralibs.event.flowEvent
import ru.astrainteractive.astralibs.server.location.Location
import ru.astrainteractive.astralibs.server.player.OnlineMinecraftPlayer
import ru.astrainteractive.astralibs.server.location.KLocation
import ru.astrainteractive.astralibs.server.player.OnlineKPlayer
import ru.astrainteractive.astralibs.server.util.asLocatable
import ru.astrainteractive.astralibs.server.util.asOnlineMinecraftPlayer
import ru.astrainteractive.klibs.kstorage.api.CachedKrate
Expand Down Expand Up @@ -57,8 +57,8 @@ internal class ForgeSoulEvents(
private val soulsConfig by soulsConfigKrate
private val mutex = Mutex()
private suspend fun spawnSoulEffects(
location: Location,
onlineMinecraftPlayer: OnlineMinecraftPlayer
location: KLocation,
onlineMinecraftPlayer: OnlineKPlayer
) {
withContext(dispatchers.Main) {
effectEmitter.spawnParticleForPlayer(
Expand Down Expand Up @@ -108,10 +108,10 @@ internal class ForgeSoulEvents(
}

private suspend fun createSoulUnsafe(
serverPlayer: OnlineMinecraftPlayer,
serverPlayer: OnlineKPlayer,
droppedXp: Int?,
soulItems: List<StringFormatObject>?,
location: Location,
location: KLocation,
dimension: ResourceKey<Level>
) {
val soul = DefaultSoul(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package ru.astrainteractive.soulkeeper.module.souls.di

import ru.astrainteractive.astralibs.server.BukkitMinecraftNativeBridge
import ru.astrainteractive.astralibs.server.BukkitPlatformServer
import ru.astrainteractive.astralibs.server.MinecraftNativeBridge
import ru.astrainteractive.astralibs.server.PlatformServer
import ru.astrainteractive.astralibs.server.bridge.BukkitPlatformServer
import ru.astrainteractive.astralibs.server.bridge.PlatformServer
import ru.astrainteractive.soulkeeper.core.di.BukkitCoreModule
import ru.astrainteractive.soulkeeper.core.di.CoreModule
import ru.astrainteractive.soulkeeper.module.souls.domain.BukkitPickUpItemsUseCase
Expand All @@ -25,7 +23,6 @@ class BukkitPlatformServiceModule(
) : PlatformServiceModule {
override val platformServer: PlatformServer = BukkitPlatformServer()
override val effectEmitter: EffectEmitter = BukkitEffectEmitter
override val minecraftNativeBridge: MinecraftNativeBridge = BukkitMinecraftNativeBridge()
override val eventProvider: EventProvider = BukkitEventProvider(
plugin = bukkitCoreModule.plugin
)
Expand Down
Loading
Loading