package sourcecoded.quantum.tile; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; public class TilePlayer extends TileDyeable implements ISidedInventory { public String owner; public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); compound.setString("ownerUUID", owner); } public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); owner = compound.getString("ownerUUID"); } public void setOwner(String UUID) { owner = UUID; } public EntityPlayer getPlayer() { for (Object player : worldObj.playerEntities) { if (player instanceof EntityPlayer) if (((EntityPlayer) player).getUniqueID().toString().equals(owner)) return (EntityPlayer) player; } return null; } @Override public int[] getAccessibleSlotsFromSide(int side) { EntityPlayer player = getPlayer(); if (player != null) { int[] intarray = new int[player.inventory.getSizeInventory()]; for (int i = 0; i < intarray.length; i++) intarray[i] = i; return intarray; } return new int[0]; } @Override public boolean canInsertItem(int slot, ItemStack item, int side) { return isItemValidForSlot(slot, item); } @Override public boolean canExtractItem(int slot, ItemStack item, int side) { return isItemValidForSlot(slot, item); } @Override public int getSizeInventory() { return getPlayer().inventory.getSizeInventory(); } @Override public ItemStack getStackInSlot(int slot) { return getPlayer().inventory.getStackInSlot(slot); } @Override public ItemStack decrStackSize(int slot, int amount) { return getPlayer().inventory.decrStackSize(slot, amount); } @Override public ItemStack getStackInSlotOnClosing(int slot) { return getPlayer().inventory.getStackInSlotOnClosing(slot); } @Override public void setInventorySlotContents(int slot, ItemStack stack) { getPlayer().inventory.setInventorySlotContents(slot, stack); } @Override public String getInventoryName() { EntityPlayer player = getPlayer(); return player != null ? player.getDisplayName() : "Player Entanglement Interface"; } @Override public boolean hasCustomInventoryName() { return true; } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer player) { return true; } @Override public void openInventory() { } @Override public void closeInventory() { } @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { EntityPlayer player = getPlayer(); return player != null && player.inventory.isItemValidForSlot(slot, stack); } }