From bf08475a4fad12ca8d209358bc953a7ff50840ce Mon Sep 17 00:00:00 2001 From: Florian CUNY Date: Tue, 7 May 2019 23:43:40 +0200 Subject: [PATCH] Made DYE flag more permissive with signs It now only applies when the player has dyes in his hand. #669 --- .../flags/protection/DyeListener.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/java/world/bentobox/bentobox/listeners/flags/protection/DyeListener.java b/src/main/java/world/bentobox/bentobox/listeners/flags/protection/DyeListener.java index 209b941fd..93989fc85 100644 --- a/src/main/java/world/bentobox/bentobox/listeners/flags/protection/DyeListener.java +++ b/src/main/java/world/bentobox/bentobox/listeners/flags/protection/DyeListener.java @@ -6,13 +6,13 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEvent; - import world.bentobox.bentobox.api.flags.FlagListener; import world.bentobox.bentobox.lists.Flags; /** - * Protects against dying + * Protects against dying things. * @author tastybento + * @since 1.5.0 */ public class DyeListener extends FlagListener { @@ -22,22 +22,20 @@ public class DyeListener extends FlagListener { */ @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void onPlayerInteract(final PlayerInteractEvent e) { - - if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK) && e.getClickedBlock().getType().name().contains("SIGN")) { - checkIsland(e, e.getPlayer(), e.getClickedBlock().getLocation(), Flags.DYE); + if (e.getClickedBlock() == null || e.getItem() == null) { return; } - + + if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK) && e.getClickedBlock().getType().name().contains("SIGN") + && e.getItem().getType().name().contains("DYE")) { + checkIsland(e, e.getPlayer(), e.getClickedBlock().getLocation(), Flags.DYE); + } } @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void onPlayerInteract(final PlayerInteractEntityEvent e) { - if (e.getRightClicked().getType().equals(EntityType.SHEEP)) { checkIsland(e, e.getPlayer(), e.getRightClicked().getLocation(), Flags.DYE); - return; } } - - }