From 83cd1b274424a160b56504b12b9982d09b517ce3 Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Wed, 12 Jan 2022 02:10:03 +0100 Subject: [PATCH] Stop VillagerUI villagers from being damaged --- .../java/com/alttd/events/VillagerEvents.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/main/java/com/alttd/events/VillagerEvents.java b/src/main/java/com/alttd/events/VillagerEvents.java index 60f6bae..8f9f593 100644 --- a/src/main/java/com/alttd/events/VillagerEvents.java +++ b/src/main/java/com/alttd/events/VillagerEvents.java @@ -11,9 +11,12 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.Villager; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByBlockEvent; +import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityPotionEffectEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; +import org.bukkit.event.weather.LightningStrikeEvent; import org.bukkit.scheduler.BukkitRunnable; import java.util.UUID; @@ -69,4 +72,28 @@ public class VillagerEvents implements Listener { event.setCancelled(true); } + + @EventHandler + public void onVillagerEntityDamage(EntityDamageByEntityEvent event) { + if (!(event.getEntity() instanceof Villager villager)) + return; + + VillagerType loadedVillager = LoadedVillagers.getLoadedVillager(villager.getUniqueId()); + if (loadedVillager == null) + return; + + event.setCancelled(true); + } + + @EventHandler + public void onVillagerBlockDamage(EntityDamageByBlockEvent event) { + if (!(event.getEntity() instanceof Villager villager)) + return; + + VillagerType loadedVillager = LoadedVillagers.getLoadedVillager(villager.getUniqueId()); + if (loadedVillager == null) + return; + + event.setCancelled(true); + } }