AbstractHorseInventory
, AnvilInventory
, ArmoredHorseInventory
, BeaconInventory
, BrewerInventory
, CraftingInventory
, DoubleChestInventory
, EnchantingInventory
, FurnaceInventory
, HorseInventory
, LlamaInventory
, MerchantInventory
, PlayerInventory
, SaddledHorseInventory
public interface Inventory extends Iterable<ItemStack>
Material.AIR
is unspecified.
iterator()
deals with the entire inventory, add
/ contains / remove methods deal only with the storage contents.
getContents()
and getStorageContents()
for
specific iteration.getContents()
,
getStorageContents()
Modifier and Type | Method | Description |
---|---|---|
HashMap<Integer,ItemStack> |
addItem(ItemStack... items) |
Stores the given ItemStacks in the inventory.
|
HashMap<Integer,? extends ItemStack> |
all(ItemStack item) |
Finds all slots in the inventory containing any ItemStacks with the
given ItemStack.
|
HashMap<Integer,? extends ItemStack> |
all(Material material) |
Returns a HashMap with all slots and ItemStacks in the inventory with
the given Material.
|
void |
clear() |
Clears out the whole Inventory.
|
void |
clear(int index) |
Clears out a particular slot in the index.
|
boolean |
contains(ItemStack item) |
Checks if the inventory contains any ItemStacks matching the given
ItemStack.
|
boolean |
contains(ItemStack item,
int amount) |
Checks if the inventory contains at least the minimum amount specified
of exactly matching ItemStacks.
|
boolean |
contains(Material material) |
Checks if the inventory contains any ItemStacks with the given
material.
|
boolean |
contains(Material material,
int amount) |
Checks if the inventory contains any ItemStacks with the given
material, adding to at least the minimum amount specified.
|
boolean |
containsAtLeast(ItemStack item,
int amount) |
Checks if the inventory contains ItemStacks matching the given
ItemStack whose amounts sum to at least the minimum amount specified.
|
int |
first(ItemStack item) |
Returns the first slot in the inventory containing an ItemStack with
the given stack.
|
int |
first(Material material) |
Finds the first slot in the inventory containing an ItemStack with the
given material
|
int |
firstEmpty() |
Returns the first empty Slot.
|
ItemStack[] |
getContents() |
Returns all ItemStacks from the inventory
|
InventoryHolder |
getHolder() |
Gets the block or entity belonging to the open inventory
|
ItemStack |
getItem(int index) |
Returns the ItemStack found in the slot at the given index
|
Location |
getLocation() |
Get the location of the block or entity which corresponds to this inventory.
|
int |
getMaxStackSize() |
Returns the maximum stack size for an ItemStack in this inventory.
|
String |
getName() |
Deprecated.
different instances of the same inventory may have different names;
it is not clear what this method is meant to return
|
int |
getSize() |
Returns the size of the inventory
|
ItemStack[] |
getStorageContents() |
Return the contents from the section of the inventory where items can
reasonably be expected to be stored.
|
String |
getTitle() |
Deprecated.
different instances of the same inventory may have different titles
|
InventoryType |
getType() |
Returns what type of inventory this is.
|
List<HumanEntity> |
getViewers() |
Gets a list of players viewing the inventory.
|
ListIterator<ItemStack> |
iterator() |
|
ListIterator<ItemStack> |
iterator(int index) |
Returns an iterator starting at the given index.
|
void |
remove(ItemStack item) |
Removes all stacks in the inventory matching the given stack.
|
void |
remove(Material material) |
Removes all stacks in the inventory matching the given material.
|
HashMap<Integer,ItemStack> |
removeItem(ItemStack... items) |
Removes the given ItemStacks from the inventory.
|
HashMap<Integer,ItemStack> |
removeItemAnySlot(ItemStack... items) |
Searches all possible inventory slots in order to remove the given ItemStacks.
|
void |
setContents(ItemStack[] items) |
Completely replaces the inventory's contents.
|
void |
setItem(int index,
ItemStack item) |
Stores the ItemStack at the given index of the inventory.
|
void |
setMaxStackSize(int size) |
This method allows you to change the maximum stack size for an
inventory.
|
void |
setStorageContents(ItemStack[] items) |
Put the given ItemStacks into the storage slots
|
forEach, spliterator
int getSize()
int getMaxStackSize()
void setMaxStackSize(int size)
Caveats:
size
- The new maximum stack size for items in this inventory.@Deprecated @NotNull String getName()
InventoryView.getTitle()
@Nullable ItemStack getItem(int index)
index
- The index of the Slot's ItemStack to returnvoid setItem(int index, @Nullable ItemStack item)
index
- The index where to put the ItemStackitem
- The ItemStack to set@NotNull HashMap<Integer,ItemStack> addItem(@NotNull ItemStack... items) throws IllegalArgumentException
The returned HashMap contains what it couldn't store, where the key is the index of the parameter, and the value is the ItemStack at that index of the varargs parameter. If all items are stored, it will return an empty HashMap.
If you pass in ItemStacks which exceed the maximum stack size for the Material, first they will be added to partial stacks where Material.getMaxStackSize() is not exceeded, up to Material.getMaxStackSize(). When there are no partial stacks left stacks will be split on Inventory.getMaxStackSize() allowing you to exceed the maximum stack size for that material.
It is known that in some implementations this method will also set the inputted argument amount to the number of that item not placed in slots.
items
- The ItemStacks to addIllegalArgumentException
- if items or any element in it is null@NotNull HashMap<Integer,ItemStack> removeItem(@NotNull ItemStack... items) throws IllegalArgumentException
It will try to remove 'as much as possible' from the types and amounts you give as arguments.
The returned HashMap contains what it couldn't remove, where the key is the index of the parameter, and the value is the ItemStack at that index of the varargs parameter. If all the given ItemStacks are removed, it will return an empty HashMap.
It is known that in some implementations this method will also set the inputted argument amount to the number of that item not removed from slots.
items
- The ItemStacks to removeIllegalArgumentException
- if items is null@NotNull HashMap<Integer,ItemStack> removeItemAnySlot(@NotNull ItemStack... items) throws IllegalArgumentException
Similar to removeItem(ItemStack...)
in behavior, except this
method will check all possible slots in the inventory, rather than just the main
storage contents.
It will try to remove 'as much as possible' from the types and amounts you give as arguments.
The returned HashMap contains what it couldn't remove, where the key is the index of the parameter, and the value is the ItemStack at that index of the varargs parameter. If all the given ItemStacks are removed, it will return an empty HashMap.
It is known that in some implementations this method will also set the inputted argument amount to the number of that item not removed from slots.
items
- The ItemStacks to removeIllegalArgumentException
- if items is null@NotNull ItemStack[] getContents()
void setContents(@NotNull ItemStack[] items) throws IllegalArgumentException
items
- A complete replacement for the contents; the length must
be less than or equal to getSize()
.IllegalArgumentException
- If the array has more items than the
inventory.@NotNull ItemStack[] getStorageContents()
void setStorageContents(@NotNull ItemStack[] items) throws IllegalArgumentException
items
- The ItemStacks to use as storage contentsIllegalArgumentException
- If the array has more items than the
inventory.boolean contains(@NotNull Material material) throws IllegalArgumentException
material
- The material to check forIllegalArgumentException
- if material is null@Contract("null -> false") boolean contains(@Nullable ItemStack item)
This will only return true if both the type and the amount of the stack match.
item
- The ItemStack to match againstboolean contains(@NotNull Material material, int amount) throws IllegalArgumentException
material
- The material to check foramount
- The minimum amountIllegalArgumentException
- if material is null@Contract("null, _ -> false") boolean contains(@Nullable ItemStack item, int amount)
An ItemStack only counts if both the type and the amount of the stack match.
item
- the ItemStack to match againstamount
- how many identical stacks to check forcontainsAtLeast(ItemStack, int)
@Contract("null, _ -> false") boolean containsAtLeast(@Nullable ItemStack item, int amount)
item
- the ItemStack to match againstamount
- the minimum amount@NotNull HashMap<Integer,? extends ItemStack> all(@NotNull Material material) throws IllegalArgumentException
The HashMap contains entries where, the key is the slot index, and the value is the ItemStack in that slot. If no matching ItemStack with the given Material is found, an empty map is returned.
material
- The material to look forIllegalArgumentException
- if material is null@NotNull HashMap<Integer,? extends ItemStack> all(@Nullable ItemStack item)
The HashMap contains entries where, the key is the slot index, and the value is the ItemStack in that slot. If no matching ItemStack with the given Material is found, an empty map is returned.
item
- The ItemStack to match againstint first(@NotNull Material material) throws IllegalArgumentException
material
- The material to look forIllegalArgumentException
- if material is nullint first(@NotNull ItemStack item)
item
- The ItemStack to match againstint firstEmpty()
void remove(@NotNull Material material) throws IllegalArgumentException
material
- The material to removeIllegalArgumentException
- if material is nullvoid remove(@NotNull ItemStack item)
This will only match a slot if both the type and the amount of the stack match
item
- The ItemStack to match againstvoid clear(int index)
index
- The index to empty.void clear()
@NotNull List<HumanEntity> getViewers()
@Deprecated @NotNull String getTitle()
InventoryView.getTitle()
@NotNull InventoryType getType()
@Nullable InventoryHolder getHolder()
@NotNull ListIterator<ItemStack> iterator()
@NotNull ListIterator<ItemStack> iterator(int index)
index
- The index.@Nullable Location getLocation()
Copyright © 2020. All rights reserved.