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); }