mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 07:48:53 +01:00
459987d69f
improved the water code so that immunity wont trigger if the entity has the water pathfinder system active, so this improves support for all entities that know how to behave in water. Merged 2 EAR patches together, and removed an MCUtil method that doesnt have a purpose anymore
35 lines
1.8 KiB
Diff
35 lines
1.8 KiB
Diff
From ff6e4c55a7fc5a3980d77e8b648537098b3974b7 Mon Sep 17 00:00:00 2001
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
Date: Thu, 16 Nov 2017 12:12:41 +0000
|
|
Subject: [PATCH] use CB BlockState implementations for captured blocks
|
|
|
|
When modifying the world, CB will store a copy of the affected
|
|
blocks in order to restore their state in the case that the event
|
|
is cancelled. This change only modifies the collection of blocks
|
|
in the world by normal means, e.g. not during tree population,
|
|
as the potentially marginal overheads would serve no advantage.
|
|
|
|
CB was using a CraftBlockState for all blocks, which causes issues
|
|
should any block that uses information beyond a data ID would suffer
|
|
from missing information, e.g. Skulls.
|
|
|
|
By using CBs CraftBlock#getState(), we will maintain a proper copy of
|
|
the blockstate that will be valid for restoration, as opposed to dropping
|
|
information on restoration when the event is cancelled.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index 564f2aecdf..f80f075287 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -401,7 +401,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
|
|
// CraftBukkit start - capture blockstates
|
|
CraftBlockState blockstate = null;
|
|
if (this.captureBlockStates) {
|
|
- blockstate = org.bukkit.craftbukkit.block.CraftBlockState.getBlockState(this, blockposition, i);
|
|
+ blockstate = (CraftBlockState) world.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()).getState(); // Paper - use CB getState to get a suitable snapshot
|
|
this.capturedBlockStates.add(blockstate);
|
|
}
|
|
// CraftBukkit end
|
|
--
|
|
2.19.0
|
|
|