From 27e399218b56b7c57e277c40b979c1543b32f38b Mon Sep 17 00:00:00 2001 From: MaXFeeD Date: Sat, 30 Dec 2023 02:47:16 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=9A=D0=B0=D1=81=D1=82=D0=BE=D0=BC?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=B8=20=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B8=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Если какой-либо скоуп с данными ранее не сохранялся, он не будет выдававать ошибку при чтении. - Методы, изменяющие текстуры моделей блоков более не приводят к ошибкам. --- .../com/zhekasmirnov/innercore/api/NativeItemModel.java | 2 +- .../api/runtime/saver/world/ScriptableSaverScope.java | 6 +++++- .../api/runtime/saver/world/WorldDataScopeRegistry.java | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zhekasmirnov/innercore/api/NativeItemModel.java b/src/main/java/com/zhekasmirnov/innercore/api/NativeItemModel.java index 257564f4..db9758dc 100644 --- a/src/main/java/com/zhekasmirnov/innercore/api/NativeItemModel.java +++ b/src/main/java/com/zhekasmirnov/innercore/api/NativeItemModel.java @@ -460,7 +460,7 @@ public class NativeItemModel { } public NativeItemModel setItemTexturePath(String path) { - if (!path.endsWith(".png")) { + if (path != null && !path.endsWith(".png")) { path += ".png"; } mItemTexturePath = path; diff --git a/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/ScriptableSaverScope.java b/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/ScriptableSaverScope.java index 8b2086da..a9bc85df 100644 --- a/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/ScriptableSaverScope.java +++ b/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/ScriptableSaverScope.java @@ -1,6 +1,8 @@ package com.zhekasmirnov.innercore.api.runtime.saver.world; import com.zhekasmirnov.innercore.api.runtime.saver.serializer.ScriptableSerializer; + +import org.apache.commons.math3.exception.NullArgumentException; import org.mozilla.javascript.Scriptable; import java.io.IOException; @@ -8,7 +10,9 @@ public abstract class ScriptableSaverScope implements WorldDataScopeRegistry.Sav @Override public void readJson(Object json) throws Exception { Object scriptable = ScriptableSerializer.scriptableFromJson(json); - if (scriptable instanceof Scriptable) { + if (scriptable == null) { + throw new NullArgumentException(); + } else if (scriptable instanceof Scriptable) { read((Scriptable) scriptable); } else { throw new IOException("scriptable saver scope readJson() de-serialized into non scriptable"); diff --git a/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/WorldDataScopeRegistry.java b/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/WorldDataScopeRegistry.java index 4b54c5d6..3bf1cde5 100644 --- a/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/WorldDataScopeRegistry.java +++ b/src/main/java/com/zhekasmirnov/innercore/api/runtime/saver/world/WorldDataScopeRegistry.java @@ -2,6 +2,8 @@ package com.zhekasmirnov.innercore.api.runtime.saver.world; import com.zhekasmirnov.innercore.api.mod.ScriptableObjectHelper; import com.zhekasmirnov.innercore.api.runtime.Callback; + +import org.apache.commons.math3.exception.NullArgumentException; import org.json.JSONObject; import org.mozilla.javascript.ScriptableObject; @@ -68,6 +70,8 @@ public class WorldDataScopeRegistry { Object data = json.opt(key); try { entry.getValue().readJson(data); + } catch (NullArgumentException err) { + // Data does not exists in json, skipping } catch (Throwable err) { errorHandler.handle(key, err); }