@SuppressWarnings("deprecation") private void handleProjectile(Vector v, Projectile projectile) { projectile.setPersistent(false); projectile.setGravity(gravity); if (projectile instanceof Explosive) { if (yield != null) { ((Explosive) projectile).setYield(yield.floatValue()); } if (isIncendiary != null) { ((Explosive) projectile).setIsIncendiary(isIncendiary); } } if (projectile instanceof Fireball && setFireballDirection) { ((Fireball) projectile).setDirection(v.clone().normalize().multiply(speed)); } if (projectileType == Arrow.class) { Events.autoRemoveProjectile(projectile.getEntityId()); ((Arrow) projectile).setPickupStatus(Arrow.PickupStatus.DISALLOWED); } if (!gravity) { (new BukkitRunnable() { @Override public void run() { projectile.remove(); } }).runTaskLater(RPGItems.plugin, 80); } }