mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-18 12:48:53 +01:00
32 lines
2.9 KiB
Diff
32 lines
2.9 KiB
Diff
|
From 0000000000000000000000000000000000000000 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/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||
|
index 1e16482830556cf34f3b68fc2af8216663b075e4..225206a055e2f6bf4dbb18434cb3401d02746387 100644
|
||
|
--- a/src/main/java/net/minecraft/world/item/ItemStack.java
|
||
|
+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
|
||
|
@@ -501,6 +501,7 @@ public final class ItemStack implements DataComponentHolder {
|
||
|
enuminteractionresult = InteractionResult.FAIL; // cancel placement
|
||
|
// PAIL: Remove this when MC-99075 fixed
|
||
|
placeEvent.getPlayer().updateInventory();
|
||
|
+ world.capturedTileEntities.clear(); // Paper - Allow chests to be placed with NBT data; clear out block entities as chests and such will pop loot
|
||
|
// revert back all captured blocks
|
||
|
world.preventPoiUpdated = true; // CraftBukkit - SPIGOT-5710
|
||
|
for (BlockState blockstate : blocks) {
|
||
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/BlockEntityType.java b/src/main/java/net/minecraft/world/level/block/entity/BlockEntityType.java
|
||
|
index d602ab397e7deacd9cb9a43f9058cd7f7bb9dc07..63c5bc786010d96dc121ee14dbac99253b3c8168 100644
|
||
|
--- a/src/main/java/net/minecraft/world/level/block/entity/BlockEntityType.java
|
||
|
+++ b/src/main/java/net/minecraft/world/level/block/entity/BlockEntityType.java
|
||
|
@@ -66,7 +66,7 @@ public class BlockEntityType<T extends BlockEntity> {
|
||
|
public static final BlockEntityType<CrafterBlockEntity> CRAFTER = BlockEntityType.register("crafter", CrafterBlockEntity::new, Blocks.CRAFTER);
|
||
|
public static final BlockEntityType<TrialSpawnerBlockEntity> TRIAL_SPAWNER = BlockEntityType.register("trial_spawner", TrialSpawnerBlockEntity::new, Blocks.TRIAL_SPAWNER);
|
||
|
public static final BlockEntityType<VaultBlockEntity> VAULT = BlockEntityType.register("vault", VaultBlockEntity::new, Blocks.VAULT);
|
||
|
- private static final Set<BlockEntityType<?>> OP_ONLY_CUSTOM_DATA = Set.of(BlockEntityType.COMMAND_BLOCK, BlockEntityType.LECTERN, BlockEntityType.SIGN, BlockEntityType.HANGING_SIGN, BlockEntityType.MOB_SPAWNER, BlockEntityType.TRIAL_SPAWNER, BlockEntityType.CHEST); // CraftBukkit
|
||
|
+ private static final Set<BlockEntityType<?>> OP_ONLY_CUSTOM_DATA = Set.of(BlockEntityType.COMMAND_BLOCK, BlockEntityType.LECTERN, BlockEntityType.SIGN, BlockEntityType.HANGING_SIGN, BlockEntityType.MOB_SPAWNER, BlockEntityType.TRIAL_SPAWNER); // CraftBukkit // Paper - Allow chests to be placed with NBT data
|
||
|
private final BlockEntityType.BlockEntitySupplier<? extends T> factory;
|
||
|
public final Set<Block> validBlocks;
|
||
|
private final Holder.Reference<BlockEntityType<?>> builtInRegistryHolder;
|