From d7237dff4e2199d27c1be908188c24e219b05216 Mon Sep 17 00:00:00 2001 From: fullwall Date: Fri, 9 Mar 2018 20:54:20 +0800 Subject: [PATCH] Prevent potion effects for protected NPCs --- .../main/java/net/citizensnpcs/EventListen.java | 14 ++++++++++++++ .../main/java/net/citizensnpcs/trait/Gravity.java | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/main/src/main/java/net/citizensnpcs/EventListen.java b/main/src/main/java/net/citizensnpcs/EventListen.java index f84a4d1bd..47f40135d 100644 --- a/main/src/main/java/net/citizensnpcs/EventListen.java +++ b/main/src/main/java/net/citizensnpcs/EventListen.java @@ -13,6 +13,7 @@ import org.bukkit.Material; import org.bukkit.entity.AbstractHorse; import org.bukkit.entity.EntityType; import org.bukkit.entity.FishHook; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Minecart; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -28,6 +29,7 @@ import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.event.entity.PlayerLeashEntityEvent; +import org.bukkit.event.entity.PotionSplashEvent; import org.bukkit.event.entity.ProjectileHitEvent; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerFishEvent; @@ -473,6 +475,18 @@ public class EventListen implements Listener { skinUpdateTracker.updatePlayer(event.getPlayer(), 15, true); } + @EventHandler(ignoreCancelled = true) + public void onPotionSplashEvent(PotionSplashEvent event) { + for (LivingEntity entity : event.getAffectedEntities()) { + NPC npc = npcRegistry.getNPC(entity); + if (npc == null) + continue; + if (npc.isProtected()) { + event.setIntensity(entity, 0); + } + } + } + @EventHandler(ignoreCancelled = true) public void onProjectileHit(final ProjectileHitEvent event) { if (!(event.getEntity() instanceof FishHook)) diff --git a/main/src/main/java/net/citizensnpcs/trait/Gravity.java b/main/src/main/java/net/citizensnpcs/trait/Gravity.java index 8af5a562c..d8b53f463 100644 --- a/main/src/main/java/net/citizensnpcs/trait/Gravity.java +++ b/main/src/main/java/net/citizensnpcs/trait/Gravity.java @@ -38,4 +38,4 @@ public class Gravity extends Trait implements Toggleable { public boolean toggle() { return enabled = !enabled; } -} +} \ No newline at end of file