Files
CatServer/patches/net/minecraft/inventory/ContainerBeacon.java.patch

55 lines
2.0 KiB
Diff

--- ../src-base/minecraft/net/minecraft/inventory/ContainerBeacon.java
+++ ../src-work/minecraft/net/minecraft/inventory/ContainerBeacon.java
@@ -1,9 +1,16 @@
package net.minecraft.inventory;
import javax.annotation.Nullable;
+
+import org.bukkit.craftbukkit.inventory.CraftInventory;
+import org.bukkit.craftbukkit.inventory.CraftInventoryBeacon;
+import org.bukkit.craftbukkit.inventory.CraftInventoryView;
+
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntityBeacon;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@@ -11,10 +18,26 @@
{
private final IInventory tileBeacon;
private final ContainerBeacon.BeaconSlot beaconSlot;
+ // CraftBukkit start
+ private CraftInventoryView bukkitEntity = null;
+ private InventoryPlayer player;
+ @Override
+ public CraftInventoryView getBukkitView() {
+ if (bukkitEntity != null) {
+ return bukkitEntity;
+ }
+
+ CraftInventory inventory = new CraftInventoryBeacon((TileEntityBeacon) this.tileBeacon); // TODO - check this
+ bukkitEntity = new CraftInventoryView(this.player.player.getBukkitEntity(), inventory, this);
+ return bukkitEntity;
+ }
+ // CraftBukkit end
+
public ContainerBeacon(IInventory playerInventory, IInventory tileBeaconIn)
{
this.tileBeacon = tileBeaconIn;
+ this.player = (InventoryPlayer) playerInventory; // CraftBukkit - TODO: check this
this.beaconSlot = new ContainerBeacon.BeaconSlot(tileBeaconIn, 0, 136, 110);
this.addSlotToContainer(this.beaconSlot);
int i = 36;
@@ -68,6 +91,7 @@
public boolean canInteractWith(EntityPlayer playerIn)
{
+ if (!this.checkReachable) return true; // CraftBukkit
return this.tileBeacon.isUseableByPlayer(playerIn);
}