fix: Кастомные сохранения и модели блоков
- Если какой-либо скоуп с данными ранее не сохранялся, он не будет выдававать ошибку при чтении. - Методы, изменяющие текстуры моделей блоков более не приводят к ошибкам.
This commit is contained in:
@@ -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;
|
||||
|
||||
+5
-1
@@ -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");
|
||||
|
||||
+4
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user