Class GetEnchantmentLevelEvent

java.lang.Object
net.neoforged.bus.api.Event
net.neoforged.neoforge.event.enchanting.GetEnchantmentLevelEvent

public class GetEnchantmentLevelEvent extends net.neoforged.bus.api.Event
This event is fired whenever the enchantment level of a particular item is requested for gameplay purposes.
It is called from
invalid reference
IItemStackExtension#getEnchantmentLevel(Enchantment)
and
invalid reference
IItemStackExtension#getAllEnchantments()
.

It is not fired for interactions with NBT, which means these changes will not reflect in the item tooltip.

  • Field Details

  • Constructor Details

  • Method Details

    • getStack

      public ItemStack getStack()
      Returns the item stack that is being queried against.
    • getEnchantments

      public ItemEnchantments.Mutable getEnchantments()
      Returns the mutable enchantment->level map.
    • getTargetEnchant

      @Nullable public @Nullable Holder<Enchantment> getTargetEnchant()
      This method returns the specific enchantment being queried from
      invalid reference
      IItemStackExtension#getEnchantmentLevel(Enchantment)
      .

      If this is value is present, you only need to adjust the level of that enchantment.

      If this value is null, then the event was fired from

      invalid reference
      IItemStackExtension#getAllEnchantments()
      and all enchantments should be populated.
      Returns:
      The specific enchantment being queried, or null, if all enchantments are being requested.
    • isTargetting

      public boolean isTargetting(Holder<Enchantment> ench)
      Helper method around getTargetEnchant() that checks if the target is the specified enchantment, or if the target is null.
      Parameters:
      ench - The enchantment to check.
      Returns:
      If modifications to the passed enchantment are relevant for this event.
      See Also:
    • isTargetting

      public boolean isTargetting(ResourceKey<Enchantment> ench)
      Helper method around getTargetEnchant() that checks if the target is the specified enchantment, or if the target is null.
      Parameters:
      ench - The enchantment to check.
      Returns:
      If modifications to the passed enchantment are relevant for this event.
      See Also:
    • getHolder

      Attempts to resolve a Holder.Reference for a target enchantment. Since enchantments are data, they are not guaranteed to exist.
      Parameters:
      key - The target resource key
      Returns:
      If the holder was available, an Optional containing it; otherwise an empty Optional.
    • getLookup

      Returns the underlying registry lookup, which can be used to access enchantment Holders.
      Returns:
      the underlying registry lookup, which can be used to access enchantment Holders