net.minecraft.inventory

## Class Container

- java.lang.Object
- - net.minecraft.inventory.Container

- Direct Known Subclasses:
    ContainerBeacon, ContainerBrewingStand, ContainerChest, ContainerDispenser, ContainerEnchantment, ContainerFurnace, ContainerMerchant, ContainerPlayer, ContainerRepair, ContainerWorkbench

      public abstract class Container
      extends Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `List` | `inventoryItemStacks` the list of all items(stacks) for the corresponding slot
    `List` | `inventorySlots` the list of all slots in the inventory
    `int` | `windowId`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Container()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCraftingToCrafters(ICrafting par1ICrafting)`
    `abstract boolean` | `canInteractWith(EntityPlayer var1)`
    `void` | `detectAndSendChanges()` Looks for changes made in the container, sends them to every listener.
    `boolean` | `enchantItem(EntityPlayer par1EntityPlayer, int par2)` enchants the item on the table using the specified slot; also deducts XP from player
    `List` | `getInventory()` returns a list if itemStacks, for each slot.
    `short` | `getNextTransactionID(InventoryPlayer par1InventoryPlayer)`
    `Slot` | `getSlot(int par1)`
    `Slot` | `getSlotFromInventory(IInventory par1IInventory, int par2)`
    `boolean` | `isPlayerNotUsingContainer(EntityPlayer par1EntityPlayer)` NotUsing because adding a player twice is an error
    `void` | `onCraftGuiClosed(EntityPlayer par1EntityPlayer)` Callback for when the crafting gui is closed.
    `void` | `onCraftMatrixChanged(IInventory par1IInventory)` Callback for when the crafting matrix is changed.
    `void` | `putStackInSlot(int par1, ItemStack par2ItemStack)` args: slotID, itemStack to put in slot
    `void` | `putStacksInSlots(ItemStack[] par1ArrayOfItemStack)`
    `void` | `removeCraftingFromCrafters(ICrafting par1ICrafting)`
    `void` | `setPlayerIsPresent(EntityPlayer par1EntityPlayer, boolean par2)` adds or removes the player from the container based on par2
    `ItemStack` | `slotClick(int par1, int par2, int par3, EntityPlayer par4EntityPlayer)`
    `ItemStack` | `transferStackInSlot(EntityPlayer par1EntityPlayer, int par2)` Called when a player shift-clicks on a slot.
    `void` | `updateProgressBar(int par1, int par2)`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### inventoryItemStacks

          public List inventoryItemStacks

      the list of all items(stacks) for the corresponding slot

    - #### inventorySlots

          public List inventorySlots

      the list of all slots in the inventory

    - #### windowId

          public int windowId

  - ### Constructor Detail

    - #### Container

          public Container()

  - ### Method Detail

    - #### addCraftingToCrafters

          public void addCraftingToCrafters(ICrafting par1ICrafting)

    - #### getInventory

          public List getInventory()

      returns a list if itemStacks, for each slot.

    - #### removeCraftingFromCrafters

          public void removeCraftingFromCrafters(ICrafting par1ICrafting)

    - #### detectAndSendChanges

          public void detectAndSendChanges()

      Looks for changes made in the container, sends them to every listener.

    - #### enchantItem

          public boolean enchantItem(EntityPlayer par1EntityPlayer,
                            int par2)

      enchants the item on the table using the specified slot; also deducts XP from player

    - #### getSlotFromInventory

          public Slot getSlotFromInventory(IInventory par1IInventory,
                                  int par2)

    - #### getSlot

          public Slot getSlot(int par1)

    - #### transferStackInSlot

          public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer,
                                      int par2)

      Called when a player shift-clicks on a slot. You must override this or you will crash when someone does that.

    - #### slotClick

          public ItemStack slotClick(int par1,
                            int par2,
                            int par3,
                            EntityPlayer par4EntityPlayer)

    - #### onCraftGuiClosed

          public void onCraftGuiClosed(EntityPlayer par1EntityPlayer)

      Callback for when the crafting gui is closed.

    - #### onCraftMatrixChanged

          public void onCraftMatrixChanged(IInventory par1IInventory)

      Callback for when the crafting matrix is changed.

    - #### putStackInSlot

          public void putStackInSlot(int par1,
                            ItemStack par2ItemStack)

      args: slotID, itemStack to put in slot

    - #### putStacksInSlots

          public void putStacksInSlots(ItemStack[] par1ArrayOfItemStack)

    - #### updateProgressBar

          public void updateProgressBar(int par1,
                               int par2)

    - #### getNextTransactionID

          public short getNextTransactionID(InventoryPlayer par1InventoryPlayer)

    - #### isPlayerNotUsingContainer

          public boolean isPlayerNotUsingContainer(EntityPlayer par1EntityPlayer)

      NotUsing because adding a player twice is an error

    - #### setPlayerIsPresent

          public void setPlayerIsPresent(EntityPlayer par1EntityPlayer,
                                boolean par2)

      adds or removes the player from the container based on par2

    - #### canInteractWith

          public abstract boolean canInteractWith(EntityPlayer var1)