Jump to content

final.ckpt

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by final.ckpt

  1. Hello, I'm trying to modify the effects of native enchantments for bows and arrows in Minecraft. After using a decompilation tool, I found that the specific implementations of native bow and arrow enchantments (including `ArrowDamageEnchantment`, `ArrowKnockbackEnchantment`, `ArrowFireEnchantment`, `ArrowInfiniteEnchantment`, `ArrowPiercingEnchantment`) do not contain any information about the enchantment effects (such as the `getDamageProtection` function for `ProtectionEnchantment`, `getDamageBonus` function for `DamageEnchantment`, etc.). Upon searching for the base class of arrows, `AbstractArrow`, I found a function named setEnchantmentEffectsFromEntity`, which seems to be used to retrieve the enchantment levels of the tool held by a `LivingEntity` and calculate the specific values of the enchantment effects. However, after testing with the following code, I found that this function is not being called: @Mixin(AbstractArrow.class) public class ModifyArrowEnchantmentEffects { private static final Logger LOGGER = LogUtils.getLogger(); @Inject( method = "setEnchantmentEffectsFromEntity", at = @At("HEAD") ) private void logArrowEnchantmentEffectsFromEntity(CallbackInfo ci) { LOGGER.info("Arrow enchantment effects from entity"); } } Upon further investigation, I found that within the onHitEntity method, there are several lines of code: if (!this.level().isClientSide && entity1 instanceof LivingEntity) { EnchantmentHelper.doPostHurtEffects(livingentity, entity1); EnchantmentHelper.doPostDamageEffects((LivingEntity)entity1, livingentity); } These lines of code actually call the doPostHurt and doPostAttack methods of each enchantment in the enchantment list. However, this leads back to the issue because native bow and arrow enchantments do not implement these functions. Although their base class defines the functions, they are empty. At this point, I'm completely stumped and seeking assistance. Thank you.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.