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
It is called from
ItemInstanceExtension.getEnchantmentLevel(Holder) and IItemStackExtension.getAllEnchantments(RegistryLookup).
It is not fired for interactions with NBT, which means these changes will not reflect in the item tooltip.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ItemEnchantments.Mutableprotected final HolderLookup.RegistryLookup<Enchantment> protected final ItemInstanceprotected final @Nullable Holder<Enchantment> -
Constructor Summary
ConstructorsConstructorDescriptionGetEnchantmentLevelEvent(ItemInstance stack, ItemEnchantments.Mutable enchantments, @Nullable Holder<Enchantment> targetEnchant, HolderLookup.RegistryLookup<Enchantment> lookup) -
Method Summary
Modifier and TypeMethodDescriptionReturns the mutable enchantment->level map.getHolder(ResourceKey<Enchantment> key) Attempts to resolve aHolder.Referencefor a target enchantment.Returns the underlying registry lookup, which can be used to access enchantment Holders.getStack()Returns the item stack that is being queried against.@Nullable Holder<Enchantment> This method returns the specific enchantment being queried fromItemInstanceExtension.getEnchantmentLevel(Holder).booleanisTargetting(Holder<Enchantment> ench) Helper method aroundgetTargetEnchant()that checks if the target is the specified enchantment, or if the target is null.booleanisTargetting(ResourceKey<Enchantment> ench) Helper method aroundgetTargetEnchant()that checks if the target is the specified enchantment, or if the target is null.
-
Field Details
-
stack
-
enchantments
-
targetEnchant
-
lookup
-
-
Constructor Details
-
GetEnchantmentLevelEvent
public GetEnchantmentLevelEvent(ItemInstance stack, ItemEnchantments.Mutable enchantments, @Nullable Holder<Enchantment> targetEnchant, HolderLookup.RegistryLookup<Enchantment> lookup)
-
-
Method Details
-
getStack
Returns the item stack that is being queried against. -
getEnchantments
Returns the mutable enchantment->level map. -
getTargetEnchant
This method returns the specific enchantment being queried fromItemInstanceExtension.getEnchantmentLevel(Holder).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
IItemStackExtension.getAllEnchantments(RegistryLookup)and all enchantments should be populated.- Returns:
- The specific enchantment being queried, or null, if all enchantments are being requested.
-
isTargetting
Helper method aroundgetTargetEnchant()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
Helper method aroundgetTargetEnchant()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 aHolder.Referencefor 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
-