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 Detail

      • getArmorContents

        @NotNull
        @NotNull ItemStack[] getArmorContents()
        Get all ItemStacks from the armor slots
        Returns:
        All the ItemStacks from the armor slots. Individual items can be null.
      • getExtraContents

        @NotNull
        @NotNull ItemStack[] 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 a copy of 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 a copy of 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 a copy of the item the player is currently holding
        Returns:
        the currently held item
        See Also:
        getItemInMainHand(), getItemInOffHand()
      • 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.