Paper/src/main/java/net/minecraft/server/InventoryEnderChest.java

111 Zeilen
2.6 KiB
Java

2012-07-29 09:33:13 +02:00
package net.minecraft.server;
// CraftBukkit start
import java.util.List;
import org.bukkit.craftbukkit.entity.CraftHumanEntity;
import org.bukkit.entity.HumanEntity;
// CraftBukkit end
public class InventoryEnderChest extends InventorySubcontainer {
private TileEntityEnderChest a;
2014-03-21 05:26:30 +01:00
// CraftBukkit start - add fields and methods
2012-07-29 09:33:13 +02:00
public List<HumanEntity> transaction = new java.util.ArrayList<HumanEntity>();
public org.bukkit.entity.Player player;
private int maxStack = MAX_STACK;
public ItemStack[] getContents() {
return this.items;
}
public void onOpen(CraftHumanEntity who) {
transaction.add(who);
}
public void onClose(CraftHumanEntity who) {
transaction.remove(who);
}
public List<HumanEntity> getViewers() {
return transaction;
}
public org.bukkit.inventory.InventoryHolder getOwner() {
return this.player;
}
public void setMaxStackSize(int size) {
maxStack = size;
}
public int getMaxStackSize() {
return maxStack;
}
// CraftBukkit end
public InventoryEnderChest() {
2013-03-13 23:33:27 +01:00
super("container.enderchest", false, 27);
2012-07-29 09:33:13 +02:00
}
public void a(TileEntityEnderChest tileentityenderchest) {
this.a = tileentityenderchest;
}
public void a(NBTTagList nbttaglist) {
int i;
for (i = 0; i < this.getSize(); ++i) {
this.setItem(i, (ItemStack) null);
}
for (i = 0; i < nbttaglist.size(); ++i) {
2013-11-04 14:07:38 +01:00
NBTTagCompound nbttagcompound = nbttaglist.get(i);
2012-07-29 09:33:13 +02:00
int j = nbttagcompound.getByte("Slot") & 255;
if (j >= 0 && j < this.getSize()) {
2013-01-17 10:28:44 +01:00
this.setItem(j, ItemStack.createStack(nbttagcompound));
2012-07-29 09:33:13 +02:00
}
}
}
2013-03-13 23:33:27 +01:00
public NBTTagList h() {
2013-11-04 14:07:38 +01:00
NBTTagList nbttaglist = new NBTTagList();
2012-07-29 09:33:13 +02:00
for (int i = 0; i < this.getSize(); ++i) {
ItemStack itemstack = this.getItem(i);
if (itemstack != null) {
NBTTagCompound nbttagcompound = new NBTTagCompound();
nbttagcompound.setByte("Slot", (byte) i);
itemstack.save(nbttagcompound);
nbttaglist.add(nbttagcompound);
}
}
return nbttaglist;
}
2013-03-13 23:33:27 +01:00
public boolean a(EntityHuman entityhuman) {
return this.a != null && !this.a.a(entityhuman) ? false : super.a(entityhuman);
2012-07-29 09:33:13 +02:00
}
public void startOpen() {
if (this.a != null) {
this.a.a();
}
super.startOpen();
}
2013-11-04 14:07:38 +01:00
public void l_() {
2012-07-29 09:33:13 +02:00
if (this.a != null) {
this.a.b();
}
2013-11-04 14:07:38 +01:00
super.l_();
2012-07-29 09:33:13 +02:00
this.a = null;
}
}