From a9fe517d8e5a270edcdcde47831bd6afac35b995 Mon Sep 17 00:00:00 2001 From: Trigary Date: Mon, 17 Feb 2020 22:53:33 +0100 Subject: [PATCH] fix blockstate capture undoing diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index bb34486a3..5117dafbc 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -353,7 +353,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable { Block block = iblockdata.getBlock(); // CraftBukkit start - capture blockstates + boolean capturedBlockState = false; //Paper - fix blockstate capture undoing if (this.captureBlockStates && !this.capturedBlockStates.containsKey(blockposition)) { + capturedBlockState = true; //Paper - fix blockstate capture undoing CraftBlockState blockstate = (CraftBlockState) world.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()).getState(); // Paper - use CB getState to get a suitable snapshot this.capturedBlockStates.put(blockposition.immutableCopy(), blockstate); } @@ -364,7 +366,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable { if (iblockdata1 == null) { // CraftBukkit start - remove blockstate if failed - if (this.captureBlockStates) { + if (/*this.captureBlockStates*/ capturedBlockState) { //Paper - fix blockstate capture undoing this.capturedBlockStates.remove(blockposition); } // CraftBukkit end -- 2.25.0