2020-03-10 11:01:15 +00:00
From a9fe517d8e5a270edcdcde47831bd6afac35b995 Mon Sep 17 00:00:00 2001
2020-02-19 03:51:52 +00:00
From: Trigary <trigary0@gmail.com>
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
2020-03-10 11:01:15 +00:00
index bb34486a3..5117dafbc 100644
2020-02-19 03:51:52 +00:00
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
2020-03-10 11:01:15 +00:00
@@ -353,7 +353,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
2020-02-19 03:51:52 +00:00
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);
}
2020-03-10 11:01:15 +00:00
@@ -364,7 +366,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
2020-02-19 03:51:52 +00:00
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
--
2020-03-10 11:01:15 +00:00
2.25.0
2020-02-19 03:51:52 +00:00