From 24e67ef912557c624c8030dac539e9512fd1c010 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Tue, 4 Feb 2025 02:52:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96mobeffect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/mobeffect/BurnMobEffect.java | 5 +++-- .../superbwarfare/mobeffect/ShockMobEffect.java | 13 +++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/mobeffect/BurnMobEffect.java b/src/main/java/com/atsuishio/superbwarfare/mobeffect/BurnMobEffect.java index 678a5e917..a6b164bab 100644 --- a/src/main/java/com/atsuishio/superbwarfare/mobeffect/BurnMobEffect.java +++ b/src/main/java/com/atsuishio/superbwarfare/mobeffect/BurnMobEffect.java @@ -1,10 +1,10 @@ package com.atsuishio.superbwarfare.mobeffect; -import com.atsuishio.superbwarfare.network.message.ClientIndicatorMessage; import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModMobEffects; import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.network.message.ClientIndicatorMessage; import net.minecraft.core.registries.Registries; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; @@ -23,6 +23,7 @@ import net.minecraftforge.network.PacketDistributor; @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE) public class BurnMobEffect extends MobEffect { + public BurnMobEffect() { super(MobEffectCategory.HARMFUL, -12708330); } @@ -36,7 +37,7 @@ public class BurnMobEffect extends MobEffect { attacker = entity.level().getEntity(entity.getPersistentData().getInt("BurnAttacker")); } - entity.hurt(new DamageSource(entity.level().registryAccess().registryOrThrow(Registries.DAMAGE_TYPE).getHolderOrThrow(ModDamageTypes.BURN), attacker), 0.6f + (0.3f * amplifier)); + entity.hurt(ModDamageTypes.causeBurnDamage(entity.level().registryAccess(), attacker), 0.6f + (0.3f * amplifier)); entity.invulnerableTime = 0; if (attacker instanceof ServerPlayer player) { diff --git a/src/main/java/com/atsuishio/superbwarfare/mobeffect/ShockMobEffect.java b/src/main/java/com/atsuishio/superbwarfare/mobeffect/ShockMobEffect.java index ec5e2b768..510267c97 100644 --- a/src/main/java/com/atsuishio/superbwarfare/mobeffect/ShockMobEffect.java +++ b/src/main/java/com/atsuishio/superbwarfare/mobeffect/ShockMobEffect.java @@ -1,10 +1,10 @@ package com.atsuishio.superbwarfare.mobeffect; -import com.atsuishio.superbwarfare.network.message.ClientIndicatorMessage; import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.init.ModDamageTypes; import com.atsuishio.superbwarfare.init.ModMobEffects; import com.atsuishio.superbwarfare.init.ModSounds; +import com.atsuishio.superbwarfare.network.message.ClientIndicatorMessage; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; @@ -28,6 +28,7 @@ import net.minecraftforge.network.PacketDistributor; @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE) public class ShockMobEffect extends MobEffect { + public ShockMobEffect() { super(MobEffectCategory.HARMFUL, -256); addAttributeModifier(Attributes.MOVEMENT_SPEED, "7107DE5E-7CE8-4030-940E-514C1F160890", -10.0F, AttributeModifier.Operation.ADDITION); @@ -124,16 +125,12 @@ public class ShockMobEffect extends MobEffect { 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) { + Entity entity = source.getDirectEntity(); + if (entity == null) { return; } - if (sourceentity instanceof LivingEntity living && living.hasEffect(ModMobEffects.SHOCK.get())) { + if (entity instanceof LivingEntity living && living.hasEffect(ModMobEffects.SHOCK.get())) { event.setCanceled(true); } }