diff --git a/core/src/io/anuke/mindustry/core/Logic.java b/core/src/io/anuke/mindustry/core/Logic.java index 9a198f9812..5e4b37ba38 100644 --- a/core/src/io/anuke/mindustry/core/Logic.java +++ b/core/src/io/anuke/mindustry/core/Logic.java @@ -151,6 +151,7 @@ public class Logic implements ApplicationListener{ Time.runTask(30f, () -> { for(Tile tile : new ObjectSetIterator<>(state.teams.get(defaultTeam).cores)){ for(Item item : content.items()){ + if(tile == null || tile.entity == null || tile.entity.items == null) continue; data.addItem(item, tile.entity.items.get(item)); } world.removeBlock(tile); diff --git a/core/src/io/anuke/mindustry/net/CrashSender.java b/core/src/io/anuke/mindustry/net/CrashSender.java index cc29071615..0e7d20c9f9 100644 --- a/core/src/io/anuke/mindustry/net/CrashSender.java +++ b/core/src/io/anuke/mindustry/net/CrashSender.java @@ -3,6 +3,7 @@ package io.anuke.mindustry.net; import io.anuke.arc.*; import io.anuke.arc.Net.*; import io.anuke.arc.collection.*; +import io.anuke.arc.files.*; import io.anuke.arc.function.*; import io.anuke.arc.util.*; import io.anuke.arc.util.io.*; @@ -13,11 +14,10 @@ import io.anuke.mindustry.*; import io.anuke.mindustry.game.*; import java.io.*; -import java.nio.file.Files; -import java.nio.file.*; import java.text.*; import java.util.*; -import static io.anuke.mindustry.Vars.*; + +import static io.anuke.mindustry.Vars.net; public class CrashSender{ @@ -52,9 +52,8 @@ public class CrashSender{ try{ File file = new File(OS.getAppDataDirectoryString(Vars.appName), "crashes/crash-report-" + new SimpleDateFormat("MM_dd_yyyy_HH_mm_ss").format(new Date()) + ".txt"); - Files.createDirectories(Paths.get(OS.getAppDataDirectoryString(Vars.appName), "crashes")); - Files.write(file.toPath(), parseException(exception).getBytes()); - + new FileHandle(OS.getAppDataDirectoryString(Vars.appName)).child("crashes").mkdirs(); + new FileHandle(file).writeString(parseException(exception)); writeListener.accept(file); }catch(Throwable e){ e.printStackTrace(); @@ -100,6 +99,8 @@ public class CrashSender{ ex(() -> value.addChild("state", new JsonValue(Vars.state.getState().name()))); ex(() -> value.addChild("os", new JsonValue(System.getProperty("os.name") + "x" + (OS.is64Bit ? "64" : "32")))); ex(() -> value.addChild("trace", new JsonValue(parseException(exception)))); + ex(() -> value.addChild("javaVersion", new JsonValue(System.getProperty("java.version")))); + ex(() -> value.addChild("javaArch", new JsonValue(System.getProperty("sun.arch.data.model")))); boolean[] sent = {false};