use of net.minecraft.entity.monster.EndermanEntity in project Enigmatic-Legacy by Aizistral-Studios.
the class EnigmaticEventHandler method onEntityHurt.
@SubscribeEvent
public void onEntityHurt(LivingHurtEvent event) {
if (event.getEntityLiving() instanceof PlayerEntity & !event.getEntityLiving().world.isRemote) {
PlayerEntity player = (PlayerEntity) event.getEntityLiving();
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.angelBlessing))
if (AngelBlessing.resistanceList.containsKey(event.getSource().damageType))
event.setAmount(event.getAmount() * AngelBlessing.resistanceList.get(event.getSource().damageType));
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.oceanStone)) {
Entity attacker = event.getSource().getTrueSource();
if (attacker instanceof DrownedEntity || attacker instanceof GuardianEntity || attacker instanceof ElderGuardianEntity)
event.setAmount(event.getAmount() * ConfigHandler.OCEAN_STONE_UNDERWATER_CREATURES_RESISTANCE.getValue().asModifierInverted());
}
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.eyeOfNebula))
if (EyeOfNebula.resistanceList.containsKey(event.getSource().damageType))
event.setAmount(event.getAmount() * EyeOfNebula.resistanceList.get(event.getSource().damageType).get());
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.golemHeart))
if (GolemHeart.resistanceList.containsKey(event.getSource().damageType))
event.setAmount(event.getAmount() * GolemHeart.resistanceList.get(event.getSource().damageType).get());
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.voidPearl))
if (VoidPearl.resistanceList.containsKey(event.getSource().damageType))
event.setAmount(event.getAmount() * VoidPearl.resistanceList.get(event.getSource().damageType).get());
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.magmaHeart)) {
// System.out.println("Damage type: " + event.getSource().damageType);
if (event.getSource().getTrueSource() instanceof LivingEntity && MagmaHeart.nemesisList.contains(event.getSource().damageType)) {
LivingEntity attacker = (LivingEntity) event.getSource().getTrueSource();
if (!attacker.isImmuneToFire()) {
attacker.attackEntityFrom(new EntityDamageSource(DamageSource.ON_FIRE.damageType, player), (float) ConfigHandler.BLAZING_CORE_DAMAGE_FEEDBACK.getValue());
attacker.setFire((int) ConfigHandler.BLAZING_CORE_IGNITION_FEEDBACK.getValue());
}
}
}
if (EtheriumArmor.hasShield(player)) {
if (event.getSource().getImmediateSource() instanceof LivingEntity) {
LivingEntity attacker = ((LivingEntity) event.getSource().getTrueSource());
Vector3 vec = Vector3.fromEntityCenter(player).subtract(Vector3.fromEntityCenter(event.getSource().getTrueSource())).normalize();
attacker.knockBack(player, 0.75F, vec.x, vec.y);
player.world.playSound(null, player.getPosition(), EnigmaticLegacy.SHIELD_TRIGGER, SoundCategory.PLAYERS, 1.0F, 0.9F + (float) (Math.random() * 0.1D));
player.world.playSound(null, player.getPosition(), EnigmaticLegacy.SHIELD_TRIGGER, SoundCategory.PLAYERS, 1.0F, 0.9F + (float) (Math.random() * 0.1D));
}
event.setAmount(event.getAmount() * ConfigHandler.ETHERIUM_ARMOR_SHIELD_REDUCTION.getValue().asModifierInverted());
}
} else if (event.getEntityLiving() instanceof MonsterEntity) {
MonsterEntity monster = (MonsterEntity) event.getEntityLiving();
if (event.getSource().getTrueSource() instanceof PlayerEntity) {
PlayerEntity player = (PlayerEntity) event.getSource().getTrueSource();
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.monsterCharm)) {
if (monster.isEntityUndead()) {
event.setAmount(event.getAmount() * ConfigHandler.MONSTER_CHARM_UNDEAD_DAMAGE.getValue().asModifier(true));
} else if (monster.isAggressive() || monster instanceof CreeperEntity) {
if (monster instanceof EndermanEntity || monster instanceof ZombiePigmanEntity || monster instanceof BlazeEntity || monster instanceof GuardianEntity || monster instanceof ElderGuardianEntity || !monster.isNonBoss()) {
} else {
event.setAmount(event.getAmount() * ConfigHandler.MONSTER_CHARM_AGGRESSIVE_DAMAGE.getValue().asModifier(true));
}
}
}
if (monster instanceof CreeperEntity)
monster.setLastAttackedEntity(player);
// TODO Test if required
}
}
if (event.getSource().getTrueSource() instanceof PlayerEntity) {
PlayerEntity player = (PlayerEntity) event.getSource().getTrueSource();
if (SuperpositionHandler.hasCurio(player, EnigmaticLegacy.voidPearl)) {
event.getEntityLiving().addPotionEffect(new EffectInstance(Effects.WITHER, ConfigHandler.VOID_PEARL_WITHERING_EFFECT_TIME.getValue(), ConfigHandler.VOID_PEARL_WITHERING_EFFECT_LEVEL.getValue(), false, true));
}
}
}
use of net.minecraft.entity.monster.EndermanEntity in project Arclight by IzzelAliz.
the class EntityTeleportEventDispatcher method onTeleport.
@SubscribeEvent(receiveCanceled = true)
public void onTeleport(EnderTeleportEvent event) {
if (!(event.getEntity() instanceof EndermanEntity)) {
if (event.getEntity() instanceof ServerPlayerEntity) {
CraftPlayer player = ((ServerPlayerEntityBridge) event.getEntity()).bridge$getBukkitEntity();
PlayerTeleportEvent bukkitEvent = new PlayerTeleportEvent(player, player.getLocation(), new Location(player.getWorld(), event.getTargetX(), event.getTargetY(), event.getTargetZ()), PlayerTeleportEvent.TeleportCause.ENDER_PEARL);
Bukkit.getPluginManager().callEvent(bukkitEvent);
event.setCanceled(bukkitEvent.isCancelled());
event.setTargetX(bukkitEvent.getTo().getX());
event.setTargetY(bukkitEvent.getTo().getY());
event.setTargetZ(bukkitEvent.getTo().getZ());
} else {
CraftEntity entity = ((EntityBridge) event.getEntity()).bridge$getBukkitEntity();
EntityTeleportEvent bukkitEvent = new EntityTeleportEvent(entity, entity.getLocation(), new Location(entity.getWorld(), event.getTargetX(), event.getTargetY(), event.getTargetZ()));
Bukkit.getPluginManager().callEvent(bukkitEvent);
event.setCanceled(bukkitEvent.isCancelled());
event.setTargetX(bukkitEvent.getTo().getX());
event.setTargetY(bukkitEvent.getTo().getY());
event.setTargetZ(bukkitEvent.getTo().getZ());
}
}
}
use of net.minecraft.entity.monster.EndermanEntity in project Champions by TheIllusiveC4.
the class InfestedAffix method spawnParasites.
private static void spawnParasites(LivingEntity livingEntity, int amount, @Nullable LivingEntity target, ServerWorld world) {
boolean isEnder = livingEntity instanceof EndermanEntity || livingEntity instanceof ShulkerEntity || livingEntity instanceof EndermiteEntity || livingEntity instanceof EnderDragonEntity;
EntityType<?> type = isEnder ? ChampionsConfig.infestedEnderParasite : ChampionsConfig.infestedParasite;
for (int i = 0; i < amount; i++) {
Entity entity = type.create(world, null, null, null, livingEntity.getPosition(), SpawnReason.MOB_SUMMONED, false, false);
if (entity instanceof LivingEntity) {
ChampionCapability.getCapability((LivingEntity) entity).ifPresent(champion -> champion.getServer().setRank(RankManager.getLowestRank()));
livingEntity.getEntityWorld().addEntity(entity);
if (entity instanceof MobEntity) {
((MobEntity) entity).spawnExplosionParticle();
((MobEntity) entity).setRevengeTarget(target);
((MobEntity) entity).setAttackTarget(target);
}
}
}
}
Aggregations