Search in sources :

Example 6 with TropicalFish

use of org.bukkit.entity.TropicalFish in project Citizens2 by CitizensDev.

the class TropicalFishTrait method run.

@Override
public void run() {
    if (npc.isSpawned() && npc.getEntity() instanceof TropicalFish) {
        TropicalFish fish = (TropicalFish) npc.getEntity();
        fish.setBodyColor(bodyColor);
        fish.setPatternColor(patternColor);
        fish.setPattern(pattern);
    }
}
Also used : TropicalFish(org.bukkit.entity.TropicalFish)

Example 7 with TropicalFish

use of org.bukkit.entity.TropicalFish in project RoseStacker by Rosewood-Development.

the class TropicalFishStackSettings method canStackWithInternal.

@Override
protected EntityStackComparisonResult canStackWithInternal(StackedEntity stack1, StackedEntity stack2) {
    TropicalFish tropicalFish1 = (TropicalFish) stack1.getEntity();
    TropicalFish tropicalFish2 = (TropicalFish) stack2.getEntity();
    if (this.dontStackIfDifferentBodyColor && (tropicalFish1.getBodyColor() != tropicalFish2.getBodyColor()))
        return EntityStackComparisonResult.DIFFERENT_BODY_COLORS;
    if (this.dontStackIfDifferentPattern && tropicalFish1.getPattern() != tropicalFish2.getPattern())
        return EntityStackComparisonResult.DIFFERENT_PATTERNS;
    if (this.dontStackIfDifferentPatternColor && tropicalFish1.getPatternColor() != tropicalFish2.getPatternColor())
        return EntityStackComparisonResult.DIFFERENT_PATTERN_COLORS;
    return EntityStackComparisonResult.CAN_STACK;
}
Also used : TropicalFish(org.bukkit.entity.TropicalFish)

Example 8 with TropicalFish

use of org.bukkit.entity.TropicalFish in project CoreProtect by PlayPro.

the class EntityDeathListener method logEntityDeath.

protected static void logEntityDeath(LivingEntity entity, String e) {
    if (!Config.getConfig(entity.getWorld()).ENTITY_KILLS) {
        return;
    }
    EntityDamageEvent damage = entity.getLastDamageCause();
    if (damage == null) {
        return;
    }
    boolean isCommand = (damage.getCause() == DamageCause.VOID && entity.getLocation().getBlockY() >= BukkitAdapter.ADAPTER.getMinHeight(entity.getWorld()));
    if (e == null) {
        e = isCommand ? "#command" : "";
    }
    boolean skip = true;
    if (!Config.getConfig(entity.getWorld()).SKIP_GENERIC_DATA || (!(entity instanceof Zombie) && !(entity instanceof Skeleton))) {
        skip = false;
    }
    if (damage instanceof EntityDamageByEntityEvent) {
        EntityDamageByEntityEvent attack = (EntityDamageByEntityEvent) damage;
        Entity attacker = attack.getDamager();
        if (attacker instanceof Player) {
            Player player = (Player) attacker;
            e = player.getName();
        } else if (attacker instanceof AbstractArrow) {
            AbstractArrow arrow = (AbstractArrow) attacker;
            ProjectileSource shooter = arrow.getShooter();
            if (shooter instanceof Player) {
                Player player = (Player) shooter;
                e = player.getName();
            } else if (shooter instanceof LivingEntity) {
                EntityType entityType = ((LivingEntity) shooter).getType();
                if (entityType != null) {
                    // Check for MyPet plugin
                    String name = entityType.name().toLowerCase(Locale.ROOT);
                    e = "#" + name;
                }
            }
        } else if (attacker instanceof ThrownPotion) {
            ThrownPotion potion = (ThrownPotion) attacker;
            ProjectileSource shooter = potion.getShooter();
            if (shooter instanceof Player) {
                Player player = (Player) shooter;
                e = player.getName();
            } else if (shooter instanceof LivingEntity) {
                EntityType entityType = ((LivingEntity) shooter).getType();
                if (entityType != null) {
                    // Check for MyPet plugin
                    String name = entityType.name().toLowerCase(Locale.ROOT);
                    e = "#" + name;
                }
            }
        } else if (attacker.getType().name() != null) {
            e = "#" + attacker.getType().name().toLowerCase(Locale.ROOT);
        }
    } else {
        EntityDamageEvent.DamageCause cause = damage.getCause();
        if (cause.equals(EntityDamageEvent.DamageCause.FIRE)) {
            e = "#fire";
        } else if (cause.equals(EntityDamageEvent.DamageCause.FIRE_TICK)) {
            if (!skip) {
                e = "#fire";
            }
        } else if (cause.equals(EntityDamageEvent.DamageCause.LAVA)) {
            e = "#lava";
        } else if (cause.equals(EntityDamageEvent.DamageCause.BLOCK_EXPLOSION)) {
            e = "#explosion";
        } else if (cause.equals(EntityDamageEvent.DamageCause.MAGIC)) {
            e = "#magic";
        }
    }
    if (entity instanceof ArmorStand) {
        Location entityLocation = entity.getLocation();
        if (!Config.getConfig(entityLocation.getWorld()).ITEM_TRANSACTIONS) {
            entityLocation.setY(entityLocation.getY() + 0.99);
            Block block = entityLocation.getBlock();
            Queue.queueBlockBreak(e, block.getState(), Material.ARMOR_STAND, null, (int) entityLocation.getYaw());
        }
        /*
            else if (isCommand) {
                entityLocation.setY(entityLocation.getY() + 0.99);
                Block block = entityLocation.getBlock();
                Database.containerBreakCheck(e, Material.ARMOR_STAND, entity, null, block.getLocation());
                Queue.queueBlockBreak(e, block.getState(), Material.ARMOR_STAND, null, (int) entityLocation.getYaw());
            }
            */
        return;
    }
    EntityType entity_type = entity.getType();
    if (e.length() == 0) {
        // assume killed self
        if (!skip) {
            if (!(entity instanceof Player) && entity_type.name() != null) {
                // Player player = (Player)entity;
                // e = player.getName();
                e = "#" + entity_type.name().toLowerCase(Locale.ROOT);
            } else if (entity instanceof Player) {
                e = entity.getName();
            }
        }
    }
    if (e.startsWith("#wither")) {
        e = "#wither";
    }
    if (e.startsWith("#enderdragon")) {
        e = "#enderdragon";
    }
    if (e.startsWith("#primedtnt") || e.startsWith("#tnt")) {
        e = "#tnt";
    }
    if (e.startsWith("#lightning")) {
        e = "#lightning";
    }
    if (e.length() > 0) {
        List<Object> data = new ArrayList<>();
        List<Object> age = new ArrayList<>();
        List<Object> tame = new ArrayList<>();
        List<Object> attributes = new ArrayList<>();
        List<Object> details = new ArrayList<>();
        List<Object> info = new ArrayList<>();
        EntityType type = entity_type;
        // Basic LivingEntity attributes
        details.add(entity.getRemoveWhenFarAway());
        details.add(entity.getCanPickupItems());
        if (entity instanceof Ageable) {
            Ageable ageable = (Ageable) entity;
            age.add(ageable.getAge());
            age.add(ageable.getAgeLock());
            age.add(ageable.isAdult());
            age.add(ageable.canBreed());
            age.add(null);
        }
        if (entity instanceof Tameable) {
            Tameable tameable = (Tameable) entity;
            tame.add(tameable.isTamed());
            if (tameable.isTamed()) {
                if (tameable.getOwner() != null) {
                    tame.add(tameable.getOwner().getName());
                }
            }
        }
        if (entity instanceof Attributable) {
            Attributable attributable = entity;
            for (Attribute attribute : Attribute.values()) {
                AttributeInstance attributeInstance = attributable.getAttribute(attribute);
                if (attributeInstance != null) {
                    List<Object> attributeData = new ArrayList<>();
                    List<Object> attributeModifiers = new ArrayList<>();
                    attributeData.add(attributeInstance.getAttribute());
                    attributeData.add(attributeInstance.getBaseValue());
                    for (AttributeModifier modifier : attributeInstance.getModifiers()) {
                        attributeModifiers.add(modifier.serialize());
                    }
                    attributeData.add(attributeModifiers);
                    attributes.add(attributeData);
                }
            }
        }
        if (entity instanceof Creeper) {
            Creeper creeper = (Creeper) entity;
            info.add(creeper.isPowered());
        } else if (entity instanceof Enderman) {
            Enderman enderman = (Enderman) entity;
            info.add(null);
            try {
                info.add(enderman.getCarriedBlock().getAsString());
            } catch (Exception endermanException) {
            }
        } else if (entity instanceof IronGolem) {
            IronGolem irongolem = (IronGolem) entity;
            info.add(irongolem.isPlayerCreated());
        } else if (entity instanceof Cat) {
            Cat cat = (Cat) entity;
            info.add(cat.getCatType());
            info.add(cat.getCollarColor());
        } else if (entity instanceof Fox) {
            Fox fox = (Fox) entity;
            info.add(fox.getFoxType());
            info.add(fox.isSitting());
        } else if (entity instanceof Panda) {
            Panda panda = (Panda) entity;
            info.add(panda.getMainGene());
            info.add(panda.getHiddenGene());
        } else if (entity instanceof Pig) {
            Pig pig = (Pig) entity;
            info.add(pig.hasSaddle());
        } else if (entity instanceof Sheep) {
            Sheep sheep = (Sheep) entity;
            info.add(sheep.isSheared());
            info.add(sheep.getColor());
        } else if (entity instanceof MushroomCow) {
            MushroomCow mushroomCow = (MushroomCow) entity;
            info.add(mushroomCow.getVariant());
        } else if (entity instanceof Skeleton) {
            info.add(null);
        } else if (entity instanceof Slime) {
            Slime slime = (Slime) entity;
            info.add(slime.getSize());
        } else if (entity instanceof Parrot) {
            Parrot parrot = (Parrot) entity;
            info.add(parrot.getVariant());
        } else if (entity instanceof TropicalFish) {
            TropicalFish tropicalFish = (TropicalFish) entity;
            info.add(tropicalFish.getBodyColor());
            info.add(tropicalFish.getPattern());
            info.add(tropicalFish.getPatternColor());
        } else if (entity instanceof Phantom) {
            Phantom phantom = (Phantom) entity;
            info.add(phantom.getSize());
        } else if (entity instanceof AbstractVillager) {
            AbstractVillager abstractVillager = (AbstractVillager) entity;
            List<Object> recipes = new ArrayList<>();
            for (MerchantRecipe merchantRecipe : abstractVillager.getRecipes()) {
                List<Object> recipe = new ArrayList<>();
                List<Object> ingredients = new ArrayList<>();
                List<Object> itemMap = new ArrayList<>();
                ItemStack item = merchantRecipe.getResult().clone();
                List<List<Map<String, Object>>> metadata = ItemMetaHandler.seralize(item, item.getType(), null, 0);
                item.setItemMeta(null);
                itemMap.add(item.serialize());
                itemMap.add(metadata);
                recipe.add(itemMap);
                recipe.add(merchantRecipe.getUses());
                recipe.add(merchantRecipe.getMaxUses());
                recipe.add(merchantRecipe.hasExperienceReward());
                for (ItemStack ingredient : merchantRecipe.getIngredients()) {
                    itemMap = new ArrayList<>();
                    item = ingredient.clone();
                    metadata = ItemMetaHandler.seralize(item, item.getType(), null, 0);
                    item.setItemMeta(null);
                    itemMap.add(item.serialize());
                    itemMap.add(metadata);
                    ingredients.add(itemMap);
                }
                recipe.add(ingredients);
                recipe.add(merchantRecipe.getVillagerExperience());
                recipe.add(merchantRecipe.getPriceMultiplier());
                recipes.add(recipe);
            }
            if (abstractVillager instanceof Villager) {
                Villager villager = (Villager) abstractVillager;
                info.add(villager.getProfession());
                info.add(villager.getVillagerType());
                info.add(recipes);
                info.add(villager.getVillagerLevel());
                info.add(villager.getVillagerExperience());
            } else {
                info.add(null);
                info.add(null);
                info.add(recipes);
            }
        } else if (entity instanceof Raider) {
            Raider raider = (Raider) entity;
            info.add(raider.isPatrolLeader());
            if (entity instanceof Spellcaster) {
                Spellcaster spellcaster = (Spellcaster) entity;
                info.add(spellcaster.getSpell());
            }
        } else if (entity instanceof Wolf) {
            Wolf wolf = (Wolf) entity;
            info.add(wolf.isSitting());
            info.add(wolf.getCollarColor());
        } else if (entity instanceof ZombieVillager) {
            ZombieVillager zombieVillager = (ZombieVillager) entity;
            info.add(zombieVillager.isBaby());
            info.add(zombieVillager.getVillagerProfession());
        } else if (entity instanceof Zombie) {
            Zombie zombie = (Zombie) entity;
            info.add(zombie.isBaby());
            info.add(null);
            info.add(null);
        } else if (entity instanceof AbstractHorse) {
            AbstractHorse abstractHorse = (AbstractHorse) entity;
            info.add(null);
            info.add(null);
            info.add(abstractHorse.getDomestication());
            info.add(abstractHorse.getJumpStrength());
            info.add(abstractHorse.getMaxDomestication());
            info.add(null);
            info.add(null);
            if (entity instanceof Horse) {
                Horse horse = (Horse) entity;
                info.add(null);
                ItemStack saddle = horse.getInventory().getSaddle();
                if (saddle != null) {
                    info.add(saddle.serialize());
                } else {
                    info.add(null);
                }
                info.add(horse.getColor());
                info.add(horse.getStyle());
                ItemStack horseArmor = horse.getInventory().getArmor();
                if (horseArmor != null) {
                    ItemStack armor = horseArmor.clone();
                    ItemMeta itemMeta = armor.getItemMeta();
                    Color color = null;
                    if (itemMeta instanceof LeatherArmorMeta) {
                        LeatherArmorMeta meta = (LeatherArmorMeta) itemMeta;
                        color = meta.getColor();
                        meta.setColor(null);
                        armor.setItemMeta(meta);
                    }
                    info.add(armor.serialize());
                    if (color != null) {
                        info.add(color.serialize());
                    } else {
                        info.add(null);
                    }
                } else {
                    info.add(null);
                    info.add(null);
                }
            } else if (entity instanceof ChestedHorse) {
                ChestedHorse chestedHorse = (ChestedHorse) entity;
                info.add(chestedHorse.isCarryingChest());
                if (entity instanceof Llama) {
                    Llama llama = (Llama) entity;
                    ItemStack decor = llama.getInventory().getDecor();
                    if (decor != null) {
                        info.add(decor.serialize());
                    } else {
                        info.add(null);
                    }
                    info.add(llama.getColor());
                }
            }
        } else {
            BukkitAdapter.ADAPTER.getEntityMeta(entity, info);
        }
        data.add(age);
        data.add(tame);
        data.add(info);
        data.add(entity.isCustomNameVisible());
        data.add(entity.getCustomName());
        data.add(attributes);
        data.add(details);
        if (!(entity instanceof Player)) {
            Queue.queueEntityKill(e, entity.getLocation(), data, type);
        } else {
            Queue.queuePlayerKill(e, entity.getLocation(), entity.getName());
        }
    }
}
Also used : Entity(org.bukkit.entity.Entity) LivingEntity(org.bukkit.entity.LivingEntity) AbstractHorse(org.bukkit.entity.AbstractHorse) ArrayList(java.util.ArrayList) AbstractHorse(org.bukkit.entity.AbstractHorse) ChestedHorse(org.bukkit.entity.ChestedHorse) Horse(org.bukkit.entity.Horse) Phantom(org.bukkit.entity.Phantom) ZombieVillager(org.bukkit.entity.ZombieVillager) Villager(org.bukkit.entity.Villager) AbstractVillager(org.bukkit.entity.AbstractVillager) ThrownPotion(org.bukkit.entity.ThrownPotion) List(java.util.List) ArrayList(java.util.ArrayList) AbstractVillager(org.bukkit.entity.AbstractVillager) Player(org.bukkit.entity.Player) MushroomCow(org.bukkit.entity.MushroomCow) Raider(org.bukkit.entity.Raider) Zombie(org.bukkit.entity.Zombie) Parrot(org.bukkit.entity.Parrot) Color(org.bukkit.Color) Fox(org.bukkit.entity.Fox) Panda(org.bukkit.entity.Panda) EntityType(org.bukkit.entity.EntityType) EntityDamageByEntityEvent(org.bukkit.event.entity.EntityDamageByEntityEvent) Enderman(org.bukkit.entity.Enderman) ChestedHorse(org.bukkit.entity.ChestedHorse) Cat(org.bukkit.entity.Cat) LeatherArmorMeta(org.bukkit.inventory.meta.LeatherArmorMeta) Block(org.bukkit.block.Block) ZombieVillager(org.bukkit.entity.ZombieVillager) ItemStack(org.bukkit.inventory.ItemStack) AbstractArrow(org.bukkit.entity.AbstractArrow) Attribute(org.bukkit.attribute.Attribute) Creeper(org.bukkit.entity.Creeper) IronGolem(org.bukkit.entity.IronGolem) Ageable(org.bukkit.entity.Ageable) LivingEntity(org.bukkit.entity.LivingEntity) Attributable(org.bukkit.attribute.Attributable) ArmorStand(org.bukkit.entity.ArmorStand) TropicalFish(org.bukkit.entity.TropicalFish) AttributeInstance(org.bukkit.attribute.AttributeInstance) Spellcaster(org.bukkit.entity.Spellcaster) DamageCause(org.bukkit.event.entity.EntityDamageEvent.DamageCause) Skeleton(org.bukkit.entity.Skeleton) ProjectileSource(org.bukkit.projectiles.ProjectileSource) Wolf(org.bukkit.entity.Wolf) ItemMeta(org.bukkit.inventory.meta.ItemMeta) EntityDamageEvent(org.bukkit.event.entity.EntityDamageEvent) MerchantRecipe(org.bukkit.inventory.MerchantRecipe) Tameable(org.bukkit.entity.Tameable) AttributeModifier(org.bukkit.attribute.AttributeModifier) Slime(org.bukkit.entity.Slime) Pig(org.bukkit.entity.Pig) Llama(org.bukkit.entity.Llama) Sheep(org.bukkit.entity.Sheep) Location(org.bukkit.Location)

Aggregations

TropicalFish (org.bukkit.entity.TropicalFish)8 ItemStack (org.bukkit.inventory.ItemStack)4 PlayerInteractEntityEvent (org.bukkit.event.player.PlayerInteractEntityEvent)3 PlayerInventory (org.bukkit.inventory.PlayerInventory)3 Test (org.junit.Test)3 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)3 ArrayList (java.util.ArrayList)2 List (java.util.List)2 DyeColor (org.bukkit.DyeColor)2 Location (org.bukkit.Location)2 Attributable (org.bukkit.attribute.Attributable)2 Attribute (org.bukkit.attribute.Attribute)2 AttributeInstance (org.bukkit.attribute.AttributeInstance)2 AttributeModifier (org.bukkit.attribute.AttributeModifier)2 AbstractHorse (org.bukkit.entity.AbstractHorse)2 AbstractVillager (org.bukkit.entity.AbstractVillager)2 Ageable (org.bukkit.entity.Ageable)2 Cat (org.bukkit.entity.Cat)2 ChestedHorse (org.bukkit.entity.ChestedHorse)2 Creeper (org.bukkit.entity.Creeper)2