diff --git a/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java b/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java index 6162fa3..d3fdba0 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java +++ b/api/src/main/java/net/momirealms/customcrops/api/core/ConfigManager.java @@ -92,12 +92,17 @@ public abstract class ConfigManager implements ConfigLoader, Reloadable { protected HashSet overriddenCrops = new HashSet<>(); protected boolean worldeditSupport = false; + protected boolean interveneAntiGrief = false; public ConfigManager(BukkitCustomCropsPlugin plugin) { this.plugin = plugin; instance = this; } + public static boolean interveneAntiGrief() { + return instance.interveneAntiGrief; + } + public static double getOffset(String id) { return instance.offsets.getOrDefault(id, 0d); } diff --git a/gradle.properties b/gradle.properties index d79bb46..54e5ece 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # Project settings # Rule: [major update].[feature update].[bug fix] project_version=3.6.9 -config_version=39 +config_version=40 project_group=net.momirealms # Dependency settings diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java index 0174e5e..d6b0915 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/config/BukkitConfigManager.java @@ -88,6 +88,7 @@ public class BukkitConfigManager extends ConfigManager { .builder() .setVersioning(new BasicVersioning("config-version")) .addIgnoredRoute(configVersion, "other-settings.placeholder-register", '.') + .addIgnoredRoute(configVersion, "mechanics.hologram-offset-correction", '.') .addIgnoredRoute(configVersion, "worlds.settings._WORLDS_", '.') .build() ); @@ -142,6 +143,8 @@ public class BukkitConfigManager extends ConfigManager { worldeditSupport = config.getBoolean("other-settings.worldedit-support", false); + interveneAntiGrief = config.getBoolean("other-settings.intervene-anti-grief", false); + offsets.clear(); Section section = config.getSection("mechanics.hologram-offset-correction"); if (section != null) { diff --git a/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java b/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java index 64dd96d..7fbf690 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java +++ b/plugin/src/main/java/net/momirealms/customcrops/bukkit/item/BukkitItemManager.java @@ -474,10 +474,16 @@ public class BukkitItemManager extends AbstractItemManager { public void handlePlayerBreak(Player player, Location location, ItemStack itemInHand, String brokenID, Cancellable event) { Optional> optionalWorld = plugin.getWorldManager().getWorld(player.getWorld()); if (optionalWorld.isEmpty()) { + if (ConfigManager.interveneAntiGrief() && antiGriefLib != null && !antiGriefLib.canBreak(player, location)) { + event.setCancelled(true); + } return; } if (antiGriefLib != null && !antiGriefLib.canBreak(player, location)) { + if (ConfigManager.interveneAntiGrief()) { + event.setCancelled(true); + } return; } diff --git a/plugin/src/main/resources/config.yml b/plugin/src/main/resources/config.yml index 6ab7125..8e91cd3 100644 --- a/plugin/src/main/resources/config.yml +++ b/plugin/src/main/resources/config.yml @@ -145,3 +145,8 @@ other-settings: double-check: false # Enable WorldEdit support (Experimental) worldedit-support: false + # Whether to let CustomCrops intervene in the anti grief detection + # Sometimes some anti-grief plugins are not supported by custom item plugins, but they are supported by CustomCrops + # If you enable this option, CustomCrops will also protect those unsupported anti-grief plugins + # Supported plugins can be found on https://github.com/Xiao-MoMi/AntiGriefLib/blob/main/README.md + intervene-anti-grief: false \ No newline at end of file