Fixed crash on loading some older maps

This commit is contained in:
Anuken
2019-07-29 22:07:25 -04:00
parent 43280ee077
commit ec2f21b944
2 changed files with 18 additions and 9 deletions

View File

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

View File

@@ -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<Map>{
/** 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.*/