geforkt von Mirrors/Paper
e4602b6d48
This patch appears to be no longer relevant, and is seemingly a leading cause of datapack performance being horrific
33 Zeilen
1.7 KiB
Diff
33 Zeilen
1.7 KiB
Diff
From 4a01f268cb89bb4c08bddef7bd8e03edcb987f47 Mon Sep 17 00:00:00 2001
|
|
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
|
|
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.1
|
|
|