Package org.bukkit.inventory

# Interface PlayerInventory

All Superinterfaces:
  `Inventory`, `Iterable<ItemStack>`

public interface PlayerInventory extends Inventory
Interface to the inventory of a Player, including the four armor slots and any extra slots.

## Method Summary

Modifier and Type
Method
Description
`@Nullable ItemStack @NotNull []`
`getArmorContents()`
Get all ItemStacks from the armor slots
`@Nullable ItemStack`
`getBoots()`
Return the ItemStack from the boots slot
`@Nullable ItemStack`
`getChestplate()`
Return the ItemStack from the chestplate slot
`@Nullable ItemStack @NotNull []`
`getExtraContents()`
Get all additional ItemStacks stored in this inventory.
`int`
`getHeldItemSlot()`
Get the slot number of the currently held item
`@Nullable ItemStack`
`getHelmet()`
Return the ItemStack from the helmet slot
`@Nullable HumanEntity`
`getHolder()`
Gets the block or entity belonging to the open inventory
`@NotNull ItemStack`
`getItem(@NotNull EquipmentSlot slot)`
Gets the ItemStack at the given equipment slot in the inventory.
`@NotNull ItemStack`
`getItemInHand()`
Deprecated.
players can duel wield now use the methods for the specific hand instead
`@NotNull ItemStack`
`getItemInMainHand()`
Gets the item the player is currently holding in their main hand.
`@NotNull ItemStack`
`getItemInOffHand()`
Gets the item the player is currently holding in their off hand.
`@Nullable ItemStack`
`getLeggings()`
Return the ItemStack from the leg slot
`void`
`setArmorContents(@Nullable ItemStack[] items)`
Put the given ItemStacks into the armor slots
`void`
`setBoots(@Nullable ItemStack boots)`
Put the given ItemStack into the boots slot.
`void`
`setChestplate(@Nullable ItemStack chestplate)`
Put the given ItemStack into the chestplate slot.
`void`
`setExtraContents(@Nullable ItemStack[] items)`
Put the given ItemStacks into the extra slots
See `getExtraContents()` for an explanation of extra slots.
`void`
`setHeldItemSlot(int slot)`
Set the slot number of the currently held item.
`void`
`setHelmet(@Nullable ItemStack helmet)`
Put the given ItemStack into the helmet slot.
`void`
`setItem(int index, @Nullable ItemStack item)`
Stores the ItemStack at the given index of the inventory.
`void`
`setItem(@NotNull EquipmentSlot slot, @Nullable ItemStack item)`
Stores the ItemStack at the given equipment slot in the inventory.
`void`
`setItemInHand(@Nullable ItemStack stack)`
Deprecated.
players can duel wield now use the methods for the specific hand instead
`void`
`setItemInMainHand(@Nullable ItemStack item)`
Sets the item the player is holding in their main hand.
`void`
`setItemInOffHand(@Nullable ItemStack item)`
Sets the item the player is holding in their off hand.
`void`
`setLeggings(@Nullable ItemStack leggings)`
Put the given ItemStack into the leg slot.

### Methods inherited from interface org.bukkit.inventory.Inventory

`addItem, all, all, clear, clear, close, contains, contains, contains, contains, containsAtLeast, first, first, firstEmpty, getContents, getHolder, getItem, getLocation, getMaxStackSize, getSize, getStorageContents, getType, getViewers, isEmpty, iterator, iterator, remove, remove, removeItem, removeItemAnySlot, setContents, setMaxStackSize, setStorageContents`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

## Method Details

### getArmorContents

@Nullable @Nullable ItemStack @NotNull [] getArmorContents()
Get all ItemStacks from the armor slots

Returns:
  All the ItemStacks from the armor slots. Individual items can be null.

### getExtraContents

@Nullable @Nullable ItemStack @NotNull [] getExtraContents()
Get all additional ItemStacks stored in this inventory.
NB: What defines an extra slot is up to the implementation, however it will not be contained within `Inventory.getStorageContents()` or `getArmorContents()`

Returns:
  All additional ItemStacks. Individual items can be null.

### getHelmet

@Nullable @Nullable ItemStack getHelmet()
Return the ItemStack from the helmet slot

Returns:
  The ItemStack in the helmet slot

### getChestplate

@Nullable @Nullable ItemStack getChestplate()
Return the ItemStack from the chestplate slot

Returns:
  The ItemStack in the chestplate slot

### getLeggings

@Nullable @Nullable ItemStack getLeggings()
Return the ItemStack from the leg slot

Returns:
  The ItemStack in the leg slot

### getBoots

@Nullable @Nullable ItemStack getBoots()
Return the ItemStack from the boots slot

Returns:
  The ItemStack in the boots slot

### setItem

void setItem(int index, @Nullable @Nullable ItemStack item)
Stores the ItemStack at the given index of the inventory.

Indexes 0 through 8 refer to the hotbar. 9 through 35 refer to the main inventory, counting up from 9 at the top left corner of the inventory, moving to the right, and moving to the row below it back on the left side when it reaches the end of the row. It follows the same path in the inventory like you would read a book.

Indexes 36 through 39 refer to the armor slots. Though you can set armor with this method using these indexes, you are encouraged to use the provided methods for those slots.

Index 40 refers to the off hand (shield) item slot. Though you can set off hand with this method using this index, you are encouraged to use the provided method for this slot.

If you attempt to use this method with an index less than 0 or greater than 40, an ArrayIndexOutOfBounds exception will be thrown.

Specified by:
  `setItem` in interface `Inventory`
Parameters:
  `index` - The index where to put the ItemStack
  `item` - The ItemStack to set
Throws:
  `ArrayIndexOutOfBoundsException` - when index < 0 || index > 40
See Also:
  - `setBoots(ItemStack)`
  - `setChestplate(ItemStack)`
  - `setHelmet(ItemStack)`
  - `setLeggings(ItemStack)`
  - `setItemInOffHand(ItemStack)`

### setItem

void setItem(@NotNull @NotNull EquipmentSlot slot, @Nullable @Nullable ItemStack item)
Stores the ItemStack at the given equipment slot in the inventory.

Parameters:
  `slot` - the slot to put the ItemStack
  `item` - the ItemStack to set
See Also:
  - `setItem(int, ItemStack)`

### getItem

@NotNull @NotNull ItemStack getItem(@NotNull @NotNull EquipmentSlot slot)
Gets the ItemStack at the given equipment slot in the inventory.

Parameters:
  `slot` - the slot to get the ItemStack
Returns:
  the ItemStack in the given slot

### setArmorContents

void setArmorContents(@Nullable @Nullable ItemStack[] items)
Put the given ItemStacks into the armor slots

Parameters:
  `items` - The ItemStacks to use as armour

### setExtraContents

void setExtraContents(@Nullable @Nullable ItemStack[] items)
Put the given ItemStacks into the extra slots
See `getExtraContents()` for an explanation of extra slots.

Parameters:
  `items` - The ItemStacks to use as extra

### setHelmet

void setHelmet(@Nullable @Nullable ItemStack helmet)
Put the given ItemStack into the helmet slot. This does not check if the ItemStack is a helmet

Parameters:
  `helmet` - The ItemStack to use as helmet

### setChestplate

void setChestplate(@Nullable @Nullable ItemStack chestplate)
Put the given ItemStack into the chestplate slot. This does not check if the ItemStack is a chestplate

Parameters:
  `chestplate` - The ItemStack to use as chestplate

### setLeggings

void setLeggings(@Nullable @Nullable ItemStack leggings)
Put the given ItemStack into the leg slot. This does not check if the ItemStack is a pair of leggings

Parameters:
  `leggings` - The ItemStack to use as leggings

### setBoots

void setBoots(@Nullable @Nullable ItemStack boots)
Put the given ItemStack into the boots slot. This does not check if the ItemStack is a boots

Parameters:
  `boots` - The ItemStack to use as boots

### getItemInMainHand

@NotNull @NotNull ItemStack getItemInMainHand()
Gets the item the player is currently holding in their main hand.

Returns:
  the currently held item

### setItemInMainHand

void setItemInMainHand(@Nullable @Nullable ItemStack item)
Sets the item the player is holding in their main hand.

Parameters:
  `item` - The item to put into the player's hand

### getItemInOffHand

@NotNull @NotNull ItemStack getItemInOffHand()
Gets the item the player is currently holding in their off hand.

Returns:
  the currently held item

### setItemInOffHand

void setItemInOffHand(@Nullable @Nullable ItemStack item)
Sets the item the player is holding in their off hand.

Parameters:
  `item` - The item to put into the player's hand

### getItemInHand

@Deprecated @NotNull @NotNull ItemStack getItemInHand()
Deprecated.
players can duel wield now use the methods for the specific hand instead
Gets the item the player is currently holding

Returns:
  the currently held item
See Also:
  - `getItemInMainHand()`
  - `getItemInOffHand()`

### setItemInHand

@Deprecated void setItemInHand(@Nullable @Nullable ItemStack stack)
Deprecated.
players can duel wield now use the methods for the specific hand instead
Sets the item the player is holding

Parameters:
  `stack` - The item to put into the player's hand
See Also:
  - `setItemInMainHand(ItemStack)`
  - `setItemInOffHand(ItemStack)`

### getHeldItemSlot

int getHeldItemSlot()
Get the slot number of the currently held item

Returns:
  Held item slot number

### setHeldItemSlot

void setHeldItemSlot(int slot)
Set the slot number of the currently held item.

This validates whether the slot is between 0 and 8 inclusive.

Parameters:
  `slot` - The new slot number
Throws:
  `IllegalArgumentException` - Thrown if slot is not between 0 and 8 inclusive

### getHolder

@Nullable @Nullable HumanEntity getHolder()
Description copied from interface: `Inventory`
Gets the block or entity belonging to the open inventory

Specified by:
  `getHolder` in interface `Inventory`
Returns:
  The holder of the inventory; null if it has no holder.