Class ForwardingItemHandler

java.lang.Object
net.neoforged.neoforge.items.wrapper.ForwardingItemHandler
All Implemented Interfaces:
IItemHandler

@Deprecated(since="1.21.9", forRemoval=true) public class ForwardingItemHandler extends Object implements IItemHandler
Deprecated, for removal: This API element is subject to removal in a future version.
An IItemHandler that delegates each method to another IItemHandler. The Supplier is re-evaluated each time a method is called.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Supplier<IItemHandler>
    Deprecated, for removal: This API element is subject to removal in a future version.
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    Deprecated, for removal: This API element is subject to removal in a future version.
     
  • Method Summary

    Modifier and Type
    Method
    Description
    extractItem(int slot, int amount, boolean simulate)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Extracts an ItemStack from the given slot.
    int
    getSlotLimit(int slot)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Retrieves the maximum stack size allowed to exist in the given slot.
    int
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns the number of slots available
    getStackInSlot(int slot)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns the ItemStack in a given slot.
    insertItem(int slot, ItemStack stack, boolean simulate)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Inserts an ItemStack into the given slot and return the remainder.
    boolean
    isItemValid(int slot, ItemStack stack)
    Deprecated, for removal: This API element is subject to removal in a future version.
    This function re-implements the vanilla function Container.canPlaceItem(int, ItemStack).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • delegate

      protected final Supplier<IItemHandler> delegate
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Constructor Details

    • ForwardingItemHandler

      public ForwardingItemHandler(IItemHandler delegate)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • ForwardingItemHandler

      public ForwardingItemHandler(Supplier<IItemHandler> delegate)
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Method Details

    • getSlots

      public int getSlots()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IItemHandler
      Returns the number of slots available
      Specified by:
      getSlots in interface IItemHandler
      Returns:
      The number of slots available
    • getStackInSlot

      public ItemStack getStackInSlot(int slot)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IItemHandler
      Returns the ItemStack in a given slot. The result's stack size may be greater than the itemstack's max size. If the result is empty, then the slot is empty.

      IMPORTANT: This ItemStack MUST NOT be modified. This method is not for altering an inventory's contents. Any implementers who are able to detect modification through this method should throw an exception.

      SERIOUSLY: DO NOT MODIFY THE RETURNED ITEMSTACK

      Specified by:
      getStackInSlot in interface IItemHandler
      Parameters:
      slot - Slot to query
      Returns:
      ItemStack in given slot. Empty Itemstack if the slot is empty.
    • insertItem

      public ItemStack insertItem(int slot, ItemStack stack, boolean simulate)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IItemHandler

      Inserts an ItemStack into the given slot and return the remainder. The ItemStack should not be modified in this function!

      Note: This behaviour is subtly different from IFluidHandler.fill(FluidStack, IFluidHandler.FluidAction)
      Specified by:
      insertItem in interface IItemHandler
      Parameters:
      slot - Slot to insert into.
      stack - ItemStack to insert. This must not be modified by the item handler.
      simulate - If true, the insertion is only simulated
      Returns:
      The remaining ItemStack that was not inserted (if the entire stack is accepted, then return an empty ItemStack). May be the same as the input ItemStack if unchanged, otherwise a new ItemStack. The returned ItemStack can be safely modified after.
    • extractItem

      public ItemStack extractItem(int slot, int amount, boolean simulate)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IItemHandler
      Extracts an ItemStack from the given slot.

      The returned value must be empty if nothing is extracted, otherwise its stack size must be less than or equal to amount and ItemStack.getMaxStackSize().

      Specified by:
      extractItem in interface IItemHandler
      Parameters:
      slot - Slot to extract from.
      amount - Amount to extract (may be greater than the current stack's max limit)
      simulate - If true, the extraction is only simulated
      Returns:
      ItemStack extracted from the slot, must be empty if nothing can be extracted. The returned ItemStack can be safely modified after, so item handlers should return a new or copied stack.
    • getSlotLimit

      public int getSlotLimit(int slot)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IItemHandler
      Retrieves the maximum stack size allowed to exist in the given slot.
      Specified by:
      getSlotLimit in interface IItemHandler
      Parameters:
      slot - Slot to query.
      Returns:
      The maximum stack size allowed in the slot.
    • isItemValid

      public boolean isItemValid(int slot, ItemStack stack)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: IItemHandler

      This function re-implements the vanilla function Container.canPlaceItem(int, ItemStack). It should be used instead of simulated insertions in cases where the contents and state of the inventory are irrelevant, mainly for the purpose of automation and logic (for instance, testing if a minecart can wait to deposit its items into a full inventory, or if the items in the minecart can never be placed into the inventory and should move on).

      • isItemValid is false when insertion of the item is never valid.
      • When isItemValid is true, no assumptions can be made and insertion must be simulated case-by-case.
      • The actual items in the inventory, its fullness, or any other state are not considered by isItemValid.
      Specified by:
      isItemValid in interface IItemHandler
      Parameters:
      slot - Slot to query for validity
      stack - Stack to test with for validity
      Returns:
      true if the slot can insert the ItemStack, not considering the current state of the inventory. false if the slot can never insert the ItemStack in any situation.