diff options
Diffstat (limited to 'patch-remap/og/net/minecraft/world/level/block/BlockChest.patch')
-rw-r--r-- | patch-remap/og/net/minecraft/world/level/block/BlockChest.patch | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/world/level/block/BlockChest.patch b/patch-remap/og/net/minecraft/world/level/block/BlockChest.patch new file mode 100644 index 0000000000..3f9027edce --- /dev/null +++ b/patch-remap/og/net/minecraft/world/level/block/BlockChest.patch @@ -0,0 +1,92 @@ +--- a/net/minecraft/world/level/block/BlockChest.java ++++ b/net/minecraft/world/level/block/BlockChest.java +@@ -93,24 +93,7 @@ + public Optional<ITileInventory> acceptDouble(final TileEntityChest tileentitychest, final TileEntityChest tileentitychest1) { + final InventoryLargeChest inventorylargechest = new InventoryLargeChest(tileentitychest, tileentitychest1); + +- return Optional.of(new ITileInventory() { +- @Nullable +- @Override +- public Container createMenu(int i, PlayerInventory playerinventory, EntityHuman entityhuman) { +- if (tileentitychest.canOpen(entityhuman) && tileentitychest1.canOpen(entityhuman)) { +- tileentitychest.unpackLootTable(playerinventory.player); +- tileentitychest1.unpackLootTable(playerinventory.player); +- return ContainerChest.sixRows(i, playerinventory, inventorylargechest); +- } else { +- return null; +- } +- } +- +- @Override +- public IChatBaseComponent getDisplayName() { +- return (IChatBaseComponent) (tileentitychest.hasCustomName() ? tileentitychest.getDisplayName() : (tileentitychest1.hasCustomName() ? tileentitychest1.getDisplayName() : IChatBaseComponent.translatable("container.chestDouble"))); +- } +- }); ++ return Optional.of(new DoubleInventory(tileentitychest, tileentitychest1, inventorylargechest)); // CraftBukkit + } + + public Optional<ITileInventory> acceptSingle(TileEntityChest tileentitychest) { +@@ -123,6 +106,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.canOpen(entityhuman) && tileentitychest1.canOpen(entityhuman)) { ++ tileentitychest.unpackLootTable(playerinventory.player); ++ tileentitychest1.unpackLootTable(playerinventory.player); ++ return ContainerChest.sixRows(i, playerinventory, inventorylargechest); ++ } else { ++ return null; ++ } ++ } ++ ++ @Override ++ public IChatBaseComponent getDisplayName() { ++ return (IChatBaseComponent) (tileentitychest.hasCustomName() ? tileentitychest.getDisplayName() : (tileentitychest1.hasCustomName() ? tileentitychest1.getDisplayName() : IChatBaseComponent.translatable("container.chestDouble"))); ++ } ++ }; ++ // CraftBukkit end ++ + @Override + public MapCodec<? extends BlockChest> codec() { + return BlockChest.CODEC; +@@ -278,7 +293,7 @@ + + @Override + public DoubleBlockFinder.Result<? extends TileEntityChest> combine(IBlockData iblockdata, World world, BlockPosition blockposition, boolean flag) { +- BiPredicate bipredicate; ++ BiPredicate<GeneratorAccess, BlockPosition> bipredicate; // CraftBukkit - decompile error + + if (flag) { + bipredicate = (generatoraccess, blockposition1) -> { +@@ -294,7 +309,14 @@ + @Nullable + @Override + public ITileInventory getMenuProvider(IBlockData iblockdata, World world, BlockPosition blockposition) { +- return (ITileInventory) ((Optional) this.combine(iblockdata, world, blockposition, false).apply(BlockChest.MENU_PROVIDER_COMBINER)).orElse((Object) null); ++ // CraftBukkit start ++ return getMenuProvider(iblockdata, world, blockposition, false); ++ } ++ ++ @Nullable ++ public ITileInventory getMenuProvider(IBlockData iblockdata, World world, BlockPosition blockposition, boolean ignoreObstructions) { ++ return (ITileInventory) ((Optional) this.combine(iblockdata, world, blockposition, ignoreObstructions).apply(BlockChest.MENU_PROVIDER_COMBINER)).orElse((Object) null); ++ // CraftBukkit end + } + + public static DoubleBlockFinder.Combiner<TileEntityChest, Float2FloatFunction> opennessCombiner(final LidBlockEntity lidblockentity) { |