From 9ffc9cb4f4a39f8654f08a5a44868cfb996a4ced Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 4 Feb 2026 21:51:10 -0500 Subject: [PATCH] Fixed non-objects being accepted as object values --- core/src/mindustry/mod/ContentParser.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/mod/ContentParser.java b/core/src/mindustry/mod/ContentParser.java index 15a8dd550c..db14bd8216 100644 --- a/core/src/mindustry/mod/ContentParser.java +++ b/core/src/mindustry/mod/ContentParser.java @@ -278,7 +278,9 @@ public class ContentParser{ }); put(PlanetGenerator.class, (type, data) -> { var result = new AsteroidGenerator(); //only one type for now - readFields(result, data); + if(data.isObject()){ + readFields(result, data); + } return result; }); put(Mat3D.class, (type, data) -> { @@ -436,6 +438,9 @@ public class ContentParser{ try{ return (T)classParsers.get(type).parse(type, jsonData); }catch(Exception e){ + if(e instanceof RuntimeException rt){ + throw rt; + } throw new RuntimeException(e); } } @@ -1223,6 +1228,7 @@ public class ContentParser{ } void readFields(Object object, JsonValue jsonMap){ + if(!jsonMap.isObject()) throw new SerializationException("Expecting an object, but found: '" + jsonMap + "'"); JsonValue research = jsonMap.remove("research"); toBeParsed.remove(object);