Class FilterItemHandler

java.lang.Object
org.moddingx.libx.inventory.FilterItemHandler
All Implemented Interfaces:
net.neoforged.neoforge.items.IItemHandler, IAdvancedItemHandler

public class FilterItemHandler extends Object implements IAdvancedItemHandler
A simple wrapper around an IItemHandler that limits the possibility to insert or extract items. This is especially useful for item handler capabilities.
  • Constructor Details

    • FilterItemHandler

      public FilterItemHandler(net.neoforged.neoforge.items.IItemHandler handler, @Nullable Predicate<Integer> extract, @Nullable BiPredicate<Integer,net.minecraft.world.item.ItemStack> insert)
      Creates a new FilterItemHandler.
      Parameters:
      handler - The IItemHandler this FilterItemHandler wraps around.
      extract - A predicate that tests whether extraction should be allowed from the provided slot.
      insert - A predicate that tests whether insertion of the provided item should be allowed into the provided slot.
  • Method Details

    • getSlots

      public int getSlots()
      Specified by:
      getSlots in interface net.neoforged.neoforge.items.IItemHandler
    • getStackInSlot

      @Nonnull public net.minecraft.world.item.ItemStack getStackInSlot(int slot)
      Specified by:
      getStackInSlot in interface net.neoforged.neoforge.items.IItemHandler
    • insertItem

      @Nonnull public net.minecraft.world.item.ItemStack insertItem(int slot, @Nonnull net.minecraft.world.item.ItemStack stack, boolean simulate)
      Specified by:
      insertItem in interface net.neoforged.neoforge.items.IItemHandler
    • extractItem

      @Nonnull public net.minecraft.world.item.ItemStack extractItem(int slot, int amount, boolean simulate)
      Specified by:
      extractItem in interface net.neoforged.neoforge.items.IItemHandler
    • getSlotLimit

      public int getSlotLimit(int slot)
      Specified by:
      getSlotLimit in interface net.neoforged.neoforge.items.IItemHandler
    • isItemValid

      public boolean isItemValid(int slot, @Nonnull net.minecraft.world.item.ItemStack stack)
      Specified by:
      isItemValid in interface net.neoforged.neoforge.items.IItemHandler