Files
CatServer/patches/net/minecraft/inventory/ContainerDispenser.java.patch
2019-02-24 22:29:41 +08:00

53 lines
1.7 KiB
Diff

--- ../src-base/minecraft/net/minecraft/inventory/ContainerDispenser.java
+++ ../src-work/minecraft/net/minecraft/inventory/ContainerDispenser.java
@@ -1,16 +1,24 @@
package net.minecraft.inventory;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
+import org.bukkit.craftbukkit.inventory.CraftInventory;
+import org.bukkit.craftbukkit.inventory.CraftInventoryView;
public class ContainerDispenser extends Container
{
- private final IInventory dispenserInventory;
+ public final IInventory dispenserInventory; // CatServer - private -> public
+ private CraftInventoryView bukkitEntity = null;
+ private InventoryPlayer player;
public ContainerDispenser(IInventory playerInventory, IInventory dispenserInventoryIn)
{
this.dispenserInventory = dispenserInventoryIn;
+ // TODO: Should we check to make sure it really is an InventoryPlayer?
+ this.player = (InventoryPlayer) playerInventory;
+
for (int i = 0; i < 3; ++i)
{
for (int j = 0; j < 3; ++j)
@@ -35,6 +43,7 @@
public boolean canInteractWith(EntityPlayer playerIn)
{
+ if (!this.checkReachable) return true;
return this.dispenserInventory.isUsableByPlayer(playerIn);
}
@@ -79,4 +88,15 @@
return itemstack;
}
+
+ @Override
+ public CraftInventoryView getBukkitView() {
+ if (bukkitEntity != null) {
+ return bukkitEntity;
+ }
+
+ CraftInventory inventory = new CraftInventory(this.dispenserInventory);
+ bukkitEntity = new CraftInventoryView(this.player.player.getBukkitEntity(), inventory, this);
+ return bukkitEntity;
+ }
}