From c2b95f59a8f07e7833c57fb6c2fdd121571197be Mon Sep 17 00:00:00 2001 From: Joo200 Date: Tue, 22 Aug 2023 14:34:52 +0200 Subject: [PATCH] Paper only: Protect sign modifications as building --- .../bukkit/listener/EventAbstractionListener.java | 9 +++++++++ .../java/com/sk89q/worldguard/bukkit/util/Materials.java | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java index d35483d4..3c7af776 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java @@ -47,6 +47,7 @@ import com.sk89q.worldguard.bukkit.util.Materials; import com.sk89q.worldguard.config.WorldConfiguration; import com.sk89q.worldguard.protection.flags.Flags; import io.papermc.lib.PaperLib; +import io.papermc.paper.event.player.PlayerOpenSignEvent; import org.bukkit.Bukkit; import org.bukkit.Effect; import org.bukkit.GameMode; @@ -1266,5 +1267,13 @@ public class EventAbstractionListener extends AbstractListener { public void onEntityTransform(EntityZapEvent event) { Events.fireToCancel(event, new DamageEntityEvent(event, create(event.getBolt()), event.getEntity())); } + + @EventHandler(ignoreCancelled = true) + public void onSignOpen(PlayerOpenSignEvent event) { + if (event.getCause() == PlayerOpenSignEvent.Cause.INTERACT) { + // other cases are handled by other events + Events.fireToCancel(event, new UseBlockEvent(event, create(event.getPlayer()), event.getSign().getBlock())); + } + } } } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java index 1f87de9a..c99fa0a6 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java @@ -1343,7 +1343,8 @@ public final class Materials { || type == Material.DRAGON_EGG || Tag.FLOWER_POTS.isTagged(type) || Tag.CANDLES.isTagged(type) - || Tag.CANDLE_CAKES.isTagged(type); + || Tag.CANDLE_CAKES.isTagged(type) + || Tag.ALL_SIGNS.isTagged(type); } /**