PaperMC/paper-server/nms-patches/net/minecraft/world/level/block/BlockChest.patch
CraftBukkit/Spigot 8398e12b34 Update to Minecraft 1.20.3
By: md_5 <git@md-5.net>
2023-12-06 03:40:00 +11:00

92 lines
4.6 KiB
Diff

--- 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) {