diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java index 643da58e5..c4cce5eb0 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -74,8 +74,8 @@ public static void init(File configFile) { commands = new HashMap<>(); commands.put("purpur", new PurpurCommand("purpur")); - version = getInt("config-version", 40); - set("config-version", 40); + version = getInt("config-version", 41); + set("config-version", 41); readConfig(PurpurConfig.class, null); diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index 13d8dce80..1dd74216e 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -2,6 +2,8 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; import java.util.function.Predicate; import java.util.logging.Level; import net.minecraft.core.registries.BuiltInRegistries; @@ -2513,18 +2515,39 @@ private void ravagerSettings() { ravagerScale = Mth.clamp(getDouble("mobs.ravager.attributes.scale", ravagerScale), 0.0625D, 16.0D); ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing); ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater); - getList("mobs.ravager.griefable-blocks", new ArrayList(){{ - add("minecraft:oak_leaves"); - add("minecraft:spruce_leaves"); - add("minecraft:birch_leaves"); - add("minecraft:jungle_leaves"); - add("minecraft:acacia_leaves"); - add("minecraft:dark_oak_leaves"); - add("minecraft:beetroots"); - add("minecraft:carrots"); - add("minecraft:potatoes"); - add("minecraft:wheat"); - }}).forEach(key -> { + List defaultRavagerGriefableBlocks = List.of( + "minecraft:oak_leaves", + "minecraft:spruce_leaves", + "minecraft:birch_leaves", + "minecraft:jungle_leaves", + "minecraft:acacia_leaves", + "minecraft:cherry_leaves", + "minecraft:dark_oak_leaves", + "minecraft:pale_oak_leaves", + "minecraft:mangrove_leaves", + "minecraft:azalea_leaves", + "minecraft:flowering_azalea_leaves", + "minecraft:wheat", + "minecraft:carrots", + "minecraft:potatoes", + "minecraft:torchflower_crop", + "minecraft:pitcher_crop", + "minecraft:beetroots" + ); + if (PurpurConfig.version < 41) { + Set set = new HashSet<>(); + getList("mobs.ravager.griefable-blocks", defaultRavagerGriefableBlocks) + .forEach(key -> set.add(key.toString())); + set.add("minecraft:cherry_leaves"); + set.add("minecraft:pale_oak_leaves"); + set.add("minecraft:mangrove_leaves"); + set.add("minecraft:azalea_leaves"); + set.add("minecraft:flowering_azalea_leaves"); + set.add("minecraft:torchflower_crop"); + set.add("minecraft:pitcher_crop"); + set("mobs.ravager.griefable-blocks", new ArrayList<>(set)); + } + getList("mobs.ravager.griefable-blocks", defaultRavagerGriefableBlocks).forEach(key -> { Block block = BuiltInRegistries.BLOCK.getValue(ResourceLocation.parse(key.toString())); if (!block.defaultBlockState().isAir()) { ravagerGriefableBlocks.add(block);