Search in sources :

Example 1 with EntityLlama

use of net.minecraft.entity.passive.EntityLlama in project CumServerPro by MCUmbrella.

the class CraftWorld method createEntity.

@SuppressWarnings("unchecked")
public net.minecraft.entity.Entity createEntity(Location location, Class<? extends Entity> clazz) throws IllegalArgumentException {
    if (location == null || clazz == null) {
        throw new IllegalArgumentException("Location or entity class cannot be null");
    }
    net.minecraft.entity.Entity entity = null;
    double x = location.getX();
    double y = location.getY();
    double z = location.getZ();
    float pitch = location.getPitch();
    float yaw = location.getYaw();
    // order is important for some of these
    if (Boat.class.isAssignableFrom(clazz)) {
        entity = new EntityBoat(world, x, y, z);
        entity.setLocationAndAngles(x, y, z, yaw, pitch);
    } else if (FallingBlock.class.isAssignableFrom(clazz)) {
        entity = new EntityFallingBlock(world, x, y, z, world.getBlockState(new BlockPos(x, y, z)));
    } else if (Projectile.class.isAssignableFrom(clazz)) {
        if (Snowball.class.isAssignableFrom(clazz)) {
            entity = new EntitySnowball(world, x, y, z);
        } else if (Egg.class.isAssignableFrom(clazz)) {
            entity = new EntityEgg(world, x, y, z);
        } else if (Arrow.class.isAssignableFrom(clazz)) {
            if (TippedArrow.class.isAssignableFrom(clazz)) {
                entity = new EntityTippedArrow(world);
                ((EntityTippedArrow) entity).setType(CraftPotionUtil.fromBukkit(new PotionData(PotionType.WATER, false, false)));
            } else if (SpectralArrow.class.isAssignableFrom(clazz)) {
                entity = new EntitySpectralArrow(world);
            } else {
                entity = new EntityTippedArrow(world);
            }
            entity.setLocationAndAngles(x, y, z, 0, 0);
        } else if (ThrownExpBottle.class.isAssignableFrom(clazz)) {
            entity = new EntityExpBottle(world);
            entity.setLocationAndAngles(x, y, z, 0, 0);
        } else if (EnderPearl.class.isAssignableFrom(clazz)) {
            entity = new EntityEnderPearl(world);
            entity.setLocationAndAngles(x, y, z, 0, 0);
        } else if (ThrownPotion.class.isAssignableFrom(clazz)) {
            if (LingeringPotion.class.isAssignableFrom(clazz)) {
                entity = new EntityPotion(world, x, y, z, CraftItemStack.asNMSCopy(new ItemStack(org.bukkit.Material.LINGERING_POTION, 1)));
            } else {
                entity = new EntityPotion(world, x, y, z, CraftItemStack.asNMSCopy(new ItemStack(org.bukkit.Material.SPLASH_POTION, 1)));
            }
        } else if (Fireball.class.isAssignableFrom(clazz)) {
            if (SmallFireball.class.isAssignableFrom(clazz)) {
                entity = new EntitySmallFireball(world);
            } else if (WitherSkull.class.isAssignableFrom(clazz)) {
                entity = new EntityWitherSkull(world);
            } else if (DragonFireball.class.isAssignableFrom(clazz)) {
                entity = new EntityDragonFireball(world);
            } else {
                entity = new EntityLargeFireball(world);
            }
            entity.setLocationAndAngles(x, y, z, yaw, pitch);
            Vector direction = location.getDirection().multiply(10);
            ((EntityFireball) entity).setDirection(direction.getX(), direction.getY(), direction.getZ());
        } else if (ShulkerBullet.class.isAssignableFrom(clazz)) {
            entity = new EntityShulkerBullet(world);
            entity.setLocationAndAngles(x, y, z, yaw, pitch);
        } else if (LlamaSpit.class.isAssignableFrom(clazz)) {
            entity = new EntityLlamaSpit(world);
            entity.setLocationAndAngles(x, y, z, yaw, pitch);
        }
    } else if (Minecart.class.isAssignableFrom(clazz)) {
        if (PoweredMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartFurnace(world, x, y, z);
        } else if (StorageMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartChest(world, x, y, z);
        } else if (ExplosiveMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartTNT(world, x, y, z);
        } else if (HopperMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartHopper(world, x, y, z);
        } else if (SpawnerMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartMobSpawner(world, x, y, z);
        } else if (CommandMinecart.class.isAssignableFrom(clazz)) {
            entity = new EntityMinecartCommandBlock(world, x, y, z);
        } else {
            // Default to rideable minecart for pre-rideable compatibility
            entity = new EntityMinecartEmpty(world, x, y, z);
        }
    } else if (EnderSignal.class.isAssignableFrom(clazz)) {
        entity = new EntityEnderEye(world, x, y, z);
    } else if (EnderCrystal.class.isAssignableFrom(clazz)) {
        entity = new EntityEnderCrystal(world);
        entity.setLocationAndAngles(x, y, z, 0, 0);
    } else if (LivingEntity.class.isAssignableFrom(clazz)) {
        if (Chicken.class.isAssignableFrom(clazz)) {
            entity = new EntityChicken(world);
        } else if (Cow.class.isAssignableFrom(clazz)) {
            if (MushroomCow.class.isAssignableFrom(clazz)) {
                entity = new EntityMooshroom(world);
            } else {
                entity = new EntityCow(world);
            }
        } else if (Golem.class.isAssignableFrom(clazz)) {
            if (Snowman.class.isAssignableFrom(clazz)) {
                entity = new EntitySnowman(world);
            } else if (IronGolem.class.isAssignableFrom(clazz)) {
                entity = new EntityIronGolem(world);
            } else if (Shulker.class.isAssignableFrom(clazz)) {
                entity = new EntityShulker(world);
            }
        } else if (Creeper.class.isAssignableFrom(clazz)) {
            entity = new EntityCreeper(world);
        } else if (Ghast.class.isAssignableFrom(clazz)) {
            entity = new EntityGhast(world);
        } else if (Pig.class.isAssignableFrom(clazz)) {
            entity = new EntityPig(world);
        } else if (Player.class.isAssignableFrom(clazz)) {
        // need a net server handler for this one
        } else if (Sheep.class.isAssignableFrom(clazz)) {
            entity = new EntitySheep(world);
        } else if (AbstractHorse.class.isAssignableFrom(clazz)) {
            if (ChestedHorse.class.isAssignableFrom(clazz)) {
                if (Donkey.class.isAssignableFrom(clazz)) {
                    entity = new EntityDonkey(world);
                } else if (Mule.class.isAssignableFrom(clazz)) {
                    entity = new EntityMule(world);
                } else if (Llama.class.isAssignableFrom(clazz)) {
                    entity = new EntityLlama(world);
                }
            } else if (SkeletonHorse.class.isAssignableFrom(clazz)) {
                entity = new EntitySkeletonHorse(world);
            } else if (ZombieHorse.class.isAssignableFrom(clazz)) {
                entity = new EntityZombieHorse(world);
            } else {
                entity = new EntityHorse(world);
            }
        } else if (Skeleton.class.isAssignableFrom(clazz)) {
            if (Stray.class.isAssignableFrom(clazz)) {
                entity = new EntityStray(world);
            } else if (WitherSkeleton.class.isAssignableFrom(clazz)) {
                entity = new EntityWitherSkeleton(world);
            } else {
                entity = new EntitySkeleton(world);
            }
        } else if (Slime.class.isAssignableFrom(clazz)) {
            if (MagmaCube.class.isAssignableFrom(clazz)) {
                entity = new EntityMagmaCube(world);
            } else {
                entity = new EntitySlime(world);
            }
        } else if (Spider.class.isAssignableFrom(clazz)) {
            if (CaveSpider.class.isAssignableFrom(clazz)) {
                entity = new EntityCaveSpider(world);
            } else {
                entity = new EntitySpider(world);
            }
        } else if (Squid.class.isAssignableFrom(clazz)) {
            entity = new EntitySquid(world);
        } else if (Tameable.class.isAssignableFrom(clazz)) {
            if (Wolf.class.isAssignableFrom(clazz)) {
                entity = new EntityWolf(world);
            } else if (Ocelot.class.isAssignableFrom(clazz)) {
                entity = new EntityOcelot(world);
            } else if (Parrot.class.isAssignableFrom(clazz)) {
                entity = new EntityParrot(world);
            }
        } else if (PigZombie.class.isAssignableFrom(clazz)) {
            entity = new EntityPigZombie(world);
        } else if (Zombie.class.isAssignableFrom(clazz)) {
            if (Husk.class.isAssignableFrom(clazz)) {
                entity = new EntityHusk(world);
            } else if (ZombieVillager.class.isAssignableFrom(clazz)) {
                entity = new EntityZombieVillager(world);
            } else {
                entity = new EntityZombie(world);
            }
        } else if (Giant.class.isAssignableFrom(clazz)) {
            entity = new EntityGiantZombie(world);
        } else if (Silverfish.class.isAssignableFrom(clazz)) {
            entity = new EntitySilverfish(world);
        } else if (Enderman.class.isAssignableFrom(clazz)) {
            entity = new EntityEnderman(world);
        } else if (Blaze.class.isAssignableFrom(clazz)) {
            entity = new EntityBlaze(world);
        } else if (Villager.class.isAssignableFrom(clazz)) {
            entity = new EntityVillager(world);
        } else if (Witch.class.isAssignableFrom(clazz)) {
            entity = new EntityWitch(world);
        } else if (Wither.class.isAssignableFrom(clazz)) {
            entity = new EntityWither(world);
        } else if (ComplexLivingEntity.class.isAssignableFrom(clazz)) {
            if (EnderDragon.class.isAssignableFrom(clazz)) {
                entity = new EntityDragon(world);
            }
        } else if (Ambient.class.isAssignableFrom(clazz)) {
            if (Bat.class.isAssignableFrom(clazz)) {
                entity = new EntityBat(world);
            }
        } else if (Rabbit.class.isAssignableFrom(clazz)) {
            entity = new EntityRabbit(world);
        } else if (Endermite.class.isAssignableFrom(clazz)) {
            entity = new EntityEndermite(world);
        } else if (Guardian.class.isAssignableFrom(clazz)) {
            if (ElderGuardian.class.isAssignableFrom(clazz)) {
                entity = new EntityElderGuardian(world);
            } else {
                entity = new EntityGuardian(world);
            }
        } else if (ArmorStand.class.isAssignableFrom(clazz)) {
            entity = new EntityArmorStand(world, x, y, z);
        } else if (PolarBear.class.isAssignableFrom(clazz)) {
            entity = new EntityPolarBear(world);
        } else if (Vex.class.isAssignableFrom(clazz)) {
            entity = new EntityVex(world);
        } else if (Illager.class.isAssignableFrom(clazz)) {
            if (Spellcaster.class.isAssignableFrom(clazz)) {
                if (Evoker.class.isAssignableFrom(clazz)) {
                    entity = new EntityEvoker(world);
                } else if (Illusioner.class.isAssignableFrom(clazz)) {
                    entity = new EntityIllusionIllager(world);
                }
            } else if (Vindicator.class.isAssignableFrom(clazz)) {
                entity = new EntityVindicator(world);
            }
        }
        if (entity != null) {
            entity.setPositionAndRotation(x, y, z, yaw, pitch);
            // SPIGOT-3587
            entity.setRotationYawHead(yaw);
        }
    } else if (Hanging.class.isAssignableFrom(clazz)) {
        Block block = getBlockAt(location);
        BlockFace face = BlockFace.SELF;
        // 1 full block, also painting smallest size.
        int width = 16;
        // 1 full block, also painting smallest size.
        int height = 16;
        if (ItemFrame.class.isAssignableFrom(clazz)) {
            width = 12;
            height = 12;
        } else if (LeashHitch.class.isAssignableFrom(clazz)) {
            width = 9;
            height = 9;
        }
        BlockFace[] faces = new BlockFace[] { BlockFace.EAST, BlockFace.NORTH, BlockFace.WEST, BlockFace.SOUTH };
        final BlockPos pos = new BlockPos((int) x, (int) y, (int) z);
        for (BlockFace dir : faces) {
            net.minecraft.block.Block nmsBlock = CraftMagicNumbers.getBlock(block.getRelative(dir));
            if (nmsBlock.getDefaultState().getMaterial().isSolid() || BlockRedstoneDiode.isDiode(nmsBlock.getDefaultState())) {
                boolean taken = false;
                AxisAlignedBB bb = EntityHanging.calculateBoundingBox(null, pos, CraftBlock.blockFaceToNotch(dir).getOpposite(), width, height);
                List<net.minecraft.entity.Entity> list = (List<net.minecraft.entity.Entity>) world.getEntitiesWithinAABBExcludingEntity(null, bb);
                for (Iterator<net.minecraft.entity.Entity> it = list.iterator(); !taken && it.hasNext(); ) {
                    net.minecraft.entity.Entity e = it.next();
                    if (e instanceof EntityHanging) {
                        // Hanging entities do not like hanging entities which intersect them.
                        taken = true;
                    }
                }
                if (!taken) {
                    face = dir;
                    break;
                }
            }
        }
        if (LeashHitch.class.isAssignableFrom(clazz)) {
            entity = new EntityLeashKnot(world, new BlockPos((int) x, (int) y, (int) z));
            entity.forceSpawn = true;
        } else {
            // No valid face found
            Preconditions.checkArgument(face != BlockFace.SELF, "Cannot spawn hanging entity for %s at %s (no free face)", clazz.getName(), location);
            EnumFacing dir = CraftBlock.blockFaceToNotch(face).getOpposite();
            if (Painting.class.isAssignableFrom(clazz)) {
                entity = new EntityPainting(world, new BlockPos((int) x, (int) y, (int) z), dir);
            } else if (ItemFrame.class.isAssignableFrom(clazz)) {
                entity = new EntityItemFrame(world, new BlockPos((int) x, (int) y, (int) z), dir);
            }
        }
        if (entity != null && !((EntityHanging) entity).onValidSurface()) {
            throw new IllegalArgumentException("Cannot spawn hanging entity for " + clazz.getName() + " at " + location);
        }
    } else if (TNTPrimed.class.isAssignableFrom(clazz)) {
        entity = new EntityTNTPrimed(world, x, y, z, null);
    } else if (ExperienceOrb.class.isAssignableFrom(clazz)) {
        entity = new EntityXPOrb(world, x, y, z, 0);
    } else if (Weather.class.isAssignableFrom(clazz)) {
        // not sure what this can do
        if (LightningStrike.class.isAssignableFrom(clazz)) {
            entity = new EntityLightningBolt(world, x, y, z, false);
        // what is this, I don't even
        }
    } else if (Firework.class.isAssignableFrom(clazz)) {
        entity = new EntityFireworkRocket(world, x, y, z, net.minecraft.item.ItemStack.EMPTY);
    } else if (AreaEffectCloud.class.isAssignableFrom(clazz)) {
        entity = new EntityAreaEffectCloud(world, x, y, z);
    } else if (EvokerFangs.class.isAssignableFrom(clazz)) {
        entity = new EntityEvokerFangs(world, x, y, z, (float) Math.toRadians(yaw), 0, null);
    }
    if (entity != null) {
        return entity;
    }
    throw new IllegalArgumentException("Cannot spawn an entity for " + clazz.getName());
}
Also used : EntityShulkerBullet(net.minecraft.entity.projectile.EntityShulkerBullet) EntityMooshroom(net.minecraft.entity.passive.EntityMooshroom) Entity(org.bukkit.entity.Entity) TileEntity(net.minecraft.tileentity.TileEntity) EntityCaveSpider(net.minecraft.entity.monster.EntityCaveSpider) BlockFace(org.bukkit.block.BlockFace) EntityParrot(net.minecraft.entity.passive.EntityParrot) EntityHorse(net.minecraft.entity.passive.EntityHorse) EntityVindicator(net.minecraft.entity.monster.EntityVindicator) EntityVillager(net.minecraft.entity.passive.EntityVillager) EntitySkeletonHorse(net.minecraft.entity.passive.EntitySkeletonHorse) EntityElderGuardian(net.minecraft.entity.monster.EntityElderGuardian) EntityGuardian(net.minecraft.entity.monster.EntityGuardian) EntityWither(net.minecraft.entity.boss.EntityWither) EntityGuardian(net.minecraft.entity.monster.EntityGuardian) Vector(org.bukkit.util.Vector) EntityFireball(net.minecraft.entity.projectile.EntityFireball) EntityDragon(net.minecraft.entity.boss.EntityDragon) EntityFallingBlock(net.minecraft.entity.item.EntityFallingBlock) EntityItemFrame(net.minecraft.entity.item.EntityItemFrame) EntityElderGuardian(net.minecraft.entity.monster.EntityElderGuardian) EntityMinecartTNT(net.minecraft.entity.item.EntityMinecartTNT) EntityElderGuardian(net.minecraft.entity.monster.EntityElderGuardian) EntityEvokerFangs(net.minecraft.entity.projectile.EntityEvokerFangs) EntityExpBottle(net.minecraft.entity.item.EntityExpBottle) EntityZombie(net.minecraft.entity.monster.EntityZombie) EntitySnowball(net.minecraft.entity.projectile.EntitySnowball) EntityCaveSpider(net.minecraft.entity.monster.EntityCaveSpider) EntityRabbit(net.minecraft.entity.passive.EntityRabbit) EntityMinecartCommandBlock(net.minecraft.entity.item.EntityMinecartCommandBlock) EntitySheep(net.minecraft.entity.passive.EntitySheep) ItemStack(org.bukkit.inventory.ItemStack) CraftItemStack(org.bukkit.craftbukkit.inventory.CraftItemStack) EntityMagmaCube(net.minecraft.entity.monster.EntityMagmaCube) EntityShulker(net.minecraft.entity.monster.EntityShulker) ExplosiveMinecart(org.bukkit.entity.minecart.ExplosiveMinecart) EntityLeashKnot(net.minecraft.entity.EntityLeashKnot) EntityTNTPrimed(net.minecraft.entity.item.EntityTNTPrimed) EnumFacing(net.minecraft.util.EnumFacing) EntityRabbit(net.minecraft.entity.passive.EntityRabbit) EntityOcelot(net.minecraft.entity.passive.EntityOcelot) EntityEnderPearl(net.minecraft.entity.item.EntityEnderPearl) EntityIronGolem(net.minecraft.entity.monster.EntityIronGolem) EntityShulkerBullet(net.minecraft.entity.projectile.EntityShulkerBullet) EntityLlama(net.minecraft.entity.passive.EntityLlama) EntityBlaze(net.minecraft.entity.monster.EntityBlaze) EntityIllusionIllager(net.minecraft.entity.monster.EntityIllusionIllager) EntityEgg(net.minecraft.entity.projectile.EntityEgg) PotionData(org.bukkit.potion.PotionData) EntityLlamaSpit(net.minecraft.entity.projectile.EntityLlamaSpit) EntityEvoker(net.minecraft.entity.monster.EntityEvoker) EntityPotion(net.minecraft.entity.projectile.EntityPotion) EntityPolarBear(net.minecraft.entity.monster.EntityPolarBear) EntityWitherSkeleton(net.minecraft.entity.monster.EntityWitherSkeleton) EntityWolf(net.minecraft.entity.passive.EntityWolf) EntityWitch(net.minecraft.entity.monster.EntityWitch) EntityBat(net.minecraft.entity.passive.EntityBat) EntityMule(net.minecraft.entity.passive.EntityMule) EntityHusk(net.minecraft.entity.monster.EntityHusk) EntityEnderCrystal(net.minecraft.entity.item.EntityEnderCrystal) EntityCow(net.minecraft.entity.passive.EntityCow) EntityEnderEye(net.minecraft.entity.item.EntityEnderEye) EntityMinecartHopper(net.minecraft.entity.item.EntityMinecartHopper) EntityPig(net.minecraft.entity.passive.EntityPig) EntitySilverfish(net.minecraft.entity.monster.EntitySilverfish) EntityFireworkRocket(net.minecraft.entity.item.EntityFireworkRocket) EntityBlaze(net.minecraft.entity.monster.EntityBlaze) EntityWitherSkull(net.minecraft.entity.projectile.EntityWitherSkull) EntityEvokerFangs(net.minecraft.entity.projectile.EntityEvokerFangs) org.bukkit.craftbukkit.entity(org.bukkit.craftbukkit.entity) org.bukkit.entity(org.bukkit.entity) EntityWitherSkull(net.minecraft.entity.projectile.EntityWitherSkull) EntityBoat(net.minecraft.entity.item.EntityBoat) StorageMinecart(org.bukkit.entity.minecart.StorageMinecart) ExplosiveMinecart(org.bukkit.entity.minecart.ExplosiveMinecart) PoweredMinecart(org.bukkit.entity.minecart.PoweredMinecart) HopperMinecart(org.bukkit.entity.minecart.HopperMinecart) CommandMinecart(org.bukkit.entity.minecart.CommandMinecart) SpawnerMinecart(org.bukkit.entity.minecart.SpawnerMinecart) EntitySpectralArrow(net.minecraft.entity.projectile.EntitySpectralArrow) EntityItemFrame(net.minecraft.entity.item.EntityItemFrame) EntityMinecartFurnace(net.minecraft.entity.item.EntityMinecartFurnace) EntityFallingBlock(net.minecraft.entity.item.EntityFallingBlock) EntityZombieVillager(net.minecraft.entity.monster.EntityZombieVillager) EntityHanging(net.minecraft.entity.EntityHanging) EntitySmallFireball(net.minecraft.entity.projectile.EntitySmallFireball) BlockPos(net.minecraft.util.math.BlockPos) ArrayList(java.util.ArrayList) List(java.util.List) EntityWolf(net.minecraft.entity.passive.EntityWolf) EntitySpider(net.minecraft.entity.monster.EntitySpider) EntityGiantZombie(net.minecraft.entity.monster.EntityGiantZombie) EntityZombie(net.minecraft.entity.monster.EntityZombie) EntityPigZombie(net.minecraft.entity.monster.EntityPigZombie) EntityParrot(net.minecraft.entity.passive.EntityParrot) EntitySlime(net.minecraft.entity.monster.EntitySlime) EntityArmorStand(net.minecraft.entity.item.EntityArmorStand) EntityEnderCrystal(net.minecraft.entity.item.EntityEnderCrystal) EntityEvoker(net.minecraft.entity.monster.EntityEvoker) EntityDonkey(net.minecraft.entity.passive.EntityDonkey) EntityMule(net.minecraft.entity.passive.EntityMule) EntityHusk(net.minecraft.entity.monster.EntityHusk) EntityChicken(net.minecraft.entity.passive.EntityChicken) EntityCreeper(net.minecraft.entity.monster.EntityCreeper) PoweredMinecart(org.bukkit.entity.minecart.PoweredMinecart) EntityIllusionIllager(net.minecraft.entity.monster.EntityIllusionIllager) EntityFallingBlock(net.minecraft.entity.item.EntityFallingBlock) EntityMinecartCommandBlock(net.minecraft.entity.item.EntityMinecartCommandBlock) Block(org.bukkit.block.Block) CraftBlock(org.bukkit.craftbukkit.block.CraftBlock) EntityMinecartEmpty(net.minecraft.entity.item.EntityMinecartEmpty) EntityEnderman(net.minecraft.entity.monster.EntityEnderman) AxisAlignedBB(net.minecraft.util.math.AxisAlignedBB) EntityStray(net.minecraft.entity.monster.EntityStray) EntityTippedArrow(net.minecraft.entity.projectile.EntityTippedArrow) EntityStray(net.minecraft.entity.monster.EntityStray) EntityMinecartChest(net.minecraft.entity.item.EntityMinecartChest) EntityLargeFireball(net.minecraft.entity.projectile.EntityLargeFireball) EntityCow(net.minecraft.entity.passive.EntityCow) EntityCreeper(net.minecraft.entity.monster.EntityCreeper) EntityPig(net.minecraft.entity.passive.EntityPig) EntitySkeleton(net.minecraft.entity.monster.EntitySkeleton) EntityAreaEffectCloud(net.minecraft.entity.EntityAreaEffectCloud) EntityGhast(net.minecraft.entity.monster.EntityGhast) EntitySilverfish(net.minecraft.entity.monster.EntitySilverfish) EntitySquid(net.minecraft.entity.passive.EntitySquid) EntityLightningBolt(net.minecraft.entity.effect.EntityLightningBolt) EntityDragonFireball(net.minecraft.entity.projectile.EntityDragonFireball) EntitySpectralArrow(net.minecraft.entity.projectile.EntitySpectralArrow) EntityMinecartMobSpawner(net.minecraft.entity.item.EntityMinecartMobSpawner) EntityPigZombie(net.minecraft.entity.monster.EntityPigZombie) Iterator(java.util.Iterator) EntitySkeleton(net.minecraft.entity.monster.EntitySkeleton) EntityWitherSkeleton(net.minecraft.entity.monster.EntityWitherSkeleton) EntitySkeletonHorse(net.minecraft.entity.passive.EntitySkeletonHorse) EntityWitch(net.minecraft.entity.monster.EntityWitch) EntityPolarBear(net.minecraft.entity.monster.EntityPolarBear) SpawnerMinecart(org.bukkit.entity.minecart.SpawnerMinecart) EntityEgg(net.minecraft.entity.projectile.EntityEgg) EntityGiantZombie(net.minecraft.entity.monster.EntityGiantZombie) EntityEndermite(net.minecraft.entity.monster.EntityEndermite) EntityVex(net.minecraft.entity.monster.EntityVex) EntityZombieHorse(net.minecraft.entity.passive.EntityZombieHorse) EntityPainting(net.minecraft.entity.item.EntityPainting) EntityPainting(net.minecraft.entity.item.EntityPainting) EntitySnowman(net.minecraft.entity.monster.EntitySnowman) EntityIronGolem(net.minecraft.entity.monster.EntityIronGolem) EntityHanging(net.minecraft.entity.EntityHanging) EntityCaveSpider(net.minecraft.entity.monster.EntityCaveSpider) EntitySpider(net.minecraft.entity.monster.EntitySpider) EntitySheep(net.minecraft.entity.passive.EntitySheep) EntityXPOrb(net.minecraft.entity.item.EntityXPOrb)

Example 2 with EntityLlama

use of net.minecraft.entity.passive.EntityLlama in project CumServerPro by MCUmbrella.

the class EntityAILlamaFollowCaravan method updateTask.

public void updateTask() {
    if (this.llama.inCaravan()) {
        EntityLlama entityllama = this.llama.getCaravanHead();
        double d0 = (double) this.llama.getDistance(entityllama);
        float f = 2.0F;
        Vec3d vec3d = (new Vec3d(entityllama.posX - this.llama.posX, entityllama.posY - this.llama.posY, entityllama.posZ - this.llama.posZ)).normalize().scale(Math.max(d0 - 2.0D, 0.0D));
        this.llama.getNavigator().tryMoveToXYZ(this.llama.posX + vec3d.x, this.llama.posY + vec3d.y, this.llama.posZ + vec3d.z, this.speedModifier);
    }
}
Also used : EntityLlama(net.minecraft.entity.passive.EntityLlama) Vec3d(net.minecraft.util.math.Vec3d)

Example 3 with EntityLlama

use of net.minecraft.entity.passive.EntityLlama in project Minecraft-SlientClient-Hack by YouNeverKnow00.

the class GuiScreenHorseInventory method drawGuiContainerBackgroundLayer.

/**
 * Draws the background layer of this container (behind the items).
 */
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
    GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
    this.mc.getTextureManager().bindTexture(HORSE_GUI_TEXTURES);
    int i = (this.width - this.xSize) / 2;
    int j = (this.height - this.ySize) / 2;
    this.drawTexturedModalRect(i, j, 0, 0, this.xSize, this.ySize);
    if (this.horseEntity instanceof AbstractChestHorse) {
        AbstractChestHorse abstractchesthorse = (AbstractChestHorse) this.horseEntity;
        if (abstractchesthorse.func_190695_dh()) {
            this.drawTexturedModalRect(i + 79, j + 17, 0, this.ySize, abstractchesthorse.func_190696_dl() * 18, 54);
        }
    }
    if (this.horseEntity.func_190685_dA()) {
        this.drawTexturedModalRect(i + 7, j + 35 - 18, 18, this.ySize + 54, 18, 18);
    }
    if (this.horseEntity.func_190677_dK()) {
        if (this.horseEntity instanceof EntityLlama) {
            this.drawTexturedModalRect(i + 7, j + 35, 36, this.ySize + 54, 18, 18);
        } else {
            this.drawTexturedModalRect(i + 7, j + 35, 0, this.ySize + 54, 18, 18);
        }
    }
    GuiInventory.drawEntityOnScreen(i + 51, j + 60, 17, (float) (i + 51) - this.mousePosx, (float) (j + 75 - 50) - this.mousePosY, this.horseEntity);
}
Also used : AbstractChestHorse(net.minecraft.entity.passive.AbstractChestHorse) EntityLlama(net.minecraft.entity.passive.EntityLlama)

Example 4 with EntityLlama

use of net.minecraft.entity.passive.EntityLlama in project PhoBOSS-1.9.1-public by somesadkidontop.

the class EntityNotifier method onUpdate.

@Override
public void onUpdate() {
    if (this.Ghasts.getValue()) {
        for (Entity entity : EntityNotifier.mc.world.getLoadedEntityList()) {
            if (!(entity instanceof EntityGhast) || this.ghasts.contains(entity))
                continue;
            if (this.Chat.getValue()) {
                Command.sendMessage("Ghast Detected at: " + Math.round(entity.getPosition().getX()) + "x, " + Math.round(entity.getPosition().getY()) + "y, " + Math.round(entity.getPosition().getZ()) + "z.");
            }
            this.ghasts.add(entity);
            if (!this.Desktop.getValue())
                continue;
            this.icon.displayMessage("Phobos 1.9.1", "I found a ghast at: " + Math.round(entity.getPosition().getX()) + "x, " + Math.round(entity.getPosition().getY()) + "y, " + Math.round(entity.getPosition().getZ()) + "z.", TrayIcon.MessageType.INFO);
            if (!this.Sound.getValue())
                continue;
            EntityNotifier.mc.player.playSound(SoundEvents.BLOCK_ANVIL_DESTROY, 1.0f, 1.0f);
        }
    }
    if (this.Donkeys.getValue()) {
        for (Entity entity : EntityNotifier.mc.world.getLoadedEntityList()) {
            if (!(entity instanceof EntityDonkey) || this.donkeys.contains(entity))
                continue;
            if (this.Chat.getValue()) {
                Command.sendMessage("Donkey Detected at: " + Math.round(entity.getPosition().getX()) + "x, " + Math.round(entity.getPosition().getY()) + "y, " + Math.round(entity.getPosition().getZ()) + "z.");
            }
            this.donkeys.add(entity);
            if (!this.Desktop.getValue())
                continue;
            this.icon.displayMessage("Phobos 1.9.1", "I found a donkey at: " + Math.round(entity.getPosition().getX()) + "x, " + Math.round(entity.getPosition().getY()) + "y, " + Math.round(entity.getPosition().getZ()) + "z.", TrayIcon.MessageType.INFO);
            if (!this.Sound.getValue())
                continue;
            EntityNotifier.mc.player.playSound(SoundEvents.BLOCK_ANVIL_DESTROY, 1.0f, 1.0f);
        }
    }
    if (this.Mules.getValue()) {
        for (Entity entity : EntityNotifier.mc.world.getLoadedEntityList()) {
            if (!(entity instanceof EntityMule) || this.mules.contains(entity))
                continue;
            if (this.Chat.getValue()) {
                Command.sendMessage("Mule Detected at: " + Math.round(entity.getPosition().getX()) + "x, " + Math.round(entity.getPosition().getY()) + "y, " + Math.round(entity.getPosition().getZ()) + "z.");
            }
            this.mules.add(entity);
            if (!this.Desktop.getValue())
                continue;
            this.icon.displayMessage("Phobos 1.9.1", "I found a mule at: " + Math.round(entity.getPosition().getX()) + "x, " + Math.round(entity.getPosition().getY()) + "y, " + Math.round(entity.getPosition().getZ()) + "z.", TrayIcon.MessageType.INFO);
            if (!this.Sound.getValue())
                continue;
            EntityNotifier.mc.player.playSound(SoundEvents.BLOCK_ANVIL_DESTROY, 1.0f, 1.0f);
        }
    }
    if (this.Llamas.getValue()) {
        for (Entity entity : EntityNotifier.mc.world.getLoadedEntityList()) {
            if (!(entity instanceof EntityLlama) || this.llamas.contains(entity))
                continue;
            if (this.Chat.getValue()) {
                Command.sendMessage("Llama Detected at: " + Math.round(entity.getPosition().getX()) + "x, " + Math.round(entity.getPosition().getY()) + "y, " + Math.round(entity.getPosition().getZ()) + "z.");
            }
            this.llamas.add(entity);
            if (!this.Desktop.getValue())
                continue;
            this.icon.displayMessage("Phobos 1.9.1", "I found a llama at: " + Math.round(entity.getPosition().getX()) + "x, " + Math.round(entity.getPosition().getY()) + "y, " + Math.round(entity.getPosition().getZ()) + "z.", TrayIcon.MessageType.INFO);
            if (!this.Sound.getValue())
                continue;
            EntityNotifier.mc.player.playSound(SoundEvents.BLOCK_ANVIL_DESTROY, 1.0f, 1.0f);
        }
    }
}
Also used : Entity(net.minecraft.entity.Entity) EntityGhast(net.minecraft.entity.monster.EntityGhast) EntityDonkey(net.minecraft.entity.passive.EntityDonkey) EntityMule(net.minecraft.entity.passive.EntityMule) EntityLlama(net.minecraft.entity.passive.EntityLlama)

Example 5 with EntityLlama

use of net.minecraft.entity.passive.EntityLlama in project cosmos by momentumdevelopment.

the class EntitySpeedModule method onUpdate.

@Override
public void onUpdate() {
    // make sure we are riding an entity
    if (mc.player.isRiding() && mc.player.getRidingEntity() != null) {
        // keep yaw consistent
        mc.player.getRidingEntity().rotationYaw = mc.player.rotationYaw;
        // lololol
        if (mc.player.getRidingEntity() instanceof EntityLlama) {
            ((EntityLlama) mc.player.getRidingEntity()).rotationYawHead = mc.player.rotationYawHead;
        }
        // make sure the entity is not in a liquid
        if (mc.player.getRidingEntity().isInWater() || mc.player.getRidingEntity().isInLava()) {
            return;
        }
        // make sure the entity is not in a web
        if (((IEntity) mc.player.getRidingEntity()).getInWeb()) {
            return;
        }
        // make sure the entity can have speed applied
        if (mc.player.getRidingEntity().fallDistance > 2) {
            return;
        }
        // current speed
        double moveSpeed = speed.getValue();
        // the current movement input values of the user
        float forward = mc.player.movementInput.moveForward;
        float strafe = mc.player.movementInput.moveStrafe;
        float yaw = mc.player.rotationYaw;
        if (strict.getValue()) {
            // send remount packets
            if (!mc.gameSettings.keyBindSneak.isKeyDown()) {
                mc.player.connection.sendPacket(new CPacketUseEntity(mc.player.getRidingEntity(), EnumHand.MAIN_HAND));
            }
        }
        // if we're not inputting any movements, then we shouldn't be adding any motion
        if (!MotionUtil.isMoving()) {
            mc.player.getRidingEntity().motionX = 0;
            mc.player.getRidingEntity().motionZ = 0;
        } else // prevent entity from moving into unloaded chunks
        if (mc.world.getChunkFromChunkCoords((int) (mc.player.getRidingEntity().posX + mc.player.getRidingEntity().motionX) >> 4, (int) (mc.player.getRidingEntity().posZ + mc.player.getRidingEntity().motionX) >> 4) instanceof EmptyChunk) {
            mc.player.getRidingEntity().motionX = 0;
            mc.player.getRidingEntity().motionZ = 0;
        } else {
            // find the rotations and inputs based on our current movements
            if (strafe > 0) {
                yaw += forward > 0 ? -45 : 45;
            } else if (strafe < 0) {
                yaw += forward > 0 ? 45 : -45;
            }
            strafe = 0;
            if (forward > 0) {
                forward = 1;
            } else if (forward < 0) {
                forward = -1;
            }
            // our facing values, according to movement not rotations
            double cos = Math.cos(Math.toRadians(yaw + 90));
            double sin = Math.sin(Math.toRadians(yaw + 90));
            // update the movements
            mc.player.getRidingEntity().motionX = (forward * moveSpeed * cos) + (strafe * moveSpeed * sin);
            mc.player.getRidingEntity().motionZ = (forward * moveSpeed * sin) - (strafe * moveSpeed * cos);
            // if we're not inputting any movements, then we shouldn't be adding any motion
            if (!MotionUtil.isMoving()) {
                mc.player.getRidingEntity().motionX = 0;
                mc.player.getRidingEntity().motionZ = 0;
            }
        }
    }
}
Also used : EmptyChunk(net.minecraft.world.chunk.EmptyChunk) CPacketUseEntity(net.minecraft.network.play.client.CPacketUseEntity) IEntity(cope.cosmos.asm.mixins.accessor.IEntity) EntityLlama(net.minecraft.entity.passive.EntityLlama)

Aggregations

EntityLlama (net.minecraft.entity.passive.EntityLlama)10 EntityGhast (net.minecraft.entity.monster.EntityGhast)3 ArrayList (java.util.ArrayList)2 Iterator (java.util.Iterator)2 List (java.util.List)2 EntityAreaEffectCloud (net.minecraft.entity.EntityAreaEffectCloud)2 EntityHanging (net.minecraft.entity.EntityHanging)2 EntityLeashKnot (net.minecraft.entity.EntityLeashKnot)2 EntityDragon (net.minecraft.entity.boss.EntityDragon)2 EntityWither (net.minecraft.entity.boss.EntityWither)2 EntityLightningBolt (net.minecraft.entity.effect.EntityLightningBolt)2 EntityArmorStand (net.minecraft.entity.item.EntityArmorStand)2 EntityBoat (net.minecraft.entity.item.EntityBoat)2 EntityEnderCrystal (net.minecraft.entity.item.EntityEnderCrystal)2 EntityEnderEye (net.minecraft.entity.item.EntityEnderEye)2 EntityEnderPearl (net.minecraft.entity.item.EntityEnderPearl)2 EntityExpBottle (net.minecraft.entity.item.EntityExpBottle)2 EntityFallingBlock (net.minecraft.entity.item.EntityFallingBlock)2 EntityFireworkRocket (net.minecraft.entity.item.EntityFireworkRocket)2 EntityItemFrame (net.minecraft.entity.item.EntityItemFrame)2