package de.take_weiland.mods.commons.inv; import de.take_weiland.mods.commons.nbt.NBTData; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import java.util.Set; import java.util.UUID; /** * @author diesieben07 */ final class PlayerSlot extends Slot { private final Set<UUID> itemInvUUIDs; PlayerSlot(IInventory playerInv, int slot, int x, int y, Set<UUID> itemInvUUIDs) { super(playerInv, slot, x, y); this.itemInvUUIDs = itemInvUUIDs; } @Override public boolean canTakeStack(EntityPlayer player) { ItemStack stack = getStack(); if (stack == null || stack.stackTagCompound == null) { return true; } UUID stackUUID = NBTData.readUUID(stack.stackTagCompound.getTag(ItemInventory.NBT_UUID_KEY)); return stackUUID == null || itemInvUUIDs.contains(stackUUID); } }