Class DoubleInventory

java.lang.Object
net.minecraft.inventory.DoubleInventory
All Implemented Interfaces:
Inventory, Clearable

public class DoubleInventory extends Object implements Inventory
Represents a combined inventory that is backed by two inventories. This is used by double chests.

It is possible to nest this inventory to create triple or quadruple inventories.

Mappings:
Namespace Name
named net/minecraft/inventory/DoubleInventory
intermediary net/minecraft/class_1258
official bqo
  • Field Details

    • first

      private final Inventory first
      Mappings:
      Namespace Name Mixin selector
      named first Lnet/minecraft/inventory/DoubleInventory;first:Lnet/minecraft/inventory/Inventory;
      intermediary field_5769 Lnet/minecraft/class_1258;field_5769:Lnet/minecraft/class_1263;
      official b Lbqo;b:Lbqp;
    • second

      private final Inventory second
      Mappings:
      Namespace Name Mixin selector
      named second Lnet/minecraft/inventory/DoubleInventory;second:Lnet/minecraft/inventory/Inventory;
      intermediary field_5771 Lnet/minecraft/class_1258;field_5771:Lnet/minecraft/class_1263;
      official c Lbqo;c:Lbqp;
  • Constructor Details

    • DoubleInventory

      public DoubleInventory(Inventory first, Inventory second)
      Mappings:
      Namespace Name Mixin selector
      named <init> Lnet/minecraft/inventory/DoubleInventory;<init>(Lnet/minecraft/inventory/Inventory;Lnet/minecraft/inventory/Inventory;)V
      intermediary <init> Lnet/minecraft/class_1258;<init>(Lnet/minecraft/class_1263;Lnet/minecraft/class_1263;)V
      official <init> Lbqo;<init>(Lbqp;Lbqp;)V
  • Method Details

    • size

      public int size()
      Returns the size of the inventory.

      The inventory should support the slot ID from 0 to size() - 1. This should remain constant throughout the inventory's lifetime.

      Specified by:
      size in interface Inventory
      Returns:
      the size of the inventory
      Mappings:
      Namespace Name Mixin selector
      named size Lnet/minecraft/inventory/Inventory;size()I
      intermediary method_5439 Lnet/minecraft/class_1263;method_5439()I
      official b Lbqp;b()I
    • isEmpty

      public boolean isEmpty()
      Returns whether the inventory consists entirely of empty item stacks.
      Specified by:
      isEmpty in interface Inventory
      Returns:
      whether the inventory consists entirely of empty item stacks
      Mappings:
      Namespace Name Mixin selector
      named isEmpty Lnet/minecraft/inventory/Inventory;isEmpty()Z
      intermediary method_5442 Lnet/minecraft/class_1263;method_5442()Z
      official c Lbqp;c()Z
    • isPart

      public boolean isPart(Inventory inventory)
      Returns whether inventory is part of the combined inventory.
      Returns:
      whether inventory is part of the combined inventory
      Mappings:
      Namespace Name Mixin selector
      named isPart Lnet/minecraft/inventory/DoubleInventory;isPart(Lnet/minecraft/inventory/Inventory;)Z
      intermediary method_5405 Lnet/minecraft/class_1258;method_5405(Lnet/minecraft/class_1263;)Z
      official a Lbqo;a(Lbqp;)Z
    • getStack

      public ItemStack getStack(int slot)
      Returns the stack currently stored at slot.

      If the slot is empty, or is outside the bounds of this inventory, this returns ItemStack.EMPTY.

      Specified by:
      getStack in interface Inventory
      Returns:
      the stack currently stored at slot
      Mappings:
      Namespace Name Mixin selector
      named getStack Lnet/minecraft/inventory/Inventory;getStack(I)Lnet/minecraft/item/ItemStack;
      intermediary method_5438 Lnet/minecraft/class_1263;method_5438(I)Lnet/minecraft/class_1799;
      official a Lbqp;a(I)Lcur;
    • removeStack

      public ItemStack removeStack(int slot, int amount)
      Removes a specific number of items from slot.
      Specified by:
      removeStack in interface Inventory
      Returns:
      the removed items as a stack
      Mappings:
      Namespace Name Mixin selector
      named removeStack Lnet/minecraft/inventory/Inventory;removeStack(II)Lnet/minecraft/item/ItemStack;
      intermediary method_5434 Lnet/minecraft/class_1263;method_5434(II)Lnet/minecraft/class_1799;
      official a Lbqp;a(II)Lcur;
    • removeStack

      public ItemStack removeStack(int slot)
      Removes the stack currently stored at slot.
      Specified by:
      removeStack in interface Inventory
      Returns:
      the stack previously stored at the indicated slot
      Mappings:
      Namespace Name Mixin selector
      named removeStack Lnet/minecraft/inventory/Inventory;removeStack(I)Lnet/minecraft/item/ItemStack;
      intermediary method_5441 Lnet/minecraft/class_1263;method_5441(I)Lnet/minecraft/class_1799;
      official b Lbqp;b(I)Lcur;
    • setStack

      public void setStack(int slot, ItemStack stack)
      Sets the stack stored at slot to stack.
      Specified by:
      setStack in interface Inventory
      Mappings:
      Namespace Name Mixin selector
      named setStack Lnet/minecraft/inventory/Inventory;setStack(ILnet/minecraft/item/ItemStack;)V
      intermediary method_5447 Lnet/minecraft/class_1263;method_5447(ILnet/minecraft/class_1799;)V
      official a Lbqp;a(ILcur;)V
    • getMaxCountPerStack

      public int getMaxCountPerStack()
      Returns the maximum number of items a stack can contain when placed inside this inventory.

      No slots may have more than this number of items. It is effectively the stacking limit for this inventory's slots.

      Specified by:
      getMaxCountPerStack in interface Inventory
      Returns:
      the maximum number of items a stack can contain when placed inside this inventory
      Mappings:
      Namespace Name Mixin selector
      named getMaxCountPerStack Lnet/minecraft/inventory/Inventory;getMaxCountPerStack()I
      intermediary method_5444 Lnet/minecraft/class_1263;method_5444()I
      official ah_ Lbqp;ah_()I
    • markDirty

      public void markDirty()
      Marks the inventory as modified. Implementations should call this method every time the inventory is changed in any way.
      Specified by:
      markDirty in interface Inventory
      See Also:
      API Note:
      Implementations should mark the inventory for synchronization or saving in this method. Since this is called frequently, it is not recommended to synchronize or save the inventory directly in this method. If this inventory is implemented in a block entity, then it should always call super.markDirty(); to ensure the block entity gets saved.
      Mappings:
      Namespace Name Mixin selector
      named markDirty Lnet/minecraft/inventory/Inventory;markDirty()V
      intermediary method_5431 Lnet/minecraft/class_1263;method_5431()V
      official e Lbqp;e()V
    • canPlayerUse

      public boolean canPlayerUse(PlayerEntity player)
      Specified by:
      canPlayerUse in interface Inventory
      Returns:
      whether player can use this inventory
      See Also:
      API Note:
      Implementations should check the distance between the inventory holder and player. For convenience, this interface offers two methods used by block entities to implement this check.
      Mappings:
      Namespace Name Mixin selector
      named canPlayerUse Lnet/minecraft/inventory/Inventory;canPlayerUse(Lnet/minecraft/entity/player/PlayerEntity;)Z
      intermediary method_5443 Lnet/minecraft/class_1263;method_5443(Lnet/minecraft/class_1657;)Z
      official a Lbqp;a(Lcmz;)Z
    • onOpen

      public void onOpen(PlayerEntity player)
      Called when the inventory is opened. Specifically, this is called inside the ScreenHandler constructor. This does nothing by default.

      The method is called in both the client and the server. However, because clientside screen handler is created with a SimpleInventory, other implementations can (and the vanilla code does) assume that the method is called in the server.

      Specified by:
      onOpen in interface Inventory
      Mappings:
      Namespace Name Mixin selector
      named onOpen Lnet/minecraft/inventory/Inventory;onOpen(Lnet/minecraft/entity/player/PlayerEntity;)V
      intermediary method_5435 Lnet/minecraft/class_1263;method_5435(Lnet/minecraft/class_1657;)V
      official d_ Lbqp;d_(Lcmz;)V
    • onClose

      public void onClose(PlayerEntity player)
      Called when the inventory is closed. Specifically, this is called inside ScreenHandler.onClosed(net.minecraft.entity.player.PlayerEntity). This does nothing by default.

      The method is called in both the client and the server. However, because clientside screen handler is created with a SimpleInventory, other implementations can (and the vanilla code does) assume that the method is called in the server.

      Specified by:
      onClose in interface Inventory
      Mappings:
      Namespace Name Mixin selector
      named onClose Lnet/minecraft/inventory/Inventory;onClose(Lnet/minecraft/entity/player/PlayerEntity;)V
      intermediary method_5432 Lnet/minecraft/class_1263;method_5432(Lnet/minecraft/class_1657;)V
      official c Lbqp;c(Lcmz;)V
    • isValid

      public boolean isValid(int slot, ItemStack stack)
      Returns whether stack is valid for the slot.

      Implementations can, for example, use this to check whether the item is in a specific tag. This returns true by default.

      Specified by:
      isValid in interface Inventory
      Returns:
      whether stack is valid for the slot
      Mappings:
      Namespace Name Mixin selector
      named isValid Lnet/minecraft/inventory/Inventory;isValid(ILnet/minecraft/item/ItemStack;)Z
      intermediary method_5437 Lnet/minecraft/class_1263;method_5437(ILnet/minecraft/class_1799;)Z
      official b Lbqp;b(ILcur;)Z
    • clear

      public void clear()
      Specified by:
      clear in interface Clearable
      Mappings:
      Namespace Name Mixin selector
      named clear Lnet/minecraft/util/Clearable;clear()V
      intermediary method_5448 Lnet/minecraft/class_3829;method_5448()V
      official a Lbqn;a()V