Class Inventory

java.lang.Object
org.geysermc.geyser.inventory.Inventory
Direct Known Subclasses:
Container, PlayerInventory

public abstract class Inventory extends Object
  • Field Details

    • javaId

      protected final int javaId
    • size

      protected final int size
    • containerType

      protected final @Nullable org.geysermc.mcprotocollib.protocol.data.game.inventory.ContainerType containerType
      Used for smooth transitions between two windows of the same type.
    • title

      protected final String title
    • items

      protected final GeyserItemStack[] items
    • holderPosition

      protected org.cloudburstmc.math.vector.Vector3i holderPosition
      The location of the inventory block. Will either be a fake block above the player's head, or the actual block location.
    • holderId

      protected long holderId
      The entity id of the entity holding the inventory. Either this, or the holder position must be set in order for Bedrock to open inventories.
  • Constructor Details

    • Inventory

      protected Inventory(GeyserSession session, int id, int size, @Nullable org.geysermc.mcprotocollib.protocol.data.game.inventory.ContainerType containerType)
    • Inventory

      protected Inventory(GeyserSession session, String title, int javaId, int size, @Nullable org.geysermc.mcprotocollib.protocol.data.game.inventory.ContainerType containerType)
  • Method Details

    • getItem

      public GeyserItemStack getItem(int slot)
    • getOffsetForHotbar

      public abstract int getOffsetForHotbar(@org.jetbrains.annotations.Range(from=0L, to=8L) int slot)
    • setItem

      public void setItem(int slot, @NonNull GeyserItemStack newItem, GeyserSession session)
    • updateItemNetId

      public static void updateItemNetId(GeyserItemStack oldItem, GeyserItemStack newItem, GeyserSession session)
    • incrementStateId

      public void incrementStateId(int count)
      See ClickPlan.execute(boolean) for more details.
    • resetNextStateId

      public void resetNextStateId()
    • shouldConfirmContainerClose

      public boolean shouldConfirmContainerClose()
      Whether we should be sending a ServerboundContainerClosePacket when closing the inventory.
    • getPrefixedTitle

      protected String getPrefixedTitle(GeyserSession session, String title)
      Used for setting the title, which may be modified to apply integrated pack features. See Container.getPrefixedTitle(GeyserSession, String)
      Returns:
      the title to display
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getJavaId

      public int getJavaId()
    • setBedrockId

      public void setBedrockId(int bedrockId)
    • getBedrockId

      public int getBedrockId()
    • getStateId

      public int getStateId()
      The Java inventory state ID from the server. As of Java Edition 1.18.1 this value has one instance per player. If this is out of sync with the server when a packet containing it is handled, the server will resync items. This field has existed since Java Edition 1.17.1.
    • setStateId

      public void setStateId(int stateId)
      The Java inventory state ID from the server. As of Java Edition 1.18.1 this value has one instance per player. If this is out of sync with the server when a packet containing it is handled, the server will resync items. This field has existed since Java Edition 1.17.1.
    • getNextStateId

      public int getNextStateId()
      See ClickPlan.execute(boolean); used as a hack
    • getSize

      public int getSize()
    • getContainerType

      public @Nullable org.geysermc.mcprotocollib.protocol.data.game.inventory.ContainerType getContainerType()
      Used for smooth transitions between two windows of the same type.
    • getTitle

      public String getTitle()
    • getHolderPosition

      public org.cloudburstmc.math.vector.Vector3i getHolderPosition()
      The location of the inventory block. Will either be a fake block above the player's head, or the actual block location.
    • setHolderPosition

      public void setHolderPosition(org.cloudburstmc.math.vector.Vector3i holderPosition)
      The location of the inventory block. Will either be a fake block above the player's head, or the actual block location.
    • getHolderId

      public long getHolderId()
      The entity id of the entity holding the inventory. Either this, or the holder position must be set in order for Bedrock to open inventories.
    • setHolderId

      public void setHolderId(long holderId)
      The entity id of the entity holding the inventory. Either this, or the holder position must be set in order for Bedrock to open inventories.
    • isDisplayed

      public boolean isDisplayed()
      Whether this inventory is currently shown to the Bedrock player.
    • setDisplayed

      public void setDisplayed(boolean displayed)
      Whether this inventory is currently shown to the Bedrock player.