From 21411de358a87c98df1dd214b0ec0c4b6ad81b58 Mon Sep 17 00:00:00 2001 From: granny Date: Mon, 1 May 2023 01:26:14 -0700 Subject: [PATCH] add cherry_log, cherry_wood, bamboo_block to strippables config --- patches/server/0004-Purpur-config-files.patch | 6 +- .../server/0193-Tool-actionable-options.patch | 12 +- ...0198-Silk-touchable-budding-amethyst.patch | 6 +- .../server/0199-Big-dripleaf-tilt-delay.patch | 4 +- ...e-Enderman-teleport-on-projectile-hi.patch | 6 +- ...izeable-Zombie-Villager-curing-times.patch | 6 +- ...6-Option-for-sponges-to-work-on-lava.patch | 4 +- ...0207-Toggle-for-Wither-s-spawn-sound.patch | 6 +- ...s-breaks-from-solid-neighbors-config.patch | 4 +- .../0210-Conduit-behavior-configuration.patch | 4 +- .../server/0211-Cauldron-fill-chances.patch | 4 +- .../0213-Shulker-change-color-with-dye.patch | 6 +- ...a-blocks-to-grow-into-trees-naturall.patch | 6 +- ...turally-aggressive-to-players-chance.patch | 6 +- ...turally-aggressive-to-players-chance.patch | 6 +- ...or-beds-to-explode-on-villager-sleep.patch | 6 +- ...-Halloween-options-and-optimizations.patch | 4 +- ...-Campfire-option-for-lit-when-placed.patch | 4 +- ...ion-to-disable-zombie-villagers-cure.patch | 6 +- .../server/0229-Signs-allow-color-codes.patch | 6 +- .../0231-Mobs-always-drop-experience.patch | 274 +++++++++--------- ...oe-to-replant-crops-and-nether-warts.patch | 4 +- ...aring-jeb-produces-random-color-wool.patch | 6 +- ...Turtle-eggs-random-tick-crack-chance.patch | 4 +- .../0237-Mob-head-visibility-percent.patch | 18 +- ...-Stop-bees-from-dying-after-stinging.patch | 6 +- ...Configurable-farmland-trample-height.patch | 6 +- .../0246-Configurable-phantom-size.patch | 6 +- ...nfigurable-minimum-demand-for-trades.patch | 6 +- .../0250-Lobotomize-stuck-villagers.patch | 6 +- ...tion-for-villager-display-trade-item.patch | 6 +- ...awner-not-spawning-water-animals-cor.patch | 4 +- .../0254-Anvil-repair-damage-options.patch | 4 +- ...e-turtle-egg-trampling-with-feather-.patch | 4 +- ...urable-search-radius-for-villagers-t.patch | 8 +- patches/server/0260-Stonecutter-damage.patch | 6 +- ...ble-damage-settings-for-magma-blocks.patch | 4 +- ...0262-Add-config-for-snow-on-blue-ice.patch | 4 +- .../0263-Skeletons-eat-wither-roses.patch | 6 +- ...264-Enchantment-Table-Persists-Lapis.patch | 4 +- ...-for-sculk-shrieker-can_summon-state.patch | 4 +- .../0268-Config-to-not-let-coral-die.patch | 4 +- ...281-Add-skeleton-bow-accuracy-option.patch | 6 +- .../server/0282-Allay-respect-item-NBT.patch | 4 +- ...squid-colors-for-rainglow-fabric-mod.patch | 6 +- ...low-creeper-to-encircle-target-when-.patch | 6 +- .../server/0302-End-Crystal-Cramming.patch | 6 +- ...beacon-effects-when-covered-by-tinte.patch | 4 +- ...able-sugarcane-cactus-and-netherwart.patch | 4 +- 49 files changed, 275 insertions(+), 267 deletions(-) diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index e7c3a50bd..d38e5365a 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -179,7 +179,7 @@ index 755c223ab2a046285eb9916b6195093714f4c5ba..5758ce3033c2d4121970eb8757beabc1 .withRequiredArg() diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..bd9ea8dfbd986c96000efb7dc36fc93d12a2c8b9 +index 0000000000000000000000000000000000000000..43884d28fe27962a5ca895315849318975cb3011 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -0,0 +1,175 @@ @@ -260,8 +260,8 @@ index 0000000000000000000000000000000000000000..bd9ea8dfbd986c96000efb7dc36fc93d + commands = new HashMap<>(); + commands.put("purpur", new PurpurCommand("purpur")); + -+ version = getInt("config-version", 31); -+ set("config-version", 31); ++ version = getInt("config-version", 32); ++ set("config-version", 32); + + readConfig(PurpurConfig.class, null); + diff --git a/patches/server/0193-Tool-actionable-options.patch b/patches/server/0193-Tool-actionable-options.patch index 7d7aef3a6..2244aec35 100644 --- a/patches/server/0193-Tool-actionable-options.patch +++ b/patches/server/0193-Tool-actionable-options.patch @@ -122,10 +122,10 @@ index 180aec596110309aade13d2080f8824d152b07cb..c4aec1e5135a79837918b692e75a7b55 return InteractionResult.PASS; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6c912eed4ba23d06152d27c6f5e51780a6b525b2..527a1c3205b2a284096ed308fe7947c4cdde2831 100644 +index 6c912eed4ba23d06152d27c6f5e51780a6b525b2..e7c6f73fecea09c0f26307a9d18a967652f6200a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -524,6 +524,159 @@ public class PurpurWorldConfig { +@@ -524,6 +524,167 @@ public class PurpurWorldConfig { }); } @@ -154,6 +154,11 @@ index 6c912eed4ba23d06152d27c6f5e51780a6b525b2..527a1c3205b2a284096ed308fe7947c4 + PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:mangrove_log", Map.of("into", "minecraft:stripped_mangrove_log", "drops", new HashMap())); + PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:mangrove_wood", Map.of("into", "minecraft:stripped_mangrove_wood", "drops", new HashMap())); + } ++ if (PurpurConfig.version < 32) { ++ PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:cherry_log", Map.of("into", "minecraft:stripped_cherry_log", "drops", new HashMap())); ++ PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:cherry_wood", Map.of("into", "minecraft:stripped_cherry_wood", "drops", new HashMap())); ++ PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:bamboo_block", Map.of("into", "minecraft:stripped_bamboo_block", "drops", new HashMap())); ++ } + getMap("tools.axe.strippables", Map.ofEntries( + Map.entry("minecraft:oak_wood", Map.of("into", "minecraft:stripped_oak_wood", "drops", new HashMap())), + Map.entry("minecraft:oak_log", Map.of("into", "minecraft:stripped_oak_log", "drops", new HashMap())), @@ -169,6 +174,9 @@ index 6c912eed4ba23d06152d27c6f5e51780a6b525b2..527a1c3205b2a284096ed308fe7947c4 + Map.entry("minecraft:spruce_log", Map.of("into", "minecraft:stripped_spruce_log", "drops", new HashMap())), + Map.entry("minecraft:mangrove_wood", Map.of("into", "minecraft:stripped_mangrove_wood", "drops", new HashMap())), + Map.entry("minecraft:mangrove_log", Map.of("into", "minecraft:stripped_mangrove_log", "drops", new HashMap())), ++ Map.entry("minecraft:cherry_log", Map.of("into", "minecraft:stripped_cherry_log", "drops", new HashMap())), ++ Map.entry("minecraft:cherry_wood", Map.of("into", "minecraft:stripped_cherry_wood", "drops", new HashMap())), ++ Map.entry("minecraft:bamboo_block", Map.of("into", "minecraft:stripped_bamboo_block", "drops", new HashMap())), + Map.entry("minecraft:warped_stem", Map.of("into", "minecraft:stripped_warped_stem", "drops", new HashMap())), + Map.entry("minecraft:warped_hyphae", Map.of("into", "minecraft:stripped_warped_hyphae", "drops", new HashMap())), + Map.entry("minecraft:crimson_stem", Map.of("into", "minecraft:stripped_crimson_stem", "drops", new HashMap())), diff --git a/patches/server/0198-Silk-touchable-budding-amethyst.patch b/patches/server/0198-Silk-touchable-budding-amethyst.patch index 188f24a55..36e61735c 100644 --- a/patches/server/0198-Silk-touchable-budding-amethyst.patch +++ b/patches/server/0198-Silk-touchable-budding-amethyst.patch @@ -24,10 +24,10 @@ index bedccb8717d08d5a60058445b04ddff149e7d36c..5293ffca3da94c9c485a87d1232b6a90 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 403420313834bd9f025a8f069291cfea71348804..5e120ed76f0531ee24bd285a1ad16114a571978e 100644 +index a587f7c8eb8400caf37dc87fd305b960ba7cb577..e0597971dbf26d38d69909d50d39c260bc026fd4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -718,6 +718,11 @@ public class PurpurWorldConfig { +@@ -726,6 +726,11 @@ public class PurpurWorldConfig { } } @@ -39,7 +39,7 @@ index 403420313834bd9f025a8f069291cfea71348804..5e120ed76f0531ee24bd285a1ad16114 public boolean chestOpenWithBlockOnTop = false; private void chestSettings() { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); -@@ -2757,3 +2762,4 @@ public class PurpurWorldConfig { +@@ -2765,3 +2770,4 @@ public class PurpurWorldConfig { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } } diff --git a/patches/server/0199-Big-dripleaf-tilt-delay.patch b/patches/server/0199-Big-dripleaf-tilt-delay.patch index 3cc8c675e..2b85a4a54 100644 --- a/patches/server/0199-Big-dripleaf-tilt-delay.patch +++ b/patches/server/0199-Big-dripleaf-tilt-delay.patch @@ -24,10 +24,10 @@ index 8537581e7ca1f4efb492a2e734f46f947f36cffa..5f89229ff68d923c5cdee40e72e379ba if (i != -1) { world.scheduleTick(blockposition, (Block) this, i); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5e120ed76f0531ee24bd285a1ad16114a571978e..312f1a7cc9f15d0cd7627f32cfa9f86ae12eae7a 100644 +index e0597971dbf26d38d69909d50d39c260bc026fd4..c3fc9f7dab12b0dfd7041962191eb419b3199008 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -718,6 +718,22 @@ public class PurpurWorldConfig { +@@ -726,6 +726,22 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0201-Config-to-disable-Enderman-teleport-on-projectile-hi.patch b/patches/server/0201-Config-to-disable-Enderman-teleport-on-projectile-hi.patch index 2b053f544..87cc67a71 100644 --- a/patches/server/0201-Config-to-disable-Enderman-teleport-on-projectile-hi.patch +++ b/patches/server/0201-Config-to-disable-Enderman-teleport-on-projectile-hi.patch @@ -17,10 +17,10 @@ index bfde674f2e5f88cfe9a4c760a9f8eb9038eaef21..0cb3a52990eb17339fbd61e1649a2774 for (int i = 0; i < 64; ++i) { if (this.teleport()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b368159f9e7cb5c048673d3330693f8b02c2a7c1..572e4c14f2dfa3b0ff50c7322932e3083d37fe70 100644 +index 2613b962d13fecc6c6bb029b98ea47b338188b2f..6ea932028d3d429b23f3ed9e5f7fe852a0534ad4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1340,6 +1340,7 @@ public class PurpurWorldConfig { +@@ -1348,6 +1348,7 @@ public class PurpurWorldConfig { public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; @@ -28,7 +28,7 @@ index b368159f9e7cb5c048673d3330693f8b02c2a7c1..572e4c14f2dfa3b0ff50c7322932e308 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1362,6 +1363,7 @@ public class PurpurWorldConfig { +@@ -1370,6 +1371,7 @@ public class PurpurWorldConfig { endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); diff --git a/patches/server/0205-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0205-Customizeable-Zombie-Villager-curing-times.patch index cc841f959..e7b78a80d 100644 --- a/patches/server/0205-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0205-Customizeable-Zombie-Villager-curing-times.patch @@ -18,10 +18,10 @@ index 6e1caf05b5577fec82354b4c59e3f86b3c1c1dbc..a6d9354d8ddac808cc89c5fe70842fc2 return InteractionResult.SUCCESS; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 79d08b70a28c407be3cbdea7a80c38651a068441..08dee270faec81a9b99d8d7ca8fed6ed3eb00cc7 100644 +index 5ddb672215761df5b19cde908ff2d31c933894b1..9c4a8fffcb992e7a1f7422ec1ac1535f795a053d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2741,6 +2741,8 @@ public class PurpurWorldConfig { +@@ -2749,6 +2749,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index 79d08b70a28c407be3cbdea7a80c38651a068441..08dee270faec81a9b99d8d7ca8fed6ed private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2756,6 +2758,8 @@ public class PurpurWorldConfig { +@@ -2764,6 +2766,8 @@ public class PurpurWorldConfig { zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance); zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens); zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater); diff --git a/patches/server/0206-Option-for-sponges-to-work-on-lava.patch b/patches/server/0206-Option-for-sponges-to-work-on-lava.patch index 433773598..9da2de61b 100644 --- a/patches/server/0206-Option-for-sponges-to-work-on-lava.patch +++ b/patches/server/0206-Option-for-sponges-to-work-on-lava.patch @@ -18,10 +18,10 @@ index d96e3fbc0fd4275c29e7e6154ef66e9ed1a5d829..df04a571ebd3c04bc7b58c1ee5661a1f ++i; if (j < world.purpurConfig.spongeAbsorptionRadius) { // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 08dee270faec81a9b99d8d7ca8fed6ed3eb00cc7..7e161a793c13f53104ec7178320ce36c5aa1320c 100644 +index 9c4a8fffcb992e7a1f7422ec1ac1535f795a053d..92d1abe0854603bedfd6f38404d8716d57572be2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -929,9 +929,11 @@ public class PurpurWorldConfig { +@@ -937,9 +937,11 @@ public class PurpurWorldConfig { public int spongeAbsorptionArea = 64; public int spongeAbsorptionRadius = 6; diff --git a/patches/server/0207-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0207-Toggle-for-Wither-s-spawn-sound.patch index 35ee84a8c..5f536a2f0 100644 --- a/patches/server/0207-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0207-Toggle-for-Wither-s-spawn-sound.patch @@ -18,10 +18,10 @@ index eeab4bb9727be75a4167aeb8ed1c80a2a2145be9..b746f793228560275e2a50bd2342f20d // this.world.globalLevelEvent(1023, new BlockPosition(this), 0); int viewDistance = ((ServerLevel) this.level).getCraftServer().getViewDistance() * 16; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7e161a793c13f53104ec7178320ce36c5aa1320c..928b2e580ab629de5f0ad072f9fb62f5df4399cf 100644 +index 92d1abe0854603bedfd6f38404d8716d57572be2..f920f804b22b3fc03f03b66bfc8a382a1d89929f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2586,6 +2586,7 @@ public class PurpurWorldConfig { +@@ -2594,6 +2594,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index 7e161a793c13f53104ec7178320ce36c5aa1320c..928b2e580ab629de5f0ad072f9fb62f5 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2607,6 +2608,7 @@ public class PurpurWorldConfig { +@@ -2615,6 +2616,7 @@ public class PurpurWorldConfig { witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); diff --git a/patches/server/0208-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0208-Cactus-breaks-from-solid-neighbors-config.patch index d8aa64788..c81705b12 100644 --- a/patches/server/0208-Cactus-breaks-from-solid-neighbors-config.patch +++ b/patches/server/0208-Cactus-breaks-from-solid-neighbors-config.patch @@ -18,10 +18,10 @@ index 7579946ce222b6ab3685a7fd9821bcd5a4babe33..2fffe4452d8f3fa5b9365dff1cfe5b5d return false; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 928b2e580ab629de5f0ad072f9fb62f5df4399cf..6b0ed4fc2138f2a8f91cc90af334e4a502929d88 100644 +index f920f804b22b3fc03f03b66bfc8a382a1d89929f..32d2d06e70566bac1cced7e6358acc328e8d56b9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -750,6 +750,11 @@ public class PurpurWorldConfig { +@@ -758,6 +758,11 @@ public class PurpurWorldConfig { buddingAmethystSilkTouch = getBoolean("blocks.budding_amethyst.silk-touch", buddingAmethystSilkTouch); } diff --git a/patches/server/0210-Conduit-behavior-configuration.patch b/patches/server/0210-Conduit-behavior-configuration.patch index 064312ead..54ee65d5c 100644 --- a/patches/server/0210-Conduit-behavior-configuration.patch +++ b/patches/server/0210-Conduit-behavior-configuration.patch @@ -77,10 +77,10 @@ index 963a596154091b79ca139af6274aa323518ad1ad..4dcac3899a500d8586580bcfd5b4516e }); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index daf3c30dc7f8d40e6e71184b6e0a2f5305027849..b4488467a30e40d9b89a979819142d8863444778 100644 +index 87b54db440a793f805cfa6abfe9d5c5b6f37aaae..944ea228713704695dfaf4c673178ceb73d08008 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2805,5 +2805,28 @@ public class PurpurWorldConfig { +@@ -2813,5 +2813,28 @@ public class PurpurWorldConfig { private void hungerSettings() { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } diff --git a/patches/server/0211-Cauldron-fill-chances.patch b/patches/server/0211-Cauldron-fill-chances.patch index fc56540ee..a9754695f 100644 --- a/patches/server/0211-Cauldron-fill-chances.patch +++ b/patches/server/0211-Cauldron-fill-chances.patch @@ -47,10 +47,10 @@ index 6b909d41ccdf6c1ac3ac0c4e673ff52f0d14a238..b8f69063cec4d31c9d9525a04c46ed89 if (dripChance < f1) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b4488467a30e40d9b89a979819142d8863444778..7265366cf680f8587b49995705a3f5a1083c67fe 100644 +index 944ea228713704695dfaf4c673178ceb73d08008..711cc863c06731e347893c75fe84d9873859297e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2828,5 +2828,16 @@ public class PurpurWorldConfig { +@@ -2836,5 +2836,16 @@ public class PurpurWorldConfig { }); conduitBlocks = conduitBlockList.toArray(Block[]::new); } diff --git a/patches/server/0213-Shulker-change-color-with-dye.patch b/patches/server/0213-Shulker-change-color-with-dye.patch index 9c1726db8..6caf037ef 100644 --- a/patches/server/0213-Shulker-change-color-with-dye.patch +++ b/patches/server/0213-Shulker-change-color-with-dye.patch @@ -47,10 +47,10 @@ index 144a872afd4585767d1e96c3e51d4b9fd87dbf89..ec90f23f64ce4fefa0960ae9ddf72b77 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ec5adf9fafbfa451ba610f132c8dc249c7bf4812..2c6e4905e691338de60d60cfe27fefce1854e102 100644 +index 5356508723b92fa608c86179d0de5850f240ecaf..ae41ff2cd534efaacf8ca1f108b7cdc079b2a1b5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2148,6 +2148,7 @@ public class PurpurWorldConfig { +@@ -2156,6 +2156,7 @@ public class PurpurWorldConfig { public double shulkerSpawnFromBulletNearbyRange = 8.0D; public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; @@ -58,7 +58,7 @@ index ec5adf9fafbfa451ba610f132c8dc249c7bf4812..2c6e4905e691338de60d60cfe27fefce private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2164,6 +2165,7 @@ public class PurpurWorldConfig { +@@ -2172,6 +2173,7 @@ public class PurpurWorldConfig { shulkerSpawnFromBulletNearbyRange = getDouble("mobs.shulker.spawn-from-bullet.nearby-range", shulkerSpawnFromBulletNearbyRange); shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); diff --git a/patches/server/0217-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0217-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index c4feebd5f..b97a3bd66 100644 --- a/patches/server/0217-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0217-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch @@ -45,10 +45,10 @@ index 8584a65433555133cdcfc24a078fb0b53b9f83bc..4afc4670f9b00a4087410ec366fe45fe public static final Block PINK_PETALS = register("pink_petals", new PinkPetalsBlock(BlockBehaviour.Properties.of(Material.PLANT).noCollission().sound(SoundType.PINK_PETALS).requiredFeatures(FeatureFlags.UPDATE_1_20))); public static final Block MOSS_BLOCK = register("moss_block", new MossBlock(BlockBehaviour.Properties.of(Material.MOSS, MaterialColor.COLOR_GREEN).strength(0.1F).sound(SoundType.MOSS))); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2faddfef9b38d35cfcd6ffdb8a93b0c831f59bf2..983ce2c38f27be08cb9a95305ff465222c8d307a 100644 +index c62c3b29fd9178952610f47d5fc30096cd2829da..b0b0f8b250a789e1e137305cbec4722e91b8047d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -705,6 +705,11 @@ public class PurpurWorldConfig { +@@ -713,6 +713,11 @@ public class PurpurWorldConfig { anvilColorsUseMiniMessage = getBoolean("blocks.anvil.use-mini-message", anvilColorsUseMiniMessage); } @@ -60,7 +60,7 @@ index 2faddfef9b38d35cfcd6ffdb8a93b0c831f59bf2..983ce2c38f27be08cb9a95305ff46522 public int beaconLevelOne = 20; public int beaconLevelTwo = 30; public int beaconLevelThree = 40; -@@ -847,6 +852,11 @@ public class PurpurWorldConfig { +@@ -855,6 +860,11 @@ public class PurpurWorldConfig { farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); } diff --git a/patches/server/0219-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0219-Dolphins-naturally-aggressive-to-players-chance.patch index 3381222f9..3647e43de 100644 --- a/patches/server/0219-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0219-Dolphins-naturally-aggressive-to-players-chance.patch @@ -47,10 +47,10 @@ index f8d3a5d2dc254501c7e4405444ed4439f9af915e..c038a23c4e19c5bf160792cf599acc8f public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 19108c36e9ceeb28c74f7b87547d5ad6ea267f2e..16954ae2a65b54b77807b5fcb6b07da3b4aa4056 100644 +index ec8ce58e11a31d5de4db55cd4030aa3526161d49..989347b0958fb096437d9c3fd7004b32dc335944 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1246,6 +1246,7 @@ public class PurpurWorldConfig { +@@ -1254,6 +1254,7 @@ public class PurpurWorldConfig { public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 19108c36e9ceeb28c74f7b87547d5ad6ea267f2e..16954ae2a65b54b77807b5fcb6b07da3 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1260,6 +1261,7 @@ public class PurpurWorldConfig { +@@ -1268,6 +1269,7 @@ public class PurpurWorldConfig { dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); diff --git a/patches/server/0220-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0220-Cows-naturally-aggressive-to-players-chance.patch index adb568664..9228e236a 100644 --- a/patches/server/0220-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0220-Cows-naturally-aggressive-to-players-chance.patch @@ -59,10 +59,10 @@ index d1966126950d086649c1e3c7cd140669c36d7e76..f6dc68ddea67e9573d2420c8f852b092 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 16954ae2a65b54b77807b5fcb6b07da3b4aa4056..ae9da2623c3018df84eda987984ec518b9d73324 100644 +index 989347b0958fb096437d9c3fd7004b32dc335944..9394684fa1bf26954cb878d4a2b7066502979d38 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1195,7 +1195,14 @@ public class PurpurWorldConfig { +@@ -1203,7 +1203,14 @@ public class PurpurWorldConfig { public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; public boolean cowTakeDamageFromWater = false; @@ -77,7 +77,7 @@ index 16954ae2a65b54b77807b5fcb6b07da3b4aa4056..ae9da2623c3018df84eda987984ec518 cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); cowControllable = getBoolean("mobs.cow.controllable", cowControllable); -@@ -1208,6 +1215,8 @@ public class PurpurWorldConfig { +@@ -1216,6 +1223,8 @@ public class PurpurWorldConfig { cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks); cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); diff --git a/patches/server/0221-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0221-Option-for-beds-to-explode-on-villager-sleep.patch index cb8552170..15274b98c 100644 --- a/patches/server/0221-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0221-Option-for-beds-to-explode-on-villager-sleep.patch @@ -22,10 +22,10 @@ index 401d0885852edbb30b12cfb58c86479d722143ff..2e759f0b3766377c65608deb3d1859c7 this.brain.setMemory(MemoryModuleType.LAST_SLEPT, this.level.getGameTime()); // CraftBukkit - decompile error this.brain.eraseMemory(MemoryModuleType.WALK_TARGET); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ae9da2623c3018df84eda987984ec518b9d73324..a2f76543ad4ecf72da6414005b9621b633241023 100644 +index 9394684fa1bf26954cb878d4a2b7066502979d38..07a35c7b9b329e0967bb2ea78c6d060b40544eb6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -724,6 +724,7 @@ public class PurpurWorldConfig { +@@ -732,6 +732,7 @@ public class PurpurWorldConfig { } public boolean bedExplode = true; @@ -33,7 +33,7 @@ index ae9da2623c3018df84eda987984ec518b9d73324..a2f76543ad4ecf72da6414005b9621b6 public double bedExplosionPower = 5.0D; public boolean bedExplosionFire = true; public net.minecraft.world.level.Level.ExplosionInteraction bedExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; -@@ -734,6 +735,7 @@ public class PurpurWorldConfig { +@@ -742,6 +743,7 @@ public class PurpurWorldConfig { } } bedExplode = getBoolean("blocks.bed.explode", bedExplode); diff --git a/patches/server/0222-Halloween-options-and-optimizations.patch b/patches/server/0222-Halloween-options-and-optimizations.patch index 77fc23614..fd2a32169 100644 --- a/patches/server/0222-Halloween-options-and-optimizations.patch +++ b/patches/server/0222-Halloween-options-and-optimizations.patch @@ -60,10 +60,10 @@ index 114093185454a428e0ef9f0877ea4efd9532c2f8..d2ab6c240bc45f1c19ade78a7c050930 this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a2f76543ad4ecf72da6414005b9621b633241023..1284ca0c89647e22a13734540e1dbe82f841f922 100644 +index 07a35c7b9b329e0967bb2ea78c6d060b40544eb6..695b480b3fbb0e0e8f9fc9e42abce32772f64c2e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1588,6 +1588,13 @@ public class PurpurWorldConfig { +@@ -1596,6 +1596,13 @@ public class PurpurWorldConfig { guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); } diff --git a/patches/server/0225-Campfire-option-for-lit-when-placed.patch b/patches/server/0225-Campfire-option-for-lit-when-placed.patch index 38d29a0ab..01a6dda13 100644 --- a/patches/server/0225-Campfire-option-for-lit-when-placed.patch +++ b/patches/server/0225-Campfire-option-for-lit-when-placed.patch @@ -18,10 +18,10 @@ index 219c87dcf065e86512f330fbeec59e55f4675083..f8fd3b320494d1c1e8ee3d170f2feebd @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1284ca0c89647e22a13734540e1dbe82f841f922..ee99154939a311ccfeb837e40bf6965e853622fd 100644 +index 695b480b3fbb0e0e8f9fc9e42abce32772f64c2e..128b18135799b7934818f3c8a7a864d04a8a417e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -772,6 +772,11 @@ public class PurpurWorldConfig { +@@ -780,6 +780,11 @@ public class PurpurWorldConfig { cactusBreaksFromSolidNeighbors = getBoolean("blocks.cactus.breaks-from-solid-neighbors", cactusBreaksFromSolidNeighbors); } diff --git a/patches/server/0227-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0227-Add-option-to-disable-zombie-villagers-cure.patch index eac642fd5..0fc6b127c 100644 --- a/patches/server/0227-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0227-Add-option-to-disable-zombie-villagers-cure.patch @@ -18,10 +18,10 @@ index a6d9354d8ddac808cc89c5fe70842fc2472ff6fa..87556ffdfb93eba9c84931b1f922b936 itemstack.shrink(1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c956df1d71a66b2838a2cf9b8ea14fba907d25bf..844b0d69f64702ca65aa4aaa09f0e8055ea7c62c 100644 +index ddb3b1a8da6c96d1e388e9d2022724d7606ba2a0..4abce335a3089c04572b3867c9a585600e58a96a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2805,6 +2805,7 @@ public class PurpurWorldConfig { +@@ -2813,6 +2813,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index c956df1d71a66b2838a2cf9b8ea14fba907d25bf..844b0d69f64702ca65aa4aaa09f0e805 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2822,6 +2823,7 @@ public class PurpurWorldConfig { +@@ -2830,6 +2831,7 @@ public class PurpurWorldConfig { zombieVillagerTakeDamageFromWater = getBoolean("mobs.zombie_villager.takes-damage-from-water", zombieVillagerTakeDamageFromWater); zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); diff --git a/patches/server/0229-Signs-allow-color-codes.patch b/patches/server/0229-Signs-allow-color-codes.patch index 5d7604b33..269dff72a 100644 --- a/patches/server/0229-Signs-allow-color-codes.patch +++ b/patches/server/0229-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e79f0c9832927ba9b03c68669c5bb0fb5586d37a..15a5ad23531848dce7c6b0be9eefefb70e150608 100644 +index 9965a41fdde5152f7aedcc536cf7494362a88f4b..a42944ccf7ffa4c70ab65eaf692d7db8d9880bb0 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1527,6 +1527,7 @@ public class ServerPlayer extends Player { @@ -70,10 +70,10 @@ index 4da4edae517a0efec6e03a719ec47b700509dab1..9e760a8e8244b15daaf0abdfc5f8a51d public CompoundTag getUpdateTag() { return this.saveWithoutMetadata(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c304ce978e7468ce6e5005468d6075616f2a7ae3..94670e18d27875a5fca3b76ee0ebb329cfb59bd1 100644 +index 6cc896727c698f196ca36fe5d3e431e2527e6816..0e0cc6bc1b32b64b9776d88cbcbf83913af20f33 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -953,8 +953,10 @@ public class PurpurWorldConfig { +@@ -961,8 +961,10 @@ public class PurpurWorldConfig { } public boolean signRightClickEdit = false; diff --git a/patches/server/0231-Mobs-always-drop-experience.patch b/patches/server/0231-Mobs-always-drop-experience.patch index bf199c1f9..3536bc7e0 100644 --- a/patches/server/0231-Mobs-always-drop-experience.patch +++ b/patches/server/0231-Mobs-always-drop-experience.patch @@ -1157,10 +1157,10 @@ index 6af1d1b3b40d91fd3e0ac269d0e4a60a104be7b8..fef9fd3e50bba3d0fffa3d61b60f3bb8 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b1932f068263 100644 +index 0e0cc6bc1b32b64b9776d88cbcbf83913af20f33..223a20d6aa5c1d7f50da1d1df237687e18eb4bdc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1019,12 +1019,14 @@ public class PurpurWorldConfig { +@@ -1027,12 +1027,14 @@ public class PurpurWorldConfig { public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; public boolean axolotlTakeDamageFromWater = false; @@ -1175,7 +1175,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean batRidable = false; -@@ -1040,6 +1042,7 @@ public class PurpurWorldConfig { +@@ -1048,6 +1050,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1183,7 +1183,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1052,6 +1055,7 @@ public class PurpurWorldConfig { +@@ -1060,6 +1063,7 @@ public class PurpurWorldConfig { } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater); @@ -1191,7 +1191,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean beeRidable = false; -@@ -1063,6 +1067,7 @@ public class PurpurWorldConfig { +@@ -1071,6 +1075,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = false; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1199,7 +1199,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1078,6 +1083,7 @@ public class PurpurWorldConfig { +@@ -1086,6 +1091,7 @@ public class PurpurWorldConfig { beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); @@ -1207,7 +1207,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean blazeRidable = false; -@@ -1086,6 +1092,7 @@ public class PurpurWorldConfig { +@@ -1094,6 +1100,7 @@ public class PurpurWorldConfig { public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; public boolean blazeTakeDamageFromWater = true; @@ -1215,7 +1215,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1098,6 +1105,7 @@ public class PurpurWorldConfig { +@@ -1106,6 +1113,7 @@ public class PurpurWorldConfig { } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater); @@ -1223,7 +1223,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public int camelBreedingTicks = 6000; -@@ -1127,6 +1135,7 @@ public class PurpurWorldConfig { +@@ -1135,6 +1143,7 @@ public class PurpurWorldConfig { public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; public boolean catTakeDamageFromWater = false; @@ -1231,7 +1231,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1147,6 +1156,7 @@ public class PurpurWorldConfig { +@@ -1155,6 +1164,7 @@ public class PurpurWorldConfig { catDefaultCollarColor = DyeColor.RED; } catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1239,7 +1239,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean caveSpiderRidable = false; -@@ -1154,6 +1164,7 @@ public class PurpurWorldConfig { +@@ -1162,6 +1172,7 @@ public class PurpurWorldConfig { public boolean caveSpiderControllable = true; public double caveSpiderMaxHealth = 12.0D; public boolean caveSpiderTakeDamageFromWater = false; @@ -1247,7 +1247,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1165,6 +1176,7 @@ public class PurpurWorldConfig { +@@ -1173,6 +1184,7 @@ public class PurpurWorldConfig { } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater); @@ -1255,7 +1255,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean chickenRidable = false; -@@ -1174,6 +1186,7 @@ public class PurpurWorldConfig { +@@ -1182,6 +1194,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1263,7 +1263,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1187,12 +1200,14 @@ public class PurpurWorldConfig { +@@ -1195,12 +1208,14 @@ public class PurpurWorldConfig { chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater); @@ -1278,7 +1278,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -1203,6 +1218,7 @@ public class PurpurWorldConfig { +@@ -1211,6 +1226,7 @@ public class PurpurWorldConfig { } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater); @@ -1286,7 +1286,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean cowRidable = false; -@@ -1214,6 +1230,7 @@ public class PurpurWorldConfig { +@@ -1222,6 +1238,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1294,7 +1294,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1234,6 +1251,7 @@ public class PurpurWorldConfig { +@@ -1242,6 +1259,7 @@ public class PurpurWorldConfig { cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); cowNaturallyAggressiveToPlayersChance = getDouble("mobs.cow.naturally-aggressive-to-players.chance", cowNaturallyAggressiveToPlayersChance); cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage); @@ -1302,7 +1302,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean creeperRidable = false; -@@ -1246,6 +1264,7 @@ public class PurpurWorldConfig { +@@ -1254,6 +1272,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1310,7 +1310,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1262,6 +1281,7 @@ public class PurpurWorldConfig { +@@ -1270,6 +1289,7 @@ public class PurpurWorldConfig { creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); @@ -1318,7 +1318,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean dolphinRidable = false; -@@ -1273,6 +1293,7 @@ public class PurpurWorldConfig { +@@ -1281,6 +1301,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1326,7 +1326,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1288,6 +1309,7 @@ public class PurpurWorldConfig { +@@ -1296,6 +1317,7 @@ public class PurpurWorldConfig { dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); dolphinNaturallyAggressiveToPlayersChance = getDouble("mobs.dolphin.naturally-aggressive-to-players-chance", dolphinNaturallyAggressiveToPlayersChance); @@ -1334,7 +1334,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean donkeyRidableInWater = false; -@@ -1299,6 +1321,7 @@ public class PurpurWorldConfig { +@@ -1307,6 +1329,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1342,7 +1342,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1316,6 +1339,7 @@ public class PurpurWorldConfig { +@@ -1324,6 +1347,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); donkeyTakeDamageFromWater = getBoolean("mobs.donkey.takes-damage-from-water", donkeyTakeDamageFromWater); @@ -1350,7 +1350,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean drownedRidable = false; -@@ -1328,6 +1352,7 @@ public class PurpurWorldConfig { +@@ -1336,6 +1360,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1358,7 +1358,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1344,12 +1369,14 @@ public class PurpurWorldConfig { +@@ -1352,12 +1377,14 @@ public class PurpurWorldConfig { drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors); @@ -1373,7 +1373,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -1360,6 +1387,7 @@ public class PurpurWorldConfig { +@@ -1368,6 +1395,7 @@ public class PurpurWorldConfig { } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater); @@ -1381,7 +1381,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean enderDragonRidable = false; -@@ -1405,6 +1433,7 @@ public class PurpurWorldConfig { +@@ -1413,6 +1441,7 @@ public class PurpurWorldConfig { public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1389,7 +1389,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1428,6 +1457,7 @@ public class PurpurWorldConfig { +@@ -1436,6 +1465,7 @@ public class PurpurWorldConfig { endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles); @@ -1397,7 +1397,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean endermiteRidable = false; -@@ -1435,6 +1465,7 @@ public class PurpurWorldConfig { +@@ -1443,6 +1473,7 @@ public class PurpurWorldConfig { public boolean endermiteControllable = true; public double endermiteMaxHealth = 8.0D; public boolean endermiteTakeDamageFromWater = false; @@ -1405,7 +1405,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1446,6 +1477,7 @@ public class PurpurWorldConfig { +@@ -1454,6 +1485,7 @@ public class PurpurWorldConfig { } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater); @@ -1413,7 +1413,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean evokerRidable = false; -@@ -1454,6 +1486,7 @@ public class PurpurWorldConfig { +@@ -1462,6 +1494,7 @@ public class PurpurWorldConfig { public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1421,7 +1421,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1466,6 +1499,7 @@ public class PurpurWorldConfig { +@@ -1474,6 +1507,7 @@ public class PurpurWorldConfig { evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater); @@ -1429,7 +1429,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean foxRidable = false; -@@ -1476,6 +1510,7 @@ public class PurpurWorldConfig { +@@ -1484,6 +1518,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1437,7 +1437,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1490,6 +1525,7 @@ public class PurpurWorldConfig { +@@ -1498,6 +1533,7 @@ public class PurpurWorldConfig { foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); foxTakeDamageFromWater = getBoolean("mobs.fox.takes-damage-from-water", foxTakeDamageFromWater); @@ -1445,7 +1445,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean frogRidable = false; -@@ -1511,6 +1547,7 @@ public class PurpurWorldConfig { +@@ -1519,6 +1555,7 @@ public class PurpurWorldConfig { public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; public boolean ghastTakeDamageFromWater = false; @@ -1453,7 +1453,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1523,6 +1560,7 @@ public class PurpurWorldConfig { +@@ -1531,6 +1568,7 @@ public class PurpurWorldConfig { } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater); @@ -1461,7 +1461,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean giantRidable = false; -@@ -1536,6 +1574,7 @@ public class PurpurWorldConfig { +@@ -1544,6 +1582,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1469,7 +1469,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1557,6 +1596,7 @@ public class PurpurWorldConfig { +@@ -1565,6 +1604,7 @@ public class PurpurWorldConfig { giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); giantTakeDamageFromWater = getBoolean("mobs.giant.takes-damage-from-water", giantTakeDamageFromWater); @@ -1477,7 +1477,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean glowSquidRidable = false; -@@ -1564,12 +1604,14 @@ public class PurpurWorldConfig { +@@ -1572,12 +1612,14 @@ public class PurpurWorldConfig { public double glowSquidMaxHealth = 10.0D; public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; @@ -1492,7 +1492,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean goatRidable = false; -@@ -1578,6 +1620,7 @@ public class PurpurWorldConfig { +@@ -1586,6 +1628,7 @@ public class PurpurWorldConfig { public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1500,7 +1500,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void goatSettings() { goatRidable = getBoolean("mobs.goat.ridable", goatRidable); goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater); -@@ -1585,12 +1628,14 @@ public class PurpurWorldConfig { +@@ -1593,12 +1636,14 @@ public class PurpurWorldConfig { goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth); goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks); goatTakeDamageFromWater = getBoolean("mobs.goat.takes-damage-from-water", goatTakeDamageFromWater); @@ -1515,7 +1515,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1601,6 +1646,7 @@ public class PurpurWorldConfig { +@@ -1609,6 +1654,7 @@ public class PurpurWorldConfig { } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); @@ -1523,7 +1523,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean forceHalloweenSeason = false; -@@ -1616,6 +1662,7 @@ public class PurpurWorldConfig { +@@ -1624,6 +1670,7 @@ public class PurpurWorldConfig { public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1531,7 +1531,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1628,6 +1675,7 @@ public class PurpurWorldConfig { +@@ -1636,6 +1683,7 @@ public class PurpurWorldConfig { hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater); @@ -1539,7 +1539,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean horseRidableInWater = false; -@@ -1639,6 +1687,7 @@ public class PurpurWorldConfig { +@@ -1647,6 +1695,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; @@ -1547,7 +1547,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1656,6 +1705,7 @@ public class PurpurWorldConfig { +@@ -1664,6 +1713,7 @@ public class PurpurWorldConfig { horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); @@ -1555,7 +1555,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean huskRidable = false; -@@ -1667,6 +1717,7 @@ public class PurpurWorldConfig { +@@ -1675,6 +1725,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1563,7 +1563,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1682,6 +1733,7 @@ public class PurpurWorldConfig { +@@ -1690,6 +1741,7 @@ public class PurpurWorldConfig { huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater); @@ -1571,7 +1571,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean illusionerRidable = false; -@@ -1691,6 +1743,7 @@ public class PurpurWorldConfig { +@@ -1699,6 +1751,7 @@ public class PurpurWorldConfig { public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1579,7 +1579,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1708,6 +1761,7 @@ public class PurpurWorldConfig { +@@ -1716,6 +1769,7 @@ public class PurpurWorldConfig { } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater); @@ -1587,7 +1587,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean ironGolemRidable = false; -@@ -1718,6 +1772,7 @@ public class PurpurWorldConfig { +@@ -1726,6 +1780,7 @@ public class PurpurWorldConfig { public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; public boolean ironGolemHealCalm = false; @@ -1595,7 +1595,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1732,6 +1787,7 @@ public class PurpurWorldConfig { +@@ -1740,6 +1795,7 @@ public class PurpurWorldConfig { ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm); ironGolemHealCalm = getBoolean("mobs.iron_golem.healing-calms-anger", ironGolemHealCalm); @@ -1603,7 +1603,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean llamaRidable = false; -@@ -1746,6 +1802,7 @@ public class PurpurWorldConfig { +@@ -1754,6 +1810,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1611,7 +1611,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1766,6 +1823,7 @@ public class PurpurWorldConfig { +@@ -1774,6 +1831,7 @@ public class PurpurWorldConfig { llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans); @@ -1619,7 +1619,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean magmaCubeRidable = false; -@@ -1776,6 +1834,7 @@ public class PurpurWorldConfig { +@@ -1784,6 +1842,7 @@ public class PurpurWorldConfig { public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1790,6 +1849,7 @@ public class PurpurWorldConfig { +@@ -1798,6 +1857,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean mooshroomRidable = false; -@@ -1798,6 +1858,7 @@ public class PurpurWorldConfig { +@@ -1806,6 +1866,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1810,6 +1871,7 @@ public class PurpurWorldConfig { +@@ -1818,6 +1879,7 @@ public class PurpurWorldConfig { mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater); @@ -1651,7 +1651,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean muleRidableInWater = false; -@@ -1821,6 +1883,7 @@ public class PurpurWorldConfig { +@@ -1829,6 +1891,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1838,6 +1901,7 @@ public class PurpurWorldConfig { +@@ -1846,6 +1909,7 @@ public class PurpurWorldConfig { muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater); @@ -1667,7 +1667,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean ocelotRidable = false; -@@ -1846,6 +1910,7 @@ public class PurpurWorldConfig { +@@ -1854,6 +1918,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1858,6 +1923,7 @@ public class PurpurWorldConfig { +@@ -1866,6 +1931,7 @@ public class PurpurWorldConfig { ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); @@ -1683,7 +1683,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean pandaRidable = false; -@@ -1866,6 +1932,7 @@ public class PurpurWorldConfig { +@@ -1874,6 +1940,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1878,6 +1945,7 @@ public class PurpurWorldConfig { +@@ -1886,6 +1953,7 @@ public class PurpurWorldConfig { pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater); @@ -1699,7 +1699,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean parrotRidable = false; -@@ -1887,6 +1955,7 @@ public class PurpurWorldConfig { +@@ -1895,6 +1963,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1900,6 +1969,7 @@ public class PurpurWorldConfig { +@@ -1908,6 +1977,7 @@ public class PurpurWorldConfig { parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable); @@ -1715,7 +1715,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean phantomRidable = false; -@@ -1927,6 +1997,7 @@ public class PurpurWorldConfig { +@@ -1935,6 +2005,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1962,6 +2033,7 @@ public class PurpurWorldConfig { +@@ -1970,6 +2041,7 @@ public class PurpurWorldConfig { phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); @@ -1731,7 +1731,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean pigRidable = false; -@@ -1971,6 +2043,7 @@ public class PurpurWorldConfig { +@@ -1979,6 +2051,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1984,6 +2057,7 @@ public class PurpurWorldConfig { +@@ -1992,6 +2065,7 @@ public class PurpurWorldConfig { pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater); @@ -1747,7 +1747,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean piglinRidable = false; -@@ -1993,6 +2067,7 @@ public class PurpurWorldConfig { +@@ -2001,6 +2075,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2006,6 +2081,7 @@ public class PurpurWorldConfig { +@@ -2014,6 +2089,7 @@ public class PurpurWorldConfig { piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); @@ -1763,7 +1763,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean piglinBruteRidable = false; -@@ -2013,6 +2089,7 @@ public class PurpurWorldConfig { +@@ -2021,6 +2097,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2024,6 +2101,7 @@ public class PurpurWorldConfig { +@@ -2032,6 +2109,7 @@ public class PurpurWorldConfig { } piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater); @@ -1779,7 +1779,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean pillagerRidable = false; -@@ -2032,6 +2110,7 @@ public class PurpurWorldConfig { +@@ -2040,6 +2118,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2044,6 +2123,7 @@ public class PurpurWorldConfig { +@@ -2052,6 +2131,7 @@ public class PurpurWorldConfig { pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater); @@ -1795,7 +1795,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean polarBearRidable = false; -@@ -2054,6 +2134,7 @@ public class PurpurWorldConfig { +@@ -2062,6 +2142,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2069,12 +2150,14 @@ public class PurpurWorldConfig { +@@ -2077,12 +2158,14 @@ public class PurpurWorldConfig { if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater); @@ -1818,7 +1818,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2085,6 +2168,7 @@ public class PurpurWorldConfig { +@@ -2093,6 +2176,7 @@ public class PurpurWorldConfig { } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater); @@ -1826,7 +1826,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean rabbitRidable = false; -@@ -2096,6 +2180,7 @@ public class PurpurWorldConfig { +@@ -2104,6 +2188,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2111,6 +2196,7 @@ public class PurpurWorldConfig { +@@ -2119,6 +2204,7 @@ public class PurpurWorldConfig { rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater); @@ -1842,7 +1842,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean ravagerRidable = false; -@@ -2120,6 +2206,7 @@ public class PurpurWorldConfig { +@@ -2128,6 +2214,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2149,12 +2236,14 @@ public class PurpurWorldConfig { +@@ -2157,12 +2244,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2165,6 +2254,7 @@ public class PurpurWorldConfig { +@@ -2173,6 +2262,7 @@ public class PurpurWorldConfig { } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater); @@ -1873,7 +1873,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean sheepRidable = false; -@@ -2174,6 +2264,7 @@ public class PurpurWorldConfig { +@@ -2182,6 +2272,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2187,6 +2278,7 @@ public class PurpurWorldConfig { +@@ -2195,6 +2286,7 @@ public class PurpurWorldConfig { sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); @@ -1889,7 +1889,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean shulkerRidable = false; -@@ -2200,6 +2292,7 @@ public class PurpurWorldConfig { +@@ -2208,6 +2300,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2217,6 +2310,7 @@ public class PurpurWorldConfig { +@@ -2225,6 +2318,7 @@ public class PurpurWorldConfig { shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); shulkerChangeColorWithDye = getBoolean("mobs.shulker.change-color-with-dye", shulkerChangeColorWithDye); @@ -1905,7 +1905,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean silverfishRidable = false; -@@ -2225,6 +2319,7 @@ public class PurpurWorldConfig { +@@ -2233,6 +2327,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2237,6 +2332,7 @@ public class PurpurWorldConfig { +@@ -2245,6 +2340,7 @@ public class PurpurWorldConfig { silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater); @@ -1921,7 +1921,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean skeletonRidable = false; -@@ -2244,6 +2340,7 @@ public class PurpurWorldConfig { +@@ -2252,6 +2348,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2255,6 +2352,7 @@ public class PurpurWorldConfig { +@@ -2263,6 +2360,7 @@ public class PurpurWorldConfig { } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); @@ -1937,7 +1937,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean skeletonHorseRidableInWater = true; -@@ -2266,6 +2364,7 @@ public class PurpurWorldConfig { +@@ -2274,6 +2372,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -2282,6 +2381,7 @@ public class PurpurWorldConfig { +@@ -2290,6 +2389,7 @@ public class PurpurWorldConfig { skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater); @@ -1953,7 +1953,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean slimeRidable = false; -@@ -2292,6 +2392,7 @@ public class PurpurWorldConfig { +@@ -2300,6 +2400,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2306,6 +2407,7 @@ public class PurpurWorldConfig { +@@ -2314,6 +2415,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean snowGolemRidable = false; -@@ -2321,6 +2423,7 @@ public class PurpurWorldConfig { +@@ -2329,6 +2431,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2340,6 +2443,7 @@ public class PurpurWorldConfig { +@@ -2348,6 +2451,7 @@ public class PurpurWorldConfig { snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); @@ -1985,7 +1985,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean snifferRidable = false; -@@ -2362,6 +2466,7 @@ public class PurpurWorldConfig { +@@ -2370,6 +2474,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2375,6 +2480,7 @@ public class PurpurWorldConfig { +@@ -2383,6 +2488,7 @@ public class PurpurWorldConfig { squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater); @@ -2001,7 +2001,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean spiderRidable = false; -@@ -2382,6 +2488,7 @@ public class PurpurWorldConfig { +@@ -2390,6 +2496,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2393,6 +2500,7 @@ public class PurpurWorldConfig { +@@ -2401,6 +2508,7 @@ public class PurpurWorldConfig { } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); @@ -2017,7 +2017,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean strayRidable = false; -@@ -2400,6 +2508,7 @@ public class PurpurWorldConfig { +@@ -2408,6 +2516,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2411,6 +2520,7 @@ public class PurpurWorldConfig { +@@ -2419,6 +2528,7 @@ public class PurpurWorldConfig { } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater); @@ -2033,7 +2033,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean striderRidable = false; -@@ -2420,6 +2530,7 @@ public class PurpurWorldConfig { +@@ -2428,6 +2538,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2433,6 +2544,7 @@ public class PurpurWorldConfig { +@@ -2441,6 +2552,7 @@ public class PurpurWorldConfig { striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater); @@ -2049,7 +2049,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean tadpoleRidable = false; -@@ -2455,6 +2567,7 @@ public class PurpurWorldConfig { +@@ -2463,6 +2575,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2474,12 +2587,14 @@ public class PurpurWorldConfig { +@@ -2482,12 +2595,14 @@ public class PurpurWorldConfig { traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater); @@ -2072,7 +2072,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2490,6 +2605,7 @@ public class PurpurWorldConfig { +@@ -2498,6 +2613,7 @@ public class PurpurWorldConfig { } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater); @@ -2080,7 +2080,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean turtleRidable = false; -@@ -2498,6 +2614,7 @@ public class PurpurWorldConfig { +@@ -2506,6 +2622,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2510,6 +2627,7 @@ public class PurpurWorldConfig { +@@ -2518,6 +2635,7 @@ public class PurpurWorldConfig { turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater); @@ -2096,7 +2096,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean vexRidable = false; -@@ -2518,6 +2636,7 @@ public class PurpurWorldConfig { +@@ -2526,6 +2644,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2530,6 +2649,7 @@ public class PurpurWorldConfig { +@@ -2538,6 +2657,7 @@ public class PurpurWorldConfig { } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater); @@ -2112,7 +2112,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean villagerRidable = false; -@@ -2545,6 +2665,7 @@ public class PurpurWorldConfig { +@@ -2553,6 +2673,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2564,6 +2685,7 @@ public class PurpurWorldConfig { +@@ -2572,6 +2693,7 @@ public class PurpurWorldConfig { villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); @@ -2128,7 +2128,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean vindicatorRidable = false; -@@ -2572,6 +2694,7 @@ public class PurpurWorldConfig { +@@ -2580,6 +2702,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2584,6 +2707,7 @@ public class PurpurWorldConfig { +@@ -2592,6 +2715,7 @@ public class PurpurWorldConfig { vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater); @@ -2144,7 +2144,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean wanderingTraderRidable = false; -@@ -2594,6 +2718,7 @@ public class PurpurWorldConfig { +@@ -2602,6 +2726,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2608,6 +2733,7 @@ public class PurpurWorldConfig { +@@ -2616,6 +2741,7 @@ public class PurpurWorldConfig { wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading); @@ -2160,7 +2160,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean wardenRidable = false; -@@ -2624,6 +2750,7 @@ public class PurpurWorldConfig { +@@ -2632,6 +2758,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2635,6 +2762,7 @@ public class PurpurWorldConfig { +@@ -2643,6 +2770,7 @@ public class PurpurWorldConfig { } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater); @@ -2176,7 +2176,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean witherRidable = false; -@@ -2649,6 +2777,7 @@ public class PurpurWorldConfig { +@@ -2657,6 +2785,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2671,6 +2800,7 @@ public class PurpurWorldConfig { +@@ -2679,6 +2808,7 @@ public class PurpurWorldConfig { witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound); @@ -2192,7 +2192,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean witherSkeletonRidable = false; -@@ -2678,6 +2808,7 @@ public class PurpurWorldConfig { +@@ -2686,6 +2816,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2689,6 +2820,7 @@ public class PurpurWorldConfig { +@@ -2697,6 +2828,7 @@ public class PurpurWorldConfig { } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater); @@ -2208,7 +2208,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean wolfRidable = false; -@@ -2700,6 +2832,7 @@ public class PurpurWorldConfig { +@@ -2708,6 +2840,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2719,6 +2852,7 @@ public class PurpurWorldConfig { +@@ -2727,6 +2860,7 @@ public class PurpurWorldConfig { wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater); @@ -2224,7 +2224,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean zoglinRidable = false; -@@ -2726,6 +2860,7 @@ public class PurpurWorldConfig { +@@ -2734,6 +2868,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2737,6 +2872,7 @@ public class PurpurWorldConfig { +@@ -2745,6 +2880,7 @@ public class PurpurWorldConfig { } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater); @@ -2240,7 +2240,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean zombieRidable = false; -@@ -2750,6 +2886,7 @@ public class PurpurWorldConfig { +@@ -2758,6 +2894,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2767,6 +2904,7 @@ public class PurpurWorldConfig { +@@ -2775,6 +2912,7 @@ public class PurpurWorldConfig { zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); @@ -2256,7 +2256,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean zombieHorseRidableInWater = false; -@@ -2779,6 +2917,7 @@ public class PurpurWorldConfig { +@@ -2787,6 +2925,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2796,6 +2935,7 @@ public class PurpurWorldConfig { +@@ -2804,6 +2943,7 @@ public class PurpurWorldConfig { zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater); @@ -2272,7 +2272,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean zombieVillagerRidable = false; -@@ -2810,6 +2950,7 @@ public class PurpurWorldConfig { +@@ -2818,6 +2958,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2828,6 +2969,7 @@ public class PurpurWorldConfig { +@@ -2836,6 +2977,7 @@ public class PurpurWorldConfig { zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled); @@ -2288,7 +2288,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 } public boolean zombifiedPiglinRidable = false; -@@ -2840,6 +2982,7 @@ public class PurpurWorldConfig { +@@ -2848,6 +2990,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b193 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2856,6 +2999,7 @@ public class PurpurWorldConfig { +@@ -2864,6 +3007,7 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater); diff --git a/patches/server/0234-Ability-for-hoe-to-replant-crops-and-nether-warts.patch b/patches/server/0234-Ability-for-hoe-to-replant-crops-and-nether-warts.patch index 0af1ae769..4198fedeb 100644 --- a/patches/server/0234-Ability-for-hoe-to-replant-crops-and-nether-warts.patch +++ b/patches/server/0234-Ability-for-hoe-to-replant-crops-and-nether-warts.patch @@ -74,7 +74,7 @@ index e55720c4d2fbdf6aae526910e87a67c29cf906fd..0e4026e9d39735b840f12e59f84469b9 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 68569fffd660552388dd58b2dbc8b1932f068263..c74985692b19da6cd184d3f772cf244da158e25f 100644 +index 223a20d6aa5c1d7f50da1d1df237687e18eb4bdc..26f578f24f9a72e110bd4302fd49b2e38c08318a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -559,6 +559,8 @@ public class PurpurWorldConfig { @@ -86,7 +86,7 @@ index 68569fffd660552388dd58b2dbc8b1932f068263..c74985692b19da6cd184d3f772cf244d private void toolSettings() { axeStrippables.clear(); axeWaxables.clear(); -@@ -706,6 +708,8 @@ public class PurpurWorldConfig { +@@ -714,6 +716,8 @@ public class PurpurWorldConfig { }); hoeTillables.put(block, new Tillable(condition, into, drops)); }); diff --git a/patches/server/0235-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0235-Shearing-jeb-produces-random-color-wool.patch index 01d7e8f49..16175f82d 100644 --- a/patches/server/0235-Shearing-jeb-produces-random-color-wool.patch +++ b/patches/server/0235-Shearing-jeb-produces-random-color-wool.patch @@ -18,10 +18,10 @@ index ecde7e3f3bbc511d152153082671ca67e0d960ba..86ac81efb31b59c37bca9b0c53755cb6 if (entityitem != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c74985692b19da6cd184d3f772cf244da158e25f..e0d976255e254c42055a3eddbadc8f11999ea2b7 100644 +index 26f578f24f9a72e110bd4302fd49b2e38c08318a..b3d2d126bbf7045b4e00f52c950a2e5d2c9b8660 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2269,6 +2269,7 @@ public class PurpurWorldConfig { +@@ -2277,6 +2277,7 @@ public class PurpurWorldConfig { public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; public boolean sheepAlwaysDropExp = false; @@ -29,7 +29,7 @@ index c74985692b19da6cd184d3f772cf244da158e25f..e0d976255e254c42055a3eddbadc8f11 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2283,6 +2284,7 @@ public class PurpurWorldConfig { +@@ -2291,6 +2292,7 @@ public class PurpurWorldConfig { sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); sheepAlwaysDropExp = getBoolean("mobs.sheep.always-drop-exp", sheepAlwaysDropExp); diff --git a/patches/server/0236-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0236-Turtle-eggs-random-tick-crack-chance.patch index e1967c231..219124190 100644 --- a/patches/server/0236-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0236-Turtle-eggs-random-tick-crack-chance.patch @@ -18,10 +18,10 @@ index 7495e0e8beedad59fff24ebf189b58b307f7d796..70997b83fd7631ebf3c5bda67ef77bef @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e0d976255e254c42055a3eddbadc8f11999ea2b7..eaea623137998ad41b9b613e6784549585a1f16e 100644 +index b3d2d126bbf7045b4e00f52c950a2e5d2c9b8660..d8a5cf270e4af7daa71b2ac68d7da25bceefe44d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -986,11 +986,13 @@ public class PurpurWorldConfig { +@@ -994,11 +994,13 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; diff --git a/patches/server/0237-Mob-head-visibility-percent.patch b/patches/server/0237-Mob-head-visibility-percent.patch index a242d69b4..e3f916a08 100644 --- a/patches/server/0237-Mob-head-visibility-percent.patch +++ b/patches/server/0237-Mob-head-visibility-percent.patch @@ -32,10 +32,10 @@ index db6ee0ef067c42dd7f3a69cc796e2dd2c8fc059d..5718d70cdc4f5afb14320a20c3e72362 // Purpur start if (entity instanceof LivingEntity entityliving) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index eaea623137998ad41b9b613e6784549585a1f16e..920125e299eb79b741a0fb85605f4a8102f4f22f 100644 +index d8a5cf270e4af7daa71b2ac68d7da25bceefe44d..df92283920356712464c31560a1c9eec21dee86e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1271,6 +1271,7 @@ public class PurpurWorldConfig { +@@ -1279,6 +1279,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -43,7 +43,7 @@ index eaea623137998ad41b9b613e6784549585a1f16e..920125e299eb79b741a0fb85605f4a81 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1288,6 +1289,7 @@ public class PurpurWorldConfig { +@@ -1296,6 +1297,7 @@ public class PurpurWorldConfig { creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp); @@ -51,7 +51,7 @@ index eaea623137998ad41b9b613e6784549585a1f16e..920125e299eb79b741a0fb85605f4a81 } public boolean dolphinRidable = false; -@@ -2074,6 +2076,7 @@ public class PurpurWorldConfig { +@@ -2082,6 +2084,7 @@ public class PurpurWorldConfig { public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; @@ -59,7 +59,7 @@ index eaea623137998ad41b9b613e6784549585a1f16e..920125e299eb79b741a0fb85605f4a81 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2088,6 +2091,7 @@ public class PurpurWorldConfig { +@@ -2096,6 +2099,7 @@ public class PurpurWorldConfig { piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp); @@ -67,7 +67,7 @@ index eaea623137998ad41b9b613e6784549585a1f16e..920125e299eb79b741a0fb85605f4a81 } public boolean piglinBruteRidable = false; -@@ -2349,6 +2353,7 @@ public class PurpurWorldConfig { +@@ -2357,6 +2361,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -75,7 +75,7 @@ index eaea623137998ad41b9b613e6784549585a1f16e..920125e299eb79b741a0fb85605f4a81 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2361,6 +2366,7 @@ public class PurpurWorldConfig { +@@ -2369,6 +2374,7 @@ public class PurpurWorldConfig { skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); @@ -83,7 +83,7 @@ index eaea623137998ad41b9b613e6784549585a1f16e..920125e299eb79b741a0fb85605f4a81 } public boolean skeletonHorseRidableInWater = true; -@@ -2895,6 +2901,7 @@ public class PurpurWorldConfig { +@@ -2903,6 +2909,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index eaea623137998ad41b9b613e6784549585a1f16e..920125e299eb79b741a0fb85605f4a81 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2913,6 +2920,7 @@ public class PurpurWorldConfig { +@@ -2921,6 +2928,7 @@ public class PurpurWorldConfig { zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp); diff --git a/patches/server/0240-Stop-bees-from-dying-after-stinging.patch b/patches/server/0240-Stop-bees-from-dying-after-stinging.patch index d77b777e2..5dd5c7374 100644 --- a/patches/server/0240-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0240-Stop-bees-from-dying-after-stinging.patch @@ -17,10 +17,10 @@ index 86d49924f4fb5b38dfe7ec23a15e9bb5b2816543..e97731c58b86562827fb6b0a32a7a00e ++this.timeSinceSting; if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 920125e299eb79b741a0fb85605f4a8102f4f22f..e8dd96f3a5c435fbff97c2297788053d6baafd16 100644 +index df92283920356712464c31560a1c9eec21dee86e..5ee59e2e25466d094a675471cc71aedf33afa808 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1074,6 +1074,7 @@ public class PurpurWorldConfig { +@@ -1082,6 +1082,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index 920125e299eb79b741a0fb85605f4a8102f4f22f..e8dd96f3a5c435fbff97c2297788053d private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1090,6 +1091,7 @@ public class PurpurWorldConfig { +@@ -1098,6 +1099,7 @@ public class PurpurWorldConfig { beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp); diff --git a/patches/server/0242-Configurable-farmland-trample-height.patch b/patches/server/0242-Configurable-farmland-trample-height.patch index 3de215ea6..d6c48181f 100644 --- a/patches/server/0242-Configurable-farmland-trample-height.patch +++ b/patches/server/0242-Configurable-farmland-trample-height.patch @@ -35,10 +35,10 @@ index eed062c9cf1103d7ac96695e3620d4276edcd2aa..69cc276fecd4cac51d38bd3cc7de490a org.bukkit.event.Cancellable cancellable; if (entity instanceof Player) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e8dd96f3a5c435fbff97c2297788053d6baafd16..171da243198cfad75dc56384ca9754b0d65f470d 100644 +index 5ee59e2e25466d094a675471cc71aedf33afa808..e4394fbe3d7ff9b9424772014c0b528407a13081 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -864,6 +864,7 @@ public class PurpurWorldConfig { +@@ -872,6 +872,7 @@ public class PurpurWorldConfig { public boolean farmlandTramplingDisabled = false; public boolean farmlandTramplingOnlyPlayers = false; public boolean farmlandTramplingFeatherFalling = false; @@ -46,7 +46,7 @@ index e8dd96f3a5c435fbff97c2297788053d6baafd16..171da243198cfad75dc56384ca9754b0 private void farmlandSettings() { farmlandBypassMobGriefing = getBoolean("blocks.farmland.bypass-mob-griefing", farmlandBypassMobGriefing); farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); -@@ -871,6 +872,7 @@ public class PurpurWorldConfig { +@@ -879,6 +880,7 @@ public class PurpurWorldConfig { farmlandTramplingDisabled = getBoolean("blocks.farmland.disable-trampling", farmlandTramplingDisabled); farmlandTramplingOnlyPlayers = getBoolean("blocks.farmland.only-players-trample", farmlandTramplingOnlyPlayers); farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); diff --git a/patches/server/0246-Configurable-phantom-size.patch b/patches/server/0246-Configurable-phantom-size.patch index a6f716d2d..94fbb58a6 100644 --- a/patches/server/0246-Configurable-phantom-size.patch +++ b/patches/server/0246-Configurable-phantom-size.patch @@ -22,10 +22,10 @@ index b4e13b4e02c37f5ff93164f01604e7e56580be72..2c00a9fdd3a6ea16ee765339857cf585 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 915099ab343d1fd65ba779ef70ebc704612f246a..0843fe1e8907797221400c66a0d88db373b6d8e2 100644 +index c9c5c5f58204b95be55a84eabfcf027cc7d5d781..291ca4e81b0f8b18d0926099fd0c0c1f76cb3859 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2014,6 +2014,8 @@ public class PurpurWorldConfig { +@@ -2022,6 +2022,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index 915099ab343d1fd65ba779ef70ebc704612f246a..0843fe1e8907797221400c66a0d88db3 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2050,6 +2052,13 @@ public class PurpurWorldConfig { +@@ -2058,6 +2060,13 @@ public class PurpurWorldConfig { phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); phantomAlwaysDropExp = getBoolean("mobs.phantom.always-drop-exp", phantomAlwaysDropExp); diff --git a/patches/server/0249-Configurable-minimum-demand-for-trades.patch b/patches/server/0249-Configurable-minimum-demand-for-trades.patch index 88e7345bc..26ea210a1 100644 --- a/patches/server/0249-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0249-Configurable-minimum-demand-for-trades.patch @@ -40,10 +40,10 @@ index fd50d1c2435b82215bc5b3fdbe5044d426bc342e..68ffea572045634f1ad67a6954d480e6 public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0843fe1e8907797221400c66a0d88db373b6d8e2..9347f566fe4020e6fd2ed254bb8c2ded188c6d4f 100644 +index 291ca4e81b0f8b18d0926099fd0c0c1f76cb3859..05d58b17c705e6a1d779bec497fab1c4299c477c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2697,6 +2697,7 @@ public class PurpurWorldConfig { +@@ -2705,6 +2705,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 0843fe1e8907797221400c66a0d88db373b6d8e2..9347f566fe4020e6fd2ed254bb8c2ded private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2717,6 +2718,7 @@ public class PurpurWorldConfig { +@@ -2725,6 +2726,7 @@ public class PurpurWorldConfig { villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); diff --git a/patches/server/0250-Lobotomize-stuck-villagers.patch b/patches/server/0250-Lobotomize-stuck-villagers.patch index 011201899..74e3ee0f0 100644 --- a/patches/server/0250-Lobotomize-stuck-villagers.patch +++ b/patches/server/0250-Lobotomize-stuck-villagers.patch @@ -110,10 +110,10 @@ index a1a8ac55e572156671e47317ba061855be79e5ac..ec3fb8865211bd7625103c37af7b96df + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9347f566fe4020e6fd2ed254bb8c2ded188c6d4f..0561710bff50937eb65e123df5c79c3c1074df5b 100644 +index 05d58b17c705e6a1d779bec497fab1c4299c477c..c75fdb8d118b6b05b54693c99849440274700ecf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2698,6 +2698,8 @@ public class PurpurWorldConfig { +@@ -2706,6 +2706,8 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -122,7 +122,7 @@ index 9347f566fe4020e6fd2ed254bb8c2ded188c6d4f..0561710bff50937eb65e123df5c79c3c private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2719,6 +2721,17 @@ public class PurpurWorldConfig { +@@ -2727,6 +2729,17 @@ public class PurpurWorldConfig { villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand); diff --git a/patches/server/0251-Option-for-villager-display-trade-item.patch b/patches/server/0251-Option-for-villager-display-trade-item.patch index 145e0e6bf..a6ad2440a 100644 --- a/patches/server/0251-Option-for-villager-display-trade-item.patch +++ b/patches/server/0251-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 98373e013748817209b811d4adbb40a8787242a6..567b501f4de7556e55e2418d2f5700b4 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0561710bff50937eb65e123df5c79c3c1074df5b..09a744a2718e1e04caa0d5b72eab86d83b596802 100644 +index c75fdb8d118b6b05b54693c99849440274700ecf..24be313e32bd09acfd515c766117ed72860597a8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2700,6 +2700,7 @@ public class PurpurWorldConfig { +@@ -2708,6 +2708,7 @@ public class PurpurWorldConfig { public int villagerMinimumDemand = 0; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; @@ -28,7 +28,7 @@ index 0561710bff50937eb65e123df5c79c3c1074df5b..09a744a2718e1e04caa0d5b72eab86d8 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2732,6 +2733,7 @@ public class PurpurWorldConfig { +@@ -2740,6 +2741,7 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); diff --git a/patches/server/0252-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0252-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch index f03c95a5c..4ac9fc6c3 100644 --- a/patches/server/0252-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch +++ b/patches/server/0252-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch @@ -17,10 +17,10 @@ index 35cfa366baf6747105faa93f1220bb9cc31a5bd5..ff3a6755d04f2280a36bd363ab1722e0 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 09a744a2718e1e04caa0d5b72eab86d83b596802..d24bb6256c8bc25fb8fefd547ffccf8b41232687 100644 +index 24be313e32bd09acfd515c766117ed72860597a8..30ef79eb2b77083be2a705558b65d563d00e8899 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -975,8 +975,10 @@ public class PurpurWorldConfig { +@@ -983,8 +983,10 @@ public class PurpurWorldConfig { } public boolean spawnerDeactivateByRedstone = false; diff --git a/patches/server/0254-Anvil-repair-damage-options.patch b/patches/server/0254-Anvil-repair-damage-options.patch index beada38e0..0a110b664 100644 --- a/patches/server/0254-Anvil-repair-damage-options.patch +++ b/patches/server/0254-Anvil-repair-damage-options.patch @@ -64,10 +64,10 @@ index 5c5a3b169795bf8a527b316c666cbc2105c66622..020afeca950d2c7fb6c7b179d424548f return InteractionResult.SUCCESS; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 98a9b8b050d76a16a076c61c5593891ab7e70f03..acdc1928cd1cde77346981540f9bc73fee222a51 100644 +index 1735589ef14d87b5f4f96a400ec8ca91936b0482..144e3e7a5d03acd51b846d0b75d0b32d414843c3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -720,9 +720,13 @@ public class PurpurWorldConfig { +@@ -728,9 +728,13 @@ public class PurpurWorldConfig { public boolean anvilAllowColors = false; public boolean anvilColorsUseMiniMessage; diff --git a/patches/server/0256-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0256-Option-to-disable-turtle-egg-trampling-with-feather-.patch index 3df623914..81c26d537 100644 --- a/patches/server/0256-Option-to-disable-turtle-egg-trampling-with-feather-.patch +++ b/patches/server/0256-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -24,10 +24,10 @@ index 70997b83fd7631ebf3c5bda67ef77bef605eb464..a8c227e2cb62cfa8225798329cde9078 return world.purpurConfig.turtleEggsBypassMobGriefing || world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING); // Purpur end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index acdc1928cd1cde77346981540f9bc73fee222a51..d7702b8e10f540182e1a92eabe2c107c00260bd1 100644 +index 144e3e7a5d03acd51b846d0b75d0b32d414843c3..7e5f074a8a6f97bde0e18131d27d6187a232daec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1001,12 +1001,14 @@ public class PurpurWorldConfig { +@@ -1009,12 +1009,14 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; public int turtleEggsRandomTickCrackChance = 500; diff --git a/patches/server/0259-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0259-Implement-configurable-search-radius-for-villagers-t.patch index effa1982e..db689d579 100644 --- a/patches/server/0259-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0259-Implement-configurable-search-radius-for-villagers-t.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index bee6020bb8f36f8b5622d3bafaf7b37e48c29db2..505411b18989191ffa976283d08b644e11ef3f05 100644 +index 75df9d6d69ad5e979ab7b99435dbae1dcb901e30..6f47f6c785dc8da6b211ac87630a3d83c42d1576 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -1093,6 +1093,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -18,10 +18,10 @@ index bee6020bb8f36f8b5622d3bafaf7b37e48c29db2..505411b18989191ffa976283d08b644e AABB axisalignedbb = this.getBoundingBox().inflate(10.0D, 10.0D, 10.0D); List list = world.getEntitiesOfClass(Villager.class, axisalignedbb); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d7702b8e10f540182e1a92eabe2c107c00260bd1..9af718dc9e719ba1e2cdae1ea8f1e36437ab689c 100644 +index 7e5f074a8a6f97bde0e18131d27d6187a232daec..701ba05acf86a9ca345a4673af906b6c47c8aea5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2711,6 +2711,8 @@ public class PurpurWorldConfig { +@@ -2719,6 +2719,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index d7702b8e10f540182e1a92eabe2c107c00260bd1..9af718dc9e719ba1e2cdae1ea8f1e364 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2744,6 +2746,8 @@ public class PurpurWorldConfig { +@@ -2752,6 +2754,8 @@ public class PurpurWorldConfig { villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); diff --git a/patches/server/0260-Stonecutter-damage.patch b/patches/server/0260-Stonecutter-damage.patch index 64009290a..395e2fe83 100644 --- a/patches/server/0260-Stonecutter-damage.patch +++ b/patches/server/0260-Stonecutter-damage.patch @@ -48,7 +48,7 @@ index 17a7fab20b4174273354fdc2fc700b7f2d669a98..a7578e112e80ed2585a7eb4fff9542f6 return BlockPathTypes.STICKY_HONEY; } else if (blockState.is(Blocks.COCOA)) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 636c032127c2026509764745f805ae0693e4a983..3734f6279005872eac6697e6e22c3a2e61eabc22 100644 +index 8a098947e748e3abd798dcfffd360b9d65c41695..bab204904dd8e7bc949d83c59d075cc6f90ce60c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -205,8 +205,10 @@ public class PurpurConfig { @@ -63,10 +63,10 @@ index 636c032127c2026509764745f805ae0693e4a983..3734f6279005872eac6697e6e22c3a2e public static boolean advancementOnlyBroadcastToAffectedPlayer = false; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9af718dc9e719ba1e2cdae1ea8f1e36437ab689c..5336f9a6aa724ccaed19b3dc7faa5fb8d38cdab4 100644 +index 701ba05acf86a9ca345a4673af906b6c47c8aea5..657e22e8c774992212a43470a512487ea5e06906 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -996,6 +996,11 @@ public class PurpurWorldConfig { +@@ -1004,6 +1004,11 @@ public class PurpurWorldConfig { spongeAbsorbsLava = getBoolean("blocks.sponge.absorbs-lava", spongeAbsorbsLava); } diff --git a/patches/server/0261-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0261-Configurable-damage-settings-for-magma-blocks.patch index 81f3f9777..d7056b4b3 100644 --- a/patches/server/0261-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0261-Configurable-damage-settings-for-magma-blocks.patch @@ -18,10 +18,10 @@ index 12ffb5714f088f4aeafa1ad6a36f5b64a86c4c96..293aa5c8f91a997045f8d9f2951fe3a7 entity.hurt(world.damageSources().hotFloor(), 1.0F); org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5336f9a6aa724ccaed19b3dc7faa5fb8d38cdab4..b55445defb3a71e93845fb387757eabeff8150bf 100644 +index 657e22e8c774992212a43470a512487ea5e06906..403295ff6871ae70bc2839d0bf74fe19de3fadaf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -927,6 +927,13 @@ public class PurpurWorldConfig { +@@ -935,6 +935,13 @@ public class PurpurWorldConfig { pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); } diff --git a/patches/server/0262-Add-config-for-snow-on-blue-ice.patch b/patches/server/0262-Add-config-for-snow-on-blue-ice.patch index 0021d19e3..d271451a5 100644 --- a/patches/server/0262-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0262-Add-config-for-snow-on-blue-ice.patch @@ -22,10 +22,10 @@ index 14e00c7feb1c051d56a3d27cd00dcef072dd771a..4952fb1aaaafb55baa0fddb389f966a1 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b55445defb3a71e93845fb387757eabeff8150bf..4060df8e886ddc2f9cb175c8f1bb05ffb5d733e5 100644 +index 403295ff6871ae70bc2839d0bf74fe19de3fadaf..6c4d46c772f18cc230d980e7f8625942e7375dc9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -908,9 +908,11 @@ public class PurpurWorldConfig { +@@ -916,9 +916,11 @@ public class PurpurWorldConfig { public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnBlueIce = true; diff --git a/patches/server/0263-Skeletons-eat-wither-roses.patch b/patches/server/0263-Skeletons-eat-wither-roses.patch index c8312ad2b..1bf3a457b 100644 --- a/patches/server/0263-Skeletons-eat-wither-roses.patch +++ b/patches/server/0263-Skeletons-eat-wither-roses.patch @@ -94,10 +94,10 @@ index 78fc17c45e566e0844ffbebb85044b9bfe64c6db..64a5e000adbfa5de2abc32ea9182847d + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4060df8e886ddc2f9cb175c8f1bb05ffb5d733e5..4c0732cb9dad6f23f89f3a2a0f2d52be3b4c5365 100644 +index 6c4d46c772f18cc230d980e7f8625942e7375dc9..c2d0e8259b34a5a4e0a5a047e1b504f6c7e4f19a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2395,6 +2395,7 @@ public class PurpurWorldConfig { +@@ -2403,6 +2403,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index 4060df8e886ddc2f9cb175c8f1bb05ffb5d733e5..4c0732cb9dad6f23f89f3a2a0f2d52be private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2408,6 +2409,7 @@ public class PurpurWorldConfig { +@@ -2416,6 +2417,7 @@ public class PurpurWorldConfig { skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); diff --git a/patches/server/0264-Enchantment-Table-Persists-Lapis.patch b/patches/server/0264-Enchantment-Table-Persists-Lapis.patch index faee271f8..573266132 100644 --- a/patches/server/0264-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0264-Enchantment-Table-Persists-Lapis.patch @@ -146,10 +146,10 @@ index 65e1381bb2d10bd212463feb602c60f8fdb9ade1..b7370e64fd0d50e8725d7d5afc30af2e + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4c0732cb9dad6f23f89f3a2a0f2d52be3b4c5365..abef6f066ca7d6a8ddb7e9c0b4938d85232f87f1 100644 +index c2d0e8259b34a5a4e0a5a047e1b504f6c7e4f19a..4a4eee4090b834104bdd428ad5d6aacdb1add6be 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1430,6 +1430,11 @@ public class PurpurWorldConfig { +@@ -1438,6 +1438,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0267-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0267-Config-for-sculk-shrieker-can_summon-state.patch index c9dcee8d3..17cfc436f 100644 --- a/patches/server/0267-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0267-Config-for-sculk-shrieker-can_summon-state.patch @@ -18,10 +18,10 @@ index 437b44fb68bcbe81d1c431689431225b6a17a1a6..06d091b7c4df949c4abda16c4f73c194 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index abef6f066ca7d6a8ddb7e9c0b4938d85232f87f1..f96f1cd17d7a9a3f40eee94da890bf8dd1544e52 100644 +index 4a4eee4090b834104bdd428ad5d6aacdb1add6be..c786e5b8fd74cd1ff9fab14f597dac87e92dea65 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -972,6 +972,11 @@ public class PurpurWorldConfig { +@@ -980,6 +980,11 @@ public class PurpurWorldConfig { fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); } diff --git a/patches/server/0268-Config-to-not-let-coral-die.patch b/patches/server/0268-Config-to-not-let-coral-die.patch index 2eba46b75..4623d672d 100644 --- a/patches/server/0268-Config-to-not-let-coral-die.patch +++ b/patches/server/0268-Config-to-not-let-coral-die.patch @@ -29,10 +29,10 @@ index 88faea00be60a519f56f975a5311df5e1eb3e6b8..cbb726ac367be81e27d3a86643baf7c4 int i = aenumdirection.length; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f96f1cd17d7a9a3f40eee94da890bf8dd1544e52..73a0276a28367dea8974f7048a63997889c4495f 100644 +index c786e5b8fd74cd1ff9fab14f597dac87e92dea65..523c69b4dfc8c2fb1a6a780f64ee848a8a2d8ead 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -809,6 +809,11 @@ public class PurpurWorldConfig { +@@ -817,6 +817,11 @@ public class PurpurWorldConfig { composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); } diff --git a/patches/server/0281-Add-skeleton-bow-accuracy-option.patch b/patches/server/0281-Add-skeleton-bow-accuracy-option.patch index 03953783e..01b7a719d 100644 --- a/patches/server/0281-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0281-Add-skeleton-bow-accuracy-option.patch @@ -18,10 +18,10 @@ index 32a303f9ac9768daf621e3aa561cd6b31e5f5dff..9c8713ef3aeb2ff203bd0328d15d80c2 org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper if (event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 772cfde0e31891e9cdca4c079f33b04bf2a7d81e..5b1e7ac4abef052fe3d206924949bc24c30c1014 100644 +index 7e210cfc6fb6556400c89d7f38ff8dd865168b2c..e856ec94168af165ec46eff34e7e20ddca73a6e8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2415,6 +2415,8 @@ public class PurpurWorldConfig { +@@ -2423,6 +2423,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index 772cfde0e31891e9cdca4c079f33b04bf2a7d81e..5b1e7ac4abef052fe3d206924949bc24 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2429,6 +2431,18 @@ public class PurpurWorldConfig { +@@ -2437,6 +2439,18 @@ public class PurpurWorldConfig { skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); skeletonFeedWitherRoses = getInt("mobs.skeleton.feed-wither-roses", skeletonFeedWitherRoses); diff --git a/patches/server/0282-Allay-respect-item-NBT.patch b/patches/server/0282-Allay-respect-item-NBT.patch index 1c9b70f77..c640dc85a 100644 --- a/patches/server/0282-Allay-respect-item-NBT.patch +++ b/patches/server/0282-Allay-respect-item-NBT.patch @@ -44,10 +44,10 @@ index 1c136aa0d6dcad18b5e6e2084d2c166105d54a3a..e95540122ae6a486ce12a5f50fb4d2d0 private boolean allayConsidersItemEqual(ItemStack stack, ItemStack stack2) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5b1e7ac4abef052fe3d206924949bc24c30c1014..b1ecbf95c391221d9b609e2e5c39259eb39b76af 100644 +index e856ec94168af165ec46eff34e7e20ddca73a6e8..43b34d77e5f2d2418c3ed8ca2b17f86722739f91 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1058,10 +1058,13 @@ public class PurpurWorldConfig { +@@ -1066,10 +1066,13 @@ public class PurpurWorldConfig { public boolean allayRidable = false; public boolean allayRidableInWater = true; public boolean allayControllable = true; diff --git a/patches/server/0288-Implement-squid-colors-for-rainglow-fabric-mod.patch b/patches/server/0288-Implement-squid-colors-for-rainglow-fabric-mod.patch index 1b6b6f039..d8d7664a9 100644 --- a/patches/server/0288-Implement-squid-colors-for-rainglow-fabric-mod.patch +++ b/patches/server/0288-Implement-squid-colors-for-rainglow-fabric-mod.patch @@ -40,10 +40,10 @@ index c2309434b4d48a44587590623ac98dbf997b9578..6f723171fa71d74b351b5cf0cd167bb6 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b1ecbf95c391221d9b609e2e5c39259eb39b76af..98545b9c06f4b5f1979633ff963bb5eb5e5f8a9c 100644 +index 43b34d77e5f2d2418c3ed8ca2b17f86722739f91..e05110d98e82b2aa0d91f7579068f10ebdf350d5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1667,6 +1667,7 @@ public class PurpurWorldConfig { +@@ -1675,6 +1675,7 @@ public class PurpurWorldConfig { public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; public boolean glowSquidAlwaysDropExp = false; @@ -51,7 +51,7 @@ index b1ecbf95c391221d9b609e2e5c39259eb39b76af..98545b9c06f4b5f1979633ff963bb5eb private void glowSquidSettings() { glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable); glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable); -@@ -1674,6 +1675,7 @@ public class PurpurWorldConfig { +@@ -1682,6 +1683,7 @@ public class PurpurWorldConfig { glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly); glowSquidTakeDamageFromWater = getBoolean("mobs.glow_squid.takes-damage-from-water", glowSquidTakeDamageFromWater); glowSquidAlwaysDropExp = getBoolean("mobs.glow_squid.always-drop-exp", glowSquidAlwaysDropExp); diff --git a/patches/server/0297-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0297-Add-option-to-allow-creeper-to-encircle-target-when-.patch index a1247e164..2695e90c7 100644 --- a/patches/server/0297-Add-option-to-allow-creeper-to-encircle-target-when-.patch +++ b/patches/server/0297-Add-option-to-allow-creeper-to-encircle-target-when-.patch @@ -24,10 +24,10 @@ index e241ae250f4f04a17ef2c583d00b065a4ca56a4c..02b567e4e808e1a809d285ef39e1abc5 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index afeab1031c329f5cfd23066f4d28827bc84c72ae..e3b81cc53213f9b6404abf5e3478e3abfdf0a9c2 100644 +index 5f31dc0eae48b3ba51ec5db59ca1482da49caec5..9c364e2c687e9708b391cd319203636ebaacb3da 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1323,6 +1323,7 @@ public class PurpurWorldConfig { +@@ -1331,6 +1331,7 @@ public class PurpurWorldConfig { public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; public double creeperHeadVisibilityPercent = 0.5D; @@ -35,7 +35,7 @@ index afeab1031c329f5cfd23066f4d28827bc84c72ae..e3b81cc53213f9b6404abf5e3478e3ab private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1341,6 +1342,7 @@ public class PurpurWorldConfig { +@@ -1349,6 +1350,7 @@ public class PurpurWorldConfig { creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp); creeperHeadVisibilityPercent = getDouble("mobs.creeper.head-visibility-percent", creeperHeadVisibilityPercent); diff --git a/patches/server/0302-End-Crystal-Cramming.patch b/patches/server/0302-End-Crystal-Cramming.patch index 8c4b99cec..51a8e3d4a 100644 --- a/patches/server/0302-End-Crystal-Cramming.patch +++ b/patches/server/0302-End-Crystal-Cramming.patch @@ -17,10 +17,10 @@ index a4fc0e9cb52bb5937effe5cd09f8bbefcf8dd531..e3fe5f18c77e36479eaeb7edfd2a3eb9 // Purpur start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4594b47bea1db94d84e7a902b3b7ea1e10d36545..d756ec52759f2888ae49f8574d51b7343c76eae6 100644 +index 3b1e8d6e9b0a7fc5dddd2f033819c1bfe2410212..0578229216f0d2ede202f1ea6837f4d95a977c3b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -852,6 +852,7 @@ public class PurpurWorldConfig { +@@ -860,6 +860,7 @@ public class PurpurWorldConfig { public double basedEndCrystalExplosionPower = 6.0D; public boolean basedEndCrystalExplosionFire = false; public net.minecraft.world.level.Level.ExplosionInteraction basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; @@ -28,7 +28,7 @@ index 4594b47bea1db94d84e7a902b3b7ea1e10d36545..d756ec52759f2888ae49f8574d51b734 private void endCrystalSettings() { if (PurpurConfig.version < 31) { if ("DESTROY".equals(getString("blocks.end-crystal.baseless.explosion-effect", baselessEndCrystalExplosionEffect.name()))) { -@@ -879,6 +880,7 @@ public class PurpurWorldConfig { +@@ -887,6 +888,7 @@ public class PurpurWorldConfig { log(Level.SEVERE, "Unknown value for `blocks.end-crystal.base.explosion-effect`! Using default of `BLOCK`"); basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; } diff --git a/patches/server/0303-Option-to-allow-beacon-effects-when-covered-by-tinte.patch b/patches/server/0303-Option-to-allow-beacon-effects-when-covered-by-tinte.patch index 99f0233f2..9f03005c7 100644 --- a/patches/server/0303-Option-to-allow-beacon-effects-when-covered-by-tinte.patch +++ b/patches/server/0303-Option-to-allow-beacon-effects-when-covered-by-tinte.patch @@ -36,10 +36,10 @@ index c787019b5cbadec81dd33ef4021708b9b423485a..8f82b0ce87afc8890c5b3386d5f6e22c BeaconBlockEntity.playSound(world, pos, SoundEvents.BEACON_AMBIENT); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d756ec52759f2888ae49f8574d51b7343c76eae6..bcefc3d5a0bab517d0ee06fd81dd6b040120cc6e 100644 +index 0578229216f0d2ede202f1ea6837f4d95a977c3b..98cd8e066da2efe3e0192377c17171b66ef4377d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -746,11 +746,13 @@ public class PurpurWorldConfig { +@@ -754,11 +754,13 @@ public class PurpurWorldConfig { public int beaconLevelTwo = 30; public int beaconLevelThree = 40; public int beaconLevelFour = 50; diff --git a/patches/server/0306-bonemealable-sugarcane-cactus-and-netherwart.patch b/patches/server/0306-bonemealable-sugarcane-cactus-and-netherwart.patch index 0104e088b..186985b5c 100644 --- a/patches/server/0306-bonemealable-sugarcane-cactus-and-netherwart.patch +++ b/patches/server/0306-bonemealable-sugarcane-cactus-and-netherwart.patch @@ -137,10 +137,10 @@ index 6b400a4759c8c8612a3b5c96ca0d87ef9dc71435..992de1ab2c00a2545a857f1b5533926b + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e8f0ec7eb707776e8746eae07e0fb1ac50cf7398..9159e790533f06582a521f11103e6cbcbc72978b 100644 +index a1e8bcfcfc044acc9752b575fb260228742d12aa..157c5ce26015cabd5a007cf7444c8255db1a0b0f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -805,8 +805,20 @@ public class PurpurWorldConfig { +@@ -813,8 +813,20 @@ public class PurpurWorldConfig { } public boolean cactusBreaksFromSolidNeighbors = true;