Search in sources :

Example 26 with EntityArmorStand

use of net.minecraft.server.v1_8_R1.EntityArmorStand in project MyPet by xXKeyleXx.

the class OwnerHurtByTarget method shouldStart.

@Override
public boolean shouldStart() {
    if (!petEntity.canMove()) {
        return false;
    }
    if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) {
        return false;
    }
    this.lastDamager = owner.getLastDamager();
    if (this.lastDamager == null || !lastDamager.isAlive()) {
        return false;
    }
    if (lastDamager instanceof EntityArmorStand) {
        return false;
    }
    if (lastDamager == petEntity) {
        return false;
    }
    if (lastDamager instanceof EntityPlayer) {
        if (owner == lastDamager) {
            return false;
        }
        Player targetPlayer = (Player) lastDamager.getBukkitEntity();
        if (!MyPetApi.getHookHelper().canHurt(myPet.getOwner().getPlayer(), targetPlayer, true)) {
            return false;
        }
    } else if (lastDamager instanceof EntityMyPet) {
        MyPet targetMyPet = ((EntityMyPet) lastDamager).getMyPet();
        if (!MyPetApi.getHookHelper().canHurt(myPet.getOwner().getPlayer(), targetMyPet.getOwner().getPlayer(), true)) {
            return false;
        }
    } else if (lastDamager instanceof EntityTameableAnimal) {
        EntityTameableAnimal tameable = (EntityTameableAnimal) lastDamager;
        if (tameable.isTamed() && tameable.getOwner() != null) {
            Player tameableOwner = (Player) tameable.getOwner().getBukkitEntity();
            if (myPet.getOwner().equals(tameableOwner)) {
                return false;
            }
        }
    }
    if (!MyPetApi.getHookHelper().canHurt(myPet.getOwner().getPlayer(), lastDamager.getBukkitEntity())) {
        return false;
    }
    Behavior behaviorSkill = myPet.getSkills().get(Behavior.class);
    if (behaviorSkill != null && behaviorSkill.isActive()) {
        if (behaviorSkill.getBehavior() == BehaviorMode.Friendly) {
            return false;
        }
        if (behaviorSkill.getBehavior() == BehaviorMode.Raid) {
            if (lastDamager instanceof EntityTameableAnimal && ((EntityTameableAnimal) lastDamager).isTamed()) {
                return false;
            }
            if (lastDamager instanceof EntityMyPet) {
                return false;
            }
            if (lastDamager instanceof EntityPlayer) {
                return false;
            }
        }
    }
    return true;
}
Also used : Player(org.bukkit.entity.Player) EntityPlayer(net.minecraft.server.v1_12_R1.EntityPlayer) CraftPlayer(org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer) EntityMyPet(de.Keyle.MyPet.compat.v1_12_R1.entity.EntityMyPet) MyPet(de.Keyle.MyPet.api.entity.MyPet) EntityMyPet(de.Keyle.MyPet.compat.v1_12_R1.entity.EntityMyPet) EntityPlayer(net.minecraft.server.v1_12_R1.EntityPlayer) EntityTameableAnimal(net.minecraft.server.v1_12_R1.EntityTameableAnimal) EntityArmorStand(net.minecraft.server.v1_12_R1.EntityArmorStand) Behavior(de.Keyle.MyPet.api.skill.skills.Behavior)

Aggregations

Player (org.bukkit.entity.Player)16 MyPet (de.Keyle.MyPet.api.entity.MyPet)15 Behavior (de.Keyle.MyPet.api.skill.skills.Behavior)11 EntityArmorStand (net.minecraft.server.v1_12_R1.EntityArmorStand)7 Behavior (de.Keyle.MyPet.skill.skills.Behavior)5 Seat (me.legofreak107.vehicles.objects.Seat)5 Vehicle (me.legofreak107.vehicles.objects.Vehicle)5 PacketPlayInSteerVehicle (net.minecraft.server.v1_12_R1.PacketPlayInSteerVehicle)5 Location (org.bukkit.Location)5 CraftArmorStand (org.bukkit.craftbukkit.v1_12_R1.entity.CraftArmorStand)5 ArmorStand (org.bukkit.entity.ArmorStand)5 EntityMyPet (de.Keyle.MyPet.compat.v1_8_R3.entity.EntityMyPet)3 BossBar (org.bukkit.boss.BossBar)3 PlayerInventory (org.bukkit.inventory.PlayerInventory)3 Vector (org.bukkit.util.Vector)3 EntityMyPet (de.Keyle.MyPet.compat.v1_12_R1.entity.EntityMyPet)2 EntityMyPet (de.Keyle.MyPet.compat.v1_16_R1.entity.EntityMyPet)2 EntityMyPet (de.Keyle.MyPet.compat.v1_16_R3.entity.EntityMyPet)2 EntityMyPet (de.Keyle.MyPet.compat.v1_9_R2.entity.EntityMyPet)2 EntityPlayer (net.minecraft.server.v1_12_R1.EntityPlayer)2