diff --git a/src/main/java/com/volmit/iris/engine/object/compat/IrisCompat.java b/src/main/java/com/volmit/iris/engine/object/compat/IrisCompat.java index 3e7b6b4a1..52c102388 100644 --- a/src/main/java/com/volmit/iris/engine/object/compat/IrisCompat.java +++ b/src/main/java/com/volmit/iris/engine/object/compat/IrisCompat.java @@ -30,6 +30,7 @@ import org.bukkit.Material; import org.bukkit.block.data.BlockData; import java.io.File; +import java.io.IOException; @Data public class IrisCompat { @@ -154,23 +155,33 @@ public class IrisCompat { String defa = new JSONObject(new Gson().toJson(def)).toString(4); J.attemptAsync(() -> IO.writeAll(new File(f.getParentFile(), "compat.default.json"), defa)); + if (!f.exists()) { - J.attemptAsync(() -> IO.writeAll(f, defa)); - } + J.a(() -> { + try { + IO.writeAll(f, defa); + } catch (IOException e) { + Iris.error("Failed to write to compat file"); + Iris.reportError(e); + } + }); + } else { + // If the file doesn't exist, no additional mappings are present outside default + // so we shouldn't try getting them + try { + IrisCompat rea = new Gson().fromJson(IO.readAll(f), IrisCompat.class); - try { - IrisCompat rea = new Gson().fromJson(IO.readAll(f), IrisCompat.class); + for (IrisCompatabilityBlockFilter i : rea.getBlockFilters()) { + def.getBlockFilters().add(i); + } - for (IrisCompatabilityBlockFilter i : rea.getBlockFilters()) { - def.getBlockFilters().add(i); + for (IrisCompatabilityItemFilter i : rea.getItemFilters()) { + def.getItemFilters().add(i); + } + } catch (Throwable e) { + e.printStackTrace(); + Iris.reportError(e); } - - for (IrisCompatabilityItemFilter i : rea.getItemFilters()) { - def.getItemFilters().add(i); - } - } catch (Throwable e) { - e.printStackTrace(); - Iris.reportError(e); } return def;