From 9274d3e291404553ada3c45e6e379419669db60b Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Tue, 7 May 2024 15:34:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E5=8A=A0=E5=85=A5=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E5=87=BB=E9=80=80=E7=9A=84mixin=EF=BC=8C=E4=BD=86?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../target/headshot/BoundingBoxManager.java | 1 + .../target/mixins/LivingEntityMixin.java | 44 +++++++++++++++++++ src/main/resources/mixins.target.json | 1 + 3 files changed, 46 insertions(+) create mode 100644 src/main/java/net/mcreator/target/mixins/LivingEntityMixin.java diff --git a/src/main/java/net/mcreator/target/headshot/BoundingBoxManager.java b/src/main/java/net/mcreator/target/headshot/BoundingBoxManager.java index 9d05f839a..61d47c9b5 100644 --- a/src/main/java/net/mcreator/target/headshot/BoundingBoxManager.java +++ b/src/main/java/net/mcreator/target/headshot/BoundingBoxManager.java @@ -45,6 +45,7 @@ public class BoundingBoxManager { }); registerHeadshotBox(TargetModEntities.SENPAI.get(), new BasicHeadshotBox<>(8.0, 22.0)); registerHeadshotBox(TargetModEntities.TARGET_1.get(), new BasicHeadshotBox<>(14.0, 20.0)); + registerHeadshotBox(EntityType.ENDERMAN, new BasicHeadshotBox<>(8.0, 38.0)); registerHeadshotBox(EntityType.ZOMBIE, new ChildHeadshotBox<>(8.0, 26.0, 0.75, 0.5)); registerHeadshotBox(EntityType.ZOMBIFIED_PIGLIN, new ChildHeadshotBox<>(8.0, 26.0, 0.75, 0.5)); registerHeadshotBox(EntityType.HUSK, new ChildHeadshotBox<>(8.0, 26.0, 0.75, 0.5)); diff --git a/src/main/java/net/mcreator/target/mixins/LivingEntityMixin.java b/src/main/java/net/mcreator/target/mixins/LivingEntityMixin.java new file mode 100644 index 000000000..0b4a2618d --- /dev/null +++ b/src/main/java/net/mcreator/target/mixins/LivingEntityMixin.java @@ -0,0 +1,44 @@ +package net.mcreator.target.mixins; + +import net.mcreator.target.entity.ProjectileEntity; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyArg; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +/** + * Author: MrCrayfish + */ +@Mixin(LivingEntity.class) +public class LivingEntityMixin +{ + private DamageSource source; + + @Inject(method = "hurt", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;knockback(DDD)V")) + private void capture(DamageSource source, float amount, CallbackInfoReturnable cir) + { + this.source = source; + } + + @ModifyArg(method = "hurt", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;knockback(DDD)V"), index = 0) + private double modifyApplyKnockbackArgs(double original) + { + if(this.source.getEntity() instanceof ProjectileEntity) + { + if(true) + { + return 0; + } + + double strength = 0; + if(strength > 0) + { + return strength; + } + } + return original; + } +} \ No newline at end of file diff --git a/src/main/resources/mixins.target.json b/src/main/resources/mixins.target.json index 5a78a2b0f..e1f3f5955 100644 --- a/src/main/resources/mixins.target.json +++ b/src/main/resources/mixins.target.json @@ -4,6 +4,7 @@ "compatibilityLevel": "JAVA_17", "refmap": "mixins.target.refmap.json", "mixins": [ + "LivingEntityMixin", "ClientboundSetEntityMotionPacketMixin" ], "client": [