diff --git a/src/main/java/com/volmit/iris/core/service/PreservationSVC.java b/src/main/java/com/volmit/iris/core/service/PreservationSVC.java index 814104076..4213b30e4 100644 --- a/src/main/java/com/volmit/iris/core/service/PreservationSVC.java +++ b/src/main/java/com/volmit/iris/core/service/PreservationSVC.java @@ -48,6 +48,8 @@ public class PreservationSVC implements IrisService { public void dereference() { IrisContext.dereference(); IrisData.dereference(); + threads.removeWhere((i) -> !i.isAlive()); + services.removeWhere(ExecutorService::isShutdown); } @Override diff --git a/src/main/java/com/volmit/iris/engine/IrisEngine.java b/src/main/java/com/volmit/iris/engine/IrisEngine.java index 4cd10363a..a1424ba44 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngine.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngine.java @@ -420,6 +420,7 @@ public class IrisEngine implements Engine { getData().clearLists(); Iris.service(PreservationSVC.class).dereference(); Iris.debug("Engine Fully Shutdown!"); + complex = null; } @Override diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/src/main/java/com/volmit/iris/engine/framework/Engine.java index 66910955f..c9063424e 100644 --- a/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/src/main/java/com/volmit/iris/engine/framework/Engine.java @@ -884,6 +884,7 @@ public interface Engine extends DataProvider, Fallible, LootProvider, BlockUpdat { return sl.matches(engine, chunk); } + return false; }; diff --git a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java index 6b914984d..b4745f3fc 100644 --- a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java +++ b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java @@ -234,6 +234,9 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun } getEngine().close(); + folder.clear(); + populators.clear(); + }); } diff --git a/src/main/java/com/volmit/iris/util/io/FolderWatcher.java b/src/main/java/com/volmit/iris/util/io/FolderWatcher.java index 055364668..a99253fa7 100644 --- a/src/main/java/com/volmit/iris/util/io/FolderWatcher.java +++ b/src/main/java/com/volmit/iris/util/io/FolderWatcher.java @@ -136,4 +136,11 @@ public class FolderWatcher extends FileWatcher { public KList getDeleted() { return deleted; } + + public void clear() { + watchers.clear(); + changed.clear(); + deleted.clear(); + created.clear(); + } } diff --git a/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java b/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java index bbd385c3e..5f23da5dd 100644 --- a/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java +++ b/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java @@ -89,4 +89,8 @@ public class ReactiveFolder { return fw.checkModified(); } + + public void clear() { + fw.clear(); + } } diff --git a/src/main/java/com/volmit/iris/util/mantle/Mantle.java b/src/main/java/com/volmit/iris/util/mantle/Mantle.java index 174027037..a54040ee8 100644 --- a/src/main/java/com/volmit/iris/util/mantle/Mantle.java +++ b/src/main/java/com/volmit/iris/util/mantle/Mantle.java @@ -358,6 +358,7 @@ public class Mantle { Iris.reportError(e); } + loadedRegions.clear(); Iris.debug("The Mantle has Closed " + C.DARK_AQUA + dataFolder.getAbsolutePath()); }