Skip navigation links
  • Overview
  • Package
  • Class
  • Use
  • Tree
  • Deprecated
  • Index
  • Help

Deprecated API

Contents

  • Terminally Deprecated
  • Interfaces
  • Classes
  • Fields
  • Methods
  • Constructors
  • Enum Constants
  • Terminally Deprecated Elements
    Element
    Description
    alexiil.mc.lib.attributes.Attribute(Class<T>, CustomAttributeAdder<T>)
    Kept for backwards compatibility, instead you should call Attribute(Class) followed by Attribute.appendBlockAdder(CustomAttributeAdder).
    alexiil.mc.lib.attributes.Attribute.appendCustomAdder(CustomAttributeAdder<T>)
    Provided for backwards compatibility - instead you should use Attribute.appendBlockAdder(CustomAttributeAdder).
    alexiil.mc.lib.attributes.DefaultedAttribute(Class<T>, T, CustomAttributeAdder<T>)
    Kept for backwards compatibility, instead you should call DefaultedAttribute(Class, Object) followed by DefaultedAttribute.appendBlockAdder(CustomAttributeAdder).
    alexiil.mc.lib.attributes.fluid.amount.FluidAmount(long)
    As FluidAmount.ofWhole(long) should be used instead.
    alexiil.mc.lib.attributes.fluid.amount.FluidAmount.fromDouble(double)
    Use FluidAmount.parse(String) instead.
    alexiil.mc.lib.attributes.fluid.amount.FluidAmount.MAX_VALUE
    As FluidAmount.MAX_BUCKETS should generally be used instead, however if you really need the absolute value then you can use FluidAmount.ABSOLUTE_MAXIMUM.
    alexiil.mc.lib.attributes.fluid.amount.FluidAmount.MIN_VALUE
    As FluidAmount.MIN_BUCKETS should generally be used instead, however if you really need the absolute minimum value then you can use FluidAmount.ABSOLUTE_MINIMUM.
    alexiil.mc.lib.attributes.fluid.FixedFluidInvView.getMaxAmount(int)
    Replaced by FixedFluidInvView.getMaxAmount_F(int)
    alexiil.mc.lib.attributes.fluid.FixedFluidInvView.offerSelfAsAttribute(AttributeList<?>, CacheInfo, VoxelShape)
    Because this functionality has been fully replaced by Convertible and it's usage in AttributeList.
    alexiil.mc.lib.attributes.fluid.FluidExtractable.attemptAnyExtraction(int, Simulation)
    Replaced by FluidExtractable.attemptAnyExtraction(FluidAmount, Simulation)
    alexiil.mc.lib.attributes.fluid.FluidExtractable.extract(int)
    Replaced by FluidExtractable.extract(FluidAmount)
    alexiil.mc.lib.attributes.fluid.FluidExtractable.extract(FluidFilter, int)
    Replaced by FluidExtractable.extract(FluidFilter, FluidAmount).
    alexiil.mc.lib.attributes.fluid.FluidExtractable.extract(FluidKey, int)
    Replaced by FluidExtractable.extract(FluidKey, FluidAmount)
    alexiil.mc.lib.attributes.fluid.FluidInvAmountChangeListener
    alexiil.mc.lib.attributes.fluid.FluidInvAmountChangeListener_F.asOld(FluidInvAmountChangeListener_F)
    alexiil.mc.lib.attributes.fluid.FluidProviderItem
    This has been completely replaced by item-based attribute accessors and FluidContainerRegistry.
    alexiil.mc.lib.attributes.fluid.FluidProviderItem.drain(Ref<ItemStack>)
    This has been replaced by FluidAttributes.EXTRACTABLE. get(stack). extract(maximumAmount)
    alexiil.mc.lib.attributes.fluid.FluidProviderItem.fill(Ref<ItemStack>, Ref<FluidVolume>)
    This has been replaced by FluidAttributes.INSERTABLE. get(stack). insert(with)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.createItemInventoryExtractable(Ref<ItemStack>, Consumer<ItemStack>)
    This has been replaced by the item-based attributes system.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.createItemInventoryInsertable(Ref<ItemStack>, Consumer<ItemStack>)
    This has been replaced by the item-based attributes system.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.extractSingle(FixedFluidInv, int, FluidFilter, FluidVolume, int, Simulation)
    Replaced by FluidVolumeUtil.extractSingle(FixedFluidInv, int, FluidFilter, FluidVolume, FluidAmount, Simulation)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.extractSingle(FixedFluidInv, int, FluidFilter, FluidVolume, FluidAmount, Simulation)
    Moved to FixedFluidInv.extractFluid(int, FluidFilter, FluidVolume, FluidAmount, Simulation)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.FluidTankInteraction(FluidVolume, boolean)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.FluidTankInteraction.amountMoved()
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.FluidTankInteraction.fromTank(FluidVolume)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.FluidTankInteraction.intoTank(FluidVolume)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.insertSingle(FixedFluidInv, int, FluidVolume, Simulation)
    As this has been moved to FixedFluidInv.insertFluid(int, FluidVolume, Simulation)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactCursorWithTank(FixedFluidInv, ServerPlayerEntity)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactCursorWithTank(FixedFluidInv, ServerPlayerEntity)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactCursorWithTank(FluidInsertable, FluidExtractable, ServerPlayerEntity)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactCursorWithTank(FluidInsertable, FluidExtractable, ServerPlayerEntity)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactCursorWithTank(FluidTransferable, ServerPlayerEntity)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactCursorWithTank(FluidTransferable, ServerPlayerEntity)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FixedFluidInv, Ref<ItemStack>, Consumer<ItemStack>)
    This has been replaced by FluidInvUtil.interactItemWithTank(FixedFluidInv, Reference, LimitedConsumer).
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FixedFluidInv, Reference<ItemStack>, LimitedConsumer<ItemStack>)
    Use FluidInvUtil.interactItemWithTank(FixedFluidInv, Reference, LimitedConsumer) instead: all interactWithTank methods have been moved to FluidInvUtil.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FixedFluidInv, PlayerEntity, Hand)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactHandWithTank(FixedFluidInv, PlayerEntity, Hand)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidInsertable, FluidExtractable, Ref<ItemStack>, Consumer<ItemStack>)
    This has been replaced by FluidInvUtil.interactItemWithTank(FluidInsertable, FluidExtractable, Reference, LimitedConsumer).
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidInsertable, FluidExtractable, Reference<ItemStack>, LimitedConsumer<ItemStack>)
    Use FluidInvUtil.interactItemWithTank(FluidInsertable, FluidExtractable, Reference, LimitedConsumer) instead: all interactWithTank methods have been moved to FluidInvUtil.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidInsertable, FluidExtractable, PlayerEntity, Reference<ItemStack>)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactWithTank(FluidInsertable, FluidExtractable, PlayerEntity, Reference)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidInsertable, FluidExtractable, PlayerEntity, Hand)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactHandWithTank(FluidInsertable, FluidExtractable, PlayerEntity, Hand)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidTransferable, Ref<ItemStack>, Consumer<ItemStack>)
    This has been replaced by FluidInvUtil.interactItemWithTank(FluidTransferable, Reference, LimitedConsumer).
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidTransferable, Reference<ItemStack>, LimitedConsumer<ItemStack>)
    Use FluidInvUtil.interactItemWithTank(FluidTransferable, Reference, LimitedConsumer) instead: all interactWithTank methods have been moved to FluidInvUtil.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidTransferable, PlayerEntity, Hand)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactHandWithTank(FluidTransferable, PlayerEntity, Hand)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.move(FluidExtractable, FluidInsertable, int)
    Replaced by FluidVolumeUtil.move(FluidExtractable, FluidInsertable, FluidAmount)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.move(FluidExtractable, FluidInsertable, FluidFilter, int)
    Replaced by FluidVolumeUtil.move(FluidExtractable, FluidInsertable, FluidFilter, FluidAmount)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.addListener(FluidInvAmountChangeListener, ListenerRemovalToken)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.FluidInvStatistic(FluidFilter, int, int, int)
    Use FluidInvStatistic(FluidFilter, FluidAmount, FluidAmount, FluidAmount) instead.
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.FluidInvStatistic.amount
    Replaced by GroupedFluidInvView.FluidInvStatistic.amount_F instead.
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.FluidInvStatistic.spaceAddable
    Replaced by GroupedFluidInvView.FluidInvStatistic.spaceAddable_F instead.
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.FluidInvStatistic.spaceTotal
    Replaced by GroupedFluidInvView.FluidInvStatistic.spaceTotal_F instead.
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.getAmount(FluidFilter)
    Replaced by GroupedFluidInvView.getAmount_F(FluidFilter)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.getAmount(FluidKey)
    Replaced by GroupedFluidInvView.getAmount_F(FluidKey)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.getCapacity(FluidKey)
    Replaced by GroupedFluidInvView.getCapacity_F(FluidKey)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.getSpace(FluidKey)
    Replaced by GroupedFluidInvView.getSpace_F(FluidKey)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.getTotalCapacity()
    Replaced by GroupedFluidInvView.getTotalCapacity_F()
    alexiil.mc.lib.attributes.fluid.impl.AbstractPartialFixedFluidInvView.getMaxAmount(int)
    alexiil.mc.lib.attributes.fluid.impl.CombinedFixedFluidInvView.getMaxAmount(int)
    alexiil.mc.lib.attributes.fluid.impl.DelegatingFixedFluidInv.getMaxAmount(int)
    alexiil.mc.lib.attributes.fluid.impl.EmptyFluidExtractable.attemptExtraction(FluidFilter, int, Simulation)
    alexiil.mc.lib.attributes.fluid.impl.JumboFixedFluidInv(int, int)
    Replaced by JumboFixedFluidInv(int, FluidAmount).
    alexiil.mc.lib.attributes.fluid.impl.SimpleFixedFluidInv(int, int)
    Replaced by SimpleFixedFluidInv(int, FluidAmount).
    alexiil.mc.lib.attributes.fluid.impl.SimpleFixedFluidInv.getMaxAmount(int)
    Replaced by SimpleFixedFluidInv.getMaxAmount_F(int).
    alexiil.mc.lib.attributes.fluid.impl.SimpleFixedFluidInv.tankCapacity
    Replaced by SimpleFixedFluidInv.tankCapacity_F
    alexiil.mc.lib.attributes.fluid.impl.SimpleFixedFluidInvExtractable
    This has been replaced with FixedFluidInv.getMappedInv(int...) followed by FixedFluidInv.getExtractable(). (And optionally FluidExtractable.getPureExtractable() if you only want to expose it as an extractable).
    alexiil.mc.lib.attributes.fluid.impl.SimpleFixedFluidInvInsertable
    This has been replaced with FixedFluidInv.getMappedInv(int...) followed by FixedFluidInv.getInsertable(). (And optionally FluidInsertable.getPureInsertable() if you only want to expose it as an insertable).
    alexiil.mc.lib.attributes.fluid.LimitedFixedFluidInv.FluidTankLimitRule.limitInsertionCount(int)
    Replaced by LimitedFixedFluidInv.FluidTankLimitRule.limitInsertionAmount(FluidAmount).
    alexiil.mc.lib.attributes.fluid.LimitedFixedFluidInv.FluidTankLimitRule.noInsertionLimits()
    Because this is ambiguous as the name could refer to the count, or the filter, so instead you should use LimitedFixedFluidInv.FluidTankLimitRule.noInsertionFilter()
    alexiil.mc.lib.attributes.fluid.LimitedFixedFluidInv.FluidTankLimitRule.setMinimum(int)
    Replaced by LimitedFixedFluidInv.FluidTankLimitRule.setMinimum(FluidAmount)
    alexiil.mc.lib.attributes.fluid.LimitedGroupedFluidInv.FluidLimitRule.limitInsertionCount(int)
    Replaced by LimitedGroupedFluidInv.FluidLimitRule.limitInsertionAmount(FluidAmount)
    alexiil.mc.lib.attributes.fluid.LimitedGroupedFluidInv.FluidLimitRule.setMinimum(int)
    Replaced by LimitedGroupedFluidInv.FluidLimitRule.setMinimum(FluidAmount).
    alexiil.mc.lib.attributes.fluid.render.FluidVolumeRenderer.renderSimpleFluid(List<FluidRenderFace>, VertexConsumer, MatrixStack, Sprite, int)
    Use FluidVolumeRenderer.renderSimpleFluid(List, VertexConsumer, MatrixStack, Sprite, Sprite, int) instead, which takes both the still and flowing sprites.
    alexiil.mc.lib.attributes.fluid.render.ImplicitVanillaFluidVolumeRenderer
    Because DefaultFluidVolumeRenderer does everything that this does.
    alexiil.mc.lib.attributes.fluid.SingleFluidTank.attemptExtraction(FluidFilter, int, Simulation)
    Replaced by SingleFluidTank.attemptExtraction(FluidFilter, FluidAmount, Simulation).
    alexiil.mc.lib.attributes.fluid.SingleFluidTankView.getMaxAmount()
    Replaced by SingleFluidTankView.getMaxAmount_F().
    alexiil.mc.lib.attributes.fluid.volume.BiomeSourcedFluidKey(FluidKey.FluidKeyBuilder)
    because it's recommended to create a ColouredFluidKey.ColouredFluidKeyBuilder instead and pass that to BiomeSourcedFluidKey(ColouredFluidKeyBuilder).
    alexiil.mc.lib.attributes.fluid.volume.BiomeSourcedFluidVolume(BiomeSourcedFluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.BiomeSourcedFluidVolume(BiomeSourcedFluidKey, Biome, int)
    alexiil.mc.lib.attributes.fluid.volume.FluidKey.FluidKeyBuilder(FluidRegistryEntry<?>, Identifier, Text)
    As the flowing sprite ID is needed as well.
    alexiil.mc.lib.attributes.fluid.volume.FluidKey.unit
    Because most of the time you should use FluidKey.unitSet rather than this.
    alexiil.mc.lib.attributes.fluid.volume.FluidKey.withAmount(int)
    alexiil.mc.lib.attributes.fluid.volume.FluidUnit(int, String)
    Replaced by FluidUnit(FluidAmount, String).
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume(FluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.areFullyEqual(FluidVolume, FluidVolume)
    Use Object.equals(Object) instead of this.
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.BASE_UNIT
    Fluids now use fractions instead of a single base unit - which makes this completely deprecated with no replacement.
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.BOTTLE
    Replaced by FluidAmount.BOTTLE
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.BUCKET
    Replaced by FluidAmount.BUCKET
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.create(FluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.create(Fluid, int)
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.create(Potion, int)
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.getAmount()
    Replaced by FluidVolume.getAmount_F() and FluidVolume.amount().
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.getRawAmount()
    Replaced by FluidVolume.getRawAmount_F().
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.getTooltipText(TooltipContext)
    Replaced by FluidVolume.getFullTooltip().
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.merge0(FluidVolume, FluidAmount.FluidMergeRounding)
    because FluidVolume.mergeInternal(FluidVolume, FluidMergeResult) allows every method to share the same FluidAmount.FluidMergeResult object, which reduces the chance to make a mistake when merging the two amounts. In addition it's a bit wasteful to re-compute the same value more than once.

    So instead of overriding this it's recommended that you only override FluidVolume.mergeInternal(FluidVolume, FluidMergeResult).

    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.setAmount(int)
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.split(int)
    Replaced by FluidVolume.split(FluidAmount)
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidKey
    Because any FluidKey can map to a single Fluid, and SimpleFluidKey has a much better name than this.
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidKey.builder(Fluid, Identifier, Text)
    As the flowing sprite ID is needed as well.
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidKey.NormalFluidKeyBuilder(Fluid, Identifier, Text)
    As the flowing sprite ID is needed as well.
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidKey.NormalFluidKeyBuilder.fluid
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidKey.withAmount(int)
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidVolume
    Because any FluidKey can map to a single Fluid, and SimpleFluidVolume has a much better name than this.
    alexiil.mc.lib.attributes.fluid.volume.PotionFluidKey.withAmount(int)
    Replaced by PotionFluidKey.withAmount(FluidAmount).
    alexiil.mc.lib.attributes.fluid.volume.PotionFluidVolume(PotionFluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.PotionFluidVolume.getTooltipText(TooltipContext)
    Replaced by FluidVolume.getFullTooltip().
    alexiil.mc.lib.attributes.fluid.volume.SimpleFluidVolume(SimpleFluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.WeightedFluidKey.withAmount(int)
    alexiil.mc.lib.attributes.fluid.volume.WeightedFluidKey.withAmount(T, int)
    alexiil.mc.lib.attributes.fluid.volume.WeightedFluidVolume(WeightedFluidKey<T>, T, int)
    alexiil.mc.lib.attributes.item.filter.ConstantItemFilter.ANYTHING_EXCEPT_EMPTY
    alexiil.mc.lib.attributes.item.filter.ConstantItemFilter.of(boolean, boolean)
    alexiil.mc.lib.attributes.item.filter.ConstantItemFilter.ONLY_EMPTY
    alexiil.mc.lib.attributes.item.FixedItemInvView.offerSelfAsAttribute(AttributeList<?>, CacheInfo, VoxelShape)
    Because this functionality has been fully replaced by Convertible and it's usage in AttributeList, so you can always just offer this object directly to the attribute list.
    alexiil.mc.lib.attributes.item.impl.DirectFixedItemInv.get(int)
    This used to be necessary in 0.4.x, but since 0.5.0 DirectFixedItemInv.getInvStack(int) just returns the itemstack in the slot index.
    alexiil.mc.lib.attributes.item.impl.DirectFixedItemInv.set(int, ItemStack)
    This used to be necessary in 0.4.x, but since 0.5.0 this is unnecessary.
    alexiil.mc.lib.attributes.item.impl.SimpleFixedItemInv
    You should use either DirectFixedItemInv or FullFixedItemInv instead of this!

    Full explanation: As of LBA 0.5.0 there's been a large change to how inventories work to be much closer to vanilla - inventories no longer return immutable stacks from FixedItemInvView.getInvStack(int), and 2 new sub-interfaces have been created to handle the different ways of using this, either FixedItemInv.ModifiableFixedItemInv (which exposes a markDirty() method just like vanilla Inventory does), or FixedItemInv.CopyingFixedItemInv (which returns copies of the internal ItemStack and supports complete filtering and listener capabilities).

    You should replace this class with either:

    • FullFixedItemInv if you either need exact per-slot listening or the full filtration capabilities
    • DirectFixedItemInv if you'd rather use a more vanilla oriented approach of being able to directly modify items in an inventory.
    alexiil.mc.lib.attributes.item.impl.SimpleFixedItemInv(int)
    You should use either DirectFixedItemInv or FullFixedItemInv instead of this!

    Full explanation: As of LBA 0.5.0 there's been a large change to how inventories work to be much closer to vanilla - inventories no longer return immutable stacks from FixedItemInvView.getInvStack(int), and 2 new sub-interfaces have been created to handle the different ways of using this, either FixedItemInv.ModifiableFixedItemInv (which exposes a markDirty() method just like vanilla Inventory does), or FixedItemInv.CopyingFixedItemInv (which returns copies of the internal ItemStack and supports complete filtering and listener capabilities).

    You should replace this class with either:

    • FullFixedItemInv if you either need exact per-slot listening or the full filtration capabilities
    • DirectFixedItemInv if you'd rather use a more vanilla oriented approach of being able to directly modify items in an inventory.
    alexiil.mc.lib.attributes.item.impl.SimpleFixedItemInvExtractable
    Use GroupedItemInvFixedWrapper instead of this!
    alexiil.mc.lib.attributes.item.impl.SimpleFixedItemInvInsertable
    Use GroupedItemInvFixedWrapper instead.
    alexiil.mc.lib.attributes.item.ItemInvUtil.createPlayerInsertable(PlayerEntity)
    Use PlayerInvUtil.createPlayerInsertable(PlayerEntity) instead
    alexiil.mc.lib.attributes.item.ItemInvUtil.extractSingle(FixedItemInv, int, ItemFilter, ItemStack, int, Simulation)
    Because this has been moved to FixedItemInv.extractStack(int, ItemFilter, ItemStack, int, Simulation).
    alexiil.mc.lib.attributes.item.ItemInvUtil.insertItemIntoPlayerInventory(PlayerEntity, ItemStack)
    Use PlayerInvUtil.insertItemIntoPlayerInventory(PlayerEntity,ItemStack) instead
    alexiil.mc.lib.attributes.item.ItemInvUtil.insertSingle(FixedItemInv, int, ItemStack, Simulation)
    Because this has been moved to FixedItemInv.insertStack(int, ItemStack, Simulation).
    alexiil.mc.lib.attributes.item.ItemInvUtil.referenceGuiCursor(ServerPlayerEntity)
    Use PlayerInvUtil.referenceGuiCursor(ServerPlayerEntity) instead
    alexiil.mc.lib.attributes.item.ItemInvUtil.referenceHand(PlayerEntity, Hand)
    Use PlayerInvUtil.referenceHand(PlayerEntity,Hand) instead
    alexiil.mc.lib.attributes.item.LimitedFixedItemInv.ItemSlotLimitRule.noInsertionLimits()
    Because this is ambiguous as the name could refer to the count, or the filter, so instead you should use LimitedFixedItemInv.ItemSlotLimitRule.noInsertionFilter().
  • Deprecated Interfaces
    Interface
    Description
    alexiil.mc.lib.attributes.fluid.FluidInvAmountChangeListener
    alexiil.mc.lib.attributes.fluid.FluidProviderItem
    This has been completely replaced by item-based attribute accessors and FluidContainerRegistry.
  • Deprecated Classes
    Class
    Description
    alexiil.mc.lib.attributes.fluid.impl.SimpleFixedFluidInvExtractable
    This has been replaced with FixedFluidInv.getMappedInv(int...) followed by FixedFluidInv.getExtractable(). (And optionally FluidExtractable.getPureExtractable() if you only want to expose it as an extractable).
    alexiil.mc.lib.attributes.fluid.impl.SimpleFixedFluidInvInsertable
    This has been replaced with FixedFluidInv.getMappedInv(int...) followed by FixedFluidInv.getInsertable(). (And optionally FluidInsertable.getPureInsertable() if you only want to expose it as an insertable).
    alexiil.mc.lib.attributes.fluid.render.ImplicitVanillaFluidVolumeRenderer
    Because DefaultFluidVolumeRenderer does everything that this does.
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidKey
    Because any FluidKey can map to a single Fluid, and SimpleFluidKey has a much better name than this.
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidVolume
    Because any FluidKey can map to a single Fluid, and SimpleFluidVolume has a much better name than this.
    alexiil.mc.lib.attributes.item.impl.SimpleFixedItemInv
    You should use either DirectFixedItemInv or FullFixedItemInv instead of this!

    Full explanation: As of LBA 0.5.0 there's been a large change to how inventories work to be much closer to vanilla - inventories no longer return immutable stacks from FixedItemInvView.getInvStack(int), and 2 new sub-interfaces have been created to handle the different ways of using this, either FixedItemInv.ModifiableFixedItemInv (which exposes a markDirty() method just like vanilla Inventory does), or FixedItemInv.CopyingFixedItemInv (which returns copies of the internal ItemStack and supports complete filtering and listener capabilities).

    You should replace this class with either:

    • FullFixedItemInv if you either need exact per-slot listening or the full filtration capabilities
    • DirectFixedItemInv if you'd rather use a more vanilla oriented approach of being able to directly modify items in an inventory.
    alexiil.mc.lib.attributes.item.impl.SimpleFixedItemInvExtractable
    Use GroupedItemInvFixedWrapper instead of this!
    alexiil.mc.lib.attributes.item.impl.SimpleFixedItemInvInsertable
    Use GroupedItemInvFixedWrapper instead.
  • Deprecated Fields
    Field
    Description
    alexiil.mc.lib.attributes.fluid.amount.FluidAmount.MAX_VALUE
    As FluidAmount.MAX_BUCKETS should generally be used instead, however if you really need the absolute value then you can use FluidAmount.ABSOLUTE_MAXIMUM.
    alexiil.mc.lib.attributes.fluid.amount.FluidAmount.MIN_VALUE
    As FluidAmount.MIN_BUCKETS should generally be used instead, however if you really need the absolute minimum value then you can use FluidAmount.ABSOLUTE_MINIMUM.
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.FluidInvStatistic.amount
    Replaced by GroupedFluidInvView.FluidInvStatistic.amount_F instead.
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.FluidInvStatistic.spaceAddable
    Replaced by GroupedFluidInvView.FluidInvStatistic.spaceAddable_F instead.
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.FluidInvStatistic.spaceTotal
    Replaced by GroupedFluidInvView.FluidInvStatistic.spaceTotal_F instead.
    alexiil.mc.lib.attributes.fluid.impl.SimpleFixedFluidInv.tankCapacity
    Replaced by SimpleFixedFluidInv.tankCapacity_F
    alexiil.mc.lib.attributes.fluid.volume.FluidKey.unit
    Because most of the time you should use FluidKey.unitSet rather than this.
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.BASE_UNIT
    Fluids now use fractions instead of a single base unit - which makes this completely deprecated with no replacement.
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.BOTTLE
    Replaced by FluidAmount.BOTTLE
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.BUCKET
    Replaced by FluidAmount.BUCKET
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidKey.NormalFluidKeyBuilder.fluid
  • Deprecated Methods
    Method
    Description
    alexiil.mc.lib.attributes.Attribute.appendCustomAdder(CustomAttributeAdder<T>)
    Provided for backwards compatibility - instead you should use Attribute.appendBlockAdder(CustomAttributeAdder).
    alexiil.mc.lib.attributes.fluid.amount.FluidAmount.fromDouble(double)
    Use FluidAmount.parse(String) instead.
    alexiil.mc.lib.attributes.fluid.FixedFluidInvView.getMaxAmount(int)
    Replaced by FixedFluidInvView.getMaxAmount_F(int)
    alexiil.mc.lib.attributes.fluid.FixedFluidInvView.offerSelfAsAttribute(AttributeList<?>, CacheInfo, VoxelShape)
    Because this functionality has been fully replaced by Convertible and it's usage in AttributeList.
    alexiil.mc.lib.attributes.fluid.FluidExtractable.attemptAnyExtraction(int, Simulation)
    Replaced by FluidExtractable.attemptAnyExtraction(FluidAmount, Simulation)
    alexiil.mc.lib.attributes.fluid.FluidExtractable.attemptExtraction(FluidFilter, int, Simulation)
    Replaced by FluidExtractable.attemptExtraction(FluidFilter, FluidAmount, Simulation).
    alexiil.mc.lib.attributes.fluid.FluidExtractable.extract(int)
    Replaced by FluidExtractable.extract(FluidAmount)
    alexiil.mc.lib.attributes.fluid.FluidExtractable.extract(FluidFilter, int)
    Replaced by FluidExtractable.extract(FluidFilter, FluidAmount).
    alexiil.mc.lib.attributes.fluid.FluidExtractable.extract(FluidKey, int)
    Replaced by FluidExtractable.extract(FluidKey, FluidAmount)
    alexiil.mc.lib.attributes.fluid.FluidInsertable.offer(FluidVolume)
    This is an override for LimitedConsumer, for the full javadoc you probably want to call FluidInsertable.insert(FluidVolume) directly.
    alexiil.mc.lib.attributes.fluid.FluidInsertable.offer(FluidVolume, Simulation)
    This is an override for LimitedConsumer, for the full javadoc you probably want to call FluidInsertable.attemptInsertion(FluidVolume, Simulation) directly.
    alexiil.mc.lib.attributes.fluid.FluidInsertable.wouldAccept(FluidVolume)
    This is an override for LimitedConsumer, for the full javadoc you probably want to call attemptInsertion(FluidVolume, Simulation.SIMULATE) directly.
    alexiil.mc.lib.attributes.fluid.FluidInvAmountChangeListener_F.asOld(FluidInvAmountChangeListener_F)
    alexiil.mc.lib.attributes.fluid.FluidProviderItem.drain(Ref<ItemStack>)
    This has been replaced by FluidAttributes.EXTRACTABLE. get(stack). extract(maximumAmount)
    alexiil.mc.lib.attributes.fluid.FluidProviderItem.fill(Ref<ItemStack>, Ref<FluidVolume>)
    This has been replaced by FluidAttributes.INSERTABLE. get(stack). insert(with)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.createItemInventoryExtractable(Ref<ItemStack>, Consumer<ItemStack>)
    This has been replaced by the item-based attributes system.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.createItemInventoryInsertable(Ref<ItemStack>, Consumer<ItemStack>)
    This has been replaced by the item-based attributes system.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.extractSingle(FixedFluidInv, int, FluidFilter, FluidVolume, int, Simulation)
    Replaced by FluidVolumeUtil.extractSingle(FixedFluidInv, int, FluidFilter, FluidVolume, FluidAmount, Simulation)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.extractSingle(FixedFluidInv, int, FluidFilter, FluidVolume, FluidAmount, Simulation)
    Moved to FixedFluidInv.extractFluid(int, FluidFilter, FluidVolume, FluidAmount, Simulation)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.FluidTankInteraction.amountMoved()
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.FluidTankInteraction.fromTank(FluidVolume)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.FluidTankInteraction.intoTank(FluidVolume)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.insertSingle(FixedFluidInv, int, FluidVolume, Simulation)
    As this has been moved to FixedFluidInv.insertFluid(int, FluidVolume, Simulation)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactCursorWithTank(FixedFluidInv, ServerPlayerEntity)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactCursorWithTank(FixedFluidInv, ServerPlayerEntity)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactCursorWithTank(FluidInsertable, FluidExtractable, ServerPlayerEntity)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactCursorWithTank(FluidInsertable, FluidExtractable, ServerPlayerEntity)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactCursorWithTank(FluidTransferable, ServerPlayerEntity)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactCursorWithTank(FluidTransferable, ServerPlayerEntity)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FixedFluidInv, Ref<ItemStack>, Consumer<ItemStack>)
    This has been replaced by FluidInvUtil.interactItemWithTank(FixedFluidInv, Reference, LimitedConsumer).
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FixedFluidInv, Reference<ItemStack>, LimitedConsumer<ItemStack>)
    Use FluidInvUtil.interactItemWithTank(FixedFluidInv, Reference, LimitedConsumer) instead: all interactWithTank methods have been moved to FluidInvUtil.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FixedFluidInv, PlayerEntity, Hand)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactHandWithTank(FixedFluidInv, PlayerEntity, Hand)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidInsertable, FluidExtractable, Ref<ItemStack>, Consumer<ItemStack>)
    This has been replaced by FluidInvUtil.interactItemWithTank(FluidInsertable, FluidExtractable, Reference, LimitedConsumer).
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidInsertable, FluidExtractable, Reference<ItemStack>, LimitedConsumer<ItemStack>)
    Use FluidInvUtil.interactItemWithTank(FluidInsertable, FluidExtractable, Reference, LimitedConsumer) instead: all interactWithTank methods have been moved to FluidInvUtil.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidInsertable, FluidExtractable, PlayerEntity, Reference<ItemStack>)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactWithTank(FluidInsertable, FluidExtractable, PlayerEntity, Reference)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidInsertable, FluidExtractable, PlayerEntity, Hand)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactHandWithTank(FluidInsertable, FluidExtractable, PlayerEntity, Hand)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidTransferable, Ref<ItemStack>, Consumer<ItemStack>)
    This has been replaced by FluidInvUtil.interactItemWithTank(FluidTransferable, Reference, LimitedConsumer).
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidTransferable, Reference<ItemStack>, LimitedConsumer<ItemStack>)
    Use FluidInvUtil.interactItemWithTank(FluidTransferable, Reference, LimitedConsumer) instead: all interactWithTank methods have been moved to FluidInvUtil.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.interactWithTank(FluidTransferable, PlayerEntity, Hand)
    The boolean return has been deprecated, and the main method has been moved to FluidInvUtil.interactHandWithTank(FluidTransferable, PlayerEntity, Hand)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.move(FluidExtractable, FluidInsertable, int)
    Replaced by FluidVolumeUtil.move(FluidExtractable, FluidInsertable, FluidAmount)
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.move(FluidExtractable, FluidInsertable, FluidFilter, int)
    Replaced by FluidVolumeUtil.move(FluidExtractable, FluidInsertable, FluidFilter, FluidAmount)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.addListener(FluidInvAmountChangeListener, ListenerRemovalToken)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.getAmount(FluidFilter)
    Replaced by GroupedFluidInvView.getAmount_F(FluidFilter)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.getAmount(FluidKey)
    Replaced by GroupedFluidInvView.getAmount_F(FluidKey)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.getCapacity(FluidKey)
    Replaced by GroupedFluidInvView.getCapacity_F(FluidKey)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.getSpace(FluidKey)
    Replaced by GroupedFluidInvView.getSpace_F(FluidKey)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.getTotalCapacity()
    Replaced by GroupedFluidInvView.getTotalCapacity_F()
    alexiil.mc.lib.attributes.fluid.impl.AbstractPartialFixedFluidInvView.getMaxAmount(int)
    alexiil.mc.lib.attributes.fluid.impl.CombinedFixedFluidInvView.getMaxAmount(int)
    alexiil.mc.lib.attributes.fluid.impl.DelegatingFixedFluidInv.getMaxAmount(int)
    alexiil.mc.lib.attributes.fluid.impl.EmptyFluidExtractable.attemptExtraction(FluidFilter, int, Simulation)
    alexiil.mc.lib.attributes.fluid.impl.SimpleFixedFluidInv.getMaxAmount(int)
    Replaced by SimpleFixedFluidInv.getMaxAmount_F(int).
    alexiil.mc.lib.attributes.fluid.LimitedFixedFluidInv.FluidTankLimitRule.limitInsertionCount(int)
    Replaced by LimitedFixedFluidInv.FluidTankLimitRule.limitInsertionAmount(FluidAmount).
    alexiil.mc.lib.attributes.fluid.LimitedFixedFluidInv.FluidTankLimitRule.noInsertionLimits()
    Because this is ambiguous as the name could refer to the count, or the filter, so instead you should use LimitedFixedFluidInv.FluidTankLimitRule.noInsertionFilter()
    alexiil.mc.lib.attributes.fluid.LimitedFixedFluidInv.FluidTankLimitRule.setMinimum(int)
    Replaced by LimitedFixedFluidInv.FluidTankLimitRule.setMinimum(FluidAmount)
    alexiil.mc.lib.attributes.fluid.LimitedGroupedFluidInv.FluidLimitRule.limitInsertionCount(int)
    Replaced by LimitedGroupedFluidInv.FluidLimitRule.limitInsertionAmount(FluidAmount)
    alexiil.mc.lib.attributes.fluid.LimitedGroupedFluidInv.FluidLimitRule.setMinimum(int)
    Replaced by LimitedGroupedFluidInv.FluidLimitRule.setMinimum(FluidAmount).
    alexiil.mc.lib.attributes.fluid.render.FluidVolumeRenderer.renderSimpleFluid(List<FluidRenderFace>, VertexConsumer, MatrixStack, Sprite, int)
    Use FluidVolumeRenderer.renderSimpleFluid(List, VertexConsumer, MatrixStack, Sprite, Sprite, int) instead, which takes both the still and flowing sprites.
    alexiil.mc.lib.attributes.fluid.SingleFluidTank.attemptExtraction(FluidFilter, int, Simulation)
    Replaced by SingleFluidTank.attemptExtraction(FluidFilter, FluidAmount, Simulation).
    alexiil.mc.lib.attributes.fluid.SingleFluidTankView.getMaxAmount()
    Replaced by SingleFluidTankView.getMaxAmount_F().
    alexiil.mc.lib.attributes.fluid.volume.FluidKey.withAmount(int)
    alexiil.mc.lib.attributes.fluid.volume.FluidKeys.remove(Fluid)
    Because I think fluids are meant to be all statically created?
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.areFullyEqual(FluidVolume, FluidVolume)
    Use Object.equals(Object) instead of this.
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.create(FluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.create(Fluid, int)
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.create(Potion, int)
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.getAmount()
    Replaced by FluidVolume.getAmount_F() and FluidVolume.amount().
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.getRawAmount()
    Replaced by FluidVolume.getRawAmount_F().
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.getTooltipText(TooltipContext)
    Replaced by FluidVolume.getFullTooltip().
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.merge0(FluidVolume, FluidAmount.FluidMergeRounding)
    because FluidVolume.mergeInternal(FluidVolume, FluidMergeResult) allows every method to share the same FluidAmount.FluidMergeResult object, which reduces the chance to make a mistake when merging the two amounts. In addition it's a bit wasteful to re-compute the same value more than once.

    So instead of overriding this it's recommended that you only override FluidVolume.mergeInternal(FluidVolume, FluidMergeResult).

    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.setAmount(int)
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume.split(int)
    Replaced by FluidVolume.split(FluidAmount)
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidKey.builder(Fluid, Identifier, Text)
    As the flowing sprite ID is needed as well.
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidKey.withAmount(int)
    alexiil.mc.lib.attributes.fluid.volume.PotionFluidKey.withAmount(int)
    Replaced by PotionFluidKey.withAmount(FluidAmount).
    alexiil.mc.lib.attributes.fluid.volume.PotionFluidVolume.getTooltipText(TooltipContext)
    Replaced by FluidVolume.getFullTooltip().
    alexiil.mc.lib.attributes.fluid.volume.WeightedFluidKey.withAmount(int)
    alexiil.mc.lib.attributes.fluid.volume.WeightedFluidKey.withAmount(T, int)
    alexiil.mc.lib.attributes.item.filter.ConstantItemFilter.of(boolean, boolean)
    alexiil.mc.lib.attributes.item.FixedItemInvView.offerSelfAsAttribute(AttributeList<?>, CacheInfo, VoxelShape)
    Because this functionality has been fully replaced by Convertible and it's usage in AttributeList, so you can always just offer this object directly to the attribute list.
    alexiil.mc.lib.attributes.item.impl.DirectFixedItemInv.get(int)
    This used to be necessary in 0.4.x, but since 0.5.0 DirectFixedItemInv.getInvStack(int) just returns the itemstack in the slot index.
    alexiil.mc.lib.attributes.item.impl.DirectFixedItemInv.set(int, ItemStack)
    This used to be necessary in 0.4.x, but since 0.5.0 this is unnecessary.
    alexiil.mc.lib.attributes.item.ItemInsertable.offer(ItemStack)
    This is an override for LimitedConsumer, for the full javadoc you probably want to call ItemInsertable.insert(ItemStack) directly.
    alexiil.mc.lib.attributes.item.ItemInsertable.offer(ItemStack, Simulation)
    This is an override for LimitedConsumer, for the full javadoc you probably want to call ItemInsertable.attemptInsertion(ItemStack, Simulation) directly.
    alexiil.mc.lib.attributes.item.ItemInvUtil.createPlayerInsertable(PlayerEntity)
    Use PlayerInvUtil.createPlayerInsertable(PlayerEntity) instead
    alexiil.mc.lib.attributes.item.ItemInvUtil.extractSingle(FixedItemInv, int, ItemFilter, ItemStack, int, Simulation)
    Because this has been moved to FixedItemInv.extractStack(int, ItemFilter, ItemStack, int, Simulation).
    alexiil.mc.lib.attributes.item.ItemInvUtil.insertItemIntoPlayerInventory(PlayerEntity, ItemStack)
    Use PlayerInvUtil.insertItemIntoPlayerInventory(PlayerEntity,ItemStack) instead
    alexiil.mc.lib.attributes.item.ItemInvUtil.insertSingle(FixedItemInv, int, ItemStack, Simulation)
    Because this has been moved to FixedItemInv.insertStack(int, ItemStack, Simulation).
    alexiil.mc.lib.attributes.item.ItemInvUtil.referenceGuiCursor(ServerPlayerEntity)
    Use PlayerInvUtil.referenceGuiCursor(ServerPlayerEntity) instead
    alexiil.mc.lib.attributes.item.ItemInvUtil.referenceHand(PlayerEntity, Hand)
    Use PlayerInvUtil.referenceHand(PlayerEntity,Hand) instead
    alexiil.mc.lib.attributes.item.LimitedFixedItemInv.ItemSlotLimitRule.noInsertionLimits()
    Because this is ambiguous as the name could refer to the count, or the filter, so instead you should use LimitedFixedItemInv.ItemSlotLimitRule.noInsertionFilter().
  • Deprecated Constructors
    Constructor
    Description
    alexiil.mc.lib.attributes.Attribute(Class<T>, CustomAttributeAdder<T>)
    Kept for backwards compatibility, instead you should call Attribute(Class) followed by Attribute.appendBlockAdder(CustomAttributeAdder).
    alexiil.mc.lib.attributes.DefaultedAttribute(Class<T>, T, CustomAttributeAdder<T>)
    Kept for backwards compatibility, instead you should call DefaultedAttribute(Class, Object) followed by DefaultedAttribute.appendBlockAdder(CustomAttributeAdder).
    alexiil.mc.lib.attributes.fluid.amount.FluidAmount(long)
    As FluidAmount.ofWhole(long) should be used instead.
    alexiil.mc.lib.attributes.fluid.FluidVolumeUtil.FluidTankInteraction(FluidVolume, boolean)
    alexiil.mc.lib.attributes.fluid.GroupedFluidInvView.FluidInvStatistic(FluidFilter, int, int, int)
    Use FluidInvStatistic(FluidFilter, FluidAmount, FluidAmount, FluidAmount) instead.
    alexiil.mc.lib.attributes.fluid.impl.JumboFixedFluidInv(int, int)
    Replaced by JumboFixedFluidInv(int, FluidAmount).
    alexiil.mc.lib.attributes.fluid.impl.SimpleFixedFluidInv(int, int)
    Replaced by SimpleFixedFluidInv(int, FluidAmount).
    alexiil.mc.lib.attributes.fluid.volume.BiomeSourcedFluidKey(FluidKey.FluidKeyBuilder)
    because it's recommended to create a ColouredFluidKey.ColouredFluidKeyBuilder instead and pass that to BiomeSourcedFluidKey(ColouredFluidKeyBuilder).
    alexiil.mc.lib.attributes.fluid.volume.BiomeSourcedFluidVolume(BiomeSourcedFluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.BiomeSourcedFluidVolume(BiomeSourcedFluidKey, Biome, int)
    alexiil.mc.lib.attributes.fluid.volume.ColouredFluidVolume(ColouredFluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.FluidKey.FluidKeyBuilder(FluidRegistryEntry<?>, Identifier, Text)
    As the flowing sprite ID is needed as well.
    alexiil.mc.lib.attributes.fluid.volume.FluidUnit(int, String)
    Replaced by FluidUnit(FluidAmount, String).
    alexiil.mc.lib.attributes.fluid.volume.FluidVolume(FluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.NormalFluidKey.NormalFluidKeyBuilder(Fluid, Identifier, Text)
    As the flowing sprite ID is needed as well.
    alexiil.mc.lib.attributes.fluid.volume.PotionFluidVolume(PotionFluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.SimpleFluidVolume(SimpleFluidKey, int)
    alexiil.mc.lib.attributes.fluid.volume.WeightedFluidVolume(WeightedFluidKey<T>, T, int)
    alexiil.mc.lib.attributes.item.impl.SimpleFixedItemInv(int)
    You should use either DirectFixedItemInv or FullFixedItemInv instead of this!

    Full explanation: As of LBA 0.5.0 there's been a large change to how inventories work to be much closer to vanilla - inventories no longer return immutable stacks from FixedItemInvView.getInvStack(int), and 2 new sub-interfaces have been created to handle the different ways of using this, either FixedItemInv.ModifiableFixedItemInv (which exposes a markDirty() method just like vanilla Inventory does), or FixedItemInv.CopyingFixedItemInv (which returns copies of the internal ItemStack and supports complete filtering and listener capabilities).

    You should replace this class with either:

    • FullFixedItemInv if you either need exact per-slot listening or the full filtration capabilities
    • DirectFixedItemInv if you'd rather use a more vanilla oriented approach of being able to directly modify items in an inventory.
  • Deprecated Enum Constants
    Enum Constant
    Description
    alexiil.mc.lib.attributes.item.filter.ConstantItemFilter.ANYTHING_EXCEPT_EMPTY
    alexiil.mc.lib.attributes.item.filter.ConstantItemFilter.ONLY_EMPTY