.callEvent(new ProjectileLaunchEvent(projectile)); if (launchEvent.isCancelled()) { projectile.remove();
@EventHandler (priority = EventPriority.MONITOR, ignoreCancelled = false) public void onProjectileLaunch(ProjectileLaunchEvent event) { if (nmsManager.isNMSEntityBase(event.getEntity())) { if (event.isCancelled()) { event.setCancelled(false); } } }
@Override public MCProjectile getEntity() { return (MCProjectile) BukkitConvertor.BukkitGetCorrectEntity(ple.getEntity()); }
public void onProjectileLaunch(final ProjectileLaunchEvent event) { final Projectile projectile = event.getEntity(); final Player player = BridgeMisc.getShooterPlayer(projectile); if (player == null) { event.setCancelled(true); return; EntityType type = event.getEntityType(); switch (type) { case ENDER_PEARL: event.setCancelled(true);
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onEntityProjectileLaunchEvent(final ProjectileLaunchEvent event) { final Entity entity = event.getEntity(); if (MovementHandler.isStopped(entity) || Bloodbending.isBloodbent(entity) || Suffocate.isBreathbent(entity)) { event.setCancelled(true); } }
@EventHandler(ignoreCancelled = true) private void playerShoot(ProjectileLaunchEvent event) { if (event.getEntityType() == EntityType.SNOWBALL) { Snowball snowball = (Snowball) event.getEntity(); if (snowball.getShooter() != null && snowball.getShooter() instanceof Player) { MinigamePlayer ply = pdata.getMinigamePlayer((Player) snowball.getShooter()); if (ply == null) return; if (ply.isInMinigame() && ply.getMinigame().hasUnlimitedAmmo()) { ItemStack mainhand = ply.getPlayer().getInventory().getItemInMainHand(); if (mainhand.getType() == Material.SNOW_BLOCK) { mainhand.setAmount(16); ply.getPlayer().updateInventory();//todo } else { ply.getPlayer().getInventory().addItem(new ItemStack(Material.SNOWBALL, 1)); } } } } else if (event.getEntityType() == EntityType.EGG) { Egg egg = (Egg) event.getEntity(); if (egg.getShooter() != null && egg.getShooter() instanceof Player) { MinigamePlayer ply = pdata.getMinigamePlayer((Player) egg.getShooter()); if (ply == null) return; if (ply.isInMinigame() && ply.getMinigame().hasUnlimitedAmmo()) { ply.getPlayer().getInventory().addItem(new ItemStack(Material.EGG)); } } } }
@Override public MCEntityType getEntityType() { return BukkitMCEntityType.valueOfConcrete(ple.getEntityType()); } }
/** * @param event */ @EventHandler(priority = EventPriority.HIGH) public void onProjectileThrow(ProjectileLaunchEvent event) { if (event.isCancelled()) { return; } Projectile projectile = event.getEntity(); ProjectileSource shooter = projectile.getShooter(); if (shooter != null) { if (shooter instanceof Player) { Player player = (Player) shooter; Field field = plugin.getForceFieldManager().getEnabledSourceField(player.getLocation(), FieldFlag.NO_PROJECTILE_THROW); if (field != null) { if (FieldFlag.NO_PROJECTILE_THROW.applies(field, player)) { event.setCancelled(true); } } } } }
/** * Prevents players from throwing potions / exp bottles. * @param e ProjectileLaunchEvent */ @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onPlayerThrowPotion(ProjectileLaunchEvent e) { if (e.getEntity() instanceof ThrownPotion || e.getEntity() instanceof ThrownExpBottle) { checkIsland(e, e.getEntity().getLocation(), Flags.POTION_THROWING); } } }
@EventHandler public void onProjectileLaunch(ProjectileLaunchEvent event) { if (event.isCancelled()) return; Projectile projectile = event.getEntity(); ProjectileSource shooter = projectile.getShooter(); if (!(shooter instanceof Entity)) { try { if (mobData.onLaunch(mage, pull)) { event.setCancelled(true); if (wand.isInventoryOpen()) event.setCancelled(true); return; if (wand.isInventoryOpen()) event.setCancelled(true); return; event.setCancelled(true); String[] parameters = {"bowpull", Double.toString(pull)};
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onProjectileLaunch(ProjectileLaunchEvent event) { if (!(event.getEntity().getShooter() instanceof Player)) { return; } Player player = (Player) event.getEntity().getShooter(); NormalAchievements category; if (event.getEntity() instanceof Snowball) { category = NormalAchievements.SNOWBALLS; } else if (event.getEntity() instanceof Egg) { category = NormalAchievements.EGGS; } else { return; } if (disabledCategories.contains(category)) { return; } if (!shouldIncreaseBeTakenIntoAccount(player, category)) { return; } updateStatisticAndAwardAchievementsIfAvailable(player, category, 1); } }
@EventHandler(ignoreCancelled = true) private void throwEnderpearl(ProjectileLaunchEvent event){ if(event.getEntity().getShooter() instanceof Player){ Player ply = (Player)event.getEntity().getShooter(); if(pdata.getMinigamePlayer(ply).isInMinigame()){ pdata.getMinigamePlayer(ply).getMinigame().getBlockRecorder().addEntity(event.getEntity(), pdata.getMinigamePlayer(ply), true); } } }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onProjectileLaunch(ProjectileLaunchEvent event) { /* WORLD BLACKLIST CHECK */ if(WorldBlacklist.isWorldBlacklisted(event.getEntity().getWorld())) return; if(event.getEntity() instanceof Player) { Player player = (Player) event.getEntity(); /* WORLD GUARD MAIN FLAG CHECK */ if(WorldGuardUtils.isWorldGuardLoaded()) { if(!WorldGuardManager.getInstance().hasMainFlag(player)) return; } } 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())); }
if (!checkCooldown(this, player, cooldown, true, true)) return PowerResult.cd(); if (!getItem().consumeDurability(stack, cost)) return PowerResult.cost(); Projectile projectile = event.getEntity(); List<LivingEntity> entities = getLivingEntitiesInCone(getNearestLivingEntities(this, player.getEyeLocation(), player, distance, 0), player.getLocation().toVector(), viewAngle, player.getLocation().getDirection()).stream().filter(player::hasLineOfSight).collect(Collectors.toList()); projectile.setVelocity(projectile.getVelocity().multiply(initVelFactor));
@EventHandler public void onProjectileFire(ProjectileLaunchEvent e) { Projectile entity = e.getEntity(); ProjectileSource shooter = entity.getShooter(); if (!(shooter instanceof Player)) return; throw new IllegalStateException(); registerRPGProjectile(e.getEntity().getEntityId(), projectileRpgItem.getUid()); projectileRpgItem.power(player, projectileItemStack, e, Trigger.LAUNCH_PROJECTILE); projectileRpgItem = null; return; registerRPGProjectile(e.getEntity().getEntityId(), rItem.getUid()); rItem.power(player, item, e, Trigger.LAUNCH_PROJECTILE);
@EventHandler public void onProjectileLaunch(ProjectileLaunchEvent e){ Projectile projectile = e.getEntity(); //Getting the projectile ProjectileSource shooter = projectile.getShooter(); //Getting the shooter if(shooter instanceof Player){ //If the shooter was a player Player player = (Player) shooter; if(!isEnabled(player.getWorld())) return; //If this module is enabled in this world debug("Making projectile go straight", player); //Here we get a unit vector of the direction the player is looking in and multiply it by the projectile's vector's magnitude //We then assign this to the projectile as its new velocity projectile.setVelocity(player.getLocation().getDirection().normalize().multiply(projectile.getVelocity().length())); } } }