Improved Damage Framework

Improved Damage Framework

10.1k Downloads

Incompatibility with DragonSurvival

MrRain139 opened this issue ยท 2 comments

commented

When trying to run the game with your mod I found that it is not compatible with Dragon Survival. https://www.curseforge.com/minecraft/mc-mods/dragons-survival
Error: [17Dec2023 10:04:48.511] [main/FATAL] [mixin/]: Mixin apply failed dragonsurvival.mixins.json:MixinLivingEntity -> net.minecraft.world.entity.LivingEntity: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Specified index 0 for @ModifyArg is invalid for args (Lnet/minecraft/world/entity/LivingEntity;DDD), expected D on net/minecraft/world/entity/LivingEntity::disableKnockbackForMagic [INJECT Applicator Phase -> dragonsurvival.mixins.json:MixinLivingEntity -> Apply Injections -> -> Inject -> dragonsurvival.mixins.json:MixinLivingEntity->@ModifyArg::disableKnockbackForMagic(D)D]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Specified index 0 for @ModifyArg is invalid for args (Lnet/minecraft/world/entity/LivingEntity;DDD), expected D on net/minecraft/world/entity/LivingEntity::disableKnockbackForMagic [INJECT Applicator Phase -> dragonsurvival.mixins.json:MixinLivingEntity -> Apply Injections -> -> Inject -> dragonsurvival.mixins.json:MixinLivingEntity->@ModifyArg::disableKnockbackForMagic(D)D]

commented

Here's the error plot from the DragonSurvival mod:

@ModifyArg(method = "hurt", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;knockback(DDD)V"), index = 0)
	public double disableKnockbackForMagic(double strength) {
		if (dragonSurvival$damageSource instanceof EntityDamageSource) {
			String id = dragonSurvival$damageSource.msgId;

			if (id.equals("onFire") || id.equals("magic")) {
				return 0;
			}
		}

		return strength;
	} 
          In your mod, index 0 causes an error because that one is not a double, but in your method:  
@Redirect(method = "hurt", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;knockback(DDD)V"))
    private void voidKnockback(LivingEntity instance, double strength, double x, double z) {
    }
       
commented

Not a priority at the moment but I'll look into it.