mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-04 22:14:40 +01:00
SPIGOT-4741: InventoryHolder no longer returns DoubleChest
This commit is contained in:
parent
ed20842bcf
commit
724ec10f33
2 changed files with 69 additions and 2 deletions
67
nms-patches/BlockChest.patch
Normal file
67
nms-patches/BlockChest.patch
Normal file
|
@ -0,0 +1,67 @@
|
|||
--- a/net/minecraft/server/BlockChest.java
|
||||
+++ b/net/minecraft/server/BlockChest.java
|
||||
@@ -30,24 +30,7 @@
|
||||
public ITileInventory b(final TileEntityChest tileentitychest, final TileEntityChest tileentitychest1) {
|
||||
final InventoryLargeChest inventorylargechest = new InventoryLargeChest(tileentitychest, tileentitychest1);
|
||||
|
||||
- return new ITileInventory() {
|
||||
- @Nullable
|
||||
- @Override
|
||||
- public Container createMenu(int i, PlayerInventory playerinventory, EntityHuman entityhuman) {
|
||||
- if (tileentitychest.e(entityhuman) && tileentitychest1.e(entityhuman)) {
|
||||
- tileentitychest.d(playerinventory.player);
|
||||
- tileentitychest1.d(playerinventory.player);
|
||||
- return ContainerChest.b(i, playerinventory, inventorylargechest);
|
||||
- } else {
|
||||
- return null;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public IChatBaseComponent getScoreboardDisplayName() {
|
||||
- return new ChatMessage("container.chestDouble", new Object[0]);
|
||||
- }
|
||||
- };
|
||||
+ return new DoubleInventory(tileentitychest, tileentitychest1, inventorylargechest); // CraftBukkit
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -56,6 +39,38 @@
|
||||
}
|
||||
};
|
||||
|
||||
+ // CraftBukkit start
|
||||
+ public static class DoubleInventory implements ITileInventory {
|
||||
+
|
||||
+ private final TileEntityChest tileentitychest;
|
||||
+ private final TileEntityChest tileentitychest1;
|
||||
+ public final InventoryLargeChest inventorylargechest;
|
||||
+
|
||||
+ public DoubleInventory(TileEntityChest tileentitychest, TileEntityChest tileentitychest1, InventoryLargeChest inventorylargechest) {
|
||||
+ this.tileentitychest = tileentitychest;
|
||||
+ this.tileentitychest1 = tileentitychest1;
|
||||
+ this.inventorylargechest = inventorylargechest;
|
||||
+ }
|
||||
+
|
||||
+ @Nullable
|
||||
+ @Override
|
||||
+ public Container createMenu(int i, PlayerInventory playerinventory, EntityHuman entityhuman) {
|
||||
+ if (tileentitychest.e(entityhuman) && tileentitychest1.e(entityhuman)) {
|
||||
+ tileentitychest.d(playerinventory.player);
|
||||
+ tileentitychest1.d(playerinventory.player);
|
||||
+ return ContainerChest.b(i, playerinventory, inventorylargechest);
|
||||
+ } else {
|
||||
+ return null;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public IChatBaseComponent getScoreboardDisplayName() {
|
||||
+ return new ChatMessage("container.chestDouble", new Object[0]);
|
||||
+ }
|
||||
+ };
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
protected BlockChest(Block.Info block_info) {
|
||||
super(block_info);
|
||||
this.o((IBlockData) ((IBlockData) ((IBlockData) ((IBlockData) this.blockStateList.getBlockData()).set(BlockChest.FACING, EnumDirection.NORTH)).set(BlockChest.b, BlockPropertyChestType.SINGLE)).set(BlockChest.c, false));
|
|
@ -50,8 +50,8 @@ public class CraftChest extends CraftLootable<TileEntityChest> implements Chest
|
|||
BlockChest blockChest = (BlockChest) (this.getType() == Material.CHEST ? Blocks.CHEST : Blocks.TRAPPED_CHEST);
|
||||
ITileInventory nms = blockChest.getInventory(data, world.getHandle(), this.getPosition());
|
||||
|
||||
if (nms instanceof InventoryLargeChest) {
|
||||
inventory = new CraftInventoryDoubleChest((InventoryLargeChest) nms);
|
||||
if (nms instanceof BlockChest.DoubleInventory) {
|
||||
inventory = new CraftInventoryDoubleChest(((BlockChest.DoubleInventory) nms).inventorylargechest);
|
||||
}
|
||||
return inventory;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue