Class AbstractInventory
java.lang.Object
net.minestom.server.inventory.AbstractInventory
- All Implemented Interfaces:
EventHandler<InventoryEvent>, InventoryClickHandler, Taggable, TagReadable, TagWritable, Viewable
- Direct Known Subclasses:
Inventory, PlayerInventory
public abstract sealed class AbstractInventory
extends Object
implements InventoryClickHandler, Taggable, Viewable, EventHandler<InventoryEvent>
permits Inventory, PlayerInventory
Represents an inventory where items can be modified/retrieved.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final InventoryClickProcessorprotected final ItemStack[] -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanaddItemStack(ItemStack itemStack) <T> TaddItemStack(ItemStack itemStack, TransactionOption<T> option) Adds anItemStackto the inventory and sends relevant update to the viewer(s).<T> List<T> addItemStacks(List<ItemStack> itemStacks, TransactionOption<T> option) AddsItemStacks to the inventory and sends relevant updates to the viewer(s).booleanAdds a viewer.voidclear()Clears the inventory and send relevant update to the viewer(s).voidcopyContents(ItemStack[] itemStacks) Places all the items ofitemStacksinto the internal array.intGets the size of the "inner inventory" (which includes only "usable" slots).getItemStack(int slot) Gets theItemStackat the specified slot.Gets all theItemStackin the inventory.intgetSize()Gets the size of the inventory.Gets all the viewers of this viewable element.abstract byteGets this window id.<T> TprocessItemStack(ItemStack itemStack, TransactionType type, TransactionOption<T> option) <T> List<T> processItemStacks(List<ItemStack> itemStacks, TransactionType type, TransactionOption<T> option) booleanremoveViewer(Player player) Removes a viewer.voidreplaceItemStack(int slot, UnaryOperator<ItemStack> operator) voidsendSlotRefresh(int slot, ItemStack item) voidsetItemStack(int slot, ItemStack itemStack) Sets anItemStackat the specified slot and send relevant update to the viewer(s).voidsetItemStack(int slot, ItemStack itemStack, boolean sendPacket) Sets anItemStackat the specified slot and send relevant update to the viewer(s).<T> TtakeItemStack(ItemStack itemStack, TransactionOption<T> option) Takes anItemStackfrom the inventory and sends relevant update to the viewer(s).<T> List<T> takeItemStacks(List<ItemStack> itemStacks, TransactionOption<T> option) TakesItemStacks from the inventory and sends relevant updates to the viewer(s).protected voidUNSAFE_itemInsert(int slot, ItemStack item, ItemStack previous, boolean sendPacket) voidupdate()Refreshes the inventory for all viewers.voidRefreshes the inventory for a specific viewer.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface InventoryClickHandler
callClickEvent, changeHeld, doubleClick, dragging, drop, handleClick, leftClick, middleClick, rightClick, shiftClickMethods inherited from interface Taggable
getAndSetTag, getAndUpdateTag, getTag, hasTag, removeTag, setTag, updateAndGetTag, updateTagMethods inherited from interface Viewable
getViewersAsAudience, getViewersAsAudiences, isViewer, sendPacketsToViewers, sendPacketsToViewers, sendPacketToViewers, sendPacketToViewersAndSelf
-
Field Details
-
itemStacks
-
clickProcessor
-
viewers
-
unmodifiableViewers
-
-
Constructor Details
-
AbstractInventory
protected AbstractInventory(int size)
-
-
Method Details
-
getWindowId
public abstract byte getWindowId()Gets this window id.This is the id that the client will send to identify the affected inventory, mostly used by packets.
- Returns:
- the window id
-
getViewers
Description copied from interface:ViewableGets all the viewers of this viewable element.- Specified by:
getViewersin interfaceViewable- Returns:
- A Set containing all the element's viewers
-
addViewer
-
removeViewer
Description copied from interface:ViewableRemoves a viewer.- Specified by:
removeViewerin interfaceViewable- Parameters:
player- the viewer to remove- Returns:
- true if the player has been removed, false otherwise (could be because he was not a viewer)
-
setItemStack
-
setItemStack
-
UNSAFE_itemInsert
-
sendSlotRefresh
-
processItemStack
public <T> T processItemStack(ItemStack itemStack, TransactionType type, TransactionOption<T> option) -
processItemStacks
public <T> List<T> processItemStacks(List<ItemStack> itemStacks, TransactionType type, TransactionOption<T> option) -
addItemStack
Adds anItemStackto the inventory and sends relevant update to the viewer(s).- Parameters:
itemStack- the item to addoption- the transaction option- Returns:
- true if the item has been successfully added, false otherwise
-
addItemStack
-
addItemStacks
AddsItemStacks to the inventory and sends relevant updates to the viewer(s).- Parameters:
itemStacks- items to addoption- the transaction option- Returns:
- the operation results
-
takeItemStack
Takes anItemStackfrom the inventory and sends relevant update to the viewer(s).- Parameters:
itemStack- the item to take- Returns:
- true if the item has been successfully fully taken, false otherwise
-
takeItemStacks
TakesItemStacks from the inventory and sends relevant updates to the viewer(s).- Parameters:
itemStacks- items to take- Returns:
- the operation results
-
replaceItemStack
-
clear
public void clear()Clears the inventory and send relevant update to the viewer(s). -
update
public void update()Refreshes the inventory for all viewers. -
update
Refreshes the inventory for a specific viewer.- Parameters:
player- the player to update the inventory for
-
getItemStack
-
getItemStacks
-
getSize
public int getSize()Gets the size of the inventory.- Returns:
- the inventory's size
-
getInnerSize
public int getInnerSize()Gets the size of the "inner inventory" (which includes only "usable" slots).- Returns:
- inner inventory's size
-
copyContents
Places all the items ofitemStacksinto the internal array.- Parameters:
itemStacks- the array to copy the content from- Throws:
IllegalArgumentException- if the size of the array is not equal togetSize()NullPointerException- ifitemStackscontains one null element or more
-
tagHandler
- Specified by:
tagHandlerin interfaceTaggable
-
eventNode
- Specified by:
eventNodein interfaceEventHandler<InventoryEvent>
-