/** * Checks for splash damage. Remove damage if it should not affect. * @param e - event */ @EventHandler(priority = EventPriority.LOW, ignoreCancelled=true) public void onSplashPotionSplash(final PotionSplashEvent e) { if (e.getEntity().getShooter() instanceof Player && getPlugin().getIWM().inWorld(e.getEntity().getLocation())) { User user = User.getInstance((Player)e.getEntity().getShooter()); // Run through affected entities and cancel the splash if any are a protected player e.setCancelled(e.getAffectedEntities().stream().anyMatch(le -> blockPVP(user, le, e, getFlag(e.getEntity().getWorld())))); } }
/** * @param event */ @EventHandler(priority = EventPriority.HIGH) public void onPotionSplash(PotionSplashEvent event) { if (event.isCancelled()) { return; } ThrownPotion potion = event.getPotion(); ProjectileSource shooter = potion.getShooter(); if (shooter != null) { if (shooter instanceof Player) { Player player = (Player) shooter; Field field = plugin.getForceFieldManager().getEnabledSourceField(player.getLocation(), FieldFlag.PREVENT_POTION_SPLASH); if (field != null) { if (FieldFlag.PREVENT_POTION_SPLASH.applies(field, player)) { event.setCancelled(true); } } } } }
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onThrowPotion(PotionSplashEvent event) { ProjectileSource source = event.getEntity().getShooter(); if (!(source instanceof Player)) { event.setCancelled(true); return; } Player thrower = (Player) source; if (plugin.al.isAdmin(thrower)) { return; } for (Player player : thrower.getWorld().getPlayers()) { if (thrower.getLocation().distanceSquared(player.getLocation()) < POTION_BLOCK_RADIUS_SQUARED) { thrower.sendMessage(ChatColor.RED + "You cannot use splash potions close to other players."); event.setCancelled(true); return; } } }
ProjectileSource thrower = event.getPotion().getShooter(); if (!(thrower instanceof Entity)) { return;
if (potion.getShooter() instanceof Player) {
ProjectileSource projectileSource = potion.getShooter(); if(projectileSource == null || !(projectileSource instanceof Player)) return; Player thrower = (Player)projectileSource;