Class FilterItemHandler

java.lang.Object
org.moddingx.libx.inventory.FilterItemHandler
All Implemented Interfaces:
net.neoforged.neoforge.transfer.ResourceHandler<net.neoforged.neoforge.transfer.item.ItemResource>, IAdvancedItemHandler

public class FilterItemHandler extends Object implements IAdvancedItemHandler
A simple wrapper around a ResourceHandler<ItemResource> that limits the possibility to insert or extract items. This is especially useful for item handler capabilities.
  • Constructor Summary

    Constructors
    Constructor
    Description
    FilterItemHandler(net.neoforged.neoforge.transfer.ResourceHandler<net.neoforged.neoforge.transfer.item.ItemResource> handler, Predicate<Integer> extract, BiPredicate<Integer, net.minecraft.world.item.ItemStack> insert)
    Creates a new FilterItemHandler.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    extract(int slot, net.neoforged.neoforge.transfer.item.ItemResource resource, int amount, net.neoforged.neoforge.transfer.transaction.TransactionContext tx)
     
    long
    getAmountAsLong(int slot)
     
    long
    getCapacityAsLong(int slot, net.neoforged.neoforge.transfer.item.ItemResource resource)
     
    net.neoforged.neoforge.transfer.item.ItemResource
    getResource(int slot)
     
    int
    insert(int slot, net.neoforged.neoforge.transfer.item.ItemResource resource, int amount, net.neoforged.neoforge.transfer.transaction.TransactionContext tx)
     
    boolean
    isValid(int slot, net.neoforged.neoforge.transfer.item.ItemResource resource)
     
    int
     

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface net.neoforged.neoforge.transfer.ResourceHandler

    extract, getAmountAsInt, getCapacityAsInt, insert
  • Constructor Details

    • FilterItemHandler

      public FilterItemHandler(net.neoforged.neoforge.transfer.ResourceHandler<net.neoforged.neoforge.transfer.item.ItemResource> handler, @Nullable Predicate<Integer> extract, @Nullable BiPredicate<Integer, net.minecraft.world.item.ItemStack> insert)
      Creates a new FilterItemHandler.
      Parameters:
      handler - The ResourceHandler 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

    • size

      public int size()
      Specified by:
      size in interface net.neoforged.neoforge.transfer.ResourceHandler<net.neoforged.neoforge.transfer.item.ItemResource>
    • getResource

      public net.neoforged.neoforge.transfer.item.ItemResource getResource(int slot)
      Specified by:
      getResource in interface net.neoforged.neoforge.transfer.ResourceHandler<net.neoforged.neoforge.transfer.item.ItemResource>
    • getAmountAsLong

      public long getAmountAsLong(int slot)
      Specified by:
      getAmountAsLong in interface net.neoforged.neoforge.transfer.ResourceHandler<net.neoforged.neoforge.transfer.item.ItemResource>
    • getCapacityAsLong

      public long getCapacityAsLong(int slot, net.neoforged.neoforge.transfer.item.ItemResource resource)
      Specified by:
      getCapacityAsLong in interface net.neoforged.neoforge.transfer.ResourceHandler<net.neoforged.neoforge.transfer.item.ItemResource>
    • isValid

      public boolean isValid(int slot, net.neoforged.neoforge.transfer.item.ItemResource resource)
      Specified by:
      isValid in interface net.neoforged.neoforge.transfer.ResourceHandler<net.neoforged.neoforge.transfer.item.ItemResource>
    • insert

      public int insert(int slot, net.neoforged.neoforge.transfer.item.ItemResource resource, int amount, net.neoforged.neoforge.transfer.transaction.TransactionContext tx)
      Specified by:
      insert in interface net.neoforged.neoforge.transfer.ResourceHandler<net.neoforged.neoforge.transfer.item.ItemResource>
    • extract

      public int extract(int slot, net.neoforged.neoforge.transfer.item.ItemResource resource, int amount, net.neoforged.neoforge.transfer.transaction.TransactionContext tx)
      Specified by:
      extract in interface net.neoforged.neoforge.transfer.ResourceHandler<net.neoforged.neoforge.transfer.item.ItemResource>