diff --git a/EssentialsAntiBuild/src/main/java/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java b/EssentialsAntiBuild/src/main/java/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java index 77ece98bcaa..66b44d237c9 100644 --- a/EssentialsAntiBuild/src/main/java/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java +++ b/EssentialsAntiBuild/src/main/java/com/earth2me/essentials/antibuild/EssentialsAntiBuildListener.java @@ -262,13 +262,24 @@ public void onHangingBreak(final HangingBreakByEntityEvent event) { } @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) - public void onItemFrameInteract(final PlayerInteractEntityEvent event) { + public void onPlayerInteractEntity(final PlayerInteractEntityEvent event) { if (event.getPlayer().hasMetadata("NPC")) { return; } final User user = ess.getUser(event.getPlayer()); + final ItemStack hand = event.getPlayer().getInventory().getItem(event.getHand()); + if (hand != null && hand.getType() == Material.SHEARS) { + if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !metaPermCheck(user, "interact", hand)) { + if (ess.getSettings().warnOnBuildDisallow()) { + user.sendTl("antiBuildUse", hand.getType().toString()); + } + event.setCancelled(true); + return; + } + } + if (!(event.getRightClicked() instanceof ItemFrame)) { return; } @@ -295,13 +306,24 @@ public void onItemFrameInteract(final PlayerInteractEntityEvent event) { } @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) - public void onArmorStandInteract(final PlayerInteractAtEntityEvent event) { + public void onPlayerInteractAtEntity(final PlayerInteractAtEntityEvent event) { if (event.getPlayer().hasMetadata("NPC")) { return; } final User user = ess.getUser(event.getPlayer()); + final ItemStack hand = event.getPlayer().getInventory().getItem(event.getHand()); + if (hand != null && hand.getType() == Material.SHEARS) { + if (prot.getSettingBool(AntiBuildConfig.disable_use) && !user.canBuild() && !metaPermCheck(user, "interact", hand)) { + if (ess.getSettings().warnOnBuildDisallow()) { + user.sendTl("antiBuildUse", hand.getType().toString()); + } + event.setCancelled(true); + return; + } + } + if (!(event.getRightClicked() instanceof ArmorStand)) { return; }