--- a/net/minecraft/world/inventory/CrafterMenu.java +++ b/net/minecraft/world/inventory/CrafterMenu.java @@ -9,8 +9,27 @@ import net.minecraft.world.level.World; import net.minecraft.world.level.block.CrafterBlock; +// CraftBukkit start +import org.bukkit.craftbukkit.inventory.CraftInventoryCrafter; +import org.bukkit.craftbukkit.inventory.CraftInventoryView; +// CraftBukkit end + public class CrafterMenu extends Container implements ICrafting { + // CraftBukkit start + private CraftInventoryView bukkitEntity = null; + + @Override + public CraftInventoryView getBukkitView() { + if (bukkitEntity != null) { + return bukkitEntity; + } + + CraftInventoryCrafter inventory = new CraftInventoryCrafter(this.container, this.resultContainer); + bukkitEntity = new CraftInventoryView(this.player.getBukkitEntity(), inventory, this); + return bukkitEntity; + } + // CraftBukkit end protected static final int SLOT_COUNT = 9; private static final int INV_SLOT_START = 9; private static final int INV_SLOT_END = 36; @@ -117,6 +136,7 @@ @Override public boolean stillValid(EntityHuman entityhuman) { + if (!this.checkReachable) return true; // CraftBukkit return this.container.stillValid(entityhuman); }