@@ -21,6 +21,7 @@ import ru.astrainteractive.astralibs.server.location.Location
2121import ru.astrainteractive.astralibs.server.player.OnlineMinecraftPlayer
2222import ru.astrainteractive.astralibs.server.util.asLocatable
2323import ru.astrainteractive.astralibs.server.util.asOnlineMinecraftPlayer
24+ import ru.astrainteractive.astralibs.server.util.toPlain
2425import ru.astrainteractive.klibs.kstorage.api.CachedKrate
2526import ru.astrainteractive.klibs.kstorage.util.getValue
2627import ru.astrainteractive.klibs.mikro.core.dispatchers.KotlinDispatchers
@@ -87,16 +88,16 @@ internal class ForgeSoulEvents(
8788 }
8889
8990 private suspend fun createSoul (
90- onlineMinecraftPlayer : OnlineMinecraftPlayer ,
91+ serverPlayer : ServerPlayer ,
9192 droppedXp : Int? ,
9293 soulItems : List <ItemStack >? ,
9394 location : Location ,
9495 dimension : ResourceKey <Level >
9596 ) {
9697 val soul = DefaultSoul (
9798 exp = droppedXp ? : 0 ,
98- ownerUUID = onlineMinecraftPlayer .uuid,
99- ownerLastName = onlineMinecraftPlayer .name,
99+ ownerUUID = serverPlayer .uuid,
100+ ownerLastName = serverPlayer .name.toPlain() ,
100101 createdAt = Instant .now(),
101102 isFree = soulsConfig.soulFreeAfter == 0 .seconds,
102103 location = when (dimension) {
@@ -116,20 +117,19 @@ internal class ForgeSoulEvents(
116117
117118 @Suppress(" LongMethod" )
118119 private suspend fun createOrUpdateSoul (
119- onlineMinecraftPlayer : OnlineMinecraftPlayer ,
120120 serverPlayer : ServerPlayer ,
121121 droppedXp : Int? ,
122122 soulItems : List <ItemStack >?
123123 ) {
124124 mutex.withLock {
125- val location = onlineMinecraftPlayer
125+ val location = serverPlayer
126126 .asLocatable()
127127 .getLocation()
128128
129129 val existingSoul = soulsDao.getSoulsNear(location, 1 )
130130 .getOrNull()
131131 .orEmpty()
132- .firstOrNull { soul -> soul.ownerUUID == onlineMinecraftPlayer .uuid }
132+ .firstOrNull { soul -> soul.ownerUUID == serverPlayer .uuid }
133133 ?.let { dbSoul -> soulsDao.toItemDatabaseSoul(dbSoul) }
134134 ?.getOrNull()
135135
@@ -142,15 +142,15 @@ internal class ForgeSoulEvents(
142142 } else {
143143 createSoul(
144144 location = location,
145- onlineMinecraftPlayer = onlineMinecraftPlayer ,
145+ serverPlayer = serverPlayer ,
146146 droppedXp = droppedXp,
147147 soulItems = soulItems,
148148 dimension = serverPlayer.level().dimension()
149149 )
150150 }
151151 spawnSoulEffects(
152152 location = location,
153- onlineMinecraftPlayer = onlineMinecraftPlayer
153+ onlineMinecraftPlayer = serverPlayer.asOnlineMinecraftPlayer()
154154 )
155155 }
156156 }
@@ -160,7 +160,6 @@ internal class ForgeSoulEvents(
160160 .onEach { event ->
161161 val serverPlayer = event.entity.tryCast<ServerPlayer >() ? : return @onEach
162162 val keepLevel = event.entity.level().gameRules.getBoolean(GameRules .RULE_KEEPINVENTORY )
163- val onlineMinecraftPlayer = serverPlayer.asOnlineMinecraftPlayer()
164163
165164 val droppedXp = when {
166165 keepLevel -> 0
@@ -175,7 +174,6 @@ internal class ForgeSoulEvents(
175174 event.droppedExperience = 0
176175
177176 createOrUpdateSoul(
178- onlineMinecraftPlayer = onlineMinecraftPlayer,
179177 serverPlayer = serverPlayer,
180178 droppedXp = droppedXp,
181179 soulItems = null
@@ -189,7 +187,6 @@ internal class ForgeSoulEvents(
189187 info { " #livingDropsEvent ${event.drops.size} ${event.drops} " }
190188 val serverPlayer = event.entity.tryCast<ServerPlayer >() ? : return @onEach
191189 val keepInventory = event.entity.level().gameRules.getBoolean(GameRules .RULE_KEEPINVENTORY )
192- val onlineMinecraftPlayer = serverPlayer.asOnlineMinecraftPlayer()
193190
194191 val soulItems = when {
195192 keepInventory -> emptyList()
@@ -200,7 +197,6 @@ internal class ForgeSoulEvents(
200197 event.drops.clear()
201198
202199 createOrUpdateSoul(
203- onlineMinecraftPlayer = onlineMinecraftPlayer,
204200 serverPlayer = serverPlayer,
205201 droppedXp = null ,
206202 soulItems = soulItems
0 commit comments