取消被电击者的攻击能力
This commit is contained in:
parent
d6ac41a7e3
commit
0d3959d1bb
1 changed files with 23 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
||||||
package net.mcreator.target.mobeffect;
|
package net.mcreator.target.mobeffect;
|
||||||
|
|
||||||
import net.mcreator.target.TargetMod;
|
import net.mcreator.target.TargetMod;
|
||||||
|
import net.mcreator.target.entity.ClaymoreEntity;
|
||||||
import net.mcreator.target.init.TargetModDamageTypes;
|
import net.mcreator.target.init.TargetModDamageTypes;
|
||||||
import net.mcreator.target.init.TargetModMobEffects;
|
import net.mcreator.target.init.TargetModMobEffects;
|
||||||
import net.mcreator.target.init.TargetModSounds;
|
import net.mcreator.target.init.TargetModSounds;
|
||||||
|
@ -10,6 +11,8 @@ import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.util.RandomSource;
|
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.MobEffect;
|
||||||
import net.minecraft.world.effect.MobEffectCategory;
|
import net.minecraft.world.effect.MobEffectCategory;
|
||||||
import net.minecraft.world.effect.MobEffectInstance;
|
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.AttributeModifier;
|
||||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||||
import net.minecraft.world.entity.player.Player;
|
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.LivingEvent;
|
||||||
import net.minecraftforge.event.entity.living.MobEffectEvent;
|
import net.minecraftforge.event.entity.living.MobEffectEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
@ -116,4 +120,23 @@ public class ShockMobEffect extends MobEffect {
|
||||||
living.xRotO = living.getXRot();
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue