diff --git a/bukkit/build/resources/main/plugin.yml b/bukkit/build/resources/main/plugin.yml index a6f31c7b..fa94cd5d 100644 --- a/bukkit/build/resources/main/plugin.yml +++ b/bukkit/build/resources/main/plugin.yml @@ -1,6 +1,6 @@ name: FastAsyncWorldEdit main: com.boydti.fawe.bukkit.FaweBukkit -version: 3.3.15 +version: 3.3.16 description: Fast Async WorldEdit plugin authors: [Empire92] loadbefore: [WorldEdit] diff --git a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_8/BukkitQueue_1_8.java b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_8/BukkitQueue_1_8.java index 13ebc854..88dab5f5 100644 --- a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_8/BukkitQueue_1_8.java +++ b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_8/BukkitQueue_1_8.java @@ -181,10 +181,13 @@ public class BukkitQueue_1_8 extends BukkitQueue_0 { TaskManager.IMP.task(new Runnable() { @Override public void run() { - fixLighting(fc, Settings.FIX_ALL_LIGHTING); + final boolean result = fixLighting(fc, Settings.FIX_ALL_LIGHTING) || !Settings.ASYNC_LIGHTING; TaskManager.IMP.task(new Runnable() { @Override public void run() { + if (!result) { + fixLighting(fc, Settings.FIX_ALL_LIGHTING); + } Chunk chunk = fc.getChunk(); World world = chunk.getWorld(); final int view = Bukkit.getServer().getViewDistance(); @@ -218,6 +221,9 @@ public class BukkitQueue_1_8 extends BukkitQueue_0 { final BukkitChunk_1_8 bc = (BukkitChunk_1_8) fc; final Chunk chunk = bc.getChunk(); if (!chunk.isLoaded()) { + if (Fawe.get().getMainThread() != Thread.currentThread()) { + return false; + } chunk.load(false); } diff --git a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitQueue_1_9.java b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitQueue_1_9.java index c38773fd..dbb26611 100644 --- a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitQueue_1_9.java +++ b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitQueue_1_9.java @@ -170,10 +170,13 @@ public class BukkitQueue_1_9 extends BukkitQueue_0 { TaskManager.IMP.task(new Runnable() { @Override public void run() { - fixLighting(fc, Settings.FIX_ALL_LIGHTING); + final boolean result = fixLighting(fc, Settings.FIX_ALL_LIGHTING) || !Settings.ASYNC_LIGHTING; TaskManager.IMP.task(new Runnable() { @Override public void run() { + if (!result) { + fixLighting(fc, Settings.FIX_ALL_LIGHTING); + } final Chunk chunk = fc.getChunk(); chunk.getWorld().refreshChunk(fc.getX(), fc.getZ()); } @@ -188,6 +191,9 @@ public class BukkitQueue_1_9 extends BukkitQueue_0 { final BukkitChunk_1_9 bc = (BukkitChunk_1_9) pc; final Chunk chunk = bc.getChunk(); if (!chunk.isLoaded()) { + if (Fawe.get().getMainThread() != Thread.currentThread()) { + return false; + } chunk.load(false); } // Initialize lighting diff --git a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitQueue_1_9_R1.java b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitQueue_1_9_R1.java index 50edfad0..23315807 100644 --- a/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitQueue_1_9_R1.java +++ b/bukkit/src/main/java/com/boydti/fawe/bukkit/v1_9/BukkitQueue_1_9_R1.java @@ -153,10 +153,13 @@ public class BukkitQueue_1_9_R1 extends BukkitQueue_0 { TaskManager.IMP.task(new Runnable() { @Override public void run() { - fixLighting(fc, Settings.FIX_ALL_LIGHTING); + final boolean result = fixLighting(fc, Settings.FIX_ALL_LIGHTING) || !Settings.ASYNC_LIGHTING; TaskManager.IMP.task(new Runnable() { @Override public void run() { + if (!result) { + fixLighting(fc, Settings.FIX_ALL_LIGHTING); + } final Chunk chunk = fc.getChunk(); chunk.getWorld().refreshChunk(fc.getX(), fc.getZ()); } @@ -171,6 +174,9 @@ public class BukkitQueue_1_9_R1 extends BukkitQueue_0 { final BukkitChunk_1_8 bc = (BukkitChunk_1_8) pc; final Chunk chunk = bc.getChunk(); if (!chunk.isLoaded()) { + if (Fawe.get().getMainThread() != Thread.currentThread()) { + return false; + } chunk.load(false); } // Initialize lighting