Package org.moddingx.libx.inventory
Class FilterItemHandler
java.lang.Object
org.moddingx.libx.inventory.FilterItemHandler
- All Implemented Interfaces:
net.neoforged.neoforge.items.IItemHandler
,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 Summary
ConstructorsConstructorDescriptionFilterItemHandler
(net.neoforged.neoforge.items.IItemHandler handler, Predicate<Integer> extract, BiPredicate<Integer, net.minecraft.world.item.ItemStack> insert) Creates a newFilterItemHandler
. -
Method Summary
Modifier and TypeMethodDescriptionnet.minecraft.world.item.ItemStack
extractItem
(int slot, int amount, boolean simulate) int
getSlotLimit
(int slot) int
getSlots()
net.minecraft.world.item.ItemStack
getStackInSlot
(int slot) net.minecraft.world.item.ItemStack
insertItem
(int slot, net.minecraft.world.item.ItemStack stack, boolean simulate) boolean
isItemValid
(int slot, net.minecraft.world.item.ItemStack stack) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.moddingx.libx.inventory.IAdvancedItemHandler
extractItem, extractItem, hasSpaceFor, hasSpaceFor, insertItem
-
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 newFilterItemHandler
.- Parameters:
handler
- TheIItemHandler
thisFilterItemHandler
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 interfacenet.neoforged.neoforge.items.IItemHandler
-
getStackInSlot
- Specified by:
getStackInSlot
in interfacenet.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 interfacenet.neoforged.neoforge.items.IItemHandler
-
extractItem
@Nonnull public net.minecraft.world.item.ItemStack extractItem(int slot, int amount, boolean simulate) - Specified by:
extractItem
in interfacenet.neoforged.neoforge.items.IItemHandler
-
getSlotLimit
public int getSlotLimit(int slot) - Specified by:
getSlotLimit
in interfacenet.neoforged.neoforge.items.IItemHandler
-
isItemValid
- Specified by:
isItemValid
in interfacenet.neoforged.neoforge.items.IItemHandler
-