From b8899c8333c8831d2e12ef9c84fef52304e6f556 Mon Sep 17 00:00:00 2001 From: Phoenix616 Date: Tue, 4 May 2021 16:36:32 +0100 Subject: [PATCH] Turn off internal protection for more protection plugins (Resolves #442) This expands the TURN_OFF_DEFAULT_PROTECTION_WHEN_PROTECTED_EXTERNALLY config option so that it applies to more protection plugins rather than just LWC. Currently supported: BlockLocker, Deadbolt, Lockette (1.x), LockettePro (2.x) and SimpleChestLock --- .../java/com/Acrobot/ChestShop/Plugins/BlockLocker.java | 9 ++++++++- .../java/com/Acrobot/ChestShop/Plugins/Deadbolt.java | 3 +++ .../java/com/Acrobot/ChestShop/Plugins/Lockette.java | 9 ++++----- .../java/com/Acrobot/ChestShop/Plugins/LockettePro.java | 7 +++++-- .../com/Acrobot/ChestShop/Plugins/SimpleChestLock.java | 3 +++ 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/Acrobot/ChestShop/Plugins/BlockLocker.java b/src/main/java/com/Acrobot/ChestShop/Plugins/BlockLocker.java index b87cf69..8005001 100644 --- a/src/main/java/com/Acrobot/ChestShop/Plugins/BlockLocker.java +++ b/src/main/java/com/Acrobot/ChestShop/Plugins/BlockLocker.java @@ -1,5 +1,6 @@ package com.Acrobot.ChestShop.Plugins; +import com.Acrobot.ChestShop.Configuration.Properties; import org.bukkit.block.Block; import org.bukkit.event.Event; import org.bukkit.event.EventHandler; @@ -22,8 +23,14 @@ public class BlockLocker implements Listener { } Block block = event.getBlock(); - if (BlockLockerAPIv2.isProtected(block) && !BlockLockerAPIv2.isOwner(event.getPlayer(), block)) { + if (!BlockLockerAPIv2.isProtected(block)) { + return; + } + + if (!BlockLockerAPIv2.isOwner(event.getPlayer(), block)) { event.setResult(Event.Result.DENY); + } else if (Properties.TURN_OFF_DEFAULT_PROTECTION_WHEN_PROTECTED_EXTERNALLY) { + event.setResult(Event.Result.ALLOW); } } } diff --git a/src/main/java/com/Acrobot/ChestShop/Plugins/Deadbolt.java b/src/main/java/com/Acrobot/ChestShop/Plugins/Deadbolt.java index 8fa18f9..0882f90 100644 --- a/src/main/java/com/Acrobot/ChestShop/Plugins/Deadbolt.java +++ b/src/main/java/com/Acrobot/ChestShop/Plugins/Deadbolt.java @@ -1,5 +1,6 @@ package com.Acrobot.ChestShop.Plugins; +import com.Acrobot.ChestShop.Configuration.Properties; import com.Acrobot.ChestShop.Events.Protection.ProtectionCheckEvent; import org.bukkit.block.Block; import org.bukkit.entity.Player; @@ -26,6 +27,8 @@ public class Deadbolt implements Listener { if (!com.daemitus.deadbolt.Deadbolt.isAuthorized(player, block)) { event.setResult(Event.Result.DENY); + } else if (Properties.TURN_OFF_DEFAULT_PROTECTION_WHEN_PROTECTED_EXTERNALLY) { + event.setResult(Event.Result.ALLOW); } } } diff --git a/src/main/java/com/Acrobot/ChestShop/Plugins/Lockette.java b/src/main/java/com/Acrobot/ChestShop/Plugins/Lockette.java index 871c09b..20b91e7 100644 --- a/src/main/java/com/Acrobot/ChestShop/Plugins/Lockette.java +++ b/src/main/java/com/Acrobot/ChestShop/Plugins/Lockette.java @@ -1,9 +1,7 @@ package com.Acrobot.ChestShop.Plugins; -import com.Acrobot.Breeze.Utils.NameUtil; -import com.Acrobot.ChestShop.Database.Account; +import com.Acrobot.ChestShop.Configuration.Properties; import com.Acrobot.ChestShop.Events.Protection.ProtectionCheckEvent; -import com.Acrobot.ChestShop.UUIDs.NameManager; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.Event; @@ -27,9 +25,10 @@ public class Lockette implements Listener { return; } - Account account = NameManager.getAccount(player.getUniqueId()); - if (account != null && !org.yi.acru.bukkit.Lockette.Lockette.isUser(block, account.getName(), true)) { + if (!org.yi.acru.bukkit.Lockette.Lockette.isUser(block, player, true)) { event.setResult(Event.Result.DENY); + } else if (Properties.TURN_OFF_DEFAULT_PROTECTION_WHEN_PROTECTED_EXTERNALLY) { + event.setResult(Event.Result.ALLOW); } } } diff --git a/src/main/java/com/Acrobot/ChestShop/Plugins/LockettePro.java b/src/main/java/com/Acrobot/ChestShop/Plugins/LockettePro.java index b64840c..cd4a422 100644 --- a/src/main/java/com/Acrobot/ChestShop/Plugins/LockettePro.java +++ b/src/main/java/com/Acrobot/ChestShop/Plugins/LockettePro.java @@ -1,5 +1,6 @@ package com.Acrobot.ChestShop.Plugins; +import com.Acrobot.ChestShop.Configuration.Properties; import com.Acrobot.ChestShop.Events.Protection.ProtectionCheckEvent; import me.crafter.mc.lockettepro.LocketteProAPI; import org.bukkit.block.Block; @@ -19,12 +20,14 @@ public class LockettePro implements Listener { Player player = event.getPlayer(); Block block = event.getBlock(); - if (!LocketteProAPI.isProtected(block)) { + if (!LocketteProAPI.isProtected(block) && !LocketteProAPI.isLocked(block)) { return; } - if (LocketteProAPI.isLocked(block) && !LocketteProAPI.isOwner(block, player)) { + if (!LocketteProAPI.isUser(block, player)) { event.setResult(Event.Result.DENY); + } else if (Properties.TURN_OFF_DEFAULT_PROTECTION_WHEN_PROTECTED_EXTERNALLY) { + event.setResult(Event.Result.ALLOW); } } } diff --git a/src/main/java/com/Acrobot/ChestShop/Plugins/SimpleChestLock.java b/src/main/java/com/Acrobot/ChestShop/Plugins/SimpleChestLock.java index 7d91509..e8147a5 100644 --- a/src/main/java/com/Acrobot/ChestShop/Plugins/SimpleChestLock.java +++ b/src/main/java/com/Acrobot/ChestShop/Plugins/SimpleChestLock.java @@ -1,5 +1,6 @@ package com.Acrobot.ChestShop.Plugins; +import com.Acrobot.ChestShop.Configuration.Properties; import com.Acrobot.ChestShop.Events.Protection.ProtectionCheckEvent; import com.webkonsept.bukkit.simplechestlock.SCL; import org.bukkit.block.Block; @@ -36,6 +37,8 @@ public class SimpleChestLock implements Listener { if (!scl.chests.getOwner(block).equals(playerName)) { event.setResult(Event.Result.DENY); + } else if (Properties.TURN_OFF_DEFAULT_PROTECTION_WHEN_PROTECTED_EXTERNALLY) { + event.setResult(Event.Result.ALLOW); } }