From 706bed62ec9a2815afc789bdcc732047f087f11a Mon Sep 17 00:00:00 2001 From: Nassim Date: Wed, 18 Mar 2020 08:36:03 +0100 Subject: [PATCH] Fixes potion splash pvp check (#1230) Before this change, the entire potion splash would be cancelled if a single protected player would have been affected. Now, it will only remove the protected players themselves from the affected list. --- .../bentobox/listeners/flags/settings/PVPListener.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/world/bentobox/bentobox/listeners/flags/settings/PVPListener.java b/src/main/java/world/bentobox/bentobox/listeners/flags/settings/PVPListener.java index b8d6d53fa..e5d541496 100644 --- a/src/main/java/world/bentobox/bentobox/listeners/flags/settings/PVPListener.java +++ b/src/main/java/world/bentobox/bentobox/listeners/flags/settings/PVPListener.java @@ -136,8 +136,12 @@ public class PVPListener extends FlagListener { public void onSplashPotionSplash(final PotionSplashEvent e) { if (e.getEntity().getShooter() instanceof Player && getPlugin().getIWM().inWorld(e.getEntity().getWorld())) { 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())))); + // Run through affected entities and cancel the splash for protected players + for (LivingEntity le : e.getAffectedEntities()) { + if (!le.getUniqueId().equals(user.getUniqueId()) && blockPVP(user, le, e, getFlag(e.getEntity().getWorld()))) { + e.setIntensity(le, 0); + } + } } }