geforkt von Mirrors/Paper
0ff0c18238
We bandaided this logic on a case by case basis before with Loot Tables and Chests, but that is not the correct fix. Ultimately we just needed to clear out the captured tile entity list so that the update calls did not process the tile entity that is no longer even valid. This solution will ensure ALL placed tile entities data is ignored and not just the few cases we previously had filters for.
35 Zeilen
1.6 KiB
Diff
35 Zeilen
1.6 KiB
Diff
From ebd98949f3593794792e66a108d3ad296b7c40be Mon Sep 17 00:00:00 2001
|
|
From: BillyGalbreath <Blake.Galbreath@GMail.com>
|
|
Date: Sat, 8 Sep 2018 18:43:31 -0500
|
|
Subject: [PATCH] Allow chests to be placed with NBT data
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
|
|
index f34ac392e1..eb130c0121 100644
|
|
--- a/src/main/java/net/minecraft/server/ItemStack.java
|
|
+++ b/src/main/java/net/minecraft/server/ItemStack.java
|
|
@@ -241,6 +241,7 @@ public final class ItemStack {
|
|
enuminteractionresult = EnumInteractionResult.FAIL; // cancel placement
|
|
// PAIL: Remove this when MC-99075 fixed
|
|
placeEvent.getPlayer().updateInventory();
|
|
+ world.capturedTileEntities.clear(); // Paper - clear out tile entities as chests and such will pop loot
|
|
// revert back all captured blocks
|
|
for (BlockState blockstate : blocks) {
|
|
blockstate.update(true, false);
|
|
diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java
|
|
index c46b761cc5..2e0f782f65 100644
|
|
--- a/src/main/java/net/minecraft/server/TileEntityChest.java
|
|
+++ b/src/main/java/net/minecraft/server/TileEntityChest.java
|
|
@@ -305,7 +305,7 @@ public class TileEntityChest extends TileEntityLootable { // Paper - Remove ITic
|
|
// CraftBukkit start
|
|
@Override
|
|
public boolean isFilteredNBT() {
|
|
- return true;
|
|
+ return false; // Paper
|
|
}
|
|
// CraftBukkit end
|
|
}
|
|
--
|
|
2.21.0
|
|
|