From 5dc865a703a6b6f1c85714bf0e5f5d57158d2043 Mon Sep 17 00:00:00 2001 From: "florian.lang" Date: Mon, 18 Dec 2023 22:41:05 +0100 Subject: [PATCH 1/2] fix: block sign change by other users --- pom.xml | 2 +- .../pro/dracarys/LocketteX/listener/SignChange.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 74268be..3590ffa 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ pro.dracarys LocketteX LocketteX - 1.8.0 + 1.8.1 jar https://dracarys.pro diff --git a/src/main/java/pro/dracarys/LocketteX/listener/SignChange.java b/src/main/java/pro/dracarys/LocketteX/listener/SignChange.java index 4c5e756..8de3c50 100644 --- a/src/main/java/pro/dracarys/LocketteX/listener/SignChange.java +++ b/src/main/java/pro/dracarys/LocketteX/listener/SignChange.java @@ -1,6 +1,7 @@ package pro.dracarys.LocketteX.listener; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.block.Block; import org.bukkit.block.Sign; import org.bukkit.block.data.Directional; @@ -29,8 +30,20 @@ public void onSignChange(SignChangeEvent e) { if (!Util.isEnabledWorld(e.getPlayer().getWorld().getName())) { return; } + + if (e.getBlock().getState() instanceof Sign) { + Sign sign = (Sign) e.getBlock().getState(); + String oldLine = ChatColor.stripColor(sign.getLine(0)); + + if (oldLine.equalsIgnoreCase(Config.SIGN_ID_LINE.getString()) && !LocketteXAPI.canBreak(e.getPlayer(), e.getBlock())) { + e.setCancelled(true); + return; + } + } + String line0 = e.getLine(0); if (line0 == null || !line0.equalsIgnoreCase(Config.SIGN_ID_LINE.getString())) return; + // From this point forward we're sure the player is trying to create a [Protect] sign if (!Config.PERMISSION_FOR_ALL.getOption() && !e.getPlayer().hasPermission(Config.PERMISSION_CREATION.getString())) { e.getPlayer().sendMessage(Message.PREFIX.getMessage() + Message.CREATION_NOPERMISSION.getMessage()); From 57d39eb32f3fe77e34a2ba12b01a5ddb41e8fd8b Mon Sep 17 00:00:00 2001 From: "florian.lang" Date: Mon, 18 Dec 2023 22:44:46 +0100 Subject: [PATCH 2/2] fix: removed unnecessary space --- src/main/java/pro/dracarys/LocketteX/listener/SignChange.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/pro/dracarys/LocketteX/listener/SignChange.java b/src/main/java/pro/dracarys/LocketteX/listener/SignChange.java index 8de3c50..5f62736 100644 --- a/src/main/java/pro/dracarys/LocketteX/listener/SignChange.java +++ b/src/main/java/pro/dracarys/LocketteX/listener/SignChange.java @@ -43,7 +43,6 @@ public void onSignChange(SignChangeEvent e) { String line0 = e.getLine(0); if (line0 == null || !line0.equalsIgnoreCase(Config.SIGN_ID_LINE.getString())) return; - // From this point forward we're sure the player is trying to create a [Protect] sign if (!Config.PERMISSION_FOR_ALL.getOption() && !e.getPlayer().hasPermission(Config.PERMISSION_CREATION.getString())) { e.getPlayer().sendMessage(Message.PREFIX.getMessage() + Message.CREATION_NOPERMISSION.getMessage());