diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/BukkitGetBlocks_1_14.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/BukkitGetBlocks_1_14.java index dd21b6429..6514b8053 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/BukkitGetBlocks_1_14.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_14/BukkitGetBlocks_1_14.java @@ -206,10 +206,9 @@ public class BukkitGetBlocks_1_14 extends CharGetBlocks { if (this.sections == null) { this.sections = sections.clone(); } - //TODO: Understand why this causes #329, what the purpose of this is, and what may or may not break after commenting this out. -// if (this.sections[layer] != section) { -// this.sections[layer] = section; -// } + if (this.sections[layer] != section) { + this.sections[layer] = section; + } this.blocks[layer] = arr; } } @@ -279,19 +278,17 @@ public class BukkitGetBlocks_1_14 extends CharGetBlocks { synchronized (this) { synchronized (lock) { lock.untilFree(); - ChunkSection getSection; if (this.nmsChunk != nmsChunk) { this.nmsChunk = nmsChunk; this.sections = null; this.reset(); - } else { - getSection = this.getSections()[layer]; - if (getSection != existingSection) { - this.sections[layer] = existingSection; - this.reset(); - } else if (lock.isModified()) { - this.reset(layer); - } + } else if (existingSection != getSections()[layer]) { + this.sections[layer] = existingSection; + this.reset(); + } else if (!Arrays.equals(update(layer, new char[4096]), load(layer))) { + this.reset(layer); + } else if (lock.isModified()) { + this.reset(layer); } newSection = BukkitAdapter_1_14.newChunkSection(layer, this::load, setArr); if (!BukkitAdapter_1_14.setSectionAtomic(sections, existingSection, newSection, layer)) { diff --git a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_15/BukkitGetBlocks_1_15.java b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_15/BukkitGetBlocks_1_15.java index 79cb25569..8f05ad098 100644 --- a/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_15/BukkitGetBlocks_1_15.java +++ b/worldedit-bukkit/src/main/java/com/boydti/fawe/bukkit/adapter/mc1_15/BukkitGetBlocks_1_15.java @@ -214,10 +214,9 @@ public class BukkitGetBlocks_1_15 extends CharGetBlocks { if (this.sections == null) { this.sections = sections.clone(); } - //TODO: Understand why this causes #329, what the purpose of this is, and what may or may not break after commenting this out. -// if (this.sections[layer] != section) { -// this.sections[layer] = section; -// } + if (this.sections[layer] != section) { + this.sections[layer] = section; + } this.blocks[layer] = arr; } } @@ -287,19 +286,17 @@ public class BukkitGetBlocks_1_15 extends CharGetBlocks { synchronized (this) { synchronized (lock) { lock.untilFree(); - ChunkSection getSection; if (this.nmsChunk != nmsChunk) { this.nmsChunk = nmsChunk; this.sections = null; this.reset(); - } else { - getSection = this.getSections()[layer]; - if (getSection != existingSection) { - this.sections[layer] = existingSection; - this.reset(); - } else if (lock.isModified()) { - this.reset(layer); - } + } else if (existingSection != getSections()[layer]) { + this.sections[layer] = existingSection; + this.reset(); + } else if (!Arrays.equals(update(layer, new char[4096]), load(layer))) { + this.reset(layer); + } else if (lock.isModified()) { + this.reset(layer); } newSection = BukkitAdapter_1_15.newChunkSection(layer, this::load, setArr); if (!BukkitAdapter_1_15.setSectionAtomic(sections, existingSection, newSection, layer)) {