From d1fdec02fa4ab764053a3d876abedc407d6b3c59 Mon Sep 17 00:00:00 2001 From: reider745 Date: Thu, 23 Jul 2026 11:55:50 +0300 Subject: [PATCH] feat: scales support entity saver & fix: on death reset all scales --- .../com/zhekasmirnov/innercore/api/NativeScales.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zhekasmirnov/innercore/api/NativeScales.java b/src/main/java/com/zhekasmirnov/innercore/api/NativeScales.java index 3eb1bb6e..b61f761d 100644 --- a/src/main/java/com/zhekasmirnov/innercore/api/NativeScales.java +++ b/src/main/java/com/zhekasmirnov/innercore/api/NativeScales.java @@ -5,6 +5,7 @@ import com.reider745.api.ClientOnly; import com.zhekasmirnov.apparatus.multiplayer.Network; import com.zhekasmirnov.apparatus.multiplayer.server.ConnectedClient; import com.zhekasmirnov.innercore.api.runtime.saver.world.WorldDataScopeRegistry; +import org.innercore.icstd.entity.EntityModule; import org.innercore.icstd.serialization.*; import org.json.JSONObject; import org.mozilla.javascript.annotations.JSStaticFunction; @@ -79,10 +80,8 @@ public class NativeScales { public static void onDeath(long deaths) { for(String key : getAllScales()) { - for(long mob : getAllMobs()) { - final ScaleDescription description = SCALES.get(key); - setServerScaleValue(mob, key, description.defaultValue); - } + final ScaleDescription description = SCALES.get(key); + setServerScaleValue(deaths, key, description.defaultValue); } } @@ -94,6 +93,11 @@ public class NativeScales { public static void setScaleValue(long player, String ptr, double value) { final Map values = SCALE_VALUES.computeIfAbsent(player, (k) -> new ConcurrentHashMap<>()); values.put(ptr, value); + + EntityModule.writeUserData(player, "ic_" + ptr) + .asArray() + .addDouble(value) + .endScope(); } public static double getScaleValue(long player, String ptr) { final Map values = SCALE_VALUES.computeIfAbsent(player, (k) -> new ConcurrentHashMap<>());