Class ComputeEnchantedLootBonusEvent

java.lang.Object
net.neoforged.bus.api.Event
net.neoforged.neoforge.event.entity.EntityEvent
net.neoforged.neoforge.event.entity.living.LivingEvent
tech.anonymoushacker1279.immersiveweapons.api.events.ComputeEnchantedLootBonusEvent

public class ComputeEnchantedLootBonusEvent extends net.neoforged.neoforge.event.entity.living.LivingEvent

Called just before a LivingEntity drops all its loot for determining the level of a loot bonus enchantment such as Enchantments.LOOTING that should be applied to the drops.

Specifically the event allows for controlling the enchantment level when applying the:

  • loot item function minecraft:enchanted\_count\_increase
  • loot item condition minecraft:random\_chance\_with\_enchanted\_bonus
  • enchantment effect component minecraft:equipment\_drops

This event is fired on the NeoForge.EVENT_BUS.

Based on Puzzles Lib's implementation. Provided as a solution to NeoForge issue #1112.

Source

  • Nested Class Summary

    Nested classes/interfaces inherited from class net.neoforged.neoforge.event.entity.living.LivingEvent

    net.neoforged.neoforge.event.entity.living.LivingEvent.LivingJumpEvent, net.neoforged.neoforge.event.entity.living.LivingEvent.LivingVisibilityEvent

    Nested classes/interfaces inherited from class net.neoforged.neoforge.event.entity.EntityEvent

    net.neoforged.neoforge.event.entity.EntityEvent.EnteringSection, net.neoforged.neoforge.event.entity.EntityEvent.EntityConstructing, net.neoforged.neoforge.event.entity.EntityEvent.Size
  • Constructor Summary

    Constructors
    Constructor
    Description
    ComputeEnchantedLootBonusEvent(net.minecraft.world.entity.LivingEntity entity, @Nullable net.minecraft.world.damagesource.DamageSource damageSource, net.minecraft.core.Holder<net.minecraft.world.item.enchantment.Enchantment> enchantment, int enchantmentLevel)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    @Nullable net.minecraft.world.damagesource.DamageSource
     
    net.minecraft.core.Holder<net.minecraft.world.item.enchantment.Enchantment>
     
    int
     
    static int
    onComputeEnchantedLootBonus(net.minecraft.core.Holder<net.minecraft.world.item.enchantment.Enchantment> enchantment, int enchantmentLevel, net.minecraft.world.entity.LivingEntity livingEntity, @Nullable net.minecraft.world.damagesource.DamageSource damageSource)
     
    static int
    onComputeEnchantedLootBonus(net.minecraft.core.Holder<net.minecraft.world.item.enchantment.Enchantment> enchantment, int enchantmentLevel, net.minecraft.world.level.storage.loot.LootContext lootContext)
     
    void
    setEnchantmentLevel(int enchantmentLevel)
     

    Methods inherited from class net.neoforged.neoforge.event.entity.living.LivingEvent

    getEntity

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ComputeEnchantedLootBonusEvent

      @Internal public ComputeEnchantedLootBonusEvent(net.minecraft.world.entity.LivingEntity entity, @Nullable @Nullable net.minecraft.world.damagesource.DamageSource damageSource, net.minecraft.core.Holder<net.minecraft.world.item.enchantment.Enchantment> enchantment, int enchantmentLevel)
  • Method Details

    • onComputeEnchantedLootBonus

      @Internal public static int onComputeEnchantedLootBonus(net.minecraft.core.Holder<net.minecraft.world.item.enchantment.Enchantment> enchantment, int enchantmentLevel, net.minecraft.world.level.storage.loot.LootContext lootContext)
    • onComputeEnchantedLootBonus

      @Internal public static int onComputeEnchantedLootBonus(net.minecraft.core.Holder<net.minecraft.world.item.enchantment.Enchantment> enchantment, int enchantmentLevel, net.minecraft.world.entity.LivingEntity livingEntity, @Nullable @Nullable net.minecraft.world.damagesource.DamageSource damageSource)
    • getDamageSource

      @Nullable public @Nullable net.minecraft.world.damagesource.DamageSource getDamageSource()
    • getEnchantment

      public net.minecraft.core.Holder<net.minecraft.world.item.enchantment.Enchantment> getEnchantment()
    • getEnchantmentLevel

      public int getEnchantmentLevel()
    • setEnchantmentLevel

      public void setEnchantmentLevel(int enchantmentLevel)