package carpet.mixins; import carpet.fakes.EntityInterface; import carpet.script.EntityEventsGroup; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.damage.DamageTracker; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(DamageTracker.class) public class DamageTracker_scarpetEventMixin { @Shadow @Final private LivingEntity entity; @Inject(method = "onDamage", at = @At("HEAD")) private void onDamageTaken(DamageSource damageSource_1, float float_1, float float_2, CallbackInfo ci) { ((EntityInterface)entity).getEventContainer().onEvent(EntityEventsGroup.EntityEventType.ON_DAMAGE, entity, float_2, damageSource_1); } }