From fd1cb1e4bda5d23dcd3a19069e7ada0de7cc5511 Mon Sep 17 00:00:00 2001 From: Joo200 Date: Sun, 19 Mar 2023 16:56:46 +0100 Subject: [PATCH] flags: added copper-fade flag to prevent oxidizing copper --- .../worldguard/bukkit/BukkitWorldConfiguration.java | 1 + .../bukkit/listener/WorldGuardBlockListener.java | 10 ++++++++++ .../sk89q/worldguard/config/WorldConfiguration.java | 1 + .../com/sk89q/worldguard/protection/flags/Flags.java | 1 + 4 files changed, 13 insertions(+) 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 936f9803..f204cd2e 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 @@ -281,6 +281,7 @@ public class BukkitWorldConfiguration extends YamlWorldConfiguration { disableCropGrowth = getBoolean("dynamics.disable-crop-growth", false); disableSoilDehydration = getBoolean("dynamics.disable-soil-dehydration", false); disableCoralBlockFade = getBoolean("dynamics.disable-coral-block-fade", false); + disableCopperBlockFade = getBoolean("dynamics.disable-copper-block-fade", false); allowedSnowFallOver = new HashSet<>(convertLegacyBlocks(getStringList("dynamics.snow-fall-blocks", null))); useRegions = getBoolean("regions.enable", true); 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 fbfb75e1..fbba75fd 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 @@ -697,6 +697,16 @@ public class WorldGuardBlockListener extends AbstractListener { event.setCancelled(true); return; } + } else if (Materials.isUnwaxedCopper(event.getBlock().getType())) { + if (wcfg.disableCopperBlockFade) { + event.setCancelled(true); + return; + } + if (wcfg.useRegions && !StateFlag.test(WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery() + .queryState(BukkitAdapter.adapt(event.getBlock().getLocation()), (RegionAssociable) null, Flags.COPPER_FADE))) { + event.setCancelled(true); + return; + } } } 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 33a92339..55f19de1 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 @@ -165,6 +165,7 @@ public abstract class WorldConfiguration { public boolean disableSnowmanTrails; public boolean disableSoilDehydration; public boolean disableCoralBlockFade; + public boolean disableCopperBlockFade; public Set allowedSnowFallOver; public boolean regionInvinciblityRemovesMobs; public boolean regionCancelEmptyChatEvents; 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 b8ccfb3f..24cc675e 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 @@ -125,6 +125,7 @@ public final class Flags { 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)); + public static final StateFlag COPPER_FADE = register(new StateFlag("copper-fade", true)); public static final StateFlag WATER_FLOW = register(new StateFlag("water-flow", true)); public static final StateFlag LAVA_FLOW = register(new StateFlag("lava-flow", true));