diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldConfiguration.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldConfiguration.java index 708618ef..2c214980 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldConfiguration.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldConfiguration.java @@ -263,6 +263,7 @@ public void loadConfiguration() { disableGrassGrowth = getBoolean("dynamics.disable-grass-growth", false); disableMyceliumSpread = getBoolean("dynamics.disable-mycelium-spread", false); disableVineGrowth = getBoolean("dynamics.disable-vine-growth", false); + disableRockGrowth = getBoolean("dynamics.disable-rock-growth", false); disableCropGrowth = getBoolean("dynamics.disable-crop-growth", false); disableSoilDehydration = getBoolean("dynamics.disable-soil-dehydration", false); disableCoralBlockFade = getBoolean("dynamics.disable-coral-block-fade", false); diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java index eabe7646..fe12ba55 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java @@ -588,6 +588,19 @@ public void onBlockSpread(BlockSpreadEvent event) { } } + if (newType == Material.BUDDING_AMETHYST || newType == Material.POINTED_DRIPSTONE) { + if (wcfg.disableRockGrowth) { + event.setCancelled(true); + return; + } + + if (wcfg.useRegions && !StateFlag.test(WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery() + .queryState(BukkitAdapter.adapt(event.getBlock().getLocation()), (RegionAssociable) null, Flags.ROCK_GROWTH))) { + event.setCancelled(true); + return; + } + } + handleGrow(event, event.getBlock().getLocation(), newType); } diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/config/WorldConfiguration.java b/worldguard-core/src/main/java/com/sk89q/worldguard/config/WorldConfiguration.java index b6fbe2ce..52e0cab9 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/config/WorldConfiguration.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/config/WorldConfiguration.java @@ -157,6 +157,7 @@ public abstract class WorldConfiguration { public boolean disableGrassGrowth; public boolean disableMyceliumSpread; public boolean disableVineGrowth; + public boolean disableRockGrowth; public boolean disableCropGrowth; public boolean disableEndermanGriefing; public boolean disableSnowmanTrails; diff --git a/worldguard-core/src/main/java/com/sk89q/worldguard/protection/flags/Flags.java b/worldguard-core/src/main/java/com/sk89q/worldguard/protection/flags/Flags.java index c3edeaec..218637b5 100644 --- a/worldguard-core/src/main/java/com/sk89q/worldguard/protection/flags/Flags.java +++ b/worldguard-core/src/main/java/com/sk89q/worldguard/protection/flags/Flags.java @@ -120,6 +120,7 @@ public final class Flags { public static final StateFlag GRASS_SPREAD = register(new StateFlag("grass-growth", true)); public static final StateFlag MYCELIUM_SPREAD = register(new StateFlag("mycelium-spread", true)); public static final StateFlag VINE_GROWTH = register(new StateFlag("vine-growth", true)); + public static final StateFlag ROCK_GROWTH = register(new StateFlag("rock-growth", true)); public static final StateFlag CROP_GROWTH = register(new StateFlag("crop-growth", true)); public static final StateFlag SOIL_DRY = register(new StateFlag("soil-dry", true)); public static final StateFlag CORAL_FADE = register(new StateFlag("coral-fade", true));