From 0d3959d1bb9b7f1dac96a5490e6372bf584dd9f2 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Mon, 10 Jun 2024 14:59:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=A2=AB=E7=94=B5=E5=87=BB?= =?UTF-8?q?=E8=80=85=E7=9A=84=E6=94=BB=E5=87=BB=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../target/mobeffect/ShockMobEffect.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/net/mcreator/target/mobeffect/ShockMobEffect.java b/src/main/java/net/mcreator/target/mobeffect/ShockMobEffect.java index a54318b41..0af2d1d64 100644 --- a/src/main/java/net/mcreator/target/mobeffect/ShockMobEffect.java +++ b/src/main/java/net/mcreator/target/mobeffect/ShockMobEffect.java @@ -1,6 +1,7 @@ package net.mcreator.target.mobeffect; import net.mcreator.target.TargetMod; +import net.mcreator.target.entity.ClaymoreEntity; import net.mcreator.target.init.TargetModDamageTypes; import net.mcreator.target.init.TargetModMobEffects; import net.mcreator.target.init.TargetModSounds; @@ -10,6 +11,8 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.damagesource.DamageTypes; import net.minecraft.world.effect.MobEffect; import net.minecraft.world.effect.MobEffectCategory; import net.minecraft.world.effect.MobEffectInstance; @@ -18,6 +21,7 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.player.Player; +import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.event.entity.living.MobEffectEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -116,4 +120,23 @@ public class ShockMobEffect extends MobEffect { living.xRotO = living.getXRot(); } } + + @SubscribeEvent + public static void onEntityAttacked(LivingAttackEvent event) { + if (event == null || event.getEntity() == null) { + return; + } + shockCancelDamage(event); + } + + private static void shockCancelDamage(LivingAttackEvent event) { + DamageSource source = event.getSource(); + Entity sourceentity = source.getDirectEntity(); + if (sourceentity == null) { + return; + } + if (sourceentity instanceof LivingEntity living && living.hasEffect(TargetModMobEffects.SHOCK.get())) { + event.setCanceled(true); + } + } }