From ec75e911bd073e784eb0b205c72b5bf694a1a679 Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Sat, 7 Aug 2021 20:10:30 +0200 Subject: [PATCH 1/2] no async file write --- .../com/volmit/iris/engine/object/compat/IrisCompat.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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..a428a76df 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 { @@ -155,7 +156,12 @@ public class IrisCompat { J.attemptAsync(() -> IO.writeAll(new File(f.getParentFile(), "compat.default.json"), defa)); if (!f.exists()) { - J.attemptAsync(() -> IO.writeAll(f, defa)); + try { + IO.writeAll(f, defa); + } catch (IOException e) { + Iris.error("Failed to write to compat file"); + Iris.reportError(e); + } } try { From 81184d77fe887c802c90c2388f19aa3442f2d53c Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Sun, 8 Aug 2021 11:56:12 +0200 Subject: [PATCH 2/2] This is better --- .../iris/engine/object/compat/IrisCompat.java | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) 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 a428a76df..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 @@ -155,30 +155,35 @@ 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.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 { - IO.writeAll(f, defa); - } catch (IOException e) { - Iris.error("Failed to write to compat file"); + IrisCompat rea = new Gson().fromJson(IO.readAll(f), IrisCompat.class); + + 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); } } - try { - IrisCompat rea = new Gson().fromJson(IO.readAll(f), IrisCompat.class); - - 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); - } - return def; }