From 3757b00fbfb312e6dec3a02fc0879dd2aac7b01c Mon Sep 17 00:00:00 2001 From: destro174 <40720638+destro174@users.noreply.github.com> Date: Mon, 14 Feb 2022 09:52:08 +0100 Subject: [PATCH] Prevent boats breaking lily pads --- .../GriefPrevention/PlayerEventHandler.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java b/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java index d885b94..b4892b9 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java @@ -61,6 +61,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; +import org.bukkit.event.entity.EntityChangeBlockEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.PlayerDeathEvent; @@ -2349,4 +2350,22 @@ class PlayerEventHandler implements Listener } } } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST) + public void onPlayerBoatBlockBreak(EntityChangeBlockEvent event) + { + if (event.getEntity() instanceof Vehicle && !event.getEntity().getPassengers().isEmpty()) + { + Entity driver = event.getEntity().getPassengers().get(0); + if (driver instanceof Player) + { + Block block = event.getBlock(); + if (GriefPrevention.instance.allowBreak((Player) driver, block, block.getLocation()) != null) + { + event.setCancelled(true); + return; + } + } + } + } }