package net.minecraft.world;

import net.minecraft.world.item.ItemStack;

import com.bergerkiller.generated.net.minecraft.world.item.ItemStackHandle;

interface Container {
    public abstract (ItemStackHandle) ItemStack getItem(int index);
    public abstract void setItem(int paramInt, (ItemStackHandle) ItemStack paramItemStack);

    // Note: subject to remappings (container_remappings.txt) for old versions of Minecraft
    public abstract (org.bukkit.inventory.ItemStack) ItemStack splitStack:removeItem(int i, int j);
    public abstract (org.bukkit.inventory.ItemStack) ItemStack splitWithoutUpdate:removeItemNoUpdate(int i);
    public abstract int getSize:getContainerSize();
    public abstract void update:setChanged();
    public abstract boolean canOpen:stillValid((org.bukkit.entity.HumanEntity) net.minecraft.world.entity.player.Player paramEntityHuman);
    public abstract boolean canStoreItem:canPlaceItem(int index, (org.bukkit.inventory.ItemStack) ItemStack itemstack);
    public abstract void clear:clearContent();

#if version >= 1.11
    public abstract (List<ItemStackHandle>) List<ItemStack> getContents();
#else
    public abstract (List<ItemStackHandle>) ItemStack[] getContents();
#endif
}
