diff --git a/core/src/io/anuke/mindustry/io/JsonIO.java b/core/src/io/anuke/mindustry/io/JsonIO.java index 6cea5fb1c1..e5cd5509c6 100644 --- a/core/src/io/anuke/mindustry/io/JsonIO.java +++ b/core/src/io/anuke/mindustry/io/JsonIO.java @@ -3,6 +3,7 @@ package io.anuke.mindustry.io; import io.anuke.arc.collection.*; import io.anuke.arc.util.serialization.*; import io.anuke.mindustry.*; +import io.anuke.mindustry.content.*; import io.anuke.mindustry.game.*; import io.anuke.mindustry.game.Teams.*; import io.anuke.mindustry.type.*; @@ -35,7 +36,9 @@ public class JsonIO{ @Override public Item read(Json json, JsonValue jsonData, Class type){ - return Vars.content.getByName(ContentType.item, jsonData.asString()); + if(jsonData.asString() == null) return Items.copper; + Item i = Vars.content.getByName(ContentType.item, jsonData.asString()); + return i == null ? Items.copper : i; } }); diff --git a/core/src/io/anuke/mindustry/maps/Map.java b/core/src/io/anuke/mindustry/maps/Map.java index 89165b14c8..0f4302f1f0 100644 --- a/core/src/io/anuke/mindustry/maps/Map.java +++ b/core/src/io/anuke/mindustry/maps/Map.java @@ -1,12 +1,12 @@ package io.anuke.mindustry.maps; -import io.anuke.arc.Core; +import io.anuke.arc.*; import io.anuke.arc.collection.*; -import io.anuke.arc.files.FileHandle; -import io.anuke.arc.graphics.Texture; -import io.anuke.mindustry.Vars; +import io.anuke.arc.files.*; +import io.anuke.arc.graphics.*; +import io.anuke.mindustry.*; import io.anuke.mindustry.game.*; -import io.anuke.mindustry.io.JsonIO; +import io.anuke.mindustry.io.*; import io.anuke.mindustry.maps.filters.*; import static io.anuke.mindustry.Vars.world; @@ -64,9 +64,15 @@ public class Map implements Comparable{ /** This creates a new instance of Rules.*/ public Rules rules(){ - Rules result = JsonIO.read(Rules.class, tags.get("rules", "{}")); - if(result.spawns.isEmpty()) result.spawns = Vars.defaultWaves.get(); - return result; + try{ + Rules result = JsonIO.read(Rules.class, tags.get("rules", "{}")); + if(result.spawns.isEmpty()) result.spawns = Vars.defaultWaves.get(); + return result; + }catch(Exception e){ + //error reading rules. ignore? + e.printStackTrace(); + return new Rules(); + } } /** Returns the generation filters that this map uses on load.*/