diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index 30b8a97de..709c8470a 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -179,7 +179,7 @@ index 1c2439ffc1e407ff69286817d22f127470ce07ba..ae274a56f7cb6200b3c556ed61254bb2 .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..ceb45f313869ac3a0f650a4ee43ecff782c1be5f +index 0000000000000000000000000000000000000000..c2991c34fd4306fae79fca2c1349c826b3247c49 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -0,0 +1,178 @@ @@ -263,8 +263,8 @@ index 0000000000000000000000000000000000000000..ceb45f313869ac3a0f650a4ee43ecff7 + commands = new HashMap<>(); + commands.put("purpur", new PurpurCommand("purpur")); + -+ version = getInt("config-version", 37); -+ set("config-version", 37); ++ version = getInt("config-version", 38); ++ set("config-version", 38); + + readConfig(PurpurConfig.class, null); + diff --git a/patches/server/0181-Tool-actionable-options.patch b/patches/server/0181-Tool-actionable-options.patch index 38514934f..a43e11c7b 100644 --- a/patches/server/0181-Tool-actionable-options.patch +++ b/patches/server/0181-Tool-actionable-options.patch @@ -133,10 +133,10 @@ index 55c18f182166f4905d623d6f5e909eefd5ed2483..d10c4705cc9e7faabd4a5619e1da1072 afterAction = () -> { // Paper if (!level.isClientSide()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d78c39b9db77ee6948fd87c664ab5fa5b61367ea..6cb8722c1ca2c182ed24d8e7770025560898c9e1 100644 +index d78c39b9db77ee6948fd87c664ab5fa5b61367ea..f277d8b257bf66552bfbd0ce98af2aa1e93779b7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -465,6 +465,280 @@ public class PurpurWorldConfig { +@@ -465,6 +465,287 @@ public class PurpurWorldConfig { snowballDamage = getInt("gameplay-mechanics.projectile-damage.snowball", snowballDamage); } @@ -224,28 +224,35 @@ index d78c39b9db77ee6948fd87c664ab5fa5b61367ea..6cb8722c1ca2c182ed24d8e777002556 + PurpurConfig.config.set("world-settings.default.tools.axe.weatherables.minecraft:weathered_copper_bulb", Map.of("into", "minecraft:exposed_copper_bulb", "drops", new HashMap())); + PurpurConfig.config.set("world-settings.default.tools.axe.weatherables.minecraft:oxidized_copper_bulb", Map.of("into", "minecraft:weathered_copper_bulb", "drops", new HashMap())); + } ++ if (PurpurConfig.version < 38) { ++ PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:pale_oak_wood", Map.of("into", "minecraft:stripped_pale_oak_wood", "drops", new HashMap())); ++ PurpurConfig.config.set("world-settings.default.tools.axe.strippables.minecraft:pale_oak_log", Map.of("into", "minecraft:stripped_pale_oak_log", "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())), + Map.entry("minecraft:dark_oak_wood", Map.of("into", "minecraft:stripped_dark_oak_wood", "drops", new HashMap())), + Map.entry("minecraft:dark_oak_log", Map.of("into", "minecraft:stripped_dark_oak_log", "drops", new HashMap())), ++ Map.entry("minecraft:pale_oak_wood", Map.of("into", "minecraft:stripped_pale_oak_wood", "drops", new HashMap())), ++ Map.entry("minecraft:pale_oak_log", Map.of("into", "minecraft:stripped_pale_oak_log", "drops", new HashMap())), + Map.entry("minecraft:acacia_wood", Map.of("into", "minecraft:stripped_acacia_wood", "drops", new HashMap())), + Map.entry("minecraft:acacia_log", Map.of("into", "minecraft:stripped_acacia_log", "drops", new HashMap())), ++ Map.entry("minecraft:cherry_wood", Map.of("into", "minecraft:stripped_cherry_wood", "drops", new HashMap())), ++ Map.entry("minecraft:cherry_log", Map.of("into", "minecraft:stripped_cherry_log", "drops", new HashMap())), + Map.entry("minecraft:birch_wood", Map.of("into", "minecraft:stripped_birch_wood", "drops", new HashMap())), + Map.entry("minecraft:birch_log", Map.of("into", "minecraft:stripped_birch_log", "drops", new HashMap())), + Map.entry("minecraft:jungle_wood", Map.of("into", "minecraft:stripped_jungle_wood", "drops", new HashMap())), + Map.entry("minecraft:jungle_log", Map.of("into", "minecraft:stripped_jungle_log", "drops", new HashMap())), + Map.entry("minecraft:spruce_wood", Map.of("into", "minecraft:stripped_spruce_wood", "drops", new HashMap())), + 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())), -+ Map.entry("minecraft:crimson_hyphae", Map.of("into", "minecraft:stripped_crimson_hyphae", "drops", new HashMap()))) ++ Map.entry("minecraft:crimson_hyphae", Map.of("into", "minecraft:stripped_crimson_hyphae", "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:bamboo_block", Map.of("into", "minecraft:stripped_bamboo_block", "drops", new HashMap())) ++ ) + ).forEach((blockId, obj) -> { + Block block = BuiltInRegistries.BLOCK.getValue(ResourceLocation.parse(blockId)); + if (block == Blocks.AIR) { PurpurConfig.log(Level.SEVERE, "Invalid block for `tools.axe.strippables`: " + blockId); return; } diff --git a/patches/server/0186-Big-dripleaf-tilt-delay.patch b/patches/server/0186-Big-dripleaf-tilt-delay.patch index e20bfb0a8..266e2b706 100644 --- a/patches/server/0186-Big-dripleaf-tilt-delay.patch +++ b/patches/server/0186-Big-dripleaf-tilt-delay.patch @@ -24,10 +24,10 @@ index 9e3f1441d62128535112621bf259c24f1a90595b..2535e6d71b690f8dfde41a7d9cb76b6f 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 294153e02ea584ab5a8fc8209dc87660bddc27a7..be19290cc292e31b0dba6023168a913244ef54d4 100644 +index f62de466c50287ecbe364f74bd715cbdf02808ea..20d4021d6222c58e97062756cf8c66b4f819d666 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -780,6 +780,22 @@ public class PurpurWorldConfig { +@@ -787,6 +787,22 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0188-Config-to-disable-Enderman-teleport-on-projectile-hi.patch b/patches/server/0188-Config-to-disable-Enderman-teleport-on-projectile-hi.patch index 5515dacda..adbe8e3f8 100644 --- a/patches/server/0188-Config-to-disable-Enderman-teleport-on-projectile-hi.patch +++ b/patches/server/0188-Config-to-disable-Enderman-teleport-on-projectile-hi.patch @@ -17,10 +17,10 @@ index dec6be6b823b00642a0066726e3cad298b7ed6a7..2681153860b37d49eb8b12ae08198e56 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 1205c517d4c73a2a1718a2e3cc87b348f3026af8..b027f35fc78373d4314a3c7c4d30065f6a2af6ed 100644 +index 363fba258c19fddb45b6bca459007def8c0da981..7463320f50e863b6b8c5ba6127527b2b1fff72f6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1457,6 +1457,7 @@ public class PurpurWorldConfig { +@@ -1464,6 +1464,7 @@ public class PurpurWorldConfig { public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; public boolean endermanDisableStareAggro = false; @@ -28,7 +28,7 @@ index 1205c517d4c73a2a1718a2e3cc87b348f3026af8..b027f35fc78373d4314a3c7c4d30065f private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1479,6 +1480,7 @@ public class PurpurWorldConfig { +@@ -1486,6 +1487,7 @@ public class PurpurWorldConfig { endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites); endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); diff --git a/patches/server/0192-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0192-Customizeable-Zombie-Villager-curing-times.patch index 4a3468688..ba18e5b30 100644 --- a/patches/server/0192-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0192-Customizeable-Zombie-Villager-curing-times.patch @@ -18,10 +18,10 @@ index 95315588a523439a53ac7af3db5fc23adbed6f01..811c5c4bc98401bc9314894eb5cb64bf return InteractionResult.SUCCESS_SERVER; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1f7a8f2b5196d5b15b047e6d67491a8335cbdbc3..4fa501f2d0e8f99b9b1aa112e8a4155c4a3ba652 100644 +index 683ae285004e1a6e3f58e0c2c16d5cb31f56a0d8..ece185b07394b2a09b322b3e00cd78076097b43a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2963,6 +2963,8 @@ public class PurpurWorldConfig { +@@ -2970,6 +2970,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index 1f7a8f2b5196d5b15b047e6d67491a8335cbdbc3..4fa501f2d0e8f99b9b1aa112e8a4155c private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2979,6 +2981,8 @@ public class PurpurWorldConfig { +@@ -2986,6 +2988,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/0193-Option-for-sponges-to-work-on-lava-and-mud.patch b/patches/server/0193-Option-for-sponges-to-work-on-lava-and-mud.patch index 6e606cd03..0e175d40e 100644 --- a/patches/server/0193-Option-for-sponges-to-work-on-lava-and-mud.patch +++ b/patches/server/0193-Option-for-sponges-to-work-on-lava-and-mud.patch @@ -30,10 +30,10 @@ index 9201d911cf155aab7735600073426a0d4213f38b..4540d3a31ed89ea3684feeffb85a3916 if (!iblockdata.is(Blocks.KELP) && !iblockdata.is(Blocks.KELP_PLANT) && !iblockdata.is(Blocks.SEAGRASS) && !iblockdata.is(Blocks.TALL_SEAGRASS)) { return BlockPos.TraversalNodeStatus.SKIP; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4fa501f2d0e8f99b9b1aa112e8a4155c4a3ba652..c5964b249302a386bb878d1aa3f3ce2183e52361 100644 +index ece185b07394b2a09b322b3e00cd78076097b43a..1385065c45b817c4677010b9a4968f0987818f0a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -966,9 +966,13 @@ public class PurpurWorldConfig { +@@ -973,9 +973,13 @@ public class PurpurWorldConfig { public int spongeAbsorptionArea = 65; public int spongeAbsorptionRadius = 6; diff --git a/patches/server/0194-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0194-Toggle-for-Wither-s-spawn-sound.patch index 1a91c8190..c49008284 100644 --- a/patches/server/0194-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0194-Toggle-for-Wither-s-spawn-sound.patch @@ -18,10 +18,10 @@ index 54100d5d9ed31fe292750e668f3c2ba9257f5ef3..6a85049919f0cdc7051d1789a951d9e3 // worldserver.globalLevelEvent(1023, new BlockPosition(this), 0); int viewDistance = world.getCraftServer().getViewDistance() * 16; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c5964b249302a386bb878d1aa3f3ce2183e52361..810258f3c9b49e041db0349ecb8e54d589667e02 100644 +index 1385065c45b817c4677010b9a4968f0987818f0a..71531ec956bf1de473bca192988a26a0a33b0458 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2798,6 +2798,7 @@ public class PurpurWorldConfig { +@@ -2805,6 +2805,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index c5964b249302a386bb878d1aa3f3ce2183e52361..810258f3c9b49e041db0349ecb8e54d5 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2820,6 +2821,7 @@ public class PurpurWorldConfig { +@@ -2827,6 +2828,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/0195-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0195-Cactus-breaks-from-solid-neighbors-config.patch index 51ac62c5f..f01df3a3a 100644 --- a/patches/server/0195-Cactus-breaks-from-solid-neighbors-config.patch +++ b/patches/server/0195-Cactus-breaks-from-solid-neighbors-config.patch @@ -18,10 +18,10 @@ index c045b1cccf0047dbef8c04d5a28d31d53389054f..bbfd8f5d404d0add94f0d8ac89a29646 return false; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 810258f3c9b49e041db0349ecb8e54d589667e02..72d2f15839d04b588e8f43d6a1f06680e7b3d9ee 100644 +index 71531ec956bf1de473bca192988a26a0a33b0458..84c01175dd4d65b1cb8b185f03d93a4cea0e0656 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -807,6 +807,11 @@ public class PurpurWorldConfig { +@@ -814,6 +814,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0197-Conduit-behavior-configuration.patch b/patches/server/0197-Conduit-behavior-configuration.patch index b38fd0fbc..324d8e402 100644 --- a/patches/server/0197-Conduit-behavior-configuration.patch +++ b/patches/server/0197-Conduit-behavior-configuration.patch @@ -97,10 +97,10 @@ index c1759aeb3e6ad0e4eb66cba3da1b120dd1dce812..1a91bc2e422db0eba65694ac046f1b36 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bb8f71030a2da27cc66820a032ffacf667c0d42b..69128f50386bc8a7f0b484493bc24cbc4544a9c1 100644 +index 8f90dbc4395381f712befbbf09b6ae94887843e7..df054975a396856693eb6e70637a50b089836e37 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -3032,4 +3032,27 @@ public class PurpurWorldConfig { +@@ -3039,4 +3039,27 @@ public class PurpurWorldConfig { private void hungerSettings() { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } diff --git a/patches/server/0198-Cauldron-fill-chances.patch b/patches/server/0198-Cauldron-fill-chances.patch index efe956723..e77069627 100644 --- a/patches/server/0198-Cauldron-fill-chances.patch +++ b/patches/server/0198-Cauldron-fill-chances.patch @@ -47,10 +47,10 @@ index 53cea36ec931de89e0060613acf87beb51dc16ec..fd5489993dca0f940da69e9163f78e5c if (dripChance < f1) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 69128f50386bc8a7f0b484493bc24cbc4544a9c1..e3130f456aa1d7e981018017cf3853bd027a41a1 100644 +index df054975a396856693eb6e70637a50b089836e37..5f97cbbe75ffd6a75cb39db7fc24c61e26068cf8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -3055,4 +3055,15 @@ public class PurpurWorldConfig { +@@ -3062,4 +3062,15 @@ public class PurpurWorldConfig { }); conduitBlocks = conduitBlockList.toArray(Block[]::new); } diff --git a/patches/server/0200-Shulker-change-color-with-dye.patch b/patches/server/0200-Shulker-change-color-with-dye.patch index e22f5776f..fe315cb28 100644 --- a/patches/server/0200-Shulker-change-color-with-dye.patch +++ b/patches/server/0200-Shulker-change-color-with-dye.patch @@ -29,10 +29,10 @@ index 8464a8288f7ec7ae14e44b93607ebb0617790c46..837a251afd68b68c5f5f6ab940d62332 protected void registerGoals() { this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 22ca0a30da56af326741fa000bedb37751a5b5fe..6eccd21195c648e8e59ac2e02616d004ce1f2dba 100644 +index ff4d9ccbb9801649ad8ea9dac72b0f32f58e06c1..a47ddcb40340c19ce99a8befe8034240e0457acb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2320,6 +2320,7 @@ public class PurpurWorldConfig { +@@ -2327,6 +2327,7 @@ public class PurpurWorldConfig { public double shulkerSpawnFromBulletNearbyRange = 8.0D; public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; @@ -40,7 +40,7 @@ index 22ca0a30da56af326741fa000bedb37751a5b5fe..6eccd21195c648e8e59ac2e02616d004 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2337,6 +2338,7 @@ public class PurpurWorldConfig { +@@ -2344,6 +2345,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/0204-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0204-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index 67ff6edc3..6e4cc3165 100644 --- a/patches/server/0204-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0204-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch @@ -50,10 +50,10 @@ index 9bafac9b2c7b487f745fb64354f4bbc6a7ded468..1c34691da51d7f7ba3d54e095a3b58b7 .sound(SoundType.FLOWERING_AZALEA) .noOcclusion() diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c2b7e0ebcaf1f95bf496e703760ed2fa29438ed5..8fc61bd5ac93ea63d7ed01c34ef0dc971bb73290 100644 +index e5934c276e286820944488e2d629b01d58dbf200..c44be697e59049adb50967b6d91016035fb69956 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -767,6 +767,11 @@ public class PurpurWorldConfig { +@@ -774,6 +774,11 @@ public class PurpurWorldConfig { anvilColorsUseMiniMessage = getBoolean("blocks.anvil.use-mini-message", anvilColorsUseMiniMessage); } @@ -65,7 +65,7 @@ index c2b7e0ebcaf1f95bf496e703760ed2fa29438ed5..8fc61bd5ac93ea63d7ed01c34ef0dc97 public int beaconLevelOne = 20; public int beaconLevelTwo = 30; public int beaconLevelThree = 40; -@@ -904,6 +909,11 @@ public class PurpurWorldConfig { +@@ -911,6 +916,11 @@ public class PurpurWorldConfig { farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); } diff --git a/patches/server/0206-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0206-Dolphins-naturally-aggressive-to-players-chance.patch index c85bb7572..eddcd392c 100644 --- a/patches/server/0206-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0206-Dolphins-naturally-aggressive-to-players-chance.patch @@ -48,10 +48,10 @@ index bcc6435c177189aa59a3fbe67795ae5092685133..fad0b8157a9c30a0e9b35fe32b6a9f2e 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 fcc093edad7e4e79cd51dbbf1be13a3d13035fe1..f15373de0dda4bfc318891beaaf995469a83ba06 100644 +index 382ce37738d278400b609af7fb9189c93b907eeb..b1a18e3e1b2459adda1a2621a0aa7219d5580a0f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1360,6 +1360,7 @@ public class PurpurWorldConfig { +@@ -1367,6 +1367,7 @@ public class PurpurWorldConfig { public double dolphinScale = 1.0D; public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; @@ -59,7 +59,7 @@ index fcc093edad7e4e79cd51dbbf1be13a3d13035fe1..f15373de0dda4bfc318891beaaf99546 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1375,6 +1376,7 @@ public class PurpurWorldConfig { +@@ -1382,6 +1383,7 @@ public class PurpurWorldConfig { dolphinScale = Mth.clamp(getDouble("mobs.dolphin.attributes.scale", dolphinScale), 0.0625D, 16.0D); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); diff --git a/patches/server/0207-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0207-Cows-naturally-aggressive-to-players-chance.patch index 373894d73..b02c8f5c4 100644 --- a/patches/server/0207-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0207-Cows-naturally-aggressive-to-players-chance.patch @@ -61,10 +61,10 @@ index 2b887a05cbf43a53869c740aa9df7bc75048de05..7ff6425276c7c9004caeee46f1138287 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f15373de0dda4bfc318891beaaf995469a83ba06..de5d1c49f39cd1224bf52aae2f55e163feee96dc 100644 +index b1a18e3e1b2459adda1a2621a0aa7219d5580a0f..f5b04a904118e2ef15a2b735eca9b3e6adbbf63b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1292,7 +1292,14 @@ public class PurpurWorldConfig { +@@ -1299,7 +1299,14 @@ public class PurpurWorldConfig { public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; public boolean cowTakeDamageFromWater = false; @@ -79,7 +79,7 @@ index f15373de0dda4bfc318891beaaf995469a83ba06..de5d1c49f39cd1224bf52aae2f55e163 cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); cowControllable = getBoolean("mobs.cow.controllable", cowControllable); -@@ -1306,6 +1313,8 @@ public class PurpurWorldConfig { +@@ -1313,6 +1320,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/0208-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0208-Option-for-beds-to-explode-on-villager-sleep.patch index 40a151d2d..141b2b300 100644 --- a/patches/server/0208-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0208-Option-for-beds-to-explode-on-villager-sleep.patch @@ -22,10 +22,10 @@ index 5a522d73d41f9aa3977807173d7e34c057a37c7a..373d00fce9e8bcb8d9a8d3e8a05987cf 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 de5d1c49f39cd1224bf52aae2f55e163feee96dc..b8e8f2dd0405f91bdda94cdb9bdae57f07486c41 100644 +index f5b04a904118e2ef15a2b735eca9b3e6adbbf63b..bb0635a71dd3beca33d644b365df8133cb2b2a3a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -786,6 +786,7 @@ public class PurpurWorldConfig { +@@ -793,6 +793,7 @@ public class PurpurWorldConfig { } public boolean bedExplode = true; @@ -33,7 +33,7 @@ index de5d1c49f39cd1224bf52aae2f55e163feee96dc..b8e8f2dd0405f91bdda94cdb9bdae57f public double bedExplosionPower = 5.0D; public boolean bedExplosionFire = true; public net.minecraft.world.level.Level.ExplosionInteraction bedExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; -@@ -796,6 +797,7 @@ public class PurpurWorldConfig { +@@ -803,6 +804,7 @@ public class PurpurWorldConfig { } } bedExplode = getBoolean("blocks.bed.explode", bedExplode); diff --git a/patches/server/0209-Halloween-options-and-optimizations.patch b/patches/server/0209-Halloween-options-and-optimizations.patch index 54db4aa12..431f21ffc 100644 --- a/patches/server/0209-Halloween-options-and-optimizations.patch +++ b/patches/server/0209-Halloween-options-and-optimizations.patch @@ -60,10 +60,10 @@ index b34dec421adc3ce56c0720a839a43ce42faeefaf..98e7b57a45ae3cae704c65ec6db5f715 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 b8e8f2dd0405f91bdda94cdb9bdae57f07486c41..a783b9cbe2f76f91fc85e514464e078e0dff23ba 100644 +index bb0635a71dd3beca33d644b365df8133cb2b2a3a..91115a2c66fc34654de9a30764450fdf7d06006a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1723,6 +1723,13 @@ public class PurpurWorldConfig { +@@ -1730,6 +1730,13 @@ public class PurpurWorldConfig { guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); } diff --git a/patches/server/0212-Campfire-option-for-lit-when-placed.patch b/patches/server/0212-Campfire-option-for-lit-when-placed.patch index 7b348abbf..ab17ed802 100644 --- a/patches/server/0212-Campfire-option-for-lit-when-placed.patch +++ b/patches/server/0212-Campfire-option-for-lit-when-placed.patch @@ -18,10 +18,10 @@ index 1b94f26e78db062f80d806b82f714a815b4710ff..299d782c4e84d8548f2faddfb03712ba @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a783b9cbe2f76f91fc85e514464e078e0dff23ba..ad639c2dfe6f74039387c23b214c2d85e0e8fcdd 100644 +index 91115a2c66fc34654de9a30764450fdf7d06006a..eda31d2f341fd800e9c4d84c8b2c0207746ae227 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -829,6 +829,11 @@ public class PurpurWorldConfig { +@@ -836,6 +836,11 @@ public class PurpurWorldConfig { cactusBreaksFromSolidNeighbors = getBoolean("blocks.cactus.breaks-from-solid-neighbors", cactusBreaksFromSolidNeighbors); } diff --git a/patches/server/0214-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0214-Add-option-to-disable-zombie-villagers-cure.patch index 2df9b073d..33e2d21db 100644 --- a/patches/server/0214-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0214-Add-option-to-disable-zombie-villagers-cure.patch @@ -18,10 +18,10 @@ index 811c5c4bc98401bc9314894eb5cb64bf31b03f63..624b19d415dab0c864b96edf4a706347 if (!this.level().isClientSide) { this.startConverting(player.getUUID(), this.random.nextInt(level().purpurConfig.zombieVillagerCuringTimeMax - level().purpurConfig.zombieVillagerCuringTimeMin + 1) + level().purpurConfig.zombieVillagerCuringTimeMin); // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 23c0edd4a38f47335c492742c9a9accf5feb044c..84d7034b5674fd855835bf97ac33fa3c8294f85b 100644 +index d37cc14aa820be534d0afb434cd56a29764f9a6f..12dc84361b78901dfb3725ff3add422678c19ea8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -3029,6 +3029,7 @@ public class PurpurWorldConfig { +@@ -3036,6 +3036,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index 23c0edd4a38f47335c492742c9a9accf5feb044c..84d7034b5674fd855835bf97ac33fa3c private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -3047,6 +3048,7 @@ public class PurpurWorldConfig { +@@ -3054,6 +3055,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/0216-Signs-allow-color-codes.patch b/patches/server/0216-Signs-allow-color-codes.patch index 1ff3defec..cf37703aa 100644 --- a/patches/server/0216-Signs-allow-color-codes.patch +++ b/patches/server/0216-Signs-allow-color-codes.patch @@ -84,10 +84,10 @@ index 7a1d9a718dc57b5f630ca8e5358120cebaeefb9c..b51b0b0f48b1da6187387d6ec025681e public ClientboundBlockEntityDataPacket getUpdatePacket() { return ClientboundBlockEntityDataPacket.create(this); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a61c0a67996ae71e2cfde8e8bafaa49bd18cbf22..0f02d924d8b8fd939e268923d234d50c3e406ca9 100644 +index c8260dddc2852ad55bdb0091bfccb252a09a4ff3..1f5b541cd87c4e6fafbd1ee9b75d4a323aeacaa1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1002,6 +1002,11 @@ public class PurpurWorldConfig { +@@ -1009,6 +1009,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0218-Mobs-always-drop-experience.patch b/patches/server/0218-Mobs-always-drop-experience.patch index ab56b09da..3ae7bc48a 100644 --- a/patches/server/0218-Mobs-always-drop-experience.patch +++ b/patches/server/0218-Mobs-always-drop-experience.patch @@ -1157,10 +1157,10 @@ index 7d219c1bfdcdc6d06dcb91c33ef09f88dca13aa3..37ba31724fb3630c9c7d8040f47be36e protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa89444a82546 100644 +index 1f5b541cd87c4e6fafbd1ee9b75d4a323aeacaa1..d1a20069971e46a5bd58a31390b54f9216d9cb64 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1089,6 +1089,7 @@ public class PurpurWorldConfig { +@@ -1096,6 +1096,7 @@ public class PurpurWorldConfig { public double axolotlScale = 1.0D; public int axolotlBreedingTicks = 6000; public boolean axolotlTakeDamageFromWater = false; @@ -1168,7 +1168,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void axolotlSettings() { axolotlRidable = getBoolean("mobs.axolotl.ridable", axolotlRidable); axolotlControllable = getBoolean("mobs.axolotl.controllable", axolotlControllable); -@@ -1096,6 +1097,7 @@ public class PurpurWorldConfig { +@@ -1103,6 +1104,7 @@ public class PurpurWorldConfig { axolotlScale = Mth.clamp(getDouble("mobs.axolotl.attributes.scale", axolotlScale), 0.0625D, 16.0D); axolotlBreedingTicks = getInt("mobs.axolotl.breeding-delay-ticks", axolotlBreedingTicks); axolotlTakeDamageFromWater = getBoolean("mobs.axolotl.takes-damage-from-water", axolotlTakeDamageFromWater); @@ -1176,7 +1176,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean batRidable = false; -@@ -1112,6 +1114,7 @@ public class PurpurWorldConfig { +@@ -1119,6 +1121,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1184,7 +1184,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1132,6 +1135,7 @@ public class PurpurWorldConfig { +@@ -1139,6 +1142,7 @@ public class PurpurWorldConfig { batArmorToughness = getDouble("mobs.bat.attributes.armor_toughness", batArmorToughness); batAttackKnockback = getDouble("mobs.bat.attributes.attack_knockback", batAttackKnockback); batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater); @@ -1192,7 +1192,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean beeRidable = false; -@@ -1144,6 +1148,7 @@ public class PurpurWorldConfig { +@@ -1151,6 +1155,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = true; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1200,7 +1200,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1160,6 +1165,7 @@ public class PurpurWorldConfig { +@@ -1167,6 +1172,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); @@ -1208,7 +1208,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean blazeRidable = false; -@@ -1169,6 +1175,7 @@ public class PurpurWorldConfig { +@@ -1176,6 +1182,7 @@ public class PurpurWorldConfig { public double blazeMaxHealth = 20.0D; public double blazeScale = 1.0D; public boolean blazeTakeDamageFromWater = true; @@ -1216,7 +1216,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1182,6 +1189,7 @@ public class PurpurWorldConfig { +@@ -1189,6 +1196,7 @@ public class PurpurWorldConfig { blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); blazeScale = Mth.clamp(getDouble("mobs.blaze.attributes.scale", blazeScale), 0.0625D, 16.0D); blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater); @@ -1224,7 +1224,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean boggedRidable = false; -@@ -1227,6 +1235,7 @@ public class PurpurWorldConfig { +@@ -1234,6 +1242,7 @@ public class PurpurWorldConfig { public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; public boolean catTakeDamageFromWater = false; @@ -1232,7 +1232,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1248,6 +1257,7 @@ public class PurpurWorldConfig { +@@ -1255,6 +1264,7 @@ public class PurpurWorldConfig { catDefaultCollarColor = DyeColor.RED; } catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1240,7 +1240,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean caveSpiderRidable = false; -@@ -1256,6 +1266,7 @@ public class PurpurWorldConfig { +@@ -1263,6 +1273,7 @@ public class PurpurWorldConfig { public double caveSpiderMaxHealth = 12.0D; public double caveSpiderScale = 1.0D; public boolean caveSpiderTakeDamageFromWater = false; @@ -1248,7 +1248,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1268,6 +1279,7 @@ public class PurpurWorldConfig { +@@ -1275,6 +1286,7 @@ public class PurpurWorldConfig { caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); caveSpiderScale = Mth.clamp(getDouble("mobs.cave_spider.attributes.scale", caveSpiderScale), 0.0625D, 16.0D); caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater); @@ -1256,7 +1256,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean chickenRidable = false; -@@ -1278,6 +1290,7 @@ public class PurpurWorldConfig { +@@ -1285,6 +1297,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1264,7 +1264,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1292,6 +1305,7 @@ public class PurpurWorldConfig { +@@ -1299,6 +1312,7 @@ 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); @@ -1272,7 +1272,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean codRidable = false; -@@ -1299,6 +1313,7 @@ public class PurpurWorldConfig { +@@ -1306,6 +1320,7 @@ public class PurpurWorldConfig { public double codMaxHealth = 3.0D; public double codScale = 1.0D; public boolean codTakeDamageFromWater = false; @@ -1280,7 +1280,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -1310,6 +1325,7 @@ public class PurpurWorldConfig { +@@ -1317,6 +1332,7 @@ public class PurpurWorldConfig { codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); codScale = Mth.clamp(getDouble("mobs.cod.attributes.scale", codScale), 0.0625D, 16.0D); codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater); @@ -1288,7 +1288,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean cowRidable = false; -@@ -1322,6 +1338,7 @@ public class PurpurWorldConfig { +@@ -1329,6 +1345,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1296,7 +1296,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1343,6 +1360,7 @@ public class PurpurWorldConfig { +@@ -1350,6 +1367,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); @@ -1304,7 +1304,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean creakingRidable = false; -@@ -1369,6 +1387,7 @@ public class PurpurWorldConfig { +@@ -1376,6 +1394,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1312,7 +1312,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1386,6 +1405,7 @@ public class PurpurWorldConfig { +@@ -1393,6 +1412,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); @@ -1320,7 +1320,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean dolphinRidable = false; -@@ -1398,6 +1418,7 @@ public class PurpurWorldConfig { +@@ -1405,6 +1425,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1328,7 +1328,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1414,6 +1435,7 @@ public class PurpurWorldConfig { +@@ -1421,6 +1442,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); @@ -1336,7 +1336,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean donkeyRidableInWater = false; -@@ -1425,6 +1447,7 @@ public class PurpurWorldConfig { +@@ -1432,6 +1454,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1344,7 +1344,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1442,6 +1465,7 @@ public class PurpurWorldConfig { +@@ -1449,6 +1472,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); @@ -1352,7 +1352,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean drownedRidable = false; -@@ -1455,6 +1479,7 @@ public class PurpurWorldConfig { +@@ -1462,6 +1486,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1360,7 +1360,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1472,6 +1497,7 @@ public class PurpurWorldConfig { +@@ -1479,6 +1504,7 @@ 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); @@ -1368,7 +1368,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean elderGuardianRidable = false; -@@ -1479,6 +1505,7 @@ public class PurpurWorldConfig { +@@ -1486,6 +1512,7 @@ public class PurpurWorldConfig { public double elderGuardianMaxHealth = 80.0D; public double elderGuardianScale = 1.0D; public boolean elderGuardianTakeDamageFromWater = false; @@ -1376,7 +1376,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -1490,6 +1517,7 @@ public class PurpurWorldConfig { +@@ -1497,6 +1524,7 @@ public class PurpurWorldConfig { elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); elderGuardianScale = Mth.clamp(getDouble("mobs.elder_guardian.attributes.scale", elderGuardianScale), 0.0625D, 16.0D); elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater); @@ -1384,7 +1384,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean enderDragonRidable = false; -@@ -1535,6 +1563,7 @@ public class PurpurWorldConfig { +@@ -1542,6 +1570,7 @@ public class PurpurWorldConfig { public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1392,7 +1392,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1558,6 +1587,7 @@ public class PurpurWorldConfig { +@@ -1565,6 +1594,7 @@ public class PurpurWorldConfig { endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles); @@ -1400,7 +1400,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean endermiteRidable = false; -@@ -1566,6 +1596,7 @@ public class PurpurWorldConfig { +@@ -1573,6 +1603,7 @@ public class PurpurWorldConfig { public double endermiteMaxHealth = 8.0D; public double endermiteScale = 1.0D; public boolean endermiteTakeDamageFromWater = false; @@ -1408,7 +1408,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1578,6 +1609,7 @@ public class PurpurWorldConfig { +@@ -1585,6 +1616,7 @@ public class PurpurWorldConfig { endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); endermiteScale = Mth.clamp(getDouble("mobs.endermite.attributes.scale", endermiteScale), 0.0625D, 16.0D); endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater); @@ -1416,7 +1416,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean evokerRidable = false; -@@ -1587,6 +1619,7 @@ public class PurpurWorldConfig { +@@ -1594,6 +1626,7 @@ public class PurpurWorldConfig { public double evokerScale = 1.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1424,7 +1424,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1600,6 +1633,7 @@ public class PurpurWorldConfig { +@@ -1607,6 +1640,7 @@ public class PurpurWorldConfig { evokerScale = Mth.clamp(getDouble("mobs.evoker.attributes.scale", evokerScale), 0.0625D, 16.0D); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater); @@ -1432,7 +1432,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean foxRidable = false; -@@ -1611,6 +1645,7 @@ public class PurpurWorldConfig { +@@ -1618,6 +1652,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1440,7 +1440,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1626,6 +1661,7 @@ public class PurpurWorldConfig { +@@ -1633,6 +1668,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); @@ -1448,7 +1448,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean frogRidable = false; -@@ -1648,6 +1684,7 @@ public class PurpurWorldConfig { +@@ -1655,6 +1691,7 @@ public class PurpurWorldConfig { public double ghastMaxHealth = 10.0D; public double ghastScale = 1.0D; public boolean ghastTakeDamageFromWater = false; @@ -1456,7 +1456,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1661,6 +1698,7 @@ public class PurpurWorldConfig { +@@ -1668,6 +1705,7 @@ public class PurpurWorldConfig { ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); ghastScale = Mth.clamp(getDouble("mobs.ghast.attributes.scale", ghastScale), 0.0625D, 16.0D); ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater); @@ -1464,7 +1464,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean giantRidable = false; -@@ -1675,6 +1713,7 @@ public class PurpurWorldConfig { +@@ -1682,6 +1720,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1472,7 +1472,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1697,6 +1736,7 @@ public class PurpurWorldConfig { +@@ -1704,6 +1743,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); @@ -1480,7 +1480,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean glowSquidRidable = false; -@@ -1705,6 +1745,7 @@ public class PurpurWorldConfig { +@@ -1712,6 +1752,7 @@ public class PurpurWorldConfig { public double glowSquidScale = 1.0D; public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; @@ -1488,7 +1488,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void glowSquidSettings() { glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable); glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable); -@@ -1712,6 +1753,7 @@ public class PurpurWorldConfig { +@@ -1719,6 +1760,7 @@ public class PurpurWorldConfig { glowSquidScale = Mth.clamp(getDouble("mobs.glow_squid.attributes.scale", glowSquidScale), 0.0625D, 16.0D); glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly); glowSquidTakeDamageFromWater = getBoolean("mobs.glow_squid.takes-damage-from-water", glowSquidTakeDamageFromWater); @@ -1496,7 +1496,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean goatRidable = false; -@@ -1721,6 +1763,7 @@ public class PurpurWorldConfig { +@@ -1728,6 +1770,7 @@ public class PurpurWorldConfig { public double goatScale = 1.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1504,7 +1504,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void goatSettings() { goatRidable = getBoolean("mobs.goat.ridable", goatRidable); goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater); -@@ -1729,6 +1772,7 @@ public class PurpurWorldConfig { +@@ -1736,6 +1779,7 @@ public class PurpurWorldConfig { goatScale = Mth.clamp(getDouble("mobs.goat.attributes.scale", goatScale), 0.0625D, 16.0D); goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks); goatTakeDamageFromWater = getBoolean("mobs.goat.takes-damage-from-water", goatTakeDamageFromWater); @@ -1512,7 +1512,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean guardianRidable = false; -@@ -1736,6 +1780,7 @@ public class PurpurWorldConfig { +@@ -1743,6 +1787,7 @@ public class PurpurWorldConfig { public double guardianMaxHealth = 30.0D; public double guardianScale = 1.0D; public boolean guardianTakeDamageFromWater = false; @@ -1520,7 +1520,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1747,6 +1792,7 @@ public class PurpurWorldConfig { +@@ -1754,6 +1799,7 @@ public class PurpurWorldConfig { guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); guardianScale = Mth.clamp(getDouble("mobs.guardian.attributes.scale", guardianScale), 0.0625D, 16.0D); guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); @@ -1528,7 +1528,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean forceHalloweenSeason = false; -@@ -1763,6 +1809,7 @@ public class PurpurWorldConfig { +@@ -1770,6 +1816,7 @@ public class PurpurWorldConfig { public double hoglinScale = 1.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1536,7 +1536,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1776,6 +1823,7 @@ public class PurpurWorldConfig { +@@ -1783,6 +1830,7 @@ public class PurpurWorldConfig { hoglinScale = Mth.clamp(getDouble("mobs.hoglin.attributes.scale", hoglinScale), 0.0625D, 16.0D); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater); @@ -1544,7 +1544,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean horseRidableInWater = false; -@@ -1787,6 +1835,7 @@ public class PurpurWorldConfig { +@@ -1794,6 +1842,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; @@ -1552,7 +1552,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1804,6 +1853,7 @@ public class PurpurWorldConfig { +@@ -1811,6 +1860,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); @@ -1560,7 +1560,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean huskRidable = false; -@@ -1816,6 +1866,7 @@ public class PurpurWorldConfig { +@@ -1823,6 +1873,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1568,7 +1568,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1832,6 +1883,7 @@ public class PurpurWorldConfig { +@@ -1839,6 +1890,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); @@ -1576,7 +1576,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean illusionerRidable = false; -@@ -1842,6 +1894,7 @@ public class PurpurWorldConfig { +@@ -1849,6 +1901,7 @@ public class PurpurWorldConfig { public double illusionerMaxHealth = 32.0D; public double illusionerScale = 1.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1584,7 +1584,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1860,6 +1913,7 @@ public class PurpurWorldConfig { +@@ -1867,6 +1920,7 @@ public class PurpurWorldConfig { illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); illusionerScale = Mth.clamp(getDouble("mobs.illusioner.attributes.scale", illusionerScale), 0.0625D, 16.0D); illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater); @@ -1592,7 +1592,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean ironGolemRidable = false; -@@ -1871,6 +1925,7 @@ public class PurpurWorldConfig { +@@ -1878,6 +1932,7 @@ public class PurpurWorldConfig { public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; public boolean ironGolemHealCalm = false; @@ -1600,7 +1600,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1886,6 +1941,7 @@ public class PurpurWorldConfig { +@@ -1893,6 +1948,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); @@ -1608,7 +1608,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean llamaRidable = false; -@@ -1900,6 +1956,7 @@ public class PurpurWorldConfig { +@@ -1907,6 +1963,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1616,7 +1616,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1920,6 +1977,7 @@ public class PurpurWorldConfig { +@@ -1927,6 +1984,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); @@ -1624,7 +1624,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean magmaCubeRidable = false; -@@ -1930,6 +1988,7 @@ public class PurpurWorldConfig { +@@ -1937,6 +1995,7 @@ public class PurpurWorldConfig { public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1632,7 +1632,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1944,6 +2003,7 @@ public class PurpurWorldConfig { +@@ -1951,6 +2010,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1640,7 +1640,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean mooshroomRidable = false; -@@ -1953,6 +2013,7 @@ public class PurpurWorldConfig { +@@ -1960,6 +2020,7 @@ public class PurpurWorldConfig { public double mooshroomScale = 1.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1648,7 +1648,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1966,6 +2027,7 @@ public class PurpurWorldConfig { +@@ -1973,6 +2034,7 @@ public class PurpurWorldConfig { mooshroomScale = Mth.clamp(getDouble("mobs.mooshroom.attributes.scale", mooshroomScale), 0.0625D, 16.0D); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater); @@ -1656,7 +1656,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean muleRidableInWater = false; -@@ -1977,6 +2039,7 @@ public class PurpurWorldConfig { +@@ -1984,6 +2046,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1664,7 +1664,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1994,6 +2057,7 @@ public class PurpurWorldConfig { +@@ -2001,6 +2064,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); @@ -1672,7 +1672,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean ocelotRidable = false; -@@ -2003,6 +2067,7 @@ public class PurpurWorldConfig { +@@ -2010,6 +2074,7 @@ public class PurpurWorldConfig { public double ocelotScale = 1.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1680,7 +1680,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -2016,6 +2081,7 @@ public class PurpurWorldConfig { +@@ -2023,6 +2088,7 @@ public class PurpurWorldConfig { ocelotScale = Mth.clamp(getDouble("mobs.ocelot.attributes.scale", ocelotScale), 0.0625D, 16.0D); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); @@ -1688,7 +1688,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean pandaRidable = false; -@@ -2025,6 +2091,7 @@ public class PurpurWorldConfig { +@@ -2032,6 +2098,7 @@ public class PurpurWorldConfig { public double pandaScale = 1.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1696,7 +1696,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -2038,6 +2105,7 @@ public class PurpurWorldConfig { +@@ -2045,6 +2112,7 @@ public class PurpurWorldConfig { pandaScale = Mth.clamp(getDouble("mobs.panda.attributes.scale", pandaScale), 0.0625D, 16.0D); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater); @@ -1704,7 +1704,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean parrotRidable = false; -@@ -2048,6 +2116,7 @@ public class PurpurWorldConfig { +@@ -2055,6 +2123,7 @@ public class PurpurWorldConfig { public double parrotScale = 1.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1712,7 +1712,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -2062,6 +2131,7 @@ public class PurpurWorldConfig { +@@ -2069,6 +2138,7 @@ public class PurpurWorldConfig { parrotScale = Mth.clamp(getDouble("mobs.parrot.attributes.scale", parrotScale), 0.0625D, 16.0D); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable); @@ -1720,7 +1720,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean phantomRidable = false; -@@ -2089,6 +2159,7 @@ public class PurpurWorldConfig { +@@ -2096,6 +2166,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1728,7 +1728,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2124,6 +2195,7 @@ public class PurpurWorldConfig { +@@ -2131,6 +2202,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); @@ -1736,7 +1736,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean pigRidable = false; -@@ -2134,6 +2206,7 @@ public class PurpurWorldConfig { +@@ -2141,6 +2213,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1744,7 +1744,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -2148,6 +2221,7 @@ public class PurpurWorldConfig { +@@ -2155,6 +2228,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); @@ -1752,7 +1752,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean piglinRidable = false; -@@ -2158,6 +2232,7 @@ public class PurpurWorldConfig { +@@ -2165,6 +2239,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1760,7 +1760,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2172,6 +2247,7 @@ public class PurpurWorldConfig { +@@ -2179,6 +2254,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); @@ -1768,7 +1768,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean piglinBruteRidable = false; -@@ -2180,6 +2256,7 @@ public class PurpurWorldConfig { +@@ -2187,6 +2263,7 @@ public class PurpurWorldConfig { public double piglinBruteMaxHealth = 50.0D; public double piglinBruteScale = 1.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1776,7 +1776,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2192,6 +2269,7 @@ public class PurpurWorldConfig { +@@ -2199,6 +2276,7 @@ public class PurpurWorldConfig { piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); piglinBruteScale = Mth.clamp(getDouble("mobs.piglin_brute.attributes.scale", piglinBruteScale), 0.0625D, 16.0D); piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater); @@ -1784,7 +1784,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean pillagerRidable = false; -@@ -2201,6 +2279,7 @@ public class PurpurWorldConfig { +@@ -2208,6 +2286,7 @@ public class PurpurWorldConfig { public double pillagerScale = 1.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1792,7 +1792,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2214,6 +2293,7 @@ public class PurpurWorldConfig { +@@ -2221,6 +2300,7 @@ public class PurpurWorldConfig { pillagerScale = Mth.clamp(getDouble("mobs.pillager.attributes.scale", pillagerScale), 0.0625D, 16.0D); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater); @@ -1800,7 +1800,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean polarBearRidable = false; -@@ -2225,6 +2305,7 @@ public class PurpurWorldConfig { +@@ -2232,6 +2312,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1808,7 +1808,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2241,6 +2322,7 @@ public class PurpurWorldConfig { +@@ -2248,6 +2329,7 @@ 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); @@ -1816,7 +1816,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean pufferfishRidable = false; -@@ -2248,6 +2330,7 @@ public class PurpurWorldConfig { +@@ -2255,6 +2337,7 @@ public class PurpurWorldConfig { public double pufferfishMaxHealth = 3.0D; public double pufferfishScale = 1.0D; public boolean pufferfishTakeDamageFromWater = false; @@ -1824,7 +1824,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2259,6 +2342,7 @@ public class PurpurWorldConfig { +@@ -2266,6 +2349,7 @@ public class PurpurWorldConfig { pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); pufferfishScale = Mth.clamp(getDouble("mobs.pufferfish.attributes.scale", pufferfishScale), 0.0625D, 16.0D); pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater); @@ -1832,7 +1832,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean rabbitRidable = false; -@@ -2271,6 +2355,7 @@ public class PurpurWorldConfig { +@@ -2278,6 +2362,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1840,7 +1840,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2287,6 +2372,7 @@ public class PurpurWorldConfig { +@@ -2294,6 +2379,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); @@ -1848,7 +1848,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean ravagerRidable = false; -@@ -2297,6 +2383,7 @@ public class PurpurWorldConfig { +@@ -2304,6 +2390,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1856,7 +1856,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2327,6 +2414,7 @@ public class PurpurWorldConfig { +@@ -2334,6 +2421,7 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1864,7 +1864,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean salmonRidable = false; -@@ -2334,6 +2422,7 @@ public class PurpurWorldConfig { +@@ -2341,6 +2429,7 @@ public class PurpurWorldConfig { public double salmonMaxHealth = 3.0D; public double salmonScale = 1.0D; public boolean salmonTakeDamageFromWater = false; @@ -1872,7 +1872,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2345,6 +2434,7 @@ public class PurpurWorldConfig { +@@ -2352,6 +2441,7 @@ public class PurpurWorldConfig { salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); salmonScale = Mth.clamp(getDouble("mobs.salmon.attributes.scale", salmonScale), 0.0625D, 16.0D); salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater); @@ -1880,7 +1880,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean sheepRidable = false; -@@ -2355,6 +2445,7 @@ public class PurpurWorldConfig { +@@ -2362,6 +2452,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1888,7 +1888,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2369,6 +2460,7 @@ public class PurpurWorldConfig { +@@ -2376,6 +2467,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); @@ -1896,7 +1896,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean shulkerRidable = false; -@@ -2383,6 +2475,7 @@ public class PurpurWorldConfig { +@@ -2390,6 +2482,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1904,7 +1904,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2401,6 +2494,7 @@ public class PurpurWorldConfig { +@@ -2408,6 +2501,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); @@ -1912,7 +1912,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean silverfishRidable = false; -@@ -2412,6 +2506,7 @@ public class PurpurWorldConfig { +@@ -2419,6 +2513,7 @@ public class PurpurWorldConfig { public double silverfishAttackDamage = 1.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1920,7 +1920,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2427,6 +2522,7 @@ public class PurpurWorldConfig { +@@ -2434,6 +2529,7 @@ public class PurpurWorldConfig { silverfishAttackDamage = getDouble("mobs.silverfish.attributes.attack_damage", silverfishAttackDamage); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater); @@ -1928,7 +1928,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean skeletonRidable = false; -@@ -2435,6 +2531,7 @@ public class PurpurWorldConfig { +@@ -2442,6 +2538,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public double skeletonScale = 1.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1936,7 +1936,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2447,6 +2544,7 @@ public class PurpurWorldConfig { +@@ -2454,6 +2551,7 @@ public class PurpurWorldConfig { skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonScale = Mth.clamp(getDouble("mobs.skeleton.attributes.scale", skeletonScale), 0.0625D, 16.0D); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); @@ -1944,7 +1944,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean skeletonHorseRidable = false; -@@ -2459,6 +2557,7 @@ public class PurpurWorldConfig { +@@ -2466,6 +2564,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1952,7 +1952,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void skeletonHorseSettings() { skeletonHorseRidable = getBoolean("mobs.skeleton_horse.ridable", skeletonHorseRidable); skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); -@@ -2476,6 +2575,7 @@ public class PurpurWorldConfig { +@@ -2483,6 +2582,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); @@ -1960,7 +1960,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean slimeRidable = false; -@@ -2486,6 +2586,7 @@ public class PurpurWorldConfig { +@@ -2493,6 +2593,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1968,7 +1968,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2500,6 +2601,7 @@ public class PurpurWorldConfig { +@@ -2507,6 +2608,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1976,7 +1976,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean snowGolemRidable = false; -@@ -2515,6 +2617,7 @@ public class PurpurWorldConfig { +@@ -2522,6 +2624,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1984,7 +1984,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2534,6 +2637,7 @@ public class PurpurWorldConfig { +@@ -2541,6 +2644,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); @@ -1992,7 +1992,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean snifferRidable = false; -@@ -2559,6 +2663,7 @@ public class PurpurWorldConfig { +@@ -2566,6 +2670,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -2000,7 +2000,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2573,6 +2678,7 @@ public class PurpurWorldConfig { +@@ -2580,6 +2685,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); @@ -2008,7 +2008,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean spiderRidable = false; -@@ -2581,6 +2687,7 @@ public class PurpurWorldConfig { +@@ -2588,6 +2694,7 @@ public class PurpurWorldConfig { public double spiderMaxHealth = 16.0D; public double spiderScale = 1.0D; public boolean spiderTakeDamageFromWater = false; @@ -2016,7 +2016,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2593,6 +2700,7 @@ public class PurpurWorldConfig { +@@ -2600,6 +2707,7 @@ public class PurpurWorldConfig { spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderScale = Mth.clamp(getDouble("mobs.spider.attributes.scale", spiderScale), 0.0625D, 16.0D); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); @@ -2024,7 +2024,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean strayRidable = false; -@@ -2601,6 +2709,7 @@ public class PurpurWorldConfig { +@@ -2608,6 +2716,7 @@ public class PurpurWorldConfig { public double strayMaxHealth = 20.0D; public double strayScale = 1.0D; public boolean strayTakeDamageFromWater = false; @@ -2032,7 +2032,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2613,6 +2722,7 @@ public class PurpurWorldConfig { +@@ -2620,6 +2729,7 @@ public class PurpurWorldConfig { strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); strayScale = Mth.clamp(getDouble("mobs.stray.attributes.scale", strayScale), 0.0625D, 16.0D); strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater); @@ -2040,7 +2040,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean striderRidable = false; -@@ -2623,6 +2733,7 @@ public class PurpurWorldConfig { +@@ -2630,6 +2740,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2048,7 +2048,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2637,6 +2748,7 @@ public class PurpurWorldConfig { +@@ -2644,6 +2755,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); @@ -2056,7 +2056,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean tadpoleRidable = false; -@@ -2659,6 +2771,7 @@ public class PurpurWorldConfig { +@@ -2666,6 +2778,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2064,7 +2064,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2678,6 +2791,7 @@ public class PurpurWorldConfig { +@@ -2685,6 +2798,7 @@ 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 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean tropicalFishRidable = false; -@@ -2685,6 +2799,7 @@ public class PurpurWorldConfig { +@@ -2692,6 +2806,7 @@ public class PurpurWorldConfig { public double tropicalFishMaxHealth = 3.0D; public double tropicalFishScale = 1.0D; public boolean tropicalFishTakeDamageFromWater = false; @@ -2080,7 +2080,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2696,6 +2811,7 @@ public class PurpurWorldConfig { +@@ -2703,6 +2818,7 @@ public class PurpurWorldConfig { tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); tropicalFishScale = Mth.clamp(getDouble("mobs.tropical_fish.attributes.scale", tropicalFishScale), 0.0625D, 16.0D); tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater); @@ -2088,7 +2088,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean turtleRidable = false; -@@ -2705,6 +2821,7 @@ public class PurpurWorldConfig { +@@ -2712,6 +2828,7 @@ public class PurpurWorldConfig { public double turtleScale = 1.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2096,7 +2096,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2718,6 +2835,7 @@ public class PurpurWorldConfig { +@@ -2725,6 +2842,7 @@ public class PurpurWorldConfig { turtleScale = Mth.clamp(getDouble("mobs.turtle.attributes.scale", turtleScale), 0.0625D, 16.0D); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater); @@ -2104,7 +2104,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean vexRidable = false; -@@ -2727,6 +2845,7 @@ public class PurpurWorldConfig { +@@ -2734,6 +2852,7 @@ public class PurpurWorldConfig { public double vexMaxHealth = 14.0D; public double vexScale = 1.0D; public boolean vexTakeDamageFromWater = false; @@ -2112,7 +2112,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2740,6 +2859,7 @@ public class PurpurWorldConfig { +@@ -2747,6 +2866,7 @@ public class PurpurWorldConfig { vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); vexScale = Mth.clamp(getDouble("mobs.vex.attributes.scale", vexScale), 0.0625D, 16.0D); vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater); @@ -2120,7 +2120,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean villagerRidable = false; -@@ -2757,6 +2877,7 @@ public class PurpurWorldConfig { +@@ -2764,6 +2884,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2128,7 +2128,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2778,6 +2899,7 @@ public class PurpurWorldConfig { +@@ -2785,6 +2906,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); @@ -2136,7 +2136,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean vindicatorRidable = false; -@@ -2787,6 +2909,7 @@ public class PurpurWorldConfig { +@@ -2794,6 +2916,7 @@ public class PurpurWorldConfig { public double vindicatorScale = 1.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2144,7 +2144,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2800,6 +2923,7 @@ public class PurpurWorldConfig { +@@ -2807,6 +2930,7 @@ public class PurpurWorldConfig { vindicatorScale = Mth.clamp(getDouble("mobs.vindicator.attributes.scale", vindicatorScale), 0.0625D, 16.0D); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater); @@ -2152,7 +2152,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean wanderingTraderRidable = false; -@@ -2812,6 +2936,7 @@ public class PurpurWorldConfig { +@@ -2819,6 +2943,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2160,7 +2160,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2828,6 +2953,7 @@ public class PurpurWorldConfig { +@@ -2835,6 +2960,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); @@ -2168,7 +2168,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean wardenRidable = false; -@@ -2845,6 +2971,7 @@ public class PurpurWorldConfig { +@@ -2852,6 +2978,7 @@ public class PurpurWorldConfig { public double witchMaxHealth = 26.0D; public double witchScale = 1.0D; public boolean witchTakeDamageFromWater = false; @@ -2176,7 +2176,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2857,6 +2984,7 @@ public class PurpurWorldConfig { +@@ -2864,6 +2991,7 @@ public class PurpurWorldConfig { witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); witchScale = Mth.clamp(getDouble("mobs.witch.attributes.scale", witchScale), 0.0625D, 16.0D); witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater); @@ -2184,7 +2184,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean witherRidable = false; -@@ -2872,6 +3000,7 @@ public class PurpurWorldConfig { +@@ -2879,6 +3007,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2192,7 +2192,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2895,6 +3024,7 @@ public class PurpurWorldConfig { +@@ -2902,6 +3031,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); @@ -2200,7 +2200,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean witherSkeletonRidable = false; -@@ -2903,6 +3033,7 @@ public class PurpurWorldConfig { +@@ -2910,6 +3040,7 @@ public class PurpurWorldConfig { public double witherSkeletonMaxHealth = 20.0D; public double witherSkeletonScale = 1.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2208,7 +2208,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2915,6 +3046,7 @@ public class PurpurWorldConfig { +@@ -2922,6 +3053,7 @@ public class PurpurWorldConfig { witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); witherSkeletonScale = Mth.clamp(getDouble("mobs.wither_skeleton.attributes.scale", witherSkeletonScale), 0.0625D, 16.0D); witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater); @@ -2216,7 +2216,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean wolfRidable = false; -@@ -2927,6 +3059,7 @@ public class PurpurWorldConfig { +@@ -2934,6 +3066,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2224,7 +2224,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2947,6 +3080,7 @@ public class PurpurWorldConfig { +@@ -2954,6 +3087,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); @@ -2232,7 +2232,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean zoglinRidable = false; -@@ -2955,6 +3089,7 @@ public class PurpurWorldConfig { +@@ -2962,6 +3096,7 @@ public class PurpurWorldConfig { public double zoglinMaxHealth = 40.0D; public double zoglinScale = 1.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2240,7 +2240,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2967,6 +3102,7 @@ public class PurpurWorldConfig { +@@ -2974,6 +3109,7 @@ public class PurpurWorldConfig { zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); zoglinScale = Mth.clamp(getDouble("mobs.zoglin.attributes.scale", zoglinScale), 0.0625D, 16.0D); zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater); @@ -2248,7 +2248,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean zombieRidable = false; -@@ -2981,6 +3117,7 @@ public class PurpurWorldConfig { +@@ -2988,6 +3124,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2256,7 +2256,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2999,6 +3136,7 @@ public class PurpurWorldConfig { +@@ -3006,6 +3143,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); @@ -2264,7 +2264,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean zombieHorseRidable = false; -@@ -3012,6 +3150,7 @@ public class PurpurWorldConfig { +@@ -3019,6 +3157,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2272,7 +2272,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void zombieHorseSettings() { zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable); zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); -@@ -3030,6 +3169,7 @@ public class PurpurWorldConfig { +@@ -3037,6 +3176,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); @@ -2280,7 +2280,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean zombieVillagerRidable = false; -@@ -3045,6 +3185,7 @@ public class PurpurWorldConfig { +@@ -3052,6 +3192,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2288,7 +2288,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -3064,6 +3205,7 @@ public class PurpurWorldConfig { +@@ -3071,6 +3212,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); @@ -2296,7 +2296,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 } public boolean zombifiedPiglinRidable = false; -@@ -3077,6 +3219,7 @@ public class PurpurWorldConfig { +@@ -3084,6 +3226,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2304,7 +2304,7 @@ index 0f02d924d8b8fd939e268923d234d50c3e406ca9..d6f3f21751613038dae7db5ada4aa894 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -3094,6 +3237,7 @@ public class PurpurWorldConfig { +@@ -3101,6 +3244,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/0220-Ability-for-hoe-to-replant-crops-and-nether-warts.patch b/patches/server/0220-Ability-for-hoe-to-replant-crops-and-nether-warts.patch index 659d942ef..0dbccf0dd 100644 --- a/patches/server/0220-Ability-for-hoe-to-replant-crops-and-nether-warts.patch +++ b/patches/server/0220-Ability-for-hoe-to-replant-crops-and-nether-warts.patch @@ -74,7 +74,7 @@ index 7bb4994d6474c8ea59c102009253552020691b8f..b571bca4375ca7caf9b75dbf84009cb0 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d6f3f21751613038dae7db5ada4aa89444a82546..ef835aa6568bad1a20cc7ebb8775a538234b7915 100644 +index d1a20069971e46a5bd58a31390b54f9216d9cb64..6b579962256be91923531fa4dac21a34b581386b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -509,6 +509,8 @@ public class PurpurWorldConfig { @@ -86,7 +86,7 @@ index d6f3f21751613038dae7db5ada4aa89444a82546..ef835aa6568bad1a20cc7ebb8775a538 private void toolSettings() { axeStrippables.clear(); axeWaxables.clear(); -@@ -776,6 +778,8 @@ public class PurpurWorldConfig { +@@ -783,6 +785,8 @@ public class PurpurWorldConfig { }); shovelFlattenables.put(block, new Flattenable(into, drops)); }); diff --git a/patches/server/0221-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0221-Turtle-eggs-random-tick-crack-chance.patch index 336041369..6577395fd 100644 --- a/patches/server/0221-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0221-Turtle-eggs-random-tick-crack-chance.patch @@ -18,10 +18,10 @@ index a265c5bf1a4d6f3c84cad20f9b3c285dcebd0372..72c89f14977844e1460e9a914f39e896 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ef835aa6568bad1a20cc7ebb8775a538234b7915..957e6d3570a4ad7472afb5dc83da70f4c88ba541 100644 +index 6b579962256be91923531fa4dac21a34b581386b..0d5fb6e2b4d46c6de5222190d2c5535a233c1067 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1036,11 +1036,13 @@ public class PurpurWorldConfig { +@@ -1043,11 +1043,13 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = false; public boolean turtleEggsBreakFromMinecarts = false; public boolean turtleEggsBypassMobGriefing = false; diff --git a/patches/server/0222-Mob-head-visibility-percent.patch b/patches/server/0222-Mob-head-visibility-percent.patch index 88eec79cf..2af47a948 100644 --- a/patches/server/0222-Mob-head-visibility-percent.patch +++ b/patches/server/0222-Mob-head-visibility-percent.patch @@ -32,10 +32,10 @@ index 0af3e463971697626f847cb96f8a431857c1261e..8c2c14769ae32c9a92bc043f9e753abf // 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 957e6d3570a4ad7472afb5dc83da70f4c88ba541..db707841e9d7f2840ff00c2e32933634045315df 100644 +index 0d5fb6e2b4d46c6de5222190d2c5535a233c1067..2c1a380a423e4858f7c1c617fb53e169c882247f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1394,6 +1394,7 @@ public class PurpurWorldConfig { +@@ -1401,6 +1401,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -43,7 +43,7 @@ index 957e6d3570a4ad7472afb5dc83da70f4c88ba541..db707841e9d7f2840ff00c2e32933634 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1412,6 +1413,7 @@ public class PurpurWorldConfig { +@@ -1419,6 +1420,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 957e6d3570a4ad7472afb5dc83da70f4c88ba541..db707841e9d7f2840ff00c2e32933634 } public boolean dolphinRidable = false; -@@ -2239,6 +2241,7 @@ public class PurpurWorldConfig { +@@ -2246,6 +2248,7 @@ public class PurpurWorldConfig { public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; @@ -59,7 +59,7 @@ index 957e6d3570a4ad7472afb5dc83da70f4c88ba541..db707841e9d7f2840ff00c2e32933634 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2254,6 +2257,7 @@ public class PurpurWorldConfig { +@@ -2261,6 +2264,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 957e6d3570a4ad7472afb5dc83da70f4c88ba541..db707841e9d7f2840ff00c2e32933634 } public boolean piglinBruteRidable = false; -@@ -2538,6 +2542,7 @@ public class PurpurWorldConfig { +@@ -2545,6 +2549,7 @@ public class PurpurWorldConfig { public double skeletonScale = 1.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -75,7 +75,7 @@ index 957e6d3570a4ad7472afb5dc83da70f4c88ba541..db707841e9d7f2840ff00c2e32933634 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2551,6 +2556,7 @@ public class PurpurWorldConfig { +@@ -2558,6 +2563,7 @@ public class PurpurWorldConfig { skeletonScale = Mth.clamp(getDouble("mobs.skeleton.attributes.scale", skeletonScale), 0.0625D, 16.0D); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); @@ -83,7 +83,7 @@ index 957e6d3570a4ad7472afb5dc83da70f4c88ba541..db707841e9d7f2840ff00c2e32933634 } public boolean skeletonHorseRidable = false; -@@ -3124,6 +3130,7 @@ public class PurpurWorldConfig { +@@ -3131,6 +3137,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index 957e6d3570a4ad7472afb5dc83da70f4c88ba541..db707841e9d7f2840ff00c2e32933634 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -3143,6 +3150,7 @@ public class PurpurWorldConfig { +@@ -3150,6 +3157,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/0224-Stop-bees-from-dying-after-stinging.patch b/patches/server/0224-Stop-bees-from-dying-after-stinging.patch index edd44e9dc..b60e170c7 100644 --- a/patches/server/0224-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0224-Stop-bees-from-dying-after-stinging.patch @@ -17,10 +17,10 @@ index e2c6691ecca79df5828e6136568933b41ba5e1fa..c533e8c98411ea857df56a98581e903a ++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 db707841e9d7f2840ff00c2e32933634045315df..ecef27cf83b1c77d33ffd1cb96e0d72f91427b75 100644 +index 2c1a380a423e4858f7c1c617fb53e169c882247f..d71abce6d9dc812d46eda7acff5249621e5b0ae7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1155,6 +1155,7 @@ public class PurpurWorldConfig { +@@ -1162,6 +1162,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index db707841e9d7f2840ff00c2e32933634045315df..ecef27cf83b1c77d33ffd1cb96e0d72f private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1172,6 +1173,7 @@ public class PurpurWorldConfig { +@@ -1179,6 +1180,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/0226-Configurable-farmland-trample-height.patch b/patches/server/0226-Configurable-farmland-trample-height.patch index ac7ecc34c..5d0c5bc6e 100644 --- a/patches/server/0226-Configurable-farmland-trample-height.patch +++ b/patches/server/0226-Configurable-farmland-trample-height.patch @@ -35,10 +35,10 @@ index af135f8b70b0e2af470afce9053976c3a1e03477..eaac00e2534aca4eab92c7b9f9248e04 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 ecef27cf83b1c77d33ffd1cb96e0d72f91427b75..2e2b84ea36dfd33fe7f78f14d07e9bce1211a98d 100644 +index d71abce6d9dc812d46eda7acff5249621e5b0ae7..c5e894560b3ac371da123a339355fa89dd442ee4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -929,6 +929,7 @@ public class PurpurWorldConfig { +@@ -936,6 +936,7 @@ public class PurpurWorldConfig { public boolean farmlandTramplingDisabled = false; public boolean farmlandTramplingOnlyPlayers = false; public boolean farmlandTramplingFeatherFalling = false; @@ -46,7 +46,7 @@ index ecef27cf83b1c77d33ffd1cb96e0d72f91427b75..2e2b84ea36dfd33fe7f78f14d07e9bce private void farmlandSettings() { farmlandBypassMobGriefing = getBoolean("blocks.farmland.bypass-mob-griefing", farmlandBypassMobGriefing); farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); -@@ -936,6 +937,7 @@ public class PurpurWorldConfig { +@@ -943,6 +944,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/0229-Configurable-phantom-size.patch b/patches/server/0229-Configurable-phantom-size.patch index d1b70479b..5ffe2d685 100644 --- a/patches/server/0229-Configurable-phantom-size.patch +++ b/patches/server/0229-Configurable-phantom-size.patch @@ -22,10 +22,10 @@ index 3104b76d98a2b3870535ea5e776fb8fb6e5d3680..23ca324c5379f9735232a9f74071117d } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 79df9922bf8f0fc9a74b1ef97e59ff47e749cd7b..aa8ea52c7e9a4c60864328a30a86530e73385563 100644 +index 0292d3dac3a6b348784d3b75e210e023a1d146d2..fc11b643c938cf7d7bd088825dfd89afef15401d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2176,6 +2176,8 @@ public class PurpurWorldConfig { +@@ -2183,6 +2183,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index 79df9922bf8f0fc9a74b1ef97e59ff47e749cd7b..aa8ea52c7e9a4c60864328a30a86530e private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2212,6 +2214,13 @@ public class PurpurWorldConfig { +@@ -2219,6 +2221,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/0231-Configurable-minimum-demand-for-trades.patch b/patches/server/0231-Configurable-minimum-demand-for-trades.patch index 0f2e63375..7c2c1c388 100644 --- a/patches/server/0231-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0231-Configurable-minimum-demand-for-trades.patch @@ -40,10 +40,10 @@ index 0efc8d997b34302c3e0a5d7ec73a11a940dbeefe..af157881d440b34cfe79fbc9b03cc9ef public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index aa8ea52c7e9a4c60864328a30a86530e73385563..73510c194f9c15611f5776f60cc9bee07aa816ab 100644 +index fc11b643c938cf7d7bd088825dfd89afef15401d..fa09bd0e91d3c71d960e316f792323b763569b6e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2907,6 +2907,7 @@ public class PurpurWorldConfig { +@@ -2914,6 +2914,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index aa8ea52c7e9a4c60864328a30a86530e73385563..73510c194f9c15611f5776f60cc9bee0 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2929,6 +2930,7 @@ public class PurpurWorldConfig { +@@ -2936,6 +2937,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/0232-Lobotomize-stuck-villagers.patch b/patches/server/0232-Lobotomize-stuck-villagers.patch index c1f389de2..419721675 100644 --- a/patches/server/0232-Lobotomize-stuck-villagers.patch +++ b/patches/server/0232-Lobotomize-stuck-villagers.patch @@ -104,10 +104,10 @@ index 8e895d6f84f7d84b219f2424909dd42e5f08dec4..53dcce0701d713c5dd097340a91b8be4 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 73510c194f9c15611f5776f60cc9bee07aa816ab..5f3bbb6adabaefaf54d4a313c5e7c99eaf3f1391 100644 +index fa09bd0e91d3c71d960e316f792323b763569b6e..30d54adaae14884832387951d47872bedaf087a0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2908,6 +2908,9 @@ public class PurpurWorldConfig { +@@ -2915,6 +2915,9 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -117,7 +117,7 @@ index 73510c194f9c15611f5776f60cc9bee07aa816ab..5f3bbb6adabaefaf54d4a313c5e7c99e private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2931,6 +2934,18 @@ public class PurpurWorldConfig { +@@ -2938,6 +2941,18 @@ 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/0233-Option-for-villager-display-trade-item.patch b/patches/server/0233-Option-for-villager-display-trade-item.patch index 1fa73b8ea..d77176136 100644 --- a/patches/server/0233-Option-for-villager-display-trade-item.patch +++ b/patches/server/0233-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 18dad0825616c4167a0a7555689ee64910a87e09..6945992491027d43eca4f1ca697ad45c && this.lookTime > 0 && entity.getBrain().getMemory(MemoryModuleType.INTERACTION_TARGET).isPresent(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5f3bbb6adabaefaf54d4a313c5e7c99eaf3f1391..8edb79160b90f9caaa58233608621078ad31cb47 100644 +index 30d54adaae14884832387951d47872bedaf087a0..b5b0a603c8c6c3e71e1540012227500276022263 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2911,6 +2911,7 @@ public class PurpurWorldConfig { +@@ -2918,6 +2918,7 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerLobotomizeWaitUntilTradeLocked = false; @@ -28,7 +28,7 @@ index 5f3bbb6adabaefaf54d4a313c5e7c99eaf3f1391..8edb79160b90f9caaa58233608621078 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2946,6 +2947,7 @@ public class PurpurWorldConfig { +@@ -2953,6 +2954,7 @@ public class PurpurWorldConfig { villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked); diff --git a/patches/server/0234-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0234-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch index e65314871..63465cb8b 100644 --- a/patches/server/0234-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch +++ b/patches/server/0234-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch @@ -17,10 +17,10 @@ index 8c4532a250f8679d729a35c17e9b5bd339264450..2b8336bd88641cfb29e94c8f01abfbdb } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8edb79160b90f9caaa58233608621078ad31cb47..5a9073ceeac3f41ed8ee9659dd7a33769f4e2f04 100644 +index b5b0a603c8c6c3e71e1540012227500276022263..6572bbaf5d5548b1d2d6c224a9dcbbfe31f34339 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1023,8 +1023,10 @@ public class PurpurWorldConfig { +@@ -1030,8 +1030,10 @@ public class PurpurWorldConfig { } public boolean spawnerDeactivateByRedstone = false; diff --git a/patches/server/0236-Anvil-repair-damage-options.patch b/patches/server/0236-Anvil-repair-damage-options.patch index 0002d6896..52564796d 100644 --- a/patches/server/0236-Anvil-repair-damage-options.patch +++ b/patches/server/0236-Anvil-repair-damage-options.patch @@ -63,10 +63,10 @@ index 50c907c962f936d2035bb7550750cdbd220b29c2..f9a2d2d4f798efa0d691996ec5ff7fe0 protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) { if (!world.isClientSide) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1a37f10b480c9d63b912543afbc80913095aaa7b..3d545e57066270d1d39e9ca45c559a707966f815 100644 +index 13791cc140fa7643991f5c958f48bf4693b20895..1290e73e4e741e7530481885994f16c2fd5db32c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -790,9 +790,13 @@ public class PurpurWorldConfig { +@@ -797,9 +797,13 @@ public class PurpurWorldConfig { public boolean anvilAllowColors = false; public boolean anvilColorsUseMiniMessage; diff --git a/patches/server/0237-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0237-Option-to-disable-turtle-egg-trampling-with-feather-.patch index 544695a87..149b1541d 100644 --- a/patches/server/0237-Option-to-disable-turtle-egg-trampling-with-feather-.patch +++ b/patches/server/0237-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -24,10 +24,10 @@ index 72c89f14977844e1460e9a914f39e896c9d498fd..f1dfb23160ff70e0da4dd2af2d83e879 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 3d545e57066270d1d39e9ca45c559a707966f815..f7ef17c90205e129d776c0faa9aaf6a2607a31ba 100644 +index 1290e73e4e741e7530481885994f16c2fd5db32c..7cdcea1f5170bc095b365f126a05cb4a6ca70087 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1051,12 +1051,14 @@ public class PurpurWorldConfig { +@@ -1058,12 +1058,14 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromMinecarts = false; public boolean turtleEggsBypassMobGriefing = false; public int turtleEggsRandomTickCrackChance = 500; diff --git a/patches/server/0240-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0240-Implement-configurable-search-radius-for-villagers-t.patch index 0e9a78929..c03c455cb 100644 --- a/patches/server/0240-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0240-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index a191fb8563c01413dc4119e3adf81e23aacb824b..15ddc44bb266b4cdb1036c92dd60f137 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 f7ef17c90205e129d776c0faa9aaf6a2607a31ba..26f90270a8b6f1eccf0ddf9babfc6d8026f1d509 100644 +index 7cdcea1f5170bc095b365f126a05cb4a6ca70087..f789100866e21cdf7b2891dfcb6913081f597d79 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2922,6 +2922,8 @@ public class PurpurWorldConfig { +@@ -2929,6 +2929,8 @@ public class PurpurWorldConfig { public int villagerLobotomizeCheckInterval = 100; public boolean villagerLobotomizeWaitUntilTradeLocked = false; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index f7ef17c90205e129d776c0faa9aaf6a2607a31ba..26f90270a8b6f1eccf0ddf9babfc6d80 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2958,6 +2960,8 @@ public class PurpurWorldConfig { +@@ -2965,6 +2967,8 @@ public class PurpurWorldConfig { villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerLobotomizeWaitUntilTradeLocked = getBoolean("mobs.villager.lobotomize.wait-until-trade-locked", villagerLobotomizeWaitUntilTradeLocked); villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); diff --git a/patches/server/0241-Stonecutter-damage.patch b/patches/server/0241-Stonecutter-damage.patch index 69dd13a4d..23727c52c 100644 --- a/patches/server/0241-Stonecutter-damage.patch +++ b/patches/server/0241-Stonecutter-damage.patch @@ -128,7 +128,7 @@ index e3013916952012e69a23ac2efe9fc5e31a2b3d87..763d06265c7d0000e4c641c3aaba785b } else if (source.is(DamageTypes.HOT_FLOOR)) { cause = DamageCause.HOT_FLOOR; diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 2090ecfebe8bc164239d198c1c50b134c7bc60c5..dba6a69891f50ba057187a8138ff227ad7501eaa 100644 +index 6cd88ca590658adb8f79296fc74af3536e2e1be3..4ad201f8457dca2305224cc74a1f55b90dd60140 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -212,8 +212,10 @@ public class PurpurConfig { @@ -143,10 +143,10 @@ index 2090ecfebe8bc164239d198c1c50b134c7bc60c5..dba6a69891f50ba057187a8138ff227a 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 26f90270a8b6f1eccf0ddf9babfc6d8026f1d509..22ae60309fa0b19ba3d2b58c919a6e262eb1903d 100644 +index f789100866e21cdf7b2891dfcb6913081f597d79..2a53cf6fcab47e49735a31ed9eb1fb668caa2e4c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1046,6 +1046,11 @@ public class PurpurWorldConfig { +@@ -1053,6 +1053,11 @@ public class PurpurWorldConfig { spongeAbsorbsWaterFromMud = getBoolean("blocks.sponge.absorbs-water-from-mud", spongeAbsorbsWaterFromMud); } diff --git a/patches/server/0242-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0242-Configurable-damage-settings-for-magma-blocks.patch index fd37174a9..a09c7c70a 100644 --- a/patches/server/0242-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0242-Configurable-damage-settings-for-magma-blocks.patch @@ -18,10 +18,10 @@ index 7ffdcf18bf4bd8b5325c76945b2d80ca3fe52958..dfa931316fde0b2e80068a0edd1427ff } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 22ae60309fa0b19ba3d2b58c919a6e262eb1903d..4eb94ba260c76984f78a96e0ceb721a857be6e75 100644 +index 2a53cf6fcab47e49735a31ed9eb1fb668caa2e4c..18ea922e71dc9de3e9eccac2d30c5f2776928a0b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -987,6 +987,11 @@ public class PurpurWorldConfig { +@@ -994,6 +994,11 @@ public class PurpurWorldConfig { pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); } diff --git a/patches/server/0243-Add-config-for-snow-on-blue-ice.patch b/patches/server/0243-Add-config-for-snow-on-blue-ice.patch index ade77f277..4c1f98d29 100644 --- a/patches/server/0243-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0243-Add-config-for-snow-on-blue-ice.patch @@ -22,10 +22,10 @@ index 9908a0b5b1fec5f9de518a733f7abbbff7e1a9f9..0ad444cf7f798f63e9140a42c5d5d8ca } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4eb94ba260c76984f78a96e0ceb721a857be6e75..eb84c63b029a39ac352d1b0cf5a264c0c14d2f8e 100644 +index 18ea922e71dc9de3e9eccac2d30c5f2776928a0b..cbf26d5f0a3d615883b17c65709d078c72c46bbf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -968,9 +968,11 @@ public class PurpurWorldConfig { +@@ -975,9 +975,11 @@ public class PurpurWorldConfig { public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnBlueIce = true; diff --git a/patches/server/0244-Skeletons-eat-wither-roses.patch b/patches/server/0244-Skeletons-eat-wither-roses.patch index bb1d0adae..e7eb30d43 100644 --- a/patches/server/0244-Skeletons-eat-wither-roses.patch +++ b/patches/server/0244-Skeletons-eat-wither-roses.patch @@ -91,10 +91,10 @@ index 61b5f27c1125ed1b183dd3b86b44a10b7098f91c..84bd180ce29d4560675b029a1fa01b03 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index eb84c63b029a39ac352d1b0cf5a264c0c14d2f8e..c4d13f49beeaf2e0a5059a7e916d59502e6c36c1 100644 +index cbf26d5f0a3d615883b17c65709d078c72c46bbf..c122af4829a2edd3977af0310b27bb984d8eaad5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2582,6 +2582,7 @@ public class PurpurWorldConfig { +@@ -2589,6 +2589,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -102,7 +102,7 @@ index eb84c63b029a39ac352d1b0cf5a264c0c14d2f8e..c4d13f49beeaf2e0a5059a7e916d5950 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2596,6 +2597,7 @@ public class PurpurWorldConfig { +@@ -2603,6 +2604,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/0245-Enchantment-Table-Persists-Lapis.patch b/patches/server/0245-Enchantment-Table-Persists-Lapis.patch index 92ae74363..1b24b3a21 100644 --- a/patches/server/0245-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0245-Enchantment-Table-Persists-Lapis.patch @@ -136,10 +136,10 @@ index 39aac959775afeaeea211f21d498cb0ddf0a3fcb..6349a342c023f378af431a73a62fb017 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c4d13f49beeaf2e0a5059a7e916d59502e6c36c1..716ec5b0afcd4e3818d5d749eb5d12d3917e0e86 100644 +index c122af4829a2edd3977af0310b27bb984d8eaad5..71a631b2adcd9f67ae8831a002129b6f76c3a331 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1558,6 +1558,11 @@ public class PurpurWorldConfig { +@@ -1565,6 +1565,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0247-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0247-Config-for-sculk-shrieker-can_summon-state.patch index 380631b15..2def00ebe 100644 --- a/patches/server/0247-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0247-Config-for-sculk-shrieker-can_summon-state.patch @@ -18,10 +18,10 @@ index 7990a6c225c27845ccada0df91cf5ed7e4315a88..db2b21d5842fafa48dbde25a461505d0 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 716ec5b0afcd4e3818d5d749eb5d12d3917e0e86..3ad962a28cd4471f2d7593f6053008871a78e50c 100644 +index 71a631b2adcd9f67ae8831a002129b6f76c3a331..5c0e0613c8e25f77b8ca92af09ef9b535e85995d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1025,6 +1025,11 @@ public class PurpurWorldConfig { +@@ -1032,6 +1032,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0248-Config-to-not-let-coral-die.patch b/patches/server/0248-Config-to-not-let-coral-die.patch index 70f003e34..7d4531f71 100644 --- a/patches/server/0248-Config-to-not-let-coral-die.patch +++ b/patches/server/0248-Config-to-not-let-coral-die.patch @@ -29,10 +29,10 @@ index a59b23f4062fa896836dec72cbd5097411774ad1..c526ea13a726624adaa654f09ff84c89 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 3ad962a28cd4471f2d7593f6053008871a78e50c..ffd131b4ff8d0c49c76829ec202c955509f9ae96 100644 +index 5c0e0613c8e25f77b8ca92af09ef9b535e85995d..d80584a0412b6699c24f5817e8ec26cf9f46d92d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -874,6 +874,11 @@ public class PurpurWorldConfig { +@@ -881,6 +881,11 @@ public class PurpurWorldConfig { composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); } diff --git a/patches/server/0255-Add-skeleton-bow-accuracy-option.patch b/patches/server/0255-Add-skeleton-bow-accuracy-option.patch index dcd7828ff..339c16887 100644 --- a/patches/server/0255-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0255-Add-skeleton-bow-accuracy-option.patch @@ -18,10 +18,10 @@ index f90f3e3ad7c941e3222a8119d9b01d571eef4c1b..0235488faee8078186fbb78038789da0 // CraftBukkit end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bff614ae120300622b803187bcfdf7e6f88fa7a8..1fda4d542e3395612b2550aa32bfb3f882b797e9 100644 +index dee8860d593b126353f9f284de65b5fccbe4f530..5be4f4aebec0f2e78633d4849bc7ca032c2aef40 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2602,6 +2602,8 @@ public class PurpurWorldConfig { +@@ -2609,6 +2609,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index bff614ae120300622b803187bcfdf7e6f88fa7a8..1fda4d542e3395612b2550aa32bfb3f8 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2617,6 +2619,18 @@ public class PurpurWorldConfig { +@@ -2624,6 +2626,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/0266-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0266-Add-option-to-allow-creeper-to-encircle-target-when-.patch index c5baf038f..e86528a2f 100644 --- a/patches/server/0266-Add-option-to-allow-creeper-to-encircle-target-when-.patch +++ b/patches/server/0266-Add-option-to-allow-creeper-to-encircle-target-when-.patch @@ -24,10 +24,10 @@ index 137ec75ee803789deb7b1ca93dd9369c9af362b9..ca95d25af3e9a0536868b0c7fd8e7d2f } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2cc357dea94572362f7c67c051031352c4781e3e..6528d3c3e0d817e8e903ff99f8b71dc78d4f58c8 100644 +index 464c38139175c51e64b55b615872cfdb235255a6..a50896fc423c9a1781c5d4b189395afeecb96756 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1441,6 +1441,7 @@ public class PurpurWorldConfig { +@@ -1448,6 +1448,7 @@ public class PurpurWorldConfig { public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; public double creeperHeadVisibilityPercent = 0.5D; @@ -35,7 +35,7 @@ index 2cc357dea94572362f7c67c051031352c4781e3e..6528d3c3e0d817e8e903ff99f8b71dc7 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1460,6 +1461,7 @@ public class PurpurWorldConfig { +@@ -1467,6 +1468,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/0271-End-Crystal-Cramming.patch b/patches/server/0271-End-Crystal-Cramming.patch index eaa01301d..7dc4ccf00 100644 --- a/patches/server/0271-End-Crystal-Cramming.patch +++ b/patches/server/0271-End-Crystal-Cramming.patch @@ -17,10 +17,10 @@ index 305c3350116f656c3d0e6134e4d8023eac50f3ad..b1db1e92de3a88a0f0e0fdb42b0bf973 // Purpur start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 114d8082fe8d5a0cb8bbf48dbbf8d315e6a039d5..6e634c6997c98a8242a6a8b3056c6bb2efed1c2f 100644 +index 75d088219ab83ae9e6ca6b95f4551c917c2f79cd..1400039583896ffe6198949e5e627ef58c5abee9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -917,6 +917,7 @@ public class PurpurWorldConfig { +@@ -924,6 +924,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 114d8082fe8d5a0cb8bbf48dbbf8d315e6a039d5..6e634c6997c98a8242a6a8b3056c6bb2 private void endCrystalSettings() { if (PurpurConfig.version < 31) { if ("DESTROY".equals(getString("blocks.end-crystal.baseless.explosion-effect", baselessEndCrystalExplosionEffect.name()))) { -@@ -944,6 +945,7 @@ public class PurpurWorldConfig { +@@ -951,6 +952,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/0272-Option-to-allow-beacon-effects-when-covered-by-tinte.patch b/patches/server/0272-Option-to-allow-beacon-effects-when-covered-by-tinte.patch index 56f783a26..eccdcbf07 100644 --- a/patches/server/0272-Option-to-allow-beacon-effects-when-covered-by-tinte.patch +++ b/patches/server/0272-Option-to-allow-beacon-effects-when-covered-by-tinte.patch @@ -36,10 +36,10 @@ index fbc6b0099af34b0247f6144a9cef020f9ccddeef..2d190b3a6378b8cbadfa65510df1ccfb 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 6e634c6997c98a8242a6a8b3056c6bb2efed1c2f..2cb1a54fd54504ef5ac2ac284df0e7a3052edb4a 100644 +index 1400039583896ffe6198949e5e627ef58c5abee9..0cc3e2a55712a809a3338b06ab23a3172334b1b3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -816,11 +816,13 @@ public class PurpurWorldConfig { +@@ -823,11 +823,13 @@ public class PurpurWorldConfig { public int beaconLevelTwo = 30; public int beaconLevelThree = 40; public int beaconLevelFour = 50; diff --git a/patches/server/0275-bonemealable-sugarcane-cactus-and-netherwart.patch b/patches/server/0275-bonemealable-sugarcane-cactus-and-netherwart.patch index 2083540a4..472367957 100644 --- a/patches/server/0275-bonemealable-sugarcane-cactus-and-netherwart.patch +++ b/patches/server/0275-bonemealable-sugarcane-cactus-and-netherwart.patch @@ -137,10 +137,10 @@ index 547ea09ed84595286c97c128b3b96f6d387ae25f..d0f8a13f27132257ece6dadf736c2dc6 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e5a855b5dfc0e23a00c9e44c2c0ee5f701fe696e..f6c59ba4c36382c522c009e78a5c96d702a49fe4 100644 +index 7c468d3002a0b6fca37ae5a731c5f0456af35744..280fae97ec04fea5ffe00189880a5de09c69dbc3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -870,8 +870,20 @@ public class PurpurWorldConfig { +@@ -877,8 +877,20 @@ public class PurpurWorldConfig { } public boolean cactusBreaksFromSolidNeighbors = true; diff --git a/patches/server/0280-Shears-can-defuse-TNT.patch b/patches/server/0280-Shears-can-defuse-TNT.patch index 86295e75b..9e953e2f1 100644 --- a/patches/server/0280-Shears-can-defuse-TNT.patch +++ b/patches/server/0280-Shears-can-defuse-TNT.patch @@ -44,10 +44,10 @@ index 809f5e847e2f5bb594c130cebd2cb897ea768d82..6f1e21d6c104d71fe4fc3376ed2f2273 + // Purpur end - Shears can defuse TNT } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f6c59ba4c36382c522c009e78a5c96d702a49fe4..640a7380fe1d3091eed8ca6c95dc8ddb4faf8edc 100644 +index 280fae97ec04fea5ffe00189880a5de09c69dbc3..9847f58a029901a765df3809b24d56b8e2e50f02 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -3416,4 +3416,11 @@ public class PurpurWorldConfig { +@@ -3423,4 +3423,11 @@ public class PurpurWorldConfig { cauldronDripstoneWaterFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-water", cauldronDripstoneWaterFillChance); cauldronDripstoneLavaFillChance = (float) getDouble("blocks.cauldron.fill-chances.dripstone-lava", cauldronDripstoneLavaFillChance); } diff --git a/patches/server/0282-Option-Ocelot-Spawn-Under-Sea-Level.patch b/patches/server/0282-Option-Ocelot-Spawn-Under-Sea-Level.patch index 73b11e793..036c8c9af 100644 --- a/patches/server/0282-Option-Ocelot-Spawn-Under-Sea-Level.patch +++ b/patches/server/0282-Option-Ocelot-Spawn-Under-Sea-Level.patch @@ -18,10 +18,10 @@ index 14634de26c218a3d26afd3e7e6ca89c1a0595178..dee59cb4b87845c940ee089aa932aa69 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 640a7380fe1d3091eed8ca6c95dc8ddb4faf8edc..ad1c62c92a0fa2ff49f14108c69370cb73e7f4e6 100644 +index 9847f58a029901a765df3809b24d56b8e2e50f02..8031960ec1d83a26cac92f6f01d76b9e328624e2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2152,6 +2152,7 @@ public class PurpurWorldConfig { +@@ -2159,6 +2159,7 @@ public class PurpurWorldConfig { public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; public boolean ocelotAlwaysDropExp = false; @@ -29,7 +29,7 @@ index 640a7380fe1d3091eed8ca6c95dc8ddb4faf8edc..ad1c62c92a0fa2ff49f14108c69370cb private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -2166,6 +2167,7 @@ public class PurpurWorldConfig { +@@ -2173,6 +2174,7 @@ public class PurpurWorldConfig { ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); ocelotAlwaysDropExp = getBoolean("mobs.ocelot.always-drop-exp", ocelotAlwaysDropExp); diff --git a/patches/server/0283-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch b/patches/server/0283-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch index d4bfc001e..4fa363448 100644 --- a/patches/server/0283-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch +++ b/patches/server/0283-add-an-option-for-piglins-to-ignore-gold-trimmed-arm.patch @@ -29,10 +29,10 @@ index e283b1296c1e831376bfe9491cbf02ed4b3fffe4..27a6de70530c2a1cbe2f77a7fb493038 piglin.getBrain().eraseMemory(MemoryModuleType.WALK_TARGET); piglin.getNavigation().stop(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ad1c62c92a0fa2ff49f14108c69370cb73e7f4e6..35db58344e79bd3c83099626a425ea8d75a95ae5 100644 +index 8031960ec1d83a26cac92f6f01d76b9e328624e2..3308e2ce5bf49996c7dd75bb604989225cabd16d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2329,6 +2329,7 @@ public class PurpurWorldConfig { +@@ -2336,6 +2336,7 @@ public class PurpurWorldConfig { public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; public double piglinHeadVisibilityPercent = 0.5D; @@ -40,7 +40,7 @@ index ad1c62c92a0fa2ff49f14108c69370cb73e7f4e6..35db58344e79bd3c83099626a425ea8d private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2345,6 +2346,7 @@ public class PurpurWorldConfig { +@@ -2352,6 +2353,7 @@ public class PurpurWorldConfig { piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp); piglinHeadVisibilityPercent = getDouble("mobs.piglin.head-visibility-percent", piglinHeadVisibilityPercent); diff --git a/patches/server/0285-place-end-crystal-on-any-block.patch b/patches/server/0285-place-end-crystal-on-any-block.patch index d09aae1fb..e2927fcac 100644 --- a/patches/server/0285-place-end-crystal-on-any-block.patch +++ b/patches/server/0285-place-end-crystal-on-any-block.patch @@ -18,10 +18,10 @@ index 2bee342e59e600426c8681a3ce641a12f22790be..e75930f26604b772a141a93c6f4b7782 } else { BlockPos blockposition1 = blockposition.above(); final BlockPos aboveBlockPosition = blockposition1; // Paper - OBFHELPER diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 35db58344e79bd3c83099626a425ea8d75a95ae5..b966d7cbdc8f62e0d5df93e84e2829b6c4818e7c 100644 +index 3308e2ce5bf49996c7dd75bb604989225cabd16d..552993124deefef3b9875608cea545b3a97b8bc6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -937,6 +937,7 @@ public class PurpurWorldConfig { +@@ -944,6 +944,7 @@ public class PurpurWorldConfig { public boolean basedEndCrystalExplosionFire = false; public net.minecraft.world.level.Level.ExplosionInteraction basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; public int endCrystalCramming = 0; @@ -29,7 +29,7 @@ index 35db58344e79bd3c83099626a425ea8d75a95ae5..b966d7cbdc8f62e0d5df93e84e2829b6 private void endCrystalSettings() { if (PurpurConfig.version < 31) { if ("DESTROY".equals(getString("blocks.end-crystal.baseless.explosion-effect", baselessEndCrystalExplosionEffect.name()))) { -@@ -965,6 +966,7 @@ public class PurpurWorldConfig { +@@ -972,6 +973,7 @@ public class PurpurWorldConfig { basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; } endCrystalCramming = getInt("blocks.end-crystal.cramming-amount", endCrystalCramming); diff --git a/patches/server/0288-Configurable-villager-search-radius.patch b/patches/server/0288-Configurable-villager-search-radius.patch index 07e4e3b48..67ab67b63 100644 --- a/patches/server/0288-Configurable-villager-search-radius.patch +++ b/patches/server/0288-Configurable-villager-search-radius.patch @@ -31,10 +31,10 @@ index 92731b6b593289e9f583c9b705b219e81fcd8e73..9104d7010bda6f9f73b478c11490ef9c // Paper end - optimise POI access if (path != null && path.canReach()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a1798851f0aad048a6242c9c57c4fd63687c9f48..07caef996ac0ff36afe14c098ccccffb6dc3e16a 100644 +index b59e74ec85573ced20a47f0f732608d057511e2d..eb3d81c9eb9a332fd39382d28d022395d9aa4390 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -3006,6 +3006,8 @@ public class PurpurWorldConfig { +@@ -3013,6 +3013,8 @@ public class PurpurWorldConfig { public boolean villagerDisplayTradeItem = true; public int villagerSpawnIronGolemRadius = 0; public int villagerSpawnIronGolemLimit = 0; @@ -43,7 +43,7 @@ index a1798851f0aad048a6242c9c57c4fd63687c9f48..07caef996ac0ff36afe14c098ccccffb private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -3044,6 +3046,8 @@ public class PurpurWorldConfig { +@@ -3051,6 +3053,8 @@ public class PurpurWorldConfig { villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); villagerSpawnIronGolemRadius = getInt("mobs.villager.spawn-iron-golem.radius", villagerSpawnIronGolemRadius); villagerSpawnIronGolemLimit = getInt("mobs.villager.spawn-iron-golem.limit", villagerSpawnIronGolemLimit); diff --git a/patches/server/0289-option-to-make-ravagers-afraid-of-rabbits.patch b/patches/server/0289-option-to-make-ravagers-afraid-of-rabbits.patch index 0004bf74a..3d8d224fa 100644 --- a/patches/server/0289-option-to-make-ravagers-afraid-of-rabbits.patch +++ b/patches/server/0289-option-to-make-ravagers-afraid-of-rabbits.patch @@ -18,10 +18,10 @@ index 5688f6ff0c1d9d1fbca548dcff8d8dfa5b42b8fd..17aaa3f376ce6183911739536206f9f7 this.goalSelector.addGoal(5, new WaterAvoidingRandomStrollGoal(this, 0.4D)); this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 07caef996ac0ff36afe14c098ccccffb6dc3e16a..9f01bef0abbc059629fbc38304d5d5df79589b70 100644 +index eb3d81c9eb9a332fd39382d28d022395d9aa4390..0d5a0e14cbaacc63eeced78a6c28cc64ad918522 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2487,6 +2487,7 @@ public class PurpurWorldConfig { +@@ -2494,6 +2494,7 @@ public class PurpurWorldConfig { public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); public boolean ravagerAlwaysDropExp = false; @@ -29,7 +29,7 @@ index 07caef996ac0ff36afe14c098ccccffb6dc3e16a..9f01bef0abbc059629fbc38304d5d5df private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2518,6 +2519,7 @@ public class PurpurWorldConfig { +@@ -2525,6 +2526,7 @@ public class PurpurWorldConfig { } }); ravagerAlwaysDropExp = getBoolean("mobs.ravager.always-drop-exp", ravagerAlwaysDropExp);