diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java index 714c790e..92d47b44 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java @@ -251,7 +251,7 @@ public class WorldGuardPlugin extends JavaPlugin { return blacklistCounts; })); metrics.addCustomChart(new Metrics.SimplePie("chest_protection", () -> - "" + platform.getGlobalStateManager().getWorldConfigs().stream().anyMatch(cfg -> cfg.signChestProtection))); + "" + platform.getGlobalStateManager().getWorldConfigs().stream().anyMatch(cfg -> cfg.getChestProtection().hasBeenUsed()))); metrics.addCustomChart(new Metrics.SimplePie("build_permissions", () -> "" + platform.getGlobalStateManager().getWorldConfigs().stream().anyMatch(cfg -> cfg.buildPermissions))); diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/chest/BukkitSignChestProtection.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/chest/BukkitSignChestProtection.java index b832e990..096228de 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/chest/BukkitSignChestProtection.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/chest/BukkitSignChestProtection.java @@ -28,9 +28,12 @@ import org.bukkit.block.Sign; public class BukkitSignChestProtection extends SignChestProtection { + private boolean hasBeenUsed; + private Boolean isProtectedSign(Sign sign, LocalPlayer player) { if (sign.getLine(0).equalsIgnoreCase("[Lock]")) { if (player == null) { // No player, no access + hasBeenUsed = true; return true; } @@ -49,6 +52,15 @@ public class BukkitSignChestProtection extends SignChestProtection { if (!(state instanceof Sign)) { return null; } - return isProtectedSign((Sign) state, player); + Boolean protectedSign = isProtectedSign((Sign) state, player); + if (protectedSign != null && protectedSign) { + hasBeenUsed = true; + } + return protectedSign; + } + + @Override + public boolean hasBeenUsed() { + return hasBeenUsed; } } diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/chest/ChestProtection.java b/worldguard-core/src/main/java/com/sk89q/worldguard/chest/ChestProtection.java index 4b679642..4e3b9433 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/chest/ChestProtection.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/chest/ChestProtection.java @@ -71,4 +71,7 @@ public interface ChestProtection { || blockType == BlockTypes.DROPPER; } + default boolean hasBeenUsed() { + return false; + } } \ No newline at end of file