diff --git a/src/main/java/com/volmit/iris/engine/data/mca/NBTWorld.java b/src/main/java/com/volmit/iris/engine/data/mca/NBTWorld.java index 2f910e469..3801412a5 100644 --- a/src/main/java/com/volmit/iris/engine/data/mca/NBTWorld.java +++ b/src/main/java/com/volmit/iris/engine/data/mca/NBTWorld.java @@ -84,17 +84,32 @@ public class NBTWorld { } } + public void flushNow() + { + regionLock.lock(); + + for(Long i : loadedRegions.k()) + { + doSaveUnload(Cache.keyX(i), Cache.keyZ(i)); + } + + regionLock.unlock(); + } + public void queueSaveUnload(int x, int z) { - saveQueue.submit(() -> { - MCAFile f = getMCAOrNull(x, z); - if(f != null) - { - unloadRegion(x, z); - } + saveQueue.submit(() -> doSaveUnload(x, z)); + } - saveRegion(x, z, f); - }); + public void doSaveUnload(int x, int z) + { + MCAFile f = getMCAOrNull(x, z); + if(f != null) + { + unloadRegion(x, z); + } + + saveRegion(x, z, f); } public void save()