From 6f341bdfd51609e529a4f9865f7775a57b1b4cc5 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 3c966b4ab..baad98517 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -349,7 +349,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); } @@ -360,7 +362,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