Package org.bukkit.entity

Examples of org.bukkit.entity.Projectile


        v = v + (.5 * Math.pow(hangtime, 2));
        //Random rand = new Random(1234);
        v = v+ (CoreUtilities.getRandom().nextDouble() - .8)/2;
        victor = victor.multiply(v / 20.0);

        Projectile theHook = (Projectile) fishHook.getBukkitEntity();
        theHook.setShooter(npc.getBukkitEntity());
        theHook.setVelocity(victor);

        PlayerAnimation.ARM_SWING.play((Player) npc.getBukkitEntity());
    }
View Full Code Here


     */
    @EventHandler(
            ignoreCancelled = true, priority = EventPriority.LOWEST)
    public void onProjectileLaunch(final ProjectileLaunchEvent event) {
        // The shooter needs to be a player.
      final Projectile projectile = event.getEntity();
      final Player player = BridgeMisc.getShooterPlayer(projectile);
        if (player == null) {
          return;
        }

        // And the projectile must be one the following:
        EntityType type = event.getEntityType();
        switch (type) {
        case ENDER_PEARL:
            break;
        case ENDER_SIGNAL:
            break;
        case EGG:
            break;
        case SNOWBALL:
            break;
        case THROWN_EXP_BOTTLE:
            break;
        case SPLASH_POTION:
            break;
        default:
            return;
        }

        // Do the actual check...
        boolean cancel = false;
        if (speed.isEnabled(player)){
            final long now = System.currentTimeMillis();
            final Location loc = player.getLocation(useLoc);
            if (Combined.checkYawRate(player, loc.getYaw(), now, loc.getWorld().getName())){
              // Yawrate (checked extra).
              cancel = true;
            }
            if (speed.check(player)){
                // If the check was positive, cancel the event.
              cancel = true;
            }
            else if (Improbable.check(player, 0.6f, now, "blockplace.speed")){
                // Combined fighting speed.
              cancel = true;
            }
        }
       
        // Ender pearl glitch (ab-) use.
        if (!cancel && type == EntityType.ENDER_PEARL){
          if (!CombinedConfig.getConfig(player).enderPearlCheck){
            // Do nothing !
            // TODO: Might have further flags?
          }
          else if (!BlockProperties.isPassable(projectile.getLocation(useLoc))){
            // Launch into a block.
            // TODO: This might be a general check later.          
            cancel = true;
          }
          else{
              if (!BlockProperties.isPassable(player.getEyeLocation(), projectile.getLocation(useLoc))){
                // (Spare a useLoc2, for this is seldom rather.)
                // Something between player
                // TODO: This might be a general check later.
                cancel = true;
              }
              else{
                final Material mat = player.getLocation(useLoc).getBlock().getType();
                final long flags = BlockProperties.F_CLIMBABLE | BlockProperties.F_LIQUID | BlockProperties.F_IGN_PASSABLE;
                if (mat != null && mat != Material.AIR && (BlockProperties.getBlockFlags(mat) & flags) == 0 && !mcAccess.hasGravity(mat)){
                  // Still fails on piston traps etc.
                  if (!BlockProperties.isPassable(player.getLocation(), projectile.getLocation()) && !BlockProperties.isOnGroundOrResetCond(player, player.getLocation(), MovingConfig.getConfig(player).yOnGround)){
                    cancel = true;
                  }
                }
              }
          }
View Full Code Here

        projectile.setMetadata(mcMMO.arrowDistanceKey, new FixedMetadataValue(plugin, projectile.getLocation()));
    }

    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
    public void onProjectileLaunch(ProjectileLaunchEvent event) {
        Projectile projectile = event.getEntity();

        if (!(projectile instanceof Arrow) || projectile.hasMetadata(mcMMO.bowForceKey)) {
            return;
        }

        projectile.setMetadata(mcMMO.bowForceKey, new FixedMetadataValue(plugin, 1.0));
        projectile.setMetadata(mcMMO.arrowDistanceKey, new FixedMetadataValue(plugin, projectile.getLocation()));
    }
View Full Code Here

            final Entity damager = ev.getDamager();
            Player player = null;
            if (damager instanceof Player) {
                player = (Player) damager;
            } else if (damager instanceof Projectile) {
                final Projectile projectile = (Projectile) damager;
                if ((projectile.getShooter() != null) && (projectile.getShooter() instanceof Player)) {
                    player = (Player) projectile.getShooter();
                }
            }
            if ((player != null) && this.plugin.getManager().isVanished(player) && VanishPerms.blockOutgoingDamage(player)) {
                event.setCancelled(true);
            }
View Full Code Here

    public void onEntityDeath(EntityDeathEvent ev) {
        if (!(ev.getEntity().getLastDamageCause() instanceof EntityDamageByEntityEvent))
            return;
        EntityDamageByEntityEvent event = (EntityDamageByEntityEvent) ev.getEntity().getLastDamageCause();
        if (event.getDamager() instanceof Projectile) {
            Projectile shot = ((Projectile) event.getDamager());
            if (shot.getShooter() instanceof Player) {
                event = new EntityDamageByEntityEvent(shot.getShooter(), event.getEntity(), event.getCause(),
                        event.getDamage());
            }
        }
        if (event.getDamager() instanceof Player && event.getEntity() instanceof LivingEntity) {
            QuestManager.incrementQuest((Player) event.getDamager(), ev);
View Full Code Here

        List<Entity> worldEntities = world.getEntities();
        List<LivingEntity> livingEntities = new ArrayList<LivingEntity>(worldEntities.size());
        List<Projectile> projectiles = new ArrayList<Projectile>(worldEntities.size());
        for (final Entity e : worldEntities) {
            if (e instanceof Projectile) {
                final Projectile p = (Projectile) e;
                if (p.getShooter() != null) {
                    projectiles.add((Projectile) e);
                }
            } else if (e instanceof LivingEntity) {
                livingEntities.add((LivingEntity) e);
            }
        }
        for (final LivingEntity e : livingEntities) {
            if (killDecision(e, thingsToKill, negateAnimals, negateMonsters, specifiedAnimals, specifiedMonsters)) {
                final Iterator<Projectile> it = projectiles.iterator();
                while (it.hasNext()) {
                    final Projectile p = it.next();
                    if (p.getShooter().equals(e)) {
                        p.remove();
                        it.remove();
                        projectilesKilled++;
                    }
                }
                e.remove();
View Full Code Here

            final Fireball projectile = (Fireball) ((LivingEntity) shooter).getWorld().spawn(((LivingEntity) shooter).getEyeLocation().add(vel.clone().normalize().multiply(0.5)), d.getType());
            ProjectileUtils.setShooter(projectile, shooter);
            projectile.setVelocity(vel);
            lastSpawned = projectile;
          } else if (Projectile.class.isAssignableFrom(d.getType())) {
            final Projectile projectile = ((LivingEntity) shooter).launchProjectile((Class<? extends Projectile>) d.getType());
            set(projectile, d);
            projectile.setVelocity(vel);
            lastSpawned = projectile;
          } else {
            final Location loc = ((LivingEntity) shooter).getLocation();
            loc.setY(loc.getY() + ((LivingEntity) shooter).getEyeHeight() / 2);
            final Entity projectile = d.spawn(loc);
            if (projectile != null)
              projectile.setVelocity(vel);
            lastSpawned = projectile;
          }
        } else {
          final Vector vel = dir.getDirection((Location) shooter).multiply(v.doubleValue());
          final Entity projectile = d.spawn((Location) shooter);
          if (projectile != null)
            projectile.setVelocity(vel);
          lastSpawned = projectile;
        }
      }
    }
  }
View Full Code Here

    if (event instanceof EntityDamageByEntityEvent) {
      //plugin.sendMsg("EntityDamageByEntityEvent");
      EntityDamageByEntityEvent entityEvent = (EntityDamageByEntityEvent) event;
      if (entityEvent.getDamager() instanceof Projectile) {
        Projectile projectile = (Projectile) entityEvent.getDamager();
        attacker = projectile.getShooter();
        defender = entityEvent.getEntity();
      } else {
        attacker = entityEvent.getDamager();
        defender = entityEvent.getEntity();
      }
View Full Code Here

          return;
        }

        // Was this a missile?
        if (attackerEntity instanceof Projectile) {
          Projectile projectile = (Projectile) attackerEntity;
          if (projectile.getShooter() instanceof Player) {
            attackerPlayer = (Player) projectile.getShooter();

            try {
              attackerResident = TownyUniverse.getDataSource().getResident(attackerPlayer.getName());
            } catch (NotRegisteredException e) {
            }
View Full Code Here

TOP

Related Classes of org.bukkit.entity.Projectile

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.