From 2048a9f31d088fe53f9c8ad954af84a01896ce2e Mon Sep 17 00:00:00 2001 From: Nick L Date: Mon, 14 Sep 2020 18:48:34 -0500 Subject: [PATCH] Support plugins that use SignChangeEvent to check sign editing permissions (#951) --- .../GriefPrevention/BlockEventHandler.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/BlockEventHandler.java b/src/main/java/me/ryanhamshire/GriefPrevention/BlockEventHandler.java index c43205d..c6ad92b 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/BlockEventHandler.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/BlockEventHandler.java @@ -118,16 +118,26 @@ public class BlockEventHandler implements Listener } } - //when a player places a sign... + //when a player changes the text of a sign... @EventHandler(ignoreCancelled = true) public void onSignChanged(SignChangeEvent event) { + Player player = event.getPlayer(); + Block sign = event.getBlock(); + + if (player == null || sign == null) return; + + String noBuildReason = GriefPrevention.instance.allowBuild(player, sign.getLocation(), sign.getType()); + if (noBuildReason != null) + { + GriefPrevention.sendMessage(player, TextMode.Err, noBuildReason); + event.setCancelled(true); + return; + } + //send sign content to online administrators if (!GriefPrevention.instance.config_signNotifications) return; - Player player = event.getPlayer(); - if (player == null) return; - StringBuilder lines = new StringBuilder(" placed a sign @ " + GriefPrevention.getfriendlyLocationString(event.getBlock().getLocation())); boolean notEmpty = false; for (int i = 0; i < event.getLines().length; i++)