From 67066cdd463e6e2d02dd26ec9418178d074abd41 Mon Sep 17 00:00:00 2001 From: granny Date: Tue, 14 Mar 2023 21:56:31 -0700 Subject: [PATCH] [ci-skip] remove unused config option not sure why we didn't do this during the 1.19.2 update --- .../0054-Implement-infinite-liquids.patch | 10 +- ...55-Make-lava-flow-speed-configurable.patch | 7 +- .../0068-Configurable-jockey-options.patch | 22 +- ...ed-to-crystals-and-crystals-shoot-ph.patch | 6 +- .../0070-Add-phantom-spawning-options.patch | 6 +- ...ent-respawn-anchor-explosion-options.patch | 4 +- patches/server/0077-Squid-EAR-immunity.patch | 6 +- .../server/0078-Phantoms-burn-in-light.patch | 6 +- .../0079-Configurable-villager-breeding.patch | 8 +- .../0080-Redstone-deactivates-spawners.patch | 4 +- ...2-Add-vindicator-johnny-spawn-chance.patch | 6 +- ...o-disable-dolphin-treasure-searching.patch | 6 +- ...Stop-squids-floating-on-top-of-water.patch | 6 +- ...stomizable-wither-health-and-healing.patch | 8 +- ...sable-zombie-aggressiveness-towards-.patch | 6 +- patches/server/0098-Flying-squids-Oh-my.patch | 8 +- ...02-Furnace-uses-lava-from-underneath.patch | 4 +- ...e-entity-breeding-times-configurable.patch | 94 +++--- ...llowing-Endermen-to-despawn-even-whi.patch | 6 +- .../0113-Snow-Golem-rate-of-fire-config.patch | 6 +- ...Villager-Clerics-to-farm-Nether-Wart.patch | 10 +- ...fied-Piglin-death-always-counting-as.patch | 6 +- ...ble-chance-for-wolves-to-spawn-rabid.patch | 6 +- ...18-Configurable-default-collar-color.patch | 10 +- .../server/0119-Phantom-flames-on-swoop.patch | 6 +- .../0122-Striders-give-saddle-back.patch | 6 +- ...iefing-bypass-to-everything-affected.patch | 76 ++--- ...oggle-for-water-sensitive-mob-damage.patch | 266 ++++++++-------- ...ither-Ender-Dragon-can-ride-vehicles.patch | 12 +- ...an-aggressiveness-towards-Endermites.patch | 6 +- ...-Dragon-Head-wearers-and-stare-aggro.patch | 6 +- ...144-Config-to-disable-Llama-caravans.patch | 6 +- ...ig-to-make-Creepers-explode-on-death.patch | 6 +- ...urable-ravager-griefable-blocks-list.patch | 6 +- ...0149-Add-config-for-villager-trading.patch | 10 +- ...Break-individual-slabs-when-sneaking.patch | 4 +- ...-to-disable-hostile-mob-spawn-on-ice.patch | 4 +- .../0157-Configurable-sponge-absorption.patch | 4 +- ...for-powered-rail-activation-distance.patch | 4 +- .../0160-Piglin-portal-spawn-modifier.patch | 6 +- ...2-Config-for-wither-explosion-radius.patch | 6 +- .../0165-Configurable-piston-push-limit.patch | 4 +- ...h-to-impact-Creeper-explosion-radius.patch | 6 +- .../0170-Iron-golem-calm-anger-options.patch | 6 +- patches/server/0171-Breedable-parrots.patch | 6 +- ...77-ShulkerBox-allow-oversized-stacks.patch | 4 +- ...ee-can-work-when-raining-or-at-night.patch | 6 +- .../0182-Add-toggle-for-sand-duping-fix.patch | 6 +- ...88-Shulker-spawn-from-bullet-options.patch | 6 +- ...0-Option-to-make-drowned-break-doors.patch | 6 +- ...onfigurable-hunger-starvation-damage.patch | 4 +- ...0200-Silk-touchable-budding-amethyst.patch | 4 +- ...e-Enderman-teleport-on-projectile-hi.patch | 6 +- ...izeable-Zombie-Villager-curing-times.patch | 6 +- ...8-Option-for-sponges-to-work-on-lava.patch | 4 +- ...0209-Toggle-for-Wither-s-spawn-sound.patch | 8 +- .../0212-Conduit-behavior-configuration.patch | 4 +- .../server/0213-Cauldron-fill-chances.patch | 8 +- .../0215-Shulker-change-color-with-dye.patch | 6 +- ...turally-aggressive-to-players-chance.patch | 6 +- ...turally-aggressive-to-players-chance.patch | 6 +- ...-Halloween-options-and-optimizations.patch | 4 +- ...ion-to-disable-zombie-villagers-cure.patch | 6 +- .../server/0231-Signs-allow-color-codes.patch | 8 +- .../0233-Mobs-always-drop-experience.patch | 284 +++++++++--------- ...aring-jeb-produces-random-color-wool.patch | 6 +- ...Turtle-eggs-random-tick-crack-chance.patch | 8 +- .../0239-Mob-head-visibility-percent.patch | 20 +- ...-Stop-bees-from-dying-after-stinging.patch | 6 +- .../0248-Configurable-phantom-size.patch | 6 +- ...nfigurable-minimum-demand-for-trades.patch | 8 +- .../0252-Lobotomize-stuck-villagers.patch | 8 +- ...tion-for-villager-display-trade-item.patch | 6 +- ...awner-not-spawning-water-animals-cor.patch | 4 +- ...e-turtle-egg-trampling-with-feather-.patch | 8 +- ...urable-search-radius-for-villagers-t.patch | 8 +- patches/server/0263-Stonecutter-damage.patch | 4 +- ...ble-damage-settings-for-magma-blocks.patch | 4 +- ...0265-Add-config-for-snow-on-blue-ice.patch | 4 +- .../0266-Skeletons-eat-wither-roses.patch | 6 +- ...267-Enchantment-Table-Persists-Lapis.patch | 4 +- ...-for-sculk-shrieker-can_summon-state.patch | 4 +- ...285-Add-skeleton-bow-accuracy-option.patch | 6 +- .../server/0286-Allay-respect-item-NBT.patch | 4 +- ...squid-colors-for-rainglow-fabric-mod.patch | 6 +- ...low-creeper-to-encircle-target-when-.patch | 6 +- 86 files changed, 620 insertions(+), 625 deletions(-) diff --git a/patches/server/0054-Implement-infinite-liquids.patch b/patches/server/0054-Implement-infinite-liquids.patch index 46687332c..881f1a1f5 100644 --- a/patches/server/0054-Implement-infinite-liquids.patch +++ b/patches/server/0054-Implement-infinite-liquids.patch @@ -67,31 +67,27 @@ index 82e85fbbd45244d02df90fa00c9046e7f51275a2..ec6c63075306f9e5389e83641d2c8a82 @Override protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1c1a1a70126d4b0581888d685e7c1766c983d9d9..593602b1d1b205d11ebead7c382857402db53b6f 100644 +index 04c8e92e0037f95d2d390d3108cb4bbeb71d66c7..9ac56c86462119f861790c5dfd950a1622028cd7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -228,6 +228,13 @@ public class PurpurWorldConfig { +@@ -228,6 +228,11 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } -+ public boolean lavaInfinite = false; + public int lavaInfiniteRequiredSources = 2; + private void lavaSettings() { -+ lavaInfinite = getBoolean("blocks.lava.infinite-source", lavaInfinite); + lavaInfiniteRequiredSources = getInt("blocks.lava.infinite-required-sources", lavaInfiniteRequiredSources); + } + public boolean signRightClickEdit = false; private void signSettings() { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); -@@ -242,6 +249,13 @@ public class PurpurWorldConfig { +@@ -242,6 +247,11 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } -+ public boolean waterInfinite = true; + public int waterInfiniteRequiredSources = 2; + private void waterSources() { -+ waterInfinite = getBoolean("blocks.water.infinite-source", waterInfinite); + waterInfiniteRequiredSources = getInt("blocks.water.infinite-required-sources", waterInfiniteRequiredSources); + } + diff --git a/patches/server/0055-Make-lava-flow-speed-configurable.patch b/patches/server/0055-Make-lava-flow-speed-configurable.patch index 4491322c8..f5fda671c 100644 --- a/patches/server/0055-Make-lava-flow-speed-configurable.patch +++ b/patches/server/0055-Make-lava-flow-speed-configurable.patch @@ -18,17 +18,16 @@ index e965d2cafdd887a7c61058ba2931596709e5aaa2..3a04cb4c646c07abf4338c70c865a4c4 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 593602b1d1b205d11ebead7c382857402db53b6f..33e7c2597c60ce7d8c743e0a06e821507de59c5a 100644 +index 9ac56c86462119f861790c5dfd950a1622028cd7..cdcb3265ca8e6d74d8a700d99bd94037e6f41ae2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -230,9 +230,13 @@ public class PurpurWorldConfig { +@@ -229,8 +229,12 @@ public class PurpurWorldConfig { + } - public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; + public int lavaSpeedNether = 10; + public int lavaSpeedNotNether = 30; private void lavaSettings() { - lavaInfinite = getBoolean("blocks.lava.infinite-source", lavaInfinite); lavaInfiniteRequiredSources = getInt("blocks.lava.infinite-required-sources", lavaInfiniteRequiredSources); + lavaSpeedNether = getInt("blocks.lava.speed.nether", lavaSpeedNether); + lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); diff --git a/patches/server/0068-Configurable-jockey-options.patch b/patches/server/0068-Configurable-jockey-options.patch index 2d4113b54..05b70ca3c 100644 --- a/patches/server/0068-Configurable-jockey-options.patch +++ b/patches/server/0068-Configurable-jockey-options.patch @@ -167,10 +167,10 @@ index aca84be04c50188612f69ee20e9a0948fe5e5b7f..9bec6222a8145f84f4b748e8c96e02fa @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a6ed10bcfe24831bc0257511a68c38b3b500f608..1a2537d47416391a0f84621250db18f589d35205 100644 +index b45dd52401f47d65855d428ecf515c1bc4f60469..d7877023376f1f2b9600913157b9d1c127f4071d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -595,6 +595,9 @@ public class PurpurWorldConfig { +@@ -591,6 +591,9 @@ public class PurpurWorldConfig { public boolean drownedControllable = true; public double drownedMaxHealth = 20.0D; public double drownedSpawnReinforcements = 0.1D; @@ -180,7 +180,7 @@ index a6ed10bcfe24831bc0257511a68c38b3b500f608..1a2537d47416391a0f84621250db18f5 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -606,6 +609,9 @@ public class PurpurWorldConfig { +@@ -602,6 +605,9 @@ public class PurpurWorldConfig { } drownedMaxHealth = getDouble("mobs.drowned.attributes.max_health", drownedMaxHealth); drownedSpawnReinforcements = getDouble("mobs.drowned.attributes.spawn_reinforcements", drownedSpawnReinforcements); @@ -190,7 +190,7 @@ index a6ed10bcfe24831bc0257511a68c38b3b500f608..1a2537d47416391a0f84621250db18f5 } public boolean elderGuardianRidable = false; -@@ -854,6 +860,9 @@ public class PurpurWorldConfig { +@@ -850,6 +856,9 @@ public class PurpurWorldConfig { public boolean huskControllable = true; public double huskMaxHealth = 20.0D; public double huskSpawnReinforcements = 0.1D; @@ -200,7 +200,7 @@ index a6ed10bcfe24831bc0257511a68c38b3b500f608..1a2537d47416391a0f84621250db18f5 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -865,6 +874,9 @@ public class PurpurWorldConfig { +@@ -861,6 +870,9 @@ public class PurpurWorldConfig { } huskMaxHealth = getDouble("mobs.husk.attributes.max_health", huskMaxHealth); huskSpawnReinforcements = getDouble("mobs.husk.attributes.spawn_reinforcements", huskSpawnReinforcements); @@ -210,7 +210,7 @@ index a6ed10bcfe24831bc0257511a68c38b3b500f608..1a2537d47416391a0f84621250db18f5 } public boolean illusionerRidable = false; -@@ -1670,6 +1682,9 @@ public class PurpurWorldConfig { +@@ -1666,6 +1678,9 @@ public class PurpurWorldConfig { public boolean zombieControllable = true; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index a6ed10bcfe24831bc0257511a68c38b3b500f608..1a2537d47416391a0f84621250db18f5 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1681,6 +1696,9 @@ public class PurpurWorldConfig { +@@ -1677,6 +1692,9 @@ public class PurpurWorldConfig { } zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth); zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements); @@ -230,7 +230,7 @@ index a6ed10bcfe24831bc0257511a68c38b3b500f608..1a2537d47416391a0f84621250db18f5 } public boolean zombieHorseRidableInWater = false; -@@ -1715,6 +1733,9 @@ public class PurpurWorldConfig { +@@ -1711,6 +1729,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerControllable = true; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index a6ed10bcfe24831bc0257511a68c38b3b500f608..1a2537d47416391a0f84621250db18f5 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1726,6 +1747,9 @@ public class PurpurWorldConfig { +@@ -1722,6 +1743,9 @@ public class PurpurWorldConfig { } zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); @@ -250,7 +250,7 @@ index a6ed10bcfe24831bc0257511a68c38b3b500f608..1a2537d47416391a0f84621250db18f5 } public boolean zombifiedPiglinRidable = false; -@@ -1733,6 +1757,9 @@ public class PurpurWorldConfig { +@@ -1729,6 +1753,9 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinControllable = true; public double zombifiedPiglinMaxHealth = 20.0D; public double zombifiedPiglinSpawnReinforcements = 0.0D; @@ -260,7 +260,7 @@ index a6ed10bcfe24831bc0257511a68c38b3b500f608..1a2537d47416391a0f84621250db18f5 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1744,5 +1771,8 @@ public class PurpurWorldConfig { +@@ -1740,5 +1767,8 @@ public class PurpurWorldConfig { } zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth); zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements); diff --git a/patches/server/0069-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0069-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 0d1c073b5..9c80c2cf5 100644 --- a/patches/server/0069-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0069-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -258,10 +258,10 @@ index 2294458c7e81147a3efd2ef854fbc08f44231050..b9d737a20b8cca81fca290c13cb640c1 private float speed = 0.1F; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1a2537d47416391a0f84621250db18f589d35205..bc94981da6e382bae1f1ae8136f7bb7805f98e35 100644 +index d7877023376f1f2b9600913157b9d1c127f4071d..c6530c09d66318a0c485a548e95a833d785087bf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1072,6 +1072,9 @@ public class PurpurWorldConfig { +@@ -1068,6 +1068,9 @@ public class PurpurWorldConfig { public String phantomAttackDamage = "6 + size"; public Map phantomMaxHealthCache = new HashMap<>(); public Map phantomAttackDamageCache = new HashMap<>(); @@ -271,7 +271,7 @@ index 1a2537d47416391a0f84621250db18f589d35205..bc94981da6e382bae1f1ae8136f7bb78 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1093,6 +1096,9 @@ public class PurpurWorldConfig { +@@ -1089,6 +1092,9 @@ public class PurpurWorldConfig { phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage); phantomMaxHealthCache.clear(); phantomAttackDamageCache.clear(); diff --git a/patches/server/0070-Add-phantom-spawning-options.patch b/patches/server/0070-Add-phantom-spawning-options.patch index 089c8efdd..ec251ab7b 100644 --- a/patches/server/0070-Add-phantom-spawning-options.patch +++ b/patches/server/0070-Add-phantom-spawning-options.patch @@ -40,10 +40,10 @@ index 1c3718d9244513d9fc795dceb564a81375734557..69753f0b67a78c565ff455676860dc05 for (int l = 0; l < k; ++l) { // Paper start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bc94981da6e382bae1f1ae8136f7bb7805f98e35..de8603b6ba12297bb3d0979d0e02f0baf2f0ec35 100644 +index c6530c09d66318a0c485a548e95a833d785087bf..76142035dbcc8a79717e4e2edd7c05accec782c8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1075,6 +1075,12 @@ public class PurpurWorldConfig { +@@ -1071,6 +1071,12 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; @@ -56,7 +56,7 @@ index bc94981da6e382bae1f1ae8136f7bb7805f98e35..de8603b6ba12297bb3d0979d0e02f0ba private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1099,6 +1105,12 @@ public class PurpurWorldConfig { +@@ -1095,6 +1101,12 @@ public class PurpurWorldConfig { phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius); diff --git a/patches/server/0072-Implement-respawn-anchor-explosion-options.patch b/patches/server/0072-Implement-respawn-anchor-explosion-options.patch index 0eef362fc..99bb1e2bb 100644 --- a/patches/server/0072-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0072-Implement-respawn-anchor-explosion-options.patch @@ -18,10 +18,10 @@ index 1b7140ffab0492ab130743a2d158b30efb2cfece..63b536555d97c158003722c21a25394b public static boolean canSetSpawn(Level world) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e619b2cf060a8137bc8b3e7d8062e702b3f9e799..aa04010dc4780f0f19937314f521208a164c2ae3 100644 +index 73a2b8946e915d589ea79a3b691b495ddb10b517..dbbc75cf8f30730568848feaa6da945473f0a146 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -333,6 +333,27 @@ public class PurpurWorldConfig { +@@ -331,6 +331,27 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0077-Squid-EAR-immunity.patch b/patches/server/0077-Squid-EAR-immunity.patch index 0148a065f..a62d799d8 100644 --- a/patches/server/0077-Squid-EAR-immunity.patch +++ b/patches/server/0077-Squid-EAR-immunity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Squid EAR immunity diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 67317dcff36b9857d5d22e12cfa6114e8c5fb183..7b776cc842c57cc27838ad2208d11d84ef0cae68 100644 +index 9eaf093c9eb9eadc8f5e47fcc52ff79c9afe957f..197e1945886b9200f91327c22a0160c2dda44efd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1449,6 +1449,7 @@ public class PurpurWorldConfig { +@@ -1445,6 +1445,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidControllable = true; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index 67317dcff36b9857d5d22e12cfa6114e8c5fb183..7b776cc842c57cc27838ad2208d11d84 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1458,6 +1459,7 @@ public class PurpurWorldConfig { +@@ -1454,6 +1455,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); diff --git a/patches/server/0078-Phantoms-burn-in-light.patch b/patches/server/0078-Phantoms-burn-in-light.patch index b4e309b66..576ee1035 100644 --- a/patches/server/0078-Phantoms-burn-in-light.patch +++ b/patches/server/0078-Phantoms-burn-in-light.patch @@ -53,10 +53,10 @@ index b9d737a20b8cca81fca290c13cb640c17d25bc6e..11cbb89eb062de0cd30158dbfbef1355 list.sort(Comparator.comparing((Entity e) -> { return e.getY(); }).reversed()); // CraftBukkit - decompile error Iterator iterator = list.iterator(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7b776cc842c57cc27838ad2208d11d84ef0cae68..172978f5db69cd7e85aa413ed261ad996e67ee8e 100644 +index 197e1945886b9200f91327c22a0160c2dda44efd..329c408cdb74bce2550e6f8a13b05fea04181ceb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1130,6 +1130,9 @@ public class PurpurWorldConfig { +@@ -1126,6 +1126,9 @@ public class PurpurWorldConfig { public double phantomSpawnLocalDifficultyChance = 3.0D; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -66,7 +66,7 @@ index 7b776cc842c57cc27838ad2208d11d84ef0cae68..172978f5db69cd7e85aa413ed261ad99 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1160,6 +1163,9 @@ public class PurpurWorldConfig { +@@ -1156,6 +1159,9 @@ public class PurpurWorldConfig { phantomSpawnLocalDifficultyChance = getDouble("mobs.phantom.spawn.local-difficulty-chance", phantomSpawnLocalDifficultyChance); phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt); phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt); diff --git a/patches/server/0079-Configurable-villager-breeding.patch b/patches/server/0079-Configurable-villager-breeding.patch index a10ae448e..7c3bc3e9a 100644 --- a/patches/server/0079-Configurable-villager-breeding.patch +++ b/patches/server/0079-Configurable-villager-breeding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable villager breeding diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index fcb2d59d3ccb4a0601f82330878a784ece71f866..f225eb2f1d5a7c49fb2d6403388230666d411cc0 100644 +index 3baa2bd7e10165f2cbfe787c8fcb5f7ed72aaa18..4848dc0899e471e92037d47128bfdbf2a3ec8108 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -768,7 +768,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -18,10 +18,10 @@ index fcb2d59d3ccb4a0601f82330878a784ece71f866..f225eb2f1d5a7c49fb2d640338823066 private boolean hungry() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 172978f5db69cd7e85aa413ed261ad996e67ee8e..10632aa9e97c712b11970b698432ed1a49292d86 100644 +index 329c408cdb74bce2550e6f8a13b05fea04181ceb..dff0cc174dd0249afd7478c0009de2b285e81ad9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1607,6 +1607,7 @@ public class PurpurWorldConfig { +@@ -1603,6 +1603,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -29,7 +29,7 @@ index 172978f5db69cd7e85aa413ed261ad996e67ee8e..10632aa9e97c712b11970b698432ed1a private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1619,6 +1620,7 @@ public class PurpurWorldConfig { +@@ -1615,6 +1616,7 @@ public class PurpurWorldConfig { villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); diff --git a/patches/server/0080-Redstone-deactivates-spawners.patch b/patches/server/0080-Redstone-deactivates-spawners.patch index 97af20a05..c50a77995 100644 --- a/patches/server/0080-Redstone-deactivates-spawners.patch +++ b/patches/server/0080-Redstone-deactivates-spawners.patch @@ -17,10 +17,10 @@ index af799b61cec48ca290ed66cb47cfc0b244ac41a7..4e1e1fdbf12768b95dd499bf011009a4 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6e97e7ac18695e8b0f1c9d333ba4b5afa3eee460..218756b5db10fab3a0f32ff03a091838b2c87fe9 100644 +index dff0cc174dd0249afd7478c0009de2b285e81ad9..0f3a6d4f260cb7acc500d8bfd3724a2c0a4f51b9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -366,6 +366,11 @@ public class PurpurWorldConfig { +@@ -364,6 +364,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0082-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0082-Add-vindicator-johnny-spawn-chance.patch index 12f0739fb..389e6203f 100644 --- a/patches/server/0082-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0082-Add-vindicator-johnny-spawn-chance.patch @@ -22,10 +22,10 @@ index c3b8bce2d8e1dccb619267923964e06abfed8762..021550a0465dd1fd152b4c2e76301405 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9accec507a9db1974727d87e46d1c6efa51df278..ab7857989e985f3ffff43a7fd303a3c39137d7da 100644 +index 915af0e17dc0a99ba6c013a43abb42adfe5b914c..febb52d7fad4f67d61353bb019a631378a312eb5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1634,6 +1634,7 @@ public class PurpurWorldConfig { +@@ -1630,6 +1630,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidableInWater = false; public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; @@ -33,7 +33,7 @@ index 9accec507a9db1974727d87e46d1c6efa51df278..ab7857989e985f3ffff43a7fd303a3c3 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1644,6 +1645,7 @@ public class PurpurWorldConfig { +@@ -1640,6 +1641,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/server/0086-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0086-Add-option-to-disable-dolphin-treasure-searching.patch index 8c560654f..4d3de0ee2 100644 --- a/patches/server/0086-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0086-Add-option-to-disable-dolphin-treasure-searching.patch @@ -17,10 +17,10 @@ index 1ca3ffe212da2c3914c290172e729ba8017f631c..a8ca2d120a545d423fc00aef5299b66b } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2457818f6716c2434f1b178f3c2c396cf03c7bbc..3f63fbafd6a8423a00dc7acaf224cecafde4a2bb 100644 +index e42d078b8fe522f995c395d561959ae062347f35..47734fec9cd35f7d2ed1965d4f1b348a2fab4006 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -617,6 +617,7 @@ public class PurpurWorldConfig { +@@ -613,6 +613,7 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; @@ -28,7 +28,7 @@ index 2457818f6716c2434f1b178f3c2c396cf03c7bbc..3f63fbafd6a8423a00dc7acaf224ceca private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -629,6 +630,7 @@ public class PurpurWorldConfig { +@@ -625,6 +626,7 @@ public class PurpurWorldConfig { set("mobs.dolphin.attributes.max_health", oldValue); } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); diff --git a/patches/server/0088-Stop-squids-floating-on-top-of-water.patch b/patches/server/0088-Stop-squids-floating-on-top-of-water.patch index 5f0c62056..c083e23d1 100644 --- a/patches/server/0088-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0088-Stop-squids-floating-on-top-of-water.patch @@ -54,10 +54,10 @@ index 68cc6f2a78a06293a29317fda72ab3ee79b3533a..cfb2e46b34b2982d6724f18214557fc8 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3f63fbafd6a8423a00dc7acaf224cecafde4a2bb..a070c21f49d59702df56409fa5c05f8eb05a0e22 100644 +index 47734fec9cd35f7d2ed1965d4f1b348a2fab4006..ac49ebf3b983e868cb9459bcda3c9a561ee20e13 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1474,6 +1474,7 @@ public class PurpurWorldConfig { +@@ -1470,6 +1470,7 @@ public class PurpurWorldConfig { public boolean squidControllable = true; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -65,7 +65,7 @@ index 3f63fbafd6a8423a00dc7acaf224cecafde4a2bb..a070c21f49d59702df56409fa5c05f8e private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1484,6 +1485,7 @@ public class PurpurWorldConfig { +@@ -1480,6 +1481,7 @@ public class PurpurWorldConfig { } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); diff --git a/patches/server/0092-Customizable-wither-health-and-healing.patch b/patches/server/0092-Customizable-wither-health-and-healing.patch index 5444ad9f7..fc750032f 100644 --- a/patches/server/0092-Customizable-wither-health-and-healing.patch +++ b/patches/server/0092-Customizable-wither-health-and-healing.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Customizable wither health and healing Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often. diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 8e2711325ee32dda903f191ec4f338173370e738..991525cb5f0265678d61759ff55c1479ce3a92de 100644 +index 976414fc144bdbf46062995551d563522fbd431e..3101eab41aeddbe9d6e81d8a44a5acb2a862aa34 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -528,8 +528,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -23,10 +23,10 @@ index 8e2711325ee32dda903f191ec4f338173370e738..991525cb5f0265678d61759ff55c1479 this.bossEvent.setProgress(this.getHealth() / this.getMaxHealth()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2aa0422aa65554eb47523a3fe26364370ceb3a65..b41d130f383d18bee7da6842bc82db276510f995 100644 +index 5f329660a356bb3a865ff044a8bd1259c5a19642..cb9e3860b9d2eaeaebd0b5928824cb491d6e5938 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1713,6 +1713,8 @@ public class PurpurWorldConfig { +@@ -1709,6 +1709,8 @@ public class PurpurWorldConfig { public boolean witherControllable = true; public double witherMaxY = 320D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index 2aa0422aa65554eb47523a3fe26364370ceb3a65..b41d130f383d18bee7da6842bc82db27 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1728,6 +1730,8 @@ public class PurpurWorldConfig { +@@ -1724,6 +1726,8 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0096-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0096-Add-option-to-disable-zombie-aggressiveness-towards-.patch index d2ca2d5a3..64bf2f28a 100644 --- a/patches/server/0096-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0096-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -71,10 +71,10 @@ index 05cb9eff1ce0d5af9efcd47033878feb22397a2d..35e1e8264d9f1e30b37ad598adab478b this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR)); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9747f16d953912a4a17afa8cdaff6a7ca4d200b0..50ea7f241d1eedb74104073fbcec7376d7afbb56 100644 +index a84873fa6053c34baa9a614a07c85cc68c211d0d..1cf1b44121c4eebbeba91c44b3ae57b19ea79988 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1846,6 +1846,7 @@ public class PurpurWorldConfig { +@@ -1842,6 +1842,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -82,7 +82,7 @@ index 9747f16d953912a4a17afa8cdaff6a7ca4d200b0..50ea7f241d1eedb74104073fbcec7376 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1860,6 +1861,7 @@ public class PurpurWorldConfig { +@@ -1856,6 +1857,7 @@ public class PurpurWorldConfig { zombieJockeyOnlyBaby = getBoolean("mobs.zombie.jockey.only-babies", zombieJockeyOnlyBaby); zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); diff --git a/patches/server/0098-Flying-squids-Oh-my.patch b/patches/server/0098-Flying-squids-Oh-my.patch index f35e98f4c..00e16d0a9 100644 --- a/patches/server/0098-Flying-squids-Oh-my.patch +++ b/patches/server/0098-Flying-squids-Oh-my.patch @@ -58,10 +58,10 @@ index 709aaa9dc834d91219ce1087d8f89ef5bf3d915c..4850960c7c4f38c7d81b8945f8c87504 float f1 = Mth.cos(f) * 0.2F; float f2 = -0.1F + this.squid.getRandom().nextFloat() * 0.2F; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 50ea7f241d1eedb74104073fbcec7376d7afbb56..e752e9364c5f42e67e961854cef0a55c86eb4984 100644 +index 1cf1b44121c4eebbeba91c44b3ae57b19ea79988..a2208de313f66c0c96101d66862c3a257f198b78 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -909,10 +909,12 @@ public class PurpurWorldConfig { +@@ -905,10 +905,12 @@ public class PurpurWorldConfig { public boolean glowSquidRidable = false; public boolean glowSquidControllable = true; public double glowSquidMaxHealth = 10.0D; @@ -74,7 +74,7 @@ index 50ea7f241d1eedb74104073fbcec7376d7afbb56..e752e9364c5f42e67e961854cef0a55c } public boolean goatRidable = false; -@@ -1533,6 +1535,7 @@ public class PurpurWorldConfig { +@@ -1529,6 +1531,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -82,7 +82,7 @@ index 50ea7f241d1eedb74104073fbcec7376d7afbb56..e752e9364c5f42e67e961854cef0a55c private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1544,6 +1547,7 @@ public class PurpurWorldConfig { +@@ -1540,6 +1543,7 @@ public class PurpurWorldConfig { squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); diff --git a/patches/server/0102-Furnace-uses-lava-from-underneath.patch b/patches/server/0102-Furnace-uses-lava-from-underneath.patch index 64bc97258..fbbbc059b 100644 --- a/patches/server/0102-Furnace-uses-lava-from-underneath.patch +++ b/patches/server/0102-Furnace-uses-lava-from-underneath.patch @@ -47,7 +47,7 @@ index cac2768fe520b591990c7bc943ae7e95f49efb31..bbff7466cecf50285c97fadaf68682a6 private static boolean canBurn(@Nullable Recipe recipe, NonNullList slots, int count) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c15e6d7a666ddde4d6fc957ca2986d4af3eaebf9..3593489c838c514be2703d7f81e2eb825fc5cd1b 100644 +index 8d5a971dacdacbf519e813c790bd7030822b4252..3c242e989e09ffe188753a7686bed165c43e60e8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -416,6 +416,17 @@ public class PurpurWorldConfig { @@ -65,6 +65,6 @@ index c15e6d7a666ddde4d6fc957ca2986d4af3eaebf9..3593489c838c514be2703d7f81e2eb82 + furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); + } + - public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; public int lavaSpeedNether = 10; + public int lavaSpeedNotNether = 30; diff --git a/patches/server/0106-Make-entity-breeding-times-configurable.patch b/patches/server/0106-Make-entity-breeding-times-configurable.patch index 28e6ce6b3..e1776c4aa 100644 --- a/patches/server/0106-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0106-Make-entity-breeding-times-configurable.patch @@ -268,7 +268,7 @@ index c64e86aeafad1785a28e7351f16afef749a0851d..86c5f88bbeab0a5cb565b15af257160a @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 8c4e0e7fc3a0d2924b910b637748e6e1c23809ce..56e0f21a002a6112770cf0d9e06136caf3f89c80 100644 +index e7496a02dd46671e6deb91fc96300f15089b60e2..59f04b1dc0abf6e0780ac2b03d63064169106c02 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -102,6 +102,11 @@ public class Turtle extends Animal { @@ -334,7 +334,7 @@ index d04bc82bb5dbb24ec26d8e7a89061ed62fd199f5..0ddae1d558316ca7129e51d59d4189fc public void addAdditionalSaveData(CompoundTag nbt) { super.addAdditionalSaveData(nbt); diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index 844004cefd85fdc3fb1628449e8452bd6207a77b..1164fdc49115f5178344276f073ac6c43a49411e 100644 +index 645e2446d1a68ea9c2ba0c2f7cb8117cc00bace9..ccb13cd4add3127fa32d98f12e69ef0ac41bc3c0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java @@ -141,6 +141,10 @@ public class Frog extends Animal implements VariantHolder { @@ -509,10 +509,10 @@ index 8e2c052dac99d4b7b4b926a2c22281087abaf754..3d8b1b66e8d033e1e65a61a640ffdc29 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274abceb0f783 100644 +index 8ccf867a49fcd17f8b1307b4ec18110f6516afb3..0243b7e63fffd3d477318e3ce1296ac1765ea1bd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -515,10 +515,12 @@ public class PurpurWorldConfig { +@@ -511,10 +511,12 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; @@ -525,7 +525,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean batRidable = false; -@@ -551,6 +553,7 @@ public class PurpurWorldConfig { +@@ -547,6 +549,7 @@ public class PurpurWorldConfig { public boolean beeControllable = true; public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; @@ -533,7 +533,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -562,6 +565,7 @@ public class PurpurWorldConfig { +@@ -558,6 +561,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -541,7 +541,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean blazeRidable = false; -@@ -606,6 +610,7 @@ public class PurpurWorldConfig { +@@ -602,6 +606,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -549,7 +549,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -619,6 +624,7 @@ public class PurpurWorldConfig { +@@ -615,6 +620,7 @@ public class PurpurWorldConfig { catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay); catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); @@ -557,7 +557,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean caveSpiderRidable = false; -@@ -642,6 +648,7 @@ public class PurpurWorldConfig { +@@ -638,6 +644,7 @@ public class PurpurWorldConfig { public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -565,7 +565,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -653,6 +660,7 @@ public class PurpurWorldConfig { +@@ -649,6 +656,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -573,7 +573,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean codRidable = false; -@@ -674,6 +682,7 @@ public class PurpurWorldConfig { +@@ -670,6 +678,7 @@ public class PurpurWorldConfig { public boolean cowControllable = true; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -581,7 +581,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -685,6 +694,7 @@ public class PurpurWorldConfig { +@@ -681,6 +690,7 @@ public class PurpurWorldConfig { } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); @@ -589,7 +589,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean creeperRidable = false; -@@ -736,6 +746,7 @@ public class PurpurWorldConfig { +@@ -732,6 +742,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -597,7 +597,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -751,6 +762,7 @@ public class PurpurWorldConfig { +@@ -747,6 +758,7 @@ public class PurpurWorldConfig { donkeyJumpStrengthMax = getDouble("mobs.donkey.attributes.jump_strength.max", donkeyJumpStrengthMax); donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); @@ -605,7 +605,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean drownedRidable = false; -@@ -870,6 +882,7 @@ public class PurpurWorldConfig { +@@ -866,6 +878,7 @@ public class PurpurWorldConfig { public boolean foxControllable = true; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -613,7 +613,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -881,17 +894,20 @@ public class PurpurWorldConfig { +@@ -877,17 +890,20 @@ public class PurpurWorldConfig { } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); @@ -634,7 +634,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean ghastRidable = false; -@@ -959,11 +975,13 @@ public class PurpurWorldConfig { +@@ -955,11 +971,13 @@ public class PurpurWorldConfig { public boolean goatRidableInWater = false; public boolean goatControllable = true; public double goatMaxHealth = 10.0D; @@ -648,7 +648,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean guardianRidable = false; -@@ -984,6 +1002,7 @@ public class PurpurWorldConfig { +@@ -980,6 +998,7 @@ public class PurpurWorldConfig { public boolean hoglinRidableInWater = false; public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; @@ -656,7 +656,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -994,6 +1013,7 @@ public class PurpurWorldConfig { +@@ -990,6 +1009,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -664,7 +664,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean horseRidableInWater = false; -@@ -1003,6 +1023,7 @@ public class PurpurWorldConfig { +@@ -999,6 +1019,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -672,7 +672,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1018,6 +1039,7 @@ public class PurpurWorldConfig { +@@ -1014,6 +1035,7 @@ public class PurpurWorldConfig { horseJumpStrengthMax = getDouble("mobs.horse.attributes.jump_strength.max", horseJumpStrengthMax); horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin); horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); @@ -680,7 +680,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean huskRidable = false; -@@ -1095,6 +1117,7 @@ public class PurpurWorldConfig { +@@ -1091,6 +1113,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -688,7 +688,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1112,6 +1135,7 @@ public class PurpurWorldConfig { +@@ -1108,6 +1131,7 @@ public class PurpurWorldConfig { llamaJumpStrengthMax = getDouble("mobs.llama.attributes.jump_strength.max", llamaJumpStrengthMax); llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); @@ -696,7 +696,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean magmaCubeRidable = false; -@@ -1140,6 +1164,7 @@ public class PurpurWorldConfig { +@@ -1136,6 +1160,7 @@ public class PurpurWorldConfig { public boolean mooshroomRidableInWater = false; public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; @@ -704,7 +704,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1150,6 +1175,7 @@ public class PurpurWorldConfig { +@@ -1146,6 +1171,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -712,7 +712,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean muleRidableInWater = false; -@@ -1159,6 +1185,7 @@ public class PurpurWorldConfig { +@@ -1155,6 +1181,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -720,7 +720,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1174,12 +1201,14 @@ public class PurpurWorldConfig { +@@ -1170,12 +1197,14 @@ public class PurpurWorldConfig { muleJumpStrengthMax = getDouble("mobs.mule.attributes.jump_strength.max", muleJumpStrengthMax); muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin); muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); @@ -735,7 +735,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1190,12 +1219,14 @@ public class PurpurWorldConfig { +@@ -1186,12 +1215,14 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -750,7 +750,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1206,6 +1237,7 @@ public class PurpurWorldConfig { +@@ -1202,6 +1233,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -758,7 +758,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean parrotRidable = false; -@@ -1289,6 +1321,7 @@ public class PurpurWorldConfig { +@@ -1285,6 +1317,7 @@ public class PurpurWorldConfig { public boolean pigControllable = true; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -766,7 +766,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1300,6 +1333,7 @@ public class PurpurWorldConfig { +@@ -1296,6 +1329,7 @@ public class PurpurWorldConfig { } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); @@ -774,7 +774,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean piglinRidable = false; -@@ -1356,6 +1390,7 @@ public class PurpurWorldConfig { +@@ -1352,6 +1386,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -782,7 +782,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1369,6 +1404,7 @@ public class PurpurWorldConfig { +@@ -1365,6 +1400,7 @@ public class PurpurWorldConfig { polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString); Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; @@ -790,7 +790,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean pufferfishRidable = false; -@@ -1391,6 +1427,7 @@ public class PurpurWorldConfig { +@@ -1387,6 +1423,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -798,7 +798,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1403,6 +1440,7 @@ public class PurpurWorldConfig { +@@ -1399,6 +1436,7 @@ public class PurpurWorldConfig { rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); @@ -806,7 +806,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean ravagerRidable = false; -@@ -1439,6 +1477,7 @@ public class PurpurWorldConfig { +@@ -1435,6 +1473,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = false; public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; @@ -814,7 +814,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1449,6 +1488,7 @@ public class PurpurWorldConfig { +@@ -1445,6 +1484,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -822,7 +822,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean shulkerRidable = false; -@@ -1624,6 +1664,7 @@ public class PurpurWorldConfig { +@@ -1620,6 +1660,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public boolean striderControllable = true; public double striderMaxHealth = 20.0D; @@ -830,7 +830,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1634,6 +1675,7 @@ public class PurpurWorldConfig { +@@ -1630,6 +1671,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -838,7 +838,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean tadpoleRidable = false; -@@ -1654,6 +1696,7 @@ public class PurpurWorldConfig { +@@ -1650,6 +1692,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -846,7 +846,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1671,6 +1714,7 @@ public class PurpurWorldConfig { +@@ -1667,6 +1710,7 @@ public class PurpurWorldConfig { traderLlamaJumpStrengthMax = getDouble("mobs.trader_llama.attributes.jump_strength.max", traderLlamaJumpStrengthMax); traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin); traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); @@ -854,7 +854,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean tropicalFishRidable = false; -@@ -1691,6 +1735,7 @@ public class PurpurWorldConfig { +@@ -1687,6 +1731,7 @@ public class PurpurWorldConfig { public boolean turtleRidableInWater = false; public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; @@ -862,7 +862,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1701,6 +1746,7 @@ public class PurpurWorldConfig { +@@ -1697,6 +1742,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); @@ -870,7 +870,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean vexRidable = false; -@@ -1728,6 +1774,7 @@ public class PurpurWorldConfig { +@@ -1724,6 +1770,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; @@ -878,7 +878,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1741,6 +1788,7 @@ public class PurpurWorldConfig { +@@ -1737,6 +1784,7 @@ public class PurpurWorldConfig { villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); @@ -886,7 +886,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab } public boolean vindicatorRidable = false; -@@ -1852,6 +1900,7 @@ public class PurpurWorldConfig { +@@ -1848,6 +1896,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -894,7 +894,7 @@ index a53eb2654a677c68497e35f7d87dd0408ac1b523..c0afa86b018f2af481c7e0494d1274ab private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1862,6 +1911,7 @@ public class PurpurWorldConfig { +@@ -1858,6 +1907,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0109-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0109-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index fc89c2f01..3ad124509 100644 --- a/patches/server/0109-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0109-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -21,10 +21,10 @@ index 1dd86f7dfabb38fd8d1199055d7e28b7d8f39bb4..1e8b7eab01a73524bef61a2a3666f6c6 private static class EndermanFreezeWhenLookedAt extends Goal { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 51e74a5fb0a78aa67416b8912ec7c4bd284ee13a..79709e58064039d7b861a4f3133fe0953cab9bb4 100644 +index cbf65840136549b15be2a22d5408b01b4bb1f282..d975158feca2c40f6922db7b60b35214b3d99503 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -838,6 +838,7 @@ public class PurpurWorldConfig { +@@ -834,6 +834,7 @@ public class PurpurWorldConfig { public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index 51e74a5fb0a78aa67416b8912ec7c4bd284ee13a..79709e58064039d7b861a4f3133fe095 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -849,6 +850,7 @@ public class PurpurWorldConfig { +@@ -845,6 +846,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); diff --git a/patches/server/0113-Snow-Golem-rate-of-fire-config.patch b/patches/server/0113-Snow-Golem-rate-of-fire-config.patch index 383221c1c..634cc3ace 100644 --- a/patches/server/0113-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0113-Snow-Golem-rate-of-fire-config.patch @@ -23,10 +23,10 @@ index b4459d68397cc5bac4f7ef79a2dfb18f3eb24f77..b9025929fcc89e72aa820953b91a6542 this.goalSelector.addGoal(3, new LookAtPlayerGoal(this, Player.class, 6.0F)); this.goalSelector.addGoal(4, new RandomLookAroundGoal(this)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 288ef13e0cbbb96712e76ebd203e3a44eca3d621..a405d1112e154bc8689d7c9f15c67d397d424dde 100644 +index 1c74a08d13ff1f7963de944b27d91b6beb75b3b3..95ecf38ba98225d65ebe21d810ddf6a74483de1b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1610,6 +1610,10 @@ public class PurpurWorldConfig { +@@ -1606,6 +1606,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index 288ef13e0cbbb96712e76ebd203e3a44eca3d621..a405d1112e154bc8689d7c9f15c67d39 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1623,6 +1627,10 @@ public class PurpurWorldConfig { +@@ -1619,6 +1623,10 @@ public class PurpurWorldConfig { snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin); snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); diff --git a/patches/server/0115-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0115-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index fd52083ee..c436e265d 100644 --- a/patches/server/0115-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0115-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -97,7 +97,7 @@ index 3af715e2f3f3949af614a8fcebbc4a835d48ca49..ade1e411ea1f3b4c9a417265e77b0d68 throwHalfStack(entity, this.trades, villager); } diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java -index 9400556aca4cd06ad311975d74a9e7eb2ccd9c73..9d95daf3f388cf783a68625856e8cde9a64d03ea 100644 +index cd7a90ec1073b2b452ca70decefe6a594445003b..47672e48c1cae73cffe532d622b296343fc12ef0 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerGoalPackages.java @@ -30,8 +30,13 @@ public class VillagerGoalPackages { @@ -143,7 +143,7 @@ index cb1d91f9fe98f21c2afbe3894dfd9bca3bdd3ba6..d2703432af207c74ea8d298a784329c3 brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list); } else { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index f225eb2f1d5a7c49fb2d6403388230666d411cc0..cb1b8a59cd80aa36fb23a4f99ceff3e91294e98c 100644 +index 4848dc0899e471e92037d47128bfdbf2a3ec8108..14593af0b855c76bb3a96eaa06be7c8287b6a51b 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -222,7 +222,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -181,10 +181,10 @@ index ac70c2c03241e73943bd517a8c69dd05e0873634..0318663a824d2a9515f867a075d148c3 public static final VillagerProfession FISHERMAN = register("fisherman", PoiTypes.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN); public static final VillagerProfession FLETCHER = register("fletcher", PoiTypes.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a405d1112e154bc8689d7c9f15c67d397d424dde..4fbeb9bd9678301059af438dc8b843e8abc18d6b 100644 +index 95ecf38ba98225d65ebe21d810ddf6a74483de1b..d36143be4de78e2444f335a5e56e1e33e0f0b54b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1800,6 +1800,8 @@ public class PurpurWorldConfig { +@@ -1796,6 +1796,8 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -193,7 +193,7 @@ index a405d1112e154bc8689d7c9f15c67d397d424dde..4fbeb9bd9678301059af438dc8b843e8 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1814,6 +1816,8 @@ public class PurpurWorldConfig { +@@ -1810,6 +1812,8 @@ public class PurpurWorldConfig { villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); diff --git a/patches/server/0116-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0116-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index cabd55acd..f204aa7ee 100644 --- a/patches/server/0116-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0116-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 9bec6222a8145f84f4b748e8c96e02fa0d6f14d2..2ff0166a26ede86e8410b003a5e7f051 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4fbeb9bd9678301059af438dc8b843e8abc18d6b..d07f8a2568a569d551ce848855ee3411cce5a9d0 100644 +index d36143be4de78e2444f335a5e56e1e33e0f0b54b..e90b420b1a3254f578ab0ba8723a8b9b6ae3e8a5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2044,6 +2044,7 @@ public class PurpurWorldConfig { +@@ -2040,6 +2040,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 4fbeb9bd9678301059af438dc8b843e8abc18d6b..d07f8a2568a569d551ce848855ee3411 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2058,5 +2059,6 @@ public class PurpurWorldConfig { +@@ -2054,5 +2055,6 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyOnlyBaby = getBoolean("mobs.zombified_piglin.jockey.only-babies", zombifiedPiglinJockeyOnlyBaby); zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); diff --git a/patches/server/0117-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0117-Configurable-chance-for-wolves-to-spawn-rabid.patch index 6c5ba95a5..8b34d4268 100644 --- a/patches/server/0117-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0117-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -222,10 +222,10 @@ index e43fd3e59fd8c74828ae65965fade27f56beef65..b2f133c8baabba1cffa6e92ea0f85453 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d07f8a2568a569d551ce848855ee3411cce5a9d0..e40e606815d24f01e5e620d0572a609b1f41f815 100644 +index e90b420b1a3254f578ab0ba8723a8b9b6ae3e8a5..1beb4623f9493036f56c6689120a67e92b8c4e66 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1929,6 +1929,8 @@ public class PurpurWorldConfig { +@@ -1925,6 +1925,8 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -234,7 +234,7 @@ index d07f8a2568a569d551ce848855ee3411cce5a9d0..e40e606815d24f01e5e620d0572a609b public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1940,6 +1942,8 @@ public class PurpurWorldConfig { +@@ -1936,6 +1938,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0118-Configurable-default-collar-color.patch b/patches/server/0118-Configurable-default-collar-color.patch index e4f4023e8..8b558cfd3 100644 --- a/patches/server/0118-Configurable-default-collar-color.patch +++ b/patches/server/0118-Configurable-default-collar-color.patch @@ -43,10 +43,10 @@ index 73741cd019cbe57225203f76f645a6b58c02b5e3..ef2405b5e32e581c488e8b943e143fae @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e40e606815d24f01e5e620d0572a609b1f41f815..f3d8d538fe35929018478b1be6f047b7296acea7 100644 +index 1beb4623f9493036f56c6689120a67e92b8c4e66..fa1b981224d22baf8ca35ae5c8c8ccb278bee164 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -626,6 +626,7 @@ public class PurpurWorldConfig { +@@ -622,6 +622,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -54,7 +54,7 @@ index e40e606815d24f01e5e620d0572a609b1f41f815..f3d8d538fe35929018478b1be6f047b7 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -640,6 +641,11 @@ public class PurpurWorldConfig { +@@ -636,6 +637,11 @@ public class PurpurWorldConfig { catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks); @@ -66,7 +66,7 @@ index e40e606815d24f01e5e620d0572a609b1f41f815..f3d8d538fe35929018478b1be6f047b7 } public boolean caveSpiderRidable = false; -@@ -1929,6 +1935,7 @@ public class PurpurWorldConfig { +@@ -1925,6 +1931,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -74,7 +74,7 @@ index e40e606815d24f01e5e620d0572a609b1f41f815..f3d8d538fe35929018478b1be6f047b7 public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1942,6 +1949,11 @@ public class PurpurWorldConfig { +@@ -1938,6 +1945,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0119-Phantom-flames-on-swoop.patch b/patches/server/0119-Phantom-flames-on-swoop.patch index b734d8795..b3404a68a 100644 --- a/patches/server/0119-Phantom-flames-on-swoop.patch +++ b/patches/server/0119-Phantom-flames-on-swoop.patch @@ -17,10 +17,10 @@ index 11cbb89eb062de0cd30158dbfbef13554f81cf9f..162f8f6f368266ce238247901277f78c @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f3d8d538fe35929018478b1be6f047b7296acea7..eac20d42f3c962dcefffd55fec1a79089ecd7d5c 100644 +index fa1b981224d22baf8ca35ae5c8c8ccb278bee164..e1cbdc08cf20247f806cf620c52d1682c6e0619b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1304,6 +1304,7 @@ public class PurpurWorldConfig { +@@ -1300,6 +1300,7 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -28,7 +28,7 @@ index f3d8d538fe35929018478b1be6f047b7296acea7..eac20d42f3c962dcefffd55fec1a7908 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1337,6 +1338,7 @@ public class PurpurWorldConfig { +@@ -1333,6 +1334,7 @@ public class PurpurWorldConfig { phantomBurnInLight = getInt("mobs.phantom.burn-in-light", phantomBurnInLight); phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); diff --git a/patches/server/0122-Striders-give-saddle-back.patch b/patches/server/0122-Striders-give-saddle-back.patch index dd64951bf..a3852b0a7 100644 --- a/patches/server/0122-Striders-give-saddle-back.patch +++ b/patches/server/0122-Striders-give-saddle-back.patch @@ -29,10 +29,10 @@ index 162fc0f879b882c934000ebb71e6eef6459876b6..521680926277d4c2bcfa0c6e482c92d9 if (!this.level.isClientSide) { player.startRiding(this); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7f6ff4f52da34fcd49f14b469546db76ebe5ab2f..14a05e7a166d40c49146da9bb3e6500a93fde4c7 100644 +index 6eec3b1c33fe0fe18afe8b7e277b1b6c4f59884e..d87f6b18ffa63cafcae7960e539d97ce875f4638 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1703,6 +1703,7 @@ public class PurpurWorldConfig { +@@ -1699,6 +1699,7 @@ public class PurpurWorldConfig { public boolean striderControllable = true; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -40,7 +40,7 @@ index 7f6ff4f52da34fcd49f14b469546db76ebe5ab2f..14a05e7a166d40c49146da9bb3e6500a private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1714,6 +1715,7 @@ public class PurpurWorldConfig { +@@ -1710,6 +1711,7 @@ public class PurpurWorldConfig { } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); diff --git a/patches/server/0126-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0126-Add-mobGriefing-bypass-to-everything-affected.patch index b4839d8b1..4d02593bb 100644 --- a/patches/server/0126-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0126-Add-mobGriefing-bypass-to-everything-affected.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add mobGriefing bypass to everything affected diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3f8e4c7436a0f0b8d1e4391967185e362eadd0b8..2d3d36f46e65d44fddf8b1f6e8de2c37c61ee7c0 100644 +index cd5531f26f4526eb8a566201fc92a3005213c53f..430ead3267c7c87922a523f274f694aabcd17960 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1734,7 +1734,7 @@ public abstract class LivingEntity extends Entity { @@ -144,7 +144,7 @@ index 4b2aff2002e559c32a56f941fa9285f20080fe90..8baf531d95924a31ae3f6db613497c15 // flag1 = this.level.removeBlock(blockposition, false) || flag1; flag1 = true; diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 991525cb5f0265678d61759ff55c1479ce3a92de..75489ea612a74db34977e0ff67edc25350e694f9 100644 +index 3101eab41aeddbe9d6e81d8a44a5acb2a862aa34..023f4e685c4c3765598f132aa2fed19776b6ae53 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -495,7 +495,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -208,7 +208,7 @@ index c220808b2a7854fa4a4e8170d7c03ba26717a8ee..8658ec12bcdf90797016f446e52c60c3 } else { List list = Evoker.this.level.getNearbyEntities(Sheep.class, this.wololoTargeting, Evoker.this, Evoker.this.getBoundingBox().inflate(16.0D, 4.0D, 16.0D)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 255b90552a8887e37a051f74eb2ed51e6a041e3b..7e487e93ddd33a69a1bce418edbc7d0da28655d6 100644 +index 72bdeca109608a2430114a25a2629c1a23327167..a31d157d97db6463f1176b3890d609d1ac7a58a1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -191,7 +191,7 @@ public class Ravager extends Raider { @@ -284,7 +284,7 @@ index 3a4b95288d390e72c0d97671ecc2e2ef2f976de1..4a3ba1f44379290b1e89366fa82c4028 // CraftBukkit start - fire ExplosionPrimeEvent ExplosionPrimeEvent event = new ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity()); diff --git a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java -index 5ccd7dc0a093277d3ea09c0fe8be03c0073ee1a8..d01d3b752f89df479ff985dd34043191fd5d59a4 100644 +index a000834c4ea8645a2fcd697e6396f797c42c8fa3..7e620e7ea23943a8639a437d7937da2784b59f60 100644 --- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java +++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java @@ -303,6 +303,6 @@ public abstract class Projectile extends Entity { @@ -361,7 +361,7 @@ index 518d3832c36c9ecf1ed9267ffc1f926dc84b7989..af5933b886abf3fd17bfdb8c1cb1ea63 } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java -index 9925cfc1445d24bf673e273f81391a1dadfb677d..dc3c8eb78439f0bf7420eb41b6f3925cf701e0c5 100644 +index 58fc57998f4715c42a842c4d91beb8f3b644f7f8..b8f04ab1a970244406755cc6f8e860e7e7294fd9 100644 --- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java @@ -211,7 +211,7 @@ public class TurtleEggBlock extends Block { @@ -374,7 +374,7 @@ index 9925cfc1445d24bf673e273f81391a1dadfb677d..dc3c8eb78439f0bf7420eb41b6f3925c } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa728521e8ae38 100644 +index 0baaa8c4eb38829cb378bdc6d50a90253dea529c..2e1f3735675133d0b65409c21a8e7955267828af 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -118,8 +118,11 @@ public class PurpurWorldConfig { @@ -413,7 +413,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -480,6 +488,11 @@ public class PurpurWorldConfig { +@@ -478,6 +486,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } @@ -425,7 +425,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -514,10 +527,12 @@ public class PurpurWorldConfig { +@@ -512,10 +525,12 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; @@ -437,8 +437,8 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 + turtleEggsBypassMobGriefing = getBoolean("blocks.turtle_egg.bypass-mob-griefing", turtleEggsBypassMobGriefing); } - public boolean waterInfinite = true; -@@ -742,6 +757,7 @@ public class PurpurWorldConfig { + public int waterInfiniteRequiredSources = 2; +@@ -738,6 +753,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -446,7 +446,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -754,6 +770,7 @@ public class PurpurWorldConfig { +@@ -750,6 +766,7 @@ public class PurpurWorldConfig { creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); @@ -454,7 +454,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean dolphinRidable = false; -@@ -848,6 +865,7 @@ public class PurpurWorldConfig { +@@ -844,6 +861,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -462,7 +462,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -864,6 +882,7 @@ public class PurpurWorldConfig { +@@ -860,6 +878,7 @@ public class PurpurWorldConfig { } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); @@ -470,7 +470,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean endermanRidable = false; -@@ -872,6 +891,7 @@ public class PurpurWorldConfig { +@@ -868,6 +887,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -478,7 +478,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -884,6 +904,7 @@ public class PurpurWorldConfig { +@@ -880,6 +900,7 @@ public class PurpurWorldConfig { endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); @@ -486,7 +486,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean endermiteRidable = false; -@@ -906,6 +927,7 @@ public class PurpurWorldConfig { +@@ -902,6 +923,7 @@ public class PurpurWorldConfig { public boolean evokerRidableInWater = false; public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; @@ -494,7 +494,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -916,6 +938,7 @@ public class PurpurWorldConfig { +@@ -912,6 +934,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -502,7 +502,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean foxRidable = false; -@@ -924,6 +947,7 @@ public class PurpurWorldConfig { +@@ -920,6 +943,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -510,7 +510,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -936,6 +960,7 @@ public class PurpurWorldConfig { +@@ -932,6 +956,7 @@ public class PurpurWorldConfig { foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); @@ -518,7 +518,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean frogRidable = false; -@@ -1383,6 +1408,7 @@ public class PurpurWorldConfig { +@@ -1379,6 +1404,7 @@ public class PurpurWorldConfig { public boolean piglinRidableInWater = false; public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; @@ -526,7 +526,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1393,6 +1419,7 @@ public class PurpurWorldConfig { +@@ -1389,6 +1415,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -534,7 +534,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean piglinBruteRidable = false; -@@ -1415,6 +1442,7 @@ public class PurpurWorldConfig { +@@ -1411,6 +1438,7 @@ public class PurpurWorldConfig { public boolean pillagerRidableInWater = false; public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; @@ -542,7 +542,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1425,6 +1453,7 @@ public class PurpurWorldConfig { +@@ -1421,6 +1449,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -550,7 +550,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean polarBearRidable = false; -@@ -1471,6 +1500,7 @@ public class PurpurWorldConfig { +@@ -1467,6 +1496,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -558,7 +558,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1484,12 +1514,14 @@ public class PurpurWorldConfig { +@@ -1480,12 +1510,14 @@ public class PurpurWorldConfig { rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); @@ -573,7 +573,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1500,6 +1532,7 @@ public class PurpurWorldConfig { +@@ -1496,6 +1528,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -581,7 +581,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean salmonRidable = false; -@@ -1521,6 +1554,7 @@ public class PurpurWorldConfig { +@@ -1517,6 +1550,7 @@ public class PurpurWorldConfig { public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -589,7 +589,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1532,6 +1566,7 @@ public class PurpurWorldConfig { +@@ -1528,6 +1562,7 @@ public class PurpurWorldConfig { } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); @@ -597,7 +597,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean shulkerRidable = false; -@@ -1554,6 +1589,7 @@ public class PurpurWorldConfig { +@@ -1550,6 +1585,7 @@ public class PurpurWorldConfig { public boolean silverfishRidableInWater = false; public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; @@ -605,7 +605,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1564,6 +1600,7 @@ public class PurpurWorldConfig { +@@ -1560,6 +1596,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -613,7 +613,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean skeletonRidable = false; -@@ -1640,6 +1677,7 @@ public class PurpurWorldConfig { +@@ -1636,6 +1673,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -621,7 +621,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1657,6 +1695,7 @@ public class PurpurWorldConfig { +@@ -1653,6 +1691,7 @@ public class PurpurWorldConfig { snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax); snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); @@ -629,7 +629,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean squidRidable = false; -@@ -1830,6 +1869,7 @@ public class PurpurWorldConfig { +@@ -1826,6 +1865,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -637,7 +637,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1846,6 +1886,7 @@ public class PurpurWorldConfig { +@@ -1842,6 +1882,7 @@ public class PurpurWorldConfig { villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); @@ -645,7 +645,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean vindicatorRidable = false; -@@ -1918,6 +1959,7 @@ public class PurpurWorldConfig { +@@ -1914,6 +1955,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -653,7 +653,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1935,6 +1977,7 @@ public class PurpurWorldConfig { +@@ -1931,6 +1973,7 @@ public class PurpurWorldConfig { witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); @@ -661,7 +661,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 } public boolean witherSkeletonRidable = false; -@@ -2006,6 +2049,7 @@ public class PurpurWorldConfig { +@@ -2002,6 +2045,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -669,7 +669,7 @@ index 670b87db94104499e860c7fc2b2ff6ab73d7350a..d504b3177476996a7d772eb7eeaa7285 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2021,6 +2065,7 @@ public class PurpurWorldConfig { +@@ -2017,6 +2061,7 @@ public class PurpurWorldConfig { zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); diff --git a/patches/server/0132-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0132-Toggle-for-water-sensitive-mob-damage.patch index 9f7e086fc..633aefefa 100644 --- a/patches/server/0132-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0132-Toggle-for-water-sensitive-mob-damage.patch @@ -379,7 +379,7 @@ index 62f44f830e5b924776d47b3ac36de4166d2e13f7..220a9ca9c78b14b4ca6f76192396db60 public static String getPredefinedName(int variant) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 56e0f21a002a6112770cf0d9e06136caf3f89c80..95ea01f3ded049a65a68cb84db8fb24f52c8dc8d 100644 +index 59f04b1dc0abf6e0780ac2b03d63064169106c02..c53a1d86855368d6d359d663e93b1518a6244bed 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -107,6 +107,11 @@ public class Turtle extends Animal { @@ -571,7 +571,7 @@ index 8baf531d95924a31ae3f6db613497c15752e740a..dfddea46b0ff9b7f4fe3af5c23610a5f public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 75489ea612a74db34977e0ff67edc25350e694f9..dcd6b4eadca53d202135957025b577b2cfed9eb0 100644 +index 023f4e685c4c3765598f132aa2fed19776b6ae53..2ee52db8edc8e1c3e32a96fdc998dd8917684d1e 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -233,6 +233,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -855,7 +855,7 @@ index f2f0137d8c74165f5ea829599f537c1425e4c872..ec2f96b3517bd99cbd616aee56d0b1c6 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 7e487e93ddd33a69a1bce418edbc7d0da28655d6..efc4d4914ace36cd9e02473e6ff75e5e75362df4 100644 +index a31d157d97db6463f1176b3890d609d1ac7a58a1..8285783ba943e22c9aa0c492980e059e7670facc 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -95,6 +95,11 @@ public class Ravager extends Raider { @@ -1165,7 +1165,7 @@ index 75db61c5aab66234b26f7899229ddca8896e2086..a44f9a59fbec146df95d89c26df12efb public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index cb1b8a59cd80aa36fb23a4f99ceff3e91294e98c..304c7e23fd38aa3e869918cbabf77d835ac5a8cd 100644 +index 14593af0b855c76bb3a96eaa06be7c8287b6a51b..78efd0c4a3350602757a54950cabdccbda8c5d18 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -186,6 +186,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -1181,7 +1181,7 @@ index cb1b8a59cd80aa36fb23a4f99ceff3e91294e98c..304c7e23fd38aa3e869918cbabf77d83 @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index 2c01e6155124e0c11899b643197badeb3a52691c..a028732368cdc6b249135742b4a86920d95fa76e 100644 +index 3a40dee2ae0414363b4236f131001b03f0a46b1a..264e9372118dcf95840fef2dfa5db3be96e46c6a 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -91,6 +91,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -1197,10 +1197,10 @@ index 2c01e6155124e0c11899b643197badeb3a52691c..a028732368cdc6b249135742b4a86920 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf9ae9beac 100644 +index 0ad176b6d998ce448b9a3d1c8d7c62c5bfd06535..d6cd85176d4dcf5e3f3c327881a546648ba25644 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -582,11 +582,13 @@ public class PurpurWorldConfig { +@@ -578,11 +578,13 @@ public class PurpurWorldConfig { public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; @@ -1214,7 +1214,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean batRidable = false; -@@ -601,6 +603,7 @@ public class PurpurWorldConfig { +@@ -597,6 +599,7 @@ public class PurpurWorldConfig { public double batArmor = 0.0D; public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; @@ -1222,7 +1222,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -612,6 +615,7 @@ public class PurpurWorldConfig { +@@ -608,6 +611,7 @@ public class PurpurWorldConfig { set("mobs.bat.attributes.max_health", oldValue); } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); @@ -1230,7 +1230,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean beeRidable = false; -@@ -620,6 +624,7 @@ public class PurpurWorldConfig { +@@ -616,6 +620,7 @@ public class PurpurWorldConfig { public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; @@ -1238,7 +1238,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -632,6 +637,7 @@ public class PurpurWorldConfig { +@@ -628,6 +633,7 @@ public class PurpurWorldConfig { } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); @@ -1246,7 +1246,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean blazeRidable = false; -@@ -639,6 +645,7 @@ public class PurpurWorldConfig { +@@ -635,6 +641,7 @@ public class PurpurWorldConfig { public boolean blazeControllable = true; public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; @@ -1254,7 +1254,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -650,6 +657,7 @@ public class PurpurWorldConfig { +@@ -646,6 +653,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -1262,7 +1262,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public int camelBreedingTicks = 6000; -@@ -678,6 +686,7 @@ public class PurpurWorldConfig { +@@ -674,6 +682,7 @@ public class PurpurWorldConfig { public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; @@ -1270,7 +1270,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -697,12 +706,14 @@ public class PurpurWorldConfig { +@@ -693,12 +702,14 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { catDefaultCollarColor = DyeColor.RED; } @@ -1285,7 +1285,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -713,6 +724,7 @@ public class PurpurWorldConfig { +@@ -709,6 +720,7 @@ public class PurpurWorldConfig { set("mobs.cave_spider.attributes.max_health", oldValue); } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); @@ -1293,7 +1293,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean chickenRidable = false; -@@ -721,6 +733,7 @@ public class PurpurWorldConfig { +@@ -717,6 +729,7 @@ public class PurpurWorldConfig { public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; @@ -1301,7 +1301,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -733,11 +746,13 @@ public class PurpurWorldConfig { +@@ -729,11 +742,13 @@ public class PurpurWorldConfig { chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); @@ -1315,7 +1315,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -747,6 +762,7 @@ public class PurpurWorldConfig { +@@ -743,6 +758,7 @@ public class PurpurWorldConfig { set("mobs.cod.attributes.max_health", oldValue); } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); @@ -1323,7 +1323,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean cowRidable = false; -@@ -755,6 +771,7 @@ public class PurpurWorldConfig { +@@ -751,6 +767,7 @@ public class PurpurWorldConfig { public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; @@ -1331,7 +1331,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -767,6 +784,7 @@ public class PurpurWorldConfig { +@@ -763,6 +780,7 @@ public class PurpurWorldConfig { cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks); @@ -1339,7 +1339,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean creeperRidable = false; -@@ -776,6 +794,7 @@ public class PurpurWorldConfig { +@@ -772,6 +790,7 @@ public class PurpurWorldConfig { public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; @@ -1347,7 +1347,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -789,6 +808,7 @@ public class PurpurWorldConfig { +@@ -785,6 +804,7 @@ public class PurpurWorldConfig { creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); @@ -1355,7 +1355,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean dolphinRidable = false; -@@ -798,6 +818,7 @@ public class PurpurWorldConfig { +@@ -794,6 +814,7 @@ public class PurpurWorldConfig { public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; @@ -1363,7 +1363,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -811,6 +832,7 @@ public class PurpurWorldConfig { +@@ -807,6 +828,7 @@ public class PurpurWorldConfig { } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); @@ -1371,7 +1371,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean donkeyRidableInWater = false; -@@ -821,6 +843,7 @@ public class PurpurWorldConfig { +@@ -817,6 +839,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; @@ -1379,7 +1379,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -837,6 +860,7 @@ public class PurpurWorldConfig { +@@ -833,6 +856,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); @@ -1387,7 +1387,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean drownedRidable = false; -@@ -847,6 +871,7 @@ public class PurpurWorldConfig { +@@ -843,6 +867,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1395,7 +1395,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -861,11 +886,13 @@ public class PurpurWorldConfig { +@@ -857,11 +882,13 @@ public class PurpurWorldConfig { drownedJockeyOnlyBaby = getBoolean("mobs.drowned.jockey.only-babies", drownedJockeyOnlyBaby); drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance); drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); @@ -1409,7 +1409,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -875,6 +902,7 @@ public class PurpurWorldConfig { +@@ -871,6 +898,7 @@ public class PurpurWorldConfig { set("mobs.elder_guardian.attributes.max_health", oldValue); } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); @@ -1417,7 +1417,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean enderDragonRidable = false; -@@ -884,6 +912,7 @@ public class PurpurWorldConfig { +@@ -880,6 +908,7 @@ public class PurpurWorldConfig { public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; @@ -1425,7 +1425,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -901,6 +930,7 @@ public class PurpurWorldConfig { +@@ -897,6 +926,7 @@ public class PurpurWorldConfig { enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing); @@ -1433,7 +1433,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean endermanRidable = false; -@@ -910,6 +940,7 @@ public class PurpurWorldConfig { +@@ -906,6 +936,7 @@ public class PurpurWorldConfig { public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; @@ -1441,7 +1441,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -923,12 +954,14 @@ public class PurpurWorldConfig { +@@ -919,12 +950,14 @@ public class PurpurWorldConfig { endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); endermanBypassMobGriefing = getBoolean("mobs.enderman.bypass-mob-griefing", endermanBypassMobGriefing); @@ -1456,7 +1456,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -939,6 +972,7 @@ public class PurpurWorldConfig { +@@ -935,6 +968,7 @@ public class PurpurWorldConfig { set("mobs.endermite.attributes.max_health", oldValue); } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); @@ -1464,7 +1464,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean evokerRidable = false; -@@ -946,6 +980,7 @@ public class PurpurWorldConfig { +@@ -942,6 +976,7 @@ public class PurpurWorldConfig { public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; @@ -1472,7 +1472,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -957,6 +992,7 @@ public class PurpurWorldConfig { +@@ -953,6 +988,7 @@ public class PurpurWorldConfig { } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); @@ -1480,7 +1480,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean foxRidable = false; -@@ -966,6 +1002,7 @@ public class PurpurWorldConfig { +@@ -962,6 +998,7 @@ public class PurpurWorldConfig { public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; @@ -1488,7 +1488,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -979,6 +1016,7 @@ public class PurpurWorldConfig { +@@ -975,6 +1012,7 @@ public class PurpurWorldConfig { foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); @@ -1496,7 +1496,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean frogRidable = false; -@@ -999,6 +1037,7 @@ public class PurpurWorldConfig { +@@ -995,6 +1033,7 @@ public class PurpurWorldConfig { public boolean ghastControllable = true; public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; @@ -1504,7 +1504,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1010,6 +1049,7 @@ public class PurpurWorldConfig { +@@ -1006,6 +1045,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max_health", oldValue); } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); @@ -1512,7 +1512,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean giantRidable = false; -@@ -1022,6 +1062,7 @@ public class PurpurWorldConfig { +@@ -1018,6 +1058,7 @@ public class PurpurWorldConfig { public float giantJumpHeight = 1.0F; public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; @@ -1520,7 +1520,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1042,17 +1083,20 @@ public class PurpurWorldConfig { +@@ -1038,17 +1079,20 @@ public class PurpurWorldConfig { giantJumpHeight = (float) getDouble("mobs.giant.jump-height", giantJumpHeight); giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); @@ -1541,7 +1541,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean goatRidable = false; -@@ -1060,17 +1104,20 @@ public class PurpurWorldConfig { +@@ -1056,17 +1100,20 @@ public class PurpurWorldConfig { public boolean goatControllable = true; public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; @@ -1562,7 +1562,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1080,6 +1127,7 @@ public class PurpurWorldConfig { +@@ -1076,6 +1123,7 @@ public class PurpurWorldConfig { set("mobs.guardian.attributes.max_health", oldValue); } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); @@ -1570,7 +1570,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean hoglinRidable = false; -@@ -1087,6 +1135,7 @@ public class PurpurWorldConfig { +@@ -1083,6 +1131,7 @@ public class PurpurWorldConfig { public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; @@ -1578,7 +1578,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1098,6 +1147,7 @@ public class PurpurWorldConfig { +@@ -1094,6 +1143,7 @@ public class PurpurWorldConfig { } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); @@ -1586,7 +1586,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean horseRidableInWater = false; -@@ -1108,6 +1158,7 @@ public class PurpurWorldConfig { +@@ -1104,6 +1154,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; @@ -1594,7 +1594,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1124,6 +1175,7 @@ public class PurpurWorldConfig { +@@ -1120,6 +1171,7 @@ public class PurpurWorldConfig { horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin); horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); @@ -1602,7 +1602,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean huskRidable = false; -@@ -1134,6 +1186,7 @@ public class PurpurWorldConfig { +@@ -1130,6 +1182,7 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1610,7 +1610,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1148,6 +1201,7 @@ public class PurpurWorldConfig { +@@ -1144,6 +1197,7 @@ public class PurpurWorldConfig { huskJockeyOnlyBaby = getBoolean("mobs.husk.jockey.only-babies", huskJockeyOnlyBaby); huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); @@ -1618,7 +1618,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean illusionerRidable = false; -@@ -1156,6 +1210,7 @@ public class PurpurWorldConfig { +@@ -1152,6 +1206,7 @@ public class PurpurWorldConfig { public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; @@ -1626,7 +1626,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1172,6 +1227,7 @@ public class PurpurWorldConfig { +@@ -1168,6 +1223,7 @@ public class PurpurWorldConfig { set("mobs.illusioner.attributes.max_health", oldValue); } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); @@ -1634,7 +1634,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean ironGolemRidable = false; -@@ -1179,6 +1235,7 @@ public class PurpurWorldConfig { +@@ -1175,6 +1231,7 @@ public class PurpurWorldConfig { public boolean ironGolemControllable = true; public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; @@ -1642,7 +1642,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1190,6 +1247,7 @@ public class PurpurWorldConfig { +@@ -1186,6 +1243,7 @@ public class PurpurWorldConfig { set("mobs.iron_golem.attributes.max_health", oldValue); } ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); @@ -1650,7 +1650,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean llamaRidable = false; -@@ -1202,6 +1260,7 @@ public class PurpurWorldConfig { +@@ -1198,6 +1256,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; @@ -1658,7 +1658,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1220,6 +1279,7 @@ public class PurpurWorldConfig { +@@ -1216,6 +1275,7 @@ public class PurpurWorldConfig { llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); @@ -1666,7 +1666,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean magmaCubeRidable = false; -@@ -1229,6 +1289,7 @@ public class PurpurWorldConfig { +@@ -1225,6 +1285,7 @@ public class PurpurWorldConfig { public String magmaCubeAttackDamage = "size"; public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); @@ -1674,7 +1674,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1242,6 +1303,7 @@ public class PurpurWorldConfig { +@@ -1238,6 +1299,7 @@ public class PurpurWorldConfig { magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage); magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); @@ -1682,7 +1682,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean mooshroomRidable = false; -@@ -1249,6 +1311,7 @@ public class PurpurWorldConfig { +@@ -1245,6 +1307,7 @@ public class PurpurWorldConfig { public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; @@ -1690,7 +1690,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1260,6 +1323,7 @@ public class PurpurWorldConfig { +@@ -1256,6 +1319,7 @@ public class PurpurWorldConfig { } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); @@ -1698,7 +1698,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean muleRidableInWater = false; -@@ -1270,6 +1334,7 @@ public class PurpurWorldConfig { +@@ -1266,6 +1330,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; @@ -1706,7 +1706,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1286,6 +1351,7 @@ public class PurpurWorldConfig { +@@ -1282,6 +1347,7 @@ public class PurpurWorldConfig { muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin); muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); @@ -1714,7 +1714,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean ocelotRidable = false; -@@ -1293,6 +1359,7 @@ public class PurpurWorldConfig { +@@ -1289,6 +1355,7 @@ public class PurpurWorldConfig { public boolean ocelotControllable = true; public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; @@ -1722,7 +1722,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1304,6 +1371,7 @@ public class PurpurWorldConfig { +@@ -1300,6 +1367,7 @@ public class PurpurWorldConfig { } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); @@ -1730,7 +1730,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean pandaRidable = false; -@@ -1311,6 +1379,7 @@ public class PurpurWorldConfig { +@@ -1307,6 +1375,7 @@ public class PurpurWorldConfig { public boolean pandaControllable = true; public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; @@ -1738,7 +1738,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1322,6 +1391,7 @@ public class PurpurWorldConfig { +@@ -1318,6 +1387,7 @@ public class PurpurWorldConfig { } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); @@ -1746,7 +1746,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean parrotRidable = false; -@@ -1329,6 +1399,7 @@ public class PurpurWorldConfig { +@@ -1325,6 +1395,7 @@ public class PurpurWorldConfig { public boolean parrotControllable = true; public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; @@ -1754,7 +1754,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1340,6 +1411,7 @@ public class PurpurWorldConfig { +@@ -1336,6 +1407,7 @@ public class PurpurWorldConfig { set("mobs.parrot.attributes.max_health", oldValue); } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); @@ -1762,7 +1762,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean phantomRidable = false; -@@ -1366,6 +1438,7 @@ public class PurpurWorldConfig { +@@ -1362,6 +1434,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; @@ -1770,7 +1770,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1400,6 +1473,7 @@ public class PurpurWorldConfig { +@@ -1396,6 +1469,7 @@ public class PurpurWorldConfig { phantomBurnInDaylight = getBoolean("mobs.phantom.burn-in-daylight", phantomBurnInDaylight); phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); @@ -1778,7 +1778,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean pigRidable = false; -@@ -1408,6 +1482,7 @@ public class PurpurWorldConfig { +@@ -1404,6 +1478,7 @@ public class PurpurWorldConfig { public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; @@ -1786,7 +1786,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1420,6 +1495,7 @@ public class PurpurWorldConfig { +@@ -1416,6 +1491,7 @@ public class PurpurWorldConfig { pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); @@ -1794,7 +1794,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean piglinRidable = false; -@@ -1427,6 +1503,7 @@ public class PurpurWorldConfig { +@@ -1423,6 +1499,7 @@ public class PurpurWorldConfig { public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; @@ -1802,7 +1802,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1438,12 +1515,14 @@ public class PurpurWorldConfig { +@@ -1434,12 +1511,14 @@ public class PurpurWorldConfig { } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); @@ -1817,7 +1817,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1454,6 +1533,7 @@ public class PurpurWorldConfig { +@@ -1450,6 +1529,7 @@ public class PurpurWorldConfig { set("mobs.piglin_brute.attributes.max_health", oldValue); } piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); @@ -1825,7 +1825,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean pillagerRidable = false; -@@ -1461,6 +1541,7 @@ public class PurpurWorldConfig { +@@ -1457,6 +1537,7 @@ public class PurpurWorldConfig { public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; @@ -1833,7 +1833,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1472,6 +1553,7 @@ public class PurpurWorldConfig { +@@ -1468,6 +1549,7 @@ public class PurpurWorldConfig { } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); @@ -1841,7 +1841,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean polarBearRidable = false; -@@ -1481,6 +1563,7 @@ public class PurpurWorldConfig { +@@ -1477,6 +1559,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -1849,7 +1849,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1495,11 +1578,13 @@ public class PurpurWorldConfig { +@@ -1491,11 +1574,13 @@ public class PurpurWorldConfig { Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); @@ -1863,7 +1863,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -1509,6 +1594,7 @@ public class PurpurWorldConfig { +@@ -1505,6 +1590,7 @@ public class PurpurWorldConfig { set("mobs.pufferfish.attributes.max_health", oldValue); } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); @@ -1871,7 +1871,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean rabbitRidable = false; -@@ -1519,6 +1605,7 @@ public class PurpurWorldConfig { +@@ -1515,6 +1601,7 @@ public class PurpurWorldConfig { public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; @@ -1879,7 +1879,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1533,6 +1620,7 @@ public class PurpurWorldConfig { +@@ -1529,6 +1616,7 @@ public class PurpurWorldConfig { rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); @@ -1887,7 +1887,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean ravagerRidable = false; -@@ -1540,6 +1628,7 @@ public class PurpurWorldConfig { +@@ -1536,6 +1624,7 @@ public class PurpurWorldConfig { public boolean ravagerControllable = true; public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; @@ -1895,7 +1895,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1551,11 +1640,13 @@ public class PurpurWorldConfig { +@@ -1547,11 +1636,13 @@ public class PurpurWorldConfig { } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing); @@ -1909,7 +1909,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -1565,6 +1656,7 @@ public class PurpurWorldConfig { +@@ -1561,6 +1652,7 @@ public class PurpurWorldConfig { set("mobs.salmon.attributes.max_health", oldValue); } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); @@ -1917,7 +1917,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean sheepRidable = false; -@@ -1573,6 +1665,7 @@ public class PurpurWorldConfig { +@@ -1569,6 +1661,7 @@ public class PurpurWorldConfig { public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; @@ -1925,7 +1925,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1585,12 +1678,14 @@ public class PurpurWorldConfig { +@@ -1581,12 +1674,14 @@ public class PurpurWorldConfig { sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); @@ -1940,7 +1940,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1601,6 +1696,7 @@ public class PurpurWorldConfig { +@@ -1597,6 +1692,7 @@ public class PurpurWorldConfig { set("mobs.shulker.attributes.max_health", oldValue); } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); @@ -1948,7 +1948,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean silverfishRidable = false; -@@ -1608,6 +1704,7 @@ public class PurpurWorldConfig { +@@ -1604,6 +1700,7 @@ public class PurpurWorldConfig { public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; @@ -1956,7 +1956,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1619,12 +1716,14 @@ public class PurpurWorldConfig { +@@ -1615,12 +1712,14 @@ public class PurpurWorldConfig { } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); @@ -1971,7 +1971,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -1635,6 +1734,7 @@ public class PurpurWorldConfig { +@@ -1631,6 +1730,7 @@ public class PurpurWorldConfig { set("mobs.skeleton.attributes.max_health", oldValue); } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); @@ -1979,7 +1979,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean skeletonHorseRidableInWater = true; -@@ -1645,6 +1745,7 @@ public class PurpurWorldConfig { +@@ -1641,6 +1741,7 @@ public class PurpurWorldConfig { public double skeletonHorseJumpStrengthMax = 1.0D; public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; @@ -1987,7 +1987,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -1660,6 +1761,7 @@ public class PurpurWorldConfig { +@@ -1656,6 +1757,7 @@ public class PurpurWorldConfig { skeletonHorseJumpStrengthMax = getDouble("mobs.skeleton_horse.attributes.jump_strength.max", skeletonHorseJumpStrengthMax); skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); @@ -1995,7 +1995,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean slimeRidable = false; -@@ -1669,6 +1771,7 @@ public class PurpurWorldConfig { +@@ -1665,6 +1767,7 @@ public class PurpurWorldConfig { public String slimeAttackDamage = "size"; public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); @@ -2003,7 +2003,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -1682,6 +1785,7 @@ public class PurpurWorldConfig { +@@ -1678,6 +1781,7 @@ public class PurpurWorldConfig { slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage); slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); @@ -2011,7 +2011,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean snowGolemRidable = false; -@@ -1696,6 +1800,7 @@ public class PurpurWorldConfig { +@@ -1692,6 +1796,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -2019,7 +2019,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1714,6 +1819,7 @@ public class PurpurWorldConfig { +@@ -1710,6 +1815,7 @@ public class PurpurWorldConfig { snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); @@ -2027,7 +2027,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean squidRidable = false; -@@ -1722,6 +1828,7 @@ public class PurpurWorldConfig { +@@ -1718,6 +1824,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -2035,7 +2035,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1734,12 +1841,14 @@ public class PurpurWorldConfig { +@@ -1730,12 +1837,14 @@ public class PurpurWorldConfig { squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); @@ -2050,7 +2050,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1750,12 +1859,14 @@ public class PurpurWorldConfig { +@@ -1746,12 +1855,14 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2065,7 +2065,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1766,6 +1877,7 @@ public class PurpurWorldConfig { +@@ -1762,6 +1873,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2073,7 +2073,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean striderRidable = false; -@@ -1774,6 +1886,7 @@ public class PurpurWorldConfig { +@@ -1770,6 +1882,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2081,7 +2081,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1786,6 +1899,7 @@ public class PurpurWorldConfig { +@@ -1782,6 +1895,7 @@ public class PurpurWorldConfig { striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); @@ -2089,7 +2089,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean tadpoleRidable = false; -@@ -1807,6 +1921,7 @@ public class PurpurWorldConfig { +@@ -1803,6 +1917,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2097,7 +2097,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1825,11 +1940,13 @@ public class PurpurWorldConfig { +@@ -1821,11 +1936,13 @@ public class PurpurWorldConfig { traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin); traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); @@ -2111,7 +2111,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -1839,6 +1956,7 @@ public class PurpurWorldConfig { +@@ -1835,6 +1952,7 @@ public class PurpurWorldConfig { set("mobs.tropical_fish.attributes.max_health", oldValue); } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); @@ -2119,7 +2119,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean turtleRidable = false; -@@ -1846,6 +1964,7 @@ public class PurpurWorldConfig { +@@ -1842,6 +1960,7 @@ public class PurpurWorldConfig { public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; @@ -2127,7 +2127,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1857,6 +1976,7 @@ public class PurpurWorldConfig { +@@ -1853,6 +1972,7 @@ public class PurpurWorldConfig { } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); @@ -2135,7 +2135,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean vexRidable = false; -@@ -1864,6 +1984,7 @@ public class PurpurWorldConfig { +@@ -1860,6 +1980,7 @@ public class PurpurWorldConfig { public boolean vexControllable = true; public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; @@ -2143,7 +2143,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1875,6 +1996,7 @@ public class PurpurWorldConfig { +@@ -1871,6 +1992,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2151,7 +2151,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean villagerRidable = false; -@@ -1888,6 +2010,7 @@ public class PurpurWorldConfig { +@@ -1884,6 +2006,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2159,7 +2159,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1905,6 +2028,7 @@ public class PurpurWorldConfig { +@@ -1901,6 +2024,7 @@ public class PurpurWorldConfig { villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); @@ -2167,7 +2167,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean vindicatorRidable = false; -@@ -1912,6 +2036,7 @@ public class PurpurWorldConfig { +@@ -1908,6 +2032,7 @@ public class PurpurWorldConfig { public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; @@ -2175,7 +2175,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1923,6 +2048,7 @@ public class PurpurWorldConfig { +@@ -1919,6 +2044,7 @@ public class PurpurWorldConfig { } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); @@ -2183,7 +2183,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean wanderingTraderRidable = false; -@@ -1931,6 +2057,7 @@ public class PurpurWorldConfig { +@@ -1927,6 +2053,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2191,7 +2191,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1943,6 +2070,7 @@ public class PurpurWorldConfig { +@@ -1939,6 +2066,7 @@ public class PurpurWorldConfig { wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); @@ -2199,7 +2199,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean wardenRidable = false; -@@ -1958,6 +2086,7 @@ public class PurpurWorldConfig { +@@ -1954,6 +2082,7 @@ public class PurpurWorldConfig { public boolean witchRidableInWater = false; public boolean witchControllable = true; public double witchMaxHealth = 26.0D; @@ -2207,7 +2207,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1968,6 +2097,7 @@ public class PurpurWorldConfig { +@@ -1964,6 +2093,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2215,7 +2215,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean witherRidable = false; -@@ -1978,6 +2108,7 @@ public class PurpurWorldConfig { +@@ -1974,6 +2104,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2223,7 +2223,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1996,12 +2127,14 @@ public class PurpurWorldConfig { +@@ -1992,12 +2123,14 @@ public class PurpurWorldConfig { witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); @@ -2238,7 +2238,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2012,6 +2145,7 @@ public class PurpurWorldConfig { +@@ -2008,6 +2141,7 @@ public class PurpurWorldConfig { set("mobs.wither_skeleton.attributes.max_health", oldValue); } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); @@ -2246,7 +2246,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean wolfRidable = false; -@@ -2022,6 +2156,7 @@ public class PurpurWorldConfig { +@@ -2018,6 +2152,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2254,7 +2254,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2040,12 +2175,14 @@ public class PurpurWorldConfig { +@@ -2036,12 +2171,14 @@ public class PurpurWorldConfig { wolfMilkCuresRabies = getBoolean("mobs.wolf.milk-cures-rabid-wolves", wolfMilkCuresRabies); wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); @@ -2269,7 +2269,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2056,6 +2193,7 @@ public class PurpurWorldConfig { +@@ -2052,6 +2189,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2277,7 +2277,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean zombieRidable = false; -@@ -2068,6 +2206,7 @@ public class PurpurWorldConfig { +@@ -2064,6 +2202,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2285,7 +2285,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2084,6 +2223,7 @@ public class PurpurWorldConfig { +@@ -2080,6 +2219,7 @@ public class PurpurWorldConfig { zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); @@ -2293,7 +2293,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean zombieHorseRidableInWater = false; -@@ -2095,6 +2235,7 @@ public class PurpurWorldConfig { +@@ -2091,6 +2231,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; @@ -2301,7 +2301,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2111,6 +2252,7 @@ public class PurpurWorldConfig { +@@ -2107,6 +2248,7 @@ public class PurpurWorldConfig { zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin); zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); @@ -2309,7 +2309,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean zombieVillagerRidable = false; -@@ -2121,6 +2263,7 @@ public class PurpurWorldConfig { +@@ -2117,6 +2259,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2317,7 +2317,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2135,6 +2278,7 @@ public class PurpurWorldConfig { +@@ -2131,6 +2274,7 @@ public class PurpurWorldConfig { zombieVillagerJockeyOnlyBaby = getBoolean("mobs.zombie_villager.jockey.only-babies", zombieVillagerJockeyOnlyBaby); zombieVillagerJockeyChance = getDouble("mobs.zombie_villager.jockey.chance", zombieVillagerJockeyChance); zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens); @@ -2325,7 +2325,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf } public boolean zombifiedPiglinRidable = false; -@@ -2146,6 +2290,7 @@ public class PurpurWorldConfig { +@@ -2142,6 +2286,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2333,7 +2333,7 @@ index 4935d75898f2c7977e629ac09bc17a4b975de14c..6e64c34929bf792a6f28ae1ad05a9abf private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2161,5 +2306,6 @@ public class PurpurWorldConfig { +@@ -2157,5 +2302,6 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); diff --git a/patches/server/0135-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0135-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 5b0d7f32b..8bf665524 100644 --- a/patches/server/0135-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0135-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -17,7 +17,7 @@ index dfddea46b0ff9b7f4fe3af5c23610a5f631acb4e..1e2304347fc369e5d9fe5d4c3cca8856 } diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index dcd6b4eadca53d202135957025b577b2cfed9eb0..2ef066f01fe4dbebc147fb5ec2591bdbe72a41e5 100644 +index 2ee52db8edc8e1c3e32a96fdc998dd8917684d1e..84af89d1afe08709704147e9612f0b1c705036b8 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -746,6 +746,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -29,10 +29,10 @@ index dcd6b4eadca53d202135957025b577b2cfed9eb0..2ef066f01fe4dbebc147fb5ec2591bdb } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index db3ea40a5221c93176dc91aad7c80cb551eb436b..52fb94f43a6396008e505866796a175e214e521a 100644 +index dfb050eadc2d9f5b3a33d8a142955b0c580c5fb9..6d63fa92617e017684c395be7784ad3dae803d6f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -952,6 +952,7 @@ public class PurpurWorldConfig { +@@ -948,6 +948,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public boolean enderDragonTakeDamageFromWater = false; @@ -40,7 +40,7 @@ index db3ea40a5221c93176dc91aad7c80cb551eb436b..52fb94f43a6396008e505866796a175e private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -970,6 +971,7 @@ public class PurpurWorldConfig { +@@ -966,6 +967,7 @@ public class PurpurWorldConfig { enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); enderDragonBypassMobGriefing = getBoolean("mobs.ender_dragon.bypass-mob-griefing", enderDragonBypassMobGriefing); enderDragonTakeDamageFromWater = getBoolean("mobs.ender_dragon.takes-damage-from-water", enderDragonTakeDamageFromWater); @@ -48,7 +48,7 @@ index db3ea40a5221c93176dc91aad7c80cb551eb436b..52fb94f43a6396008e505866796a175e } public boolean endermanRidable = false; -@@ -2148,6 +2150,7 @@ public class PurpurWorldConfig { +@@ -2144,6 +2146,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index db3ea40a5221c93176dc91aad7c80cb551eb436b..52fb94f43a6396008e505866796a175e private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2167,6 +2170,7 @@ public class PurpurWorldConfig { +@@ -2163,6 +2166,7 @@ public class PurpurWorldConfig { witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); diff --git a/patches/server/0141-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0141-Config-Enderman-aggressiveness-towards-Endermites.patch index e5cd0b52a..cfb0677e7 100644 --- a/patches/server/0141-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0141-Config-Enderman-aggressiveness-towards-Endermites.patch @@ -18,10 +18,10 @@ index 8e412eab1251f42f19168b58fe8500693db94116..f82bf3795d15ef51b8b5f89a232ec3b6 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f9e4c95781e1040599e3addae93ded2c160a228b..c83c8790e601397a6a36db53c5501a31e6f57490 100644 +index aa3aefa96d6a284a11149cebdd98e143397007ee..265cc803287166bab1d07095e91db11995fb636e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -998,6 +998,8 @@ public class PurpurWorldConfig { +@@ -994,6 +994,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index f9e4c95781e1040599e3addae93ded2c160a228b..c83c8790e601397a6a36db53c5501a31 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1007,11 +1009,17 @@ public class PurpurWorldConfig { +@@ -1003,11 +1005,17 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max-health", null); set("mobs.enderman.attributes.max_health", oldValue); } diff --git a/patches/server/0142-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0142-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index d016e8d9d..cf787b15e 100644 --- a/patches/server/0142-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0142-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -20,10 +20,10 @@ index f82bf3795d15ef51b8b5f89a232ec3b6a411e57d..4e6b44308e153de23d617cabb35616d1 } else { Vec3 vec3d = player.getViewVector(1.0F).normalize(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c83c8790e601397a6a36db53c5501a31e6f57490..9cc72cb5b1466efd47fef933dc3e13a8fd44db77 100644 +index 265cc803287166bab1d07095e91db11995fb636e..8eb075777be3bc04142f8eec87fd2b1eaeb3b11e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1000,6 +1000,8 @@ public class PurpurWorldConfig { +@@ -996,6 +996,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index c83c8790e601397a6a36db53c5501a31e6f57490..9cc72cb5b1466efd47fef933dc3e13a8 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1020,6 +1022,8 @@ public class PurpurWorldConfig { +@@ -1016,6 +1018,8 @@ public class PurpurWorldConfig { endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites); endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); diff --git a/patches/server/0144-Config-to-disable-Llama-caravans.patch b/patches/server/0144-Config-to-disable-Llama-caravans.patch index 7cd65897c..cb0d484e4 100644 --- a/patches/server/0144-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0144-Config-to-disable-Llama-caravans.patch @@ -32,10 +32,10 @@ index 5db7ddd3f4bd79dbcb241aad2abf96ade57ae4c4..c8d3f2ffb0f4d5586921421cda8acf27 this.caravanHead.caravanTail = this; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 66b1915d88446dc9b26aed13484c73fe8c0af19d..f9553b698ceffb51d89dd45908d0e9d522342782 100644 +index a5dcab561ff86aec11104b979e9fd8440339bc12..8742fb33534fe0128bf3d7473abce290458bcb95 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1332,6 +1332,7 @@ public class PurpurWorldConfig { +@@ -1328,6 +1328,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 66b1915d88446dc9b26aed13484c73fe8c0af19d..f9553b698ceffb51d89dd45908d0e9d5 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1351,6 +1352,7 @@ public class PurpurWorldConfig { +@@ -1347,6 +1348,7 @@ public class PurpurWorldConfig { llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); diff --git a/patches/server/0145-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0145-Config-to-make-Creepers-explode-on-death.patch index 931bd5dc3..e85104a9d 100644 --- a/patches/server/0145-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0145-Config-to-make-Creepers-explode-on-death.patch @@ -50,10 +50,10 @@ index afac9d1ca9a42903afb7e354134bdf4451db889b..1a47785329e3f1e52d91d64e6cd321af private void spawnLingeringCloud() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f9553b698ceffb51d89dd45908d0e9d522342782..51a32d4e8a166d335e33d5c0585bb9a7be4ff2b9 100644 +index 8742fb33534fe0128bf3d7473abce290458bcb95..3242681c6e13df224ef3bc07113ba026849c3f40 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -852,6 +852,7 @@ public class PurpurWorldConfig { +@@ -848,6 +848,7 @@ public class PurpurWorldConfig { public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index f9553b698ceffb51d89dd45908d0e9d522342782..51a32d4e8a166d335e33d5c0585bb9a7 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -866,6 +867,7 @@ public class PurpurWorldConfig { +@@ -862,6 +863,7 @@ public class PurpurWorldConfig { creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); diff --git a/patches/server/0146-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0146-Configurable-ravager-griefable-blocks-list.patch index c82af54b5..3d604f985 100644 --- a/patches/server/0146-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0146-Configurable-ravager-griefable-blocks-list.patch @@ -31,10 +31,10 @@ index f0fbd16c9b9c3772492c32b3924e99e147e412f0..c0c3bba1555e356c0af7e79e1ecb2aa0 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 51a32d4e8a166d335e33d5c0585bb9a7be4ff2b9..83d7abde6a4da43d74fcf41910e00d7a32753567 100644 +index 3242681c6e13df224ef3bc07113ba026849c3f40..ac0023d61cd8a0e1f9664d19daa6354ea9462494 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1704,6 +1704,7 @@ public class PurpurWorldConfig { +@@ -1700,6 +1700,7 @@ public class PurpurWorldConfig { public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 51a32d4e8a166d335e33d5c0585bb9a7be4ff2b9..83d7abde6a4da43d74fcf41910e00d7a private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1716,6 +1717,23 @@ public class PurpurWorldConfig { +@@ -1712,6 +1713,23 @@ public class PurpurWorldConfig { ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); ravagerBypassMobGriefing = getBoolean("mobs.ravager.bypass-mob-griefing", ravagerBypassMobGriefing); ravagerTakeDamageFromWater = getBoolean("mobs.ravager.takes-damage-from-water", ravagerTakeDamageFromWater); diff --git a/patches/server/0149-Add-config-for-villager-trading.patch b/patches/server/0149-Add-config-for-villager-trading.patch index b7cbc923a..d8d681570 100644 --- a/patches/server/0149-Add-config-for-villager-trading.patch +++ b/patches/server/0149-Add-config-for-villager-trading.patch @@ -31,10 +31,10 @@ index 264e9372118dcf95840fef2dfa5db3be96e46c6a..0f347989aa776c3adeae51bf299ccf57 this.openTradingScreen(player, this.getDisplayName(), 1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 036e1350b4ea235aa4a8fc73cec8fa84f9c41be3..2cdb2ea411cf35be1b758a8d134a8af06dc55390 100644 +index 43f3c49eefcf5e36931f3260e780820a27ca493c..e927b80fd10b2d8faa63e82035affa57e9a2fe5f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2111,6 +2111,7 @@ public class PurpurWorldConfig { +@@ -2107,6 +2107,7 @@ public class PurpurWorldConfig { public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 036e1350b4ea235aa4a8fc73cec8fa84f9c41be3..2cdb2ea411cf35be1b758a8d134a8af0 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2129,6 +2130,7 @@ public class PurpurWorldConfig { +@@ -2125,6 +2126,7 @@ public class PurpurWorldConfig { villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); @@ -50,7 +50,7 @@ index 036e1350b4ea235aa4a8fc73cec8fa84f9c41be3..2cdb2ea411cf35be1b758a8d134a8af0 } public boolean vindicatorRidable = false; -@@ -2158,6 +2160,7 @@ public class PurpurWorldConfig { +@@ -2154,6 +2156,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 036e1350b4ea235aa4a8fc73cec8fa84f9c41be3..2cdb2ea411cf35be1b758a8d134a8af0 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2171,6 +2174,7 @@ public class PurpurWorldConfig { +@@ -2167,6 +2170,7 @@ public class PurpurWorldConfig { wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); diff --git a/patches/server/0152-Break-individual-slabs-when-sneaking.patch b/patches/server/0152-Break-individual-slabs-when-sneaking.patch index 6962e52ea..775248878 100644 --- a/patches/server/0152-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0152-Break-individual-slabs-when-sneaking.patch @@ -47,10 +47,10 @@ index 18b603d646081926343dea108b55d641df1c2c34..03ad3e45fc6d48091ac0c0ba5dc3d014 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6f6095f01ef7e6d8cb0ba94570e5f96c31c9fd18..e97ea0945e31b81baee731574e6ba315435b8cbc 100644 +index c20e9ec1fdf27ad685c1ddcab7f84bd8573e7275..8168ec57413133e123fbd091b69fdac704f534f5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -610,6 +610,11 @@ public class PurpurWorldConfig { +@@ -608,6 +608,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0153-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0153-Config-to-disable-hostile-mob-spawn-on-ice.patch index 9ac638a89..95e60091a 100644 --- a/patches/server/0153-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/server/0153-Config-to-disable-hostile-mob-spawn-on-ice.patch @@ -24,7 +24,7 @@ index 55c245d0dfa369dc6de2197ae37335fba4fae4ae..c9b40515f4c2ff1eedfc9510930c3bae return false; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e97ea0945e31b81baee731574e6ba315435b8cbc..bde85d5b7525cda37bfa1b9849ed9b6817e28609 100644 +index 8168ec57413133e123fbd091b69fdac704f534f5..fd662ba1949cf741961b97d7f6b8083e4289de83 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -568,6 +568,13 @@ public class PurpurWorldConfig { @@ -38,6 +38,6 @@ index e97ea0945e31b81baee731574e6ba315435b8cbc..bde85d5b7525cda37bfa1b9849ed9b68 + mobsSpawnOnBlueIce = getBoolean("blocks.blue_ice.allow-mob-spawns", mobsSpawnOnBlueIce); + } + - public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; public int lavaSpeedNether = 10; + public int lavaSpeedNotNether = 30; diff --git a/patches/server/0157-Configurable-sponge-absorption.patch b/patches/server/0157-Configurable-sponge-absorption.patch index 86ec6b443..5933199d8 100644 --- a/patches/server/0157-Configurable-sponge-absorption.patch +++ b/patches/server/0157-Configurable-sponge-absorption.patch @@ -43,10 +43,10 @@ index 7304b2659eb45bc4bc9fa7c43e6ca07221d0fc73..d96e3fbc0fd4275c29e7e6154ef66e9e } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cd8a1fb7c21d48bcb63087846acc1f981197fc86..35e362e61c6a4bac0a9d774f23659a01b3540c7a 100644 +index 6cddeab7ab211860bf1eb9f3748e82c618795c51..22aacfdf321007c4eefa9517d8f73405a09984f3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -639,6 +639,13 @@ public class PurpurWorldConfig { +@@ -637,6 +637,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0159-Config-for-powered-rail-activation-distance.patch b/patches/server/0159-Config-for-powered-rail-activation-distance.patch index 1f58fc870..c57196bd4 100644 --- a/patches/server/0159-Config-for-powered-rail-activation-distance.patch +++ b/patches/server/0159-Config-for-powered-rail-activation-distance.patch @@ -18,10 +18,10 @@ index 7fddb6fa8fd30ef88346a59f7867aae792f13772..40893e71fe8447b695350273bef9623b } else { int j = pos.getX(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9c58b51b463fe12aa34951b2eeb73cb2600914cb..e2a4729effa575f8a125210a7629e2a83cab7412 100644 +index 24ebe5b34fcc05febdad258ad7a5b8a2208af223..af46a5fa9f8e3bead67c63f58ca04c0445af54ac 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -620,6 +620,11 @@ public class PurpurWorldConfig { +@@ -618,6 +618,11 @@ public class PurpurWorldConfig { powderSnowBypassMobGriefing = getBoolean("blocks.powder_snow.bypass-mob-griefing", powderSnowBypassMobGriefing); } diff --git a/patches/server/0160-Piglin-portal-spawn-modifier.patch b/patches/server/0160-Piglin-portal-spawn-modifier.patch index a56740794..94c0a2496 100644 --- a/patches/server/0160-Piglin-portal-spawn-modifier.patch +++ b/patches/server/0160-Piglin-portal-spawn-modifier.patch @@ -31,10 +31,10 @@ index 03bed5ec0aa42b36f290e04c20915e934f07b629..307a05fa07bdfbc1586dde5f7672522f pos = pos.below(); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2483b8a6a1ec5386ed160fe4aa767117d9fb61b1..e4f92f477b1cee346cdd5c03d3ff2d9b7f53f6ea 100644 +index af46a5fa9f8e3bead67c63f58ca04c0445af54ac..6be7afeac8e799119c74ed4c37e4da473cebf41f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1648,6 +1648,7 @@ public class PurpurWorldConfig { +@@ -1644,6 +1644,7 @@ public class PurpurWorldConfig { public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 2483b8a6a1ec5386ed160fe4aa767117d9fb61b1..e4f92f477b1cee346cdd5c03d3ff2d9b private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1660,6 +1661,7 @@ public class PurpurWorldConfig { +@@ -1656,6 +1657,7 @@ public class PurpurWorldConfig { piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); diff --git a/patches/server/0162-Config-for-wither-explosion-radius.patch b/patches/server/0162-Config-for-wither-explosion-radius.patch index 2551bc496..3266ebf2f 100644 --- a/patches/server/0162-Config-for-wither-explosion-radius.patch +++ b/patches/server/0162-Config-for-wither-explosion-radius.patch @@ -18,10 +18,10 @@ index 9665095240a370983878350aed41badacfb6f261..623b90b263257dd633af330a63e4bb9d if (!event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e4f92f477b1cee346cdd5c03d3ff2d9b7f53f6ea..c1ee28b83261719cb1fde84a76b73e967946c849 100644 +index 6be7afeac8e799119c74ed4c37e4da473cebf41f..1b8496db1fb6846cc9e72e7cb606a7e8c43aefc9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2278,6 +2278,7 @@ public class PurpurWorldConfig { +@@ -2274,6 +2274,7 @@ public class PurpurWorldConfig { public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index e4f92f477b1cee346cdd5c03d3ff2d9b7f53f6ea..c1ee28b83261719cb1fde84a76b73e96 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2298,6 +2299,7 @@ public class PurpurWorldConfig { +@@ -2294,6 +2295,7 @@ public class PurpurWorldConfig { witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); diff --git a/patches/server/0165-Configurable-piston-push-limit.patch b/patches/server/0165-Configurable-piston-push-limit.patch index 99e0a805e..1a49714eb 100644 --- a/patches/server/0165-Configurable-piston-push-limit.patch +++ b/patches/server/0165-Configurable-piston-push-limit.patch @@ -36,10 +36,10 @@ index 744d91546d1a810f60a43c15ed74b4158f341a4a..354538daefa603f6df5a139b6bff87db } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 275a3fff5a87c774cbd91a88ed0da50d78e8e886..6027a587e86c6b75d819cca938e273d7f7465382 100644 +index d16ea5592072fafacc1b11e13a339c5873082d99..7cd479cd44c27eeafb90aef65aa320a26135d527 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -630,6 +630,11 @@ public class PurpurWorldConfig { +@@ -628,6 +628,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0169-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0169-Config-for-health-to-impact-Creeper-explosion-radius.patch index a50ba05a7..5e4b37c70 100644 --- a/patches/server/0169-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0169-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -21,10 +21,10 @@ index 1a47785329e3f1e52d91d64e6cd321af03945154..3c853919955d863a1010b11318d3e964 if (!event.isCancelled()) { this.dead = true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 708ab3e33406e2e71e6a8730738f1ecfbeb88844..7762a86d6edeef50031ab210fa485372bc49b345 100644 +index 14d36a1a535bca6f17689ddf504d71af72d07098..e84231b5fd44e2a476ec3e3199d58a9c38f6e078 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -944,6 +944,7 @@ public class PurpurWorldConfig { +@@ -940,6 +940,7 @@ public class PurpurWorldConfig { public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 708ab3e33406e2e71e6a8730738f1ecfbeb88844..7762a86d6edeef50031ab210fa485372 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -959,6 +960,7 @@ public class PurpurWorldConfig { +@@ -955,6 +956,7 @@ public class PurpurWorldConfig { creeperBypassMobGriefing = getBoolean("mobs.creeper.bypass-mob-griefing", creeperBypassMobGriefing); creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); diff --git a/patches/server/0170-Iron-golem-calm-anger-options.patch b/patches/server/0170-Iron-golem-calm-anger-options.patch index b0204ee48..d8d608a78 100644 --- a/patches/server/0170-Iron-golem-calm-anger-options.patch +++ b/patches/server/0170-Iron-golem-calm-anger-options.patch @@ -26,10 +26,10 @@ index e3d725e656bc5ffc5fc92133794a80799fb21c48..fdad66c329ff8945a76a944deca7751a } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7762a86d6edeef50031ab210fa485372bc49b345..4cb0dd0f74d876dbf9dcba34441920dbc659f57c 100644 +index e84231b5fd44e2a476ec3e3199d58a9c38f6e078..ad670766b9f58bfe9db2bbeec42c12097d43e8c8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1402,6 +1402,8 @@ public class PurpurWorldConfig { +@@ -1398,6 +1398,8 @@ public class PurpurWorldConfig { public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; public boolean ironGolemTakeDamageFromWater = false; @@ -38,7 +38,7 @@ index 7762a86d6edeef50031ab210fa485372bc49b345..4cb0dd0f74d876dbf9dcba34441920db private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1414,6 +1416,8 @@ public class PurpurWorldConfig { +@@ -1410,6 +1412,8 @@ public class PurpurWorldConfig { } ironGolemMaxHealth = getDouble("mobs.iron_golem.attributes.max_health", ironGolemMaxHealth); ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); diff --git a/patches/server/0171-Breedable-parrots.patch b/patches/server/0171-Breedable-parrots.patch index 0f8a00f4f..47e13850e 100644 --- a/patches/server/0171-Breedable-parrots.patch +++ b/patches/server/0171-Breedable-parrots.patch @@ -50,10 +50,10 @@ index ab00e8d796ff7c903ea678dedb64cb25cf7e462e..29c13eee52a9f32a07853bd824687601 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4cb0dd0f74d876dbf9dcba34441920dbc659f57c..379fc7f886def1521210c32cde2bbd7a459d01d5 100644 +index ad670766b9f58bfe9db2bbeec42c12097d43e8c8..7aff29c31e5cfc6ea0fc4006195f06ca5aacf7cc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1572,6 +1572,7 @@ public class PurpurWorldConfig { +@@ -1568,6 +1568,7 @@ public class PurpurWorldConfig { public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index 4cb0dd0f74d876dbf9dcba34441920dbc659f57c..379fc7f886def1521210c32cde2bbd7a private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1584,6 +1585,7 @@ public class PurpurWorldConfig { +@@ -1580,6 +1581,7 @@ public class PurpurWorldConfig { } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); diff --git a/patches/server/0177-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0177-ShulkerBox-allow-oversized-stacks.patch index 05aa28c87..43a3dbbf7 100644 --- a/patches/server/0177-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0177-ShulkerBox-allow-oversized-stacks.patch @@ -35,10 +35,10 @@ index c89978ecbc5a13dda6f76ea6d1cc3056efc9a174..39868ad3ee4bb573a4dd562894d93f64 blockEntity.saveToItem(itemStack); if (shulkerBoxBlockEntity.hasCustomName()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2d2f2b15cbd982f2ae2e3ec0c68ebcc8ecf4d557..7b7d9ec76c0ea940da99971a27568b1ce743f7f1 100644 +index 53ae183ec3f6699ed87ab78301b99cc8fe882afa..cf7b11f480237e76b22db9398aba07e70913f039 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -677,6 +677,11 @@ public class PurpurWorldConfig { +@@ -675,6 +675,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0178-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0178-Bee-can-work-when-raining-or-at-night.patch index 46f81f2e7..5208149d7 100644 --- a/patches/server/0178-Bee-can-work-when-raining-or-at-night.patch +++ b/patches/server/0178-Bee-can-work-when-raining-or-at-night.patch @@ -31,10 +31,10 @@ index a16a1df28258d605cf5908dbe19bda5d71ad4f45..7b82842b97ce795745cf6ee6399f618c return false; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7b7d9ec76c0ea940da99971a27568b1ce743f7f1..41b09eae6132497def6c5c615236b76fed94c911 100644 +index cf7b11f480237e76b22db9398aba07e70913f039..79082f08b624e184d65501d47b0f3dde2389ce48 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -787,6 +787,8 @@ public class PurpurWorldConfig { +@@ -783,6 +783,8 @@ public class PurpurWorldConfig { public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; public boolean beeTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 7b7d9ec76c0ea940da99971a27568b1ce743f7f1..41b09eae6132497def6c5c615236b76f private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -800,6 +802,8 @@ public class PurpurWorldConfig { +@@ -796,6 +798,8 @@ public class PurpurWorldConfig { beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); diff --git a/patches/server/0182-Add-toggle-for-sand-duping-fix.patch b/patches/server/0182-Add-toggle-for-sand-duping-fix.patch index 0bb1ca1c2..5d9f0f8af 100644 --- a/patches/server/0182-Add-toggle-for-sand-duping-fix.patch +++ b/patches/server/0182-Add-toggle-for-sand-duping-fix.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add toggle for sand duping fix diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java -index 72f1866226269396ba0f0c1be269e237925d9322..7e6cff38ad3f160efb0a30b482304e035e6dd593 100644 +index eacb8a407fe99af2c13f23c12b5544696bda8890..39d06a704d2ddee0010ba2686c703f21640da998 100644 --- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java @@ -130,7 +130,7 @@ public class FallingBlockEntity extends Entity { @@ -27,10 +27,10 @@ index 72f1866226269396ba0f0c1be269e237925d9322..7e6cff38ad3f160efb0a30b482304e03 } // Paper end - fix sand duping diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b35b621346d4c9f284fe3c1d1b358c4f08a6fe4d..346b5ae9ea7c581d7d28314fa62fcc1c153b36cd 100644 +index e794a6234acfd47a42f4a47270b2f44e537c5a79..cfc9b8215ebfb3245488235e208160507b0ed121 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -703,6 +703,11 @@ public class PurpurWorldConfig { +@@ -701,6 +701,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0188-Shulker-spawn-from-bullet-options.patch b/patches/server/0188-Shulker-spawn-from-bullet-options.patch index df9eb8575..01b8b0f02 100644 --- a/patches/server/0188-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0188-Shulker-spawn-from-bullet-options.patch @@ -67,10 +67,10 @@ index 2170715ed0e81a3055e4ab546c8b294c5ef7f142..beae4e2b9f61df83215de860d64c4ce2 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 202b2da2c64fd6660a2f8570e324cfeb1d0f9dcc..31ca38800709dfa8d2fdc3e5f0d147e1a26f2fbc 100644 +index b9b6daeeb070efbd828f10dec3a8522428fccd1a..a12e648b69ae46fd7fa828e29f5626e53462dd0a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1938,6 +1938,11 @@ public class PurpurWorldConfig { +@@ -1934,6 +1934,11 @@ public class PurpurWorldConfig { public boolean shulkerControllable = true; public double shulkerMaxHealth = 30.0D; public boolean shulkerTakeDamageFromWater = false; @@ -82,7 +82,7 @@ index 202b2da2c64fd6660a2f8570e324cfeb1d0f9dcc..31ca38800709dfa8d2fdc3e5f0d147e1 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1949,6 +1954,11 @@ public class PurpurWorldConfig { +@@ -1945,6 +1950,11 @@ public class PurpurWorldConfig { } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); shulkerTakeDamageFromWater = getBoolean("mobs.shulker.takes-damage-from-water", shulkerTakeDamageFromWater); diff --git a/patches/server/0190-Option-to-make-drowned-break-doors.patch b/patches/server/0190-Option-to-make-drowned-break-doors.patch index 2b494a9e6..005e9904e 100644 --- a/patches/server/0190-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0190-Option-to-make-drowned-break-doors.patch @@ -34,10 +34,10 @@ index 037d77b47d0be69dfeda01f4a0d52ad72aea2c8d..6e0a575a95ac0bcbc9e3909178ea566a @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1cb1ac92e25a5bf899d7bd43f992efd81e3f87d6..f5f38def1250979a818588a6665fe6dc1421da41 100644 +index 579b3063fc955fedd4b8cbebabc4da83404d8049..197934c0408301f759ee7dc29e16d2d4c7c85695 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1084,6 +1084,7 @@ public class PurpurWorldConfig { +@@ -1080,6 +1080,7 @@ public class PurpurWorldConfig { public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; @@ -45,7 +45,7 @@ index 1cb1ac92e25a5bf899d7bd43f992efd81e3f87d6..f5f38def1250979a818588a6665fe6dc private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1099,6 +1100,7 @@ public class PurpurWorldConfig { +@@ -1095,6 +1096,7 @@ public class PurpurWorldConfig { drownedJockeyChance = getDouble("mobs.drowned.jockey.chance", drownedJockeyChance); drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); diff --git a/patches/server/0191-Configurable-hunger-starvation-damage.patch b/patches/server/0191-Configurable-hunger-starvation-damage.patch index 0327b7f1e..de69a1ae5 100644 --- a/patches/server/0191-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0191-Configurable-hunger-starvation-damage.patch @@ -18,10 +18,10 @@ index 4c1e9b6f4a52d7b1506b9016cc4d30e583eeab04..0e753dd68d9506a2a4e5ad74e7f4d04c this.tickTimer = 0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f5f38def1250979a818588a6665fe6dc1421da41..4d84107ecd394db7db8c1fbc709c5b08064cf46c 100644 +index 197934c0408301f759ee7dc29e16d2d4c7c85695..82de12b625c4a977537fddcd1b48144da01dea8f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2582,4 +2582,9 @@ public class PurpurWorldConfig { +@@ -2578,4 +2578,9 @@ public class PurpurWorldConfig { 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/0200-Silk-touchable-budding-amethyst.patch b/patches/server/0200-Silk-touchable-budding-amethyst.patch index a84b87534..2c5640b17 100644 --- a/patches/server/0200-Silk-touchable-budding-amethyst.patch +++ b/patches/server/0200-Silk-touchable-budding-amethyst.patch @@ -24,7 +24,7 @@ index bedccb8717d08d5a60058445b04ddff149e7d36c..5293ffca3da94c9c485a87d1232b6a90 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6789ee452e35660371f51c63ac3466271f95ed23..03518af0e256b226d41018c0a8ab225183bc6e07 100644 +index ff81be129e64cba0cf4d2a8b06eecdecaba32b19..738c93cf414f93b92a281800dd41bb38b54ce2a8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -719,6 +719,11 @@ public class PurpurWorldConfig { @@ -39,7 +39,7 @@ index 6789ee452e35660371f51c63ac3466271f95ed23..03518af0e256b226d41018c0a8ab2251 public boolean chestOpenWithBlockOnTop = false; private void chestSettings() { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); -@@ -2747,3 +2752,4 @@ public class PurpurWorldConfig { +@@ -2743,3 +2748,4 @@ public class PurpurWorldConfig { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } } diff --git a/patches/server/0203-Config-to-disable-Enderman-teleport-on-projectile-hi.patch b/patches/server/0203-Config-to-disable-Enderman-teleport-on-projectile-hi.patch index 5ca38612c..732a1fc4a 100644 --- a/patches/server/0203-Config-to-disable-Enderman-teleport-on-projectile-hi.patch +++ b/patches/server/0203-Config-to-disable-Enderman-teleport-on-projectile-hi.patch @@ -18,10 +18,10 @@ index 4e6b44308e153de23d617cabb35616d1b5f4ca9c..9d97e4097d11894ee0b901ba9323431e boolean flag; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b6ac412abf45335b67d349bbe676ffe517915f44..6d739c7d355a569380f22c8c2ced499ea339b2e6 100644 +index d92f5a8c723db23e1a3d577e6e557008831ae392..a5e2c0bd0593cfe22f408a8dc105519388994a3f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1343,6 +1343,7 @@ public class PurpurWorldConfig { +@@ -1339,6 +1339,7 @@ public class PurpurWorldConfig { public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; @@ -29,7 +29,7 @@ index b6ac412abf45335b67d349bbe676ffe517915f44..6d739c7d355a569380f22c8c2ced499e private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1365,6 +1366,7 @@ public class PurpurWorldConfig { +@@ -1361,6 +1362,7 @@ public class PurpurWorldConfig { endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); diff --git a/patches/server/0207-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0207-Customizeable-Zombie-Villager-curing-times.patch index 1f4ccb43d..85da557b3 100644 --- a/patches/server/0207-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0207-Customizeable-Zombie-Villager-curing-times.patch @@ -18,10 +18,10 @@ index cd1e454b1e178b5bb2c2a9b83bdab2b70206bde3..4ec10cf9613d03da66fb03bec3e9b06e return InteractionResult.SUCCESS; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b0ddf12ff7f27bef8012fdd0cc3cec149746452e..7794d418b84c307dab01dbe2d4f9bb949fc486de 100644 +index 05d160e4356f2b9ac7904039627fd5dfc71b892b..6d2d4379b79620e36502e10dfe880baa0c3a9792 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2731,6 +2731,8 @@ public class PurpurWorldConfig { +@@ -2727,6 +2727,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index b0ddf12ff7f27bef8012fdd0cc3cec149746452e..7794d418b84c307dab01dbe2d4f9bb94 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2746,6 +2748,8 @@ public class PurpurWorldConfig { +@@ -2742,6 +2744,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/0208-Option-for-sponges-to-work-on-lava.patch b/patches/server/0208-Option-for-sponges-to-work-on-lava.patch index 214ec8e02..305588303 100644 --- a/patches/server/0208-Option-for-sponges-to-work-on-lava.patch +++ b/patches/server/0208-Option-for-sponges-to-work-on-lava.patch @@ -18,10 +18,10 @@ index d96e3fbc0fd4275c29e7e6154ef66e9ed1a5d829..df04a571ebd3c04bc7b58c1ee5661a1f ++i; if (j < world.purpurConfig.spongeAbsorptionRadius) { // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 674fbe85641dfcb2c93090457c24bc198aa40b65..df61924acdbc23e8c30d9be82ba26b74d07d2d5b 100644 +index 6d2d4379b79620e36502e10dfe880baa0c3a9792..ba692d03094ff50229c89c491825f74a553f2bc8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -932,9 +932,11 @@ public class PurpurWorldConfig { +@@ -930,9 +930,11 @@ public class PurpurWorldConfig { public int spongeAbsorptionArea = 64; public int spongeAbsorptionRadius = 6; diff --git a/patches/server/0209-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0209-Toggle-for-Wither-s-spawn-sound.patch index a4187afa3..a3d213c75 100644 --- a/patches/server/0209-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0209-Toggle-for-Wither-s-spawn-sound.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Toggle for Wither's spawn sound diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 97c5ffd383a02afecba035e65823ac12e03c7295..e0c5a8afa5c394ab8bbd3e982632518c63b478b3 100644 +index 452c5e1e6c6ddbc590c35b40a404e660a053c493..2953ca791b673b81e2e496569de87f91669755cf 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -428,7 +428,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -18,10 +18,10 @@ index 97c5ffd383a02afecba035e65823ac12e03c7295..e0c5a8afa5c394ab8bbd3e982632518c // this.world.globalLevelEvent(1023, new BlockPosition(this), 0); int viewDistance = ((ServerLevel) this.level).getCraftServer().getViewDistance() * 16; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 53885bb9e4c3c0404069d110ad38890f156bce6b..3b7d45b75b1c3883c8019568e27eca48f552046b 100644 +index ba692d03094ff50229c89c491825f74a553f2bc8..6e57cc0f14808bebb81166422ec6e3c484cdb0f8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2576,6 +2576,7 @@ public class PurpurWorldConfig { +@@ -2572,6 +2572,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index 53885bb9e4c3c0404069d110ad38890f156bce6b..3b7d45b75b1c3883c8019568e27eca48 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2597,6 +2598,7 @@ public class PurpurWorldConfig { +@@ -2593,6 +2594,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/0212-Conduit-behavior-configuration.patch b/patches/server/0212-Conduit-behavior-configuration.patch index 266c7f1ea..037ff9bca 100644 --- a/patches/server/0212-Conduit-behavior-configuration.patch +++ b/patches/server/0212-Conduit-behavior-configuration.patch @@ -77,10 +77,10 @@ index 05eab04e4aec4151018f25b59f92ddbbb4c09f87..3b5c502fc211940dd908f1d276fa11e3 }); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bc4795e6c53ca4f2be49fbc0a92a20f00c69f8b2..3e0f66b6511737edbf65a264c4f524f6267d0750 100644 +index 67b5804d708efcc0f252a57b2ab7a2b4e9eedb04..86206d6f9e1b5d2d1cb7e4b942e26ec356bc4ded 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2795,5 +2795,28 @@ public class PurpurWorldConfig { +@@ -2791,5 +2791,28 @@ public class PurpurWorldConfig { private void hungerSettings() { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } diff --git a/patches/server/0213-Cauldron-fill-chances.patch b/patches/server/0213-Cauldron-fill-chances.patch index 533d120d7..1a6fe8652 100644 --- a/patches/server/0213-Cauldron-fill-chances.patch +++ b/patches/server/0213-Cauldron-fill-chances.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cauldron fill chances diff --git a/src/main/java/net/minecraft/world/level/block/CauldronBlock.java b/src/main/java/net/minecraft/world/level/block/CauldronBlock.java -index 46846ac9981e447fc6886aecf82563378a4f5548..9122485755ce8aa6e6f4773a5fb1315c95533335 100644 +index 2f85b893dd0abc39fcedec65acc89e1567faf6f0..3ee012a9ef8cada0b2203e53b2f731f60f697cb1 100644 --- a/src/main/java/net/minecraft/world/level/block/CauldronBlock.java +++ b/src/main/java/net/minecraft/world/level/block/CauldronBlock.java @@ -29,7 +29,7 @@ public class CauldronBlock extends AbstractCauldronBlock { @@ -18,7 +18,7 @@ index 46846ac9981e447fc6886aecf82563378a4f5548..9122485755ce8aa6e6f4773a5fb1315c @Override diff --git a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java -index e78fdd317d59cfca6a28deb6e0bd02aabe91e930..895fea12e9780521573bfe6f6a3d9c867ac9f4e0 100644 +index 1d7149fb6baeaf045c3680b6dec293f074614612..8ba5f519fbc4ee81b36e9052274fc644c4787a3d 100644 --- a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java @@ -188,7 +188,7 @@ public class PointedDripstoneBlock extends Block implements Fallable, SimpleWate @@ -47,10 +47,10 @@ index e78fdd317d59cfca6a28deb6e0bd02aabe91e930..895fea12e9780521573bfe6f6a3d9c86 if (dripChance < f1) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3e0f66b6511737edbf65a264c4f524f6267d0750..7fc254745e319ce28c51dd9077a16bb110de90bb 100644 +index 86206d6f9e1b5d2d1cb7e4b942e26ec356bc4ded..59f45903232c1fe2ccd9998d68eac39f08439121 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2818,5 +2818,16 @@ public class PurpurWorldConfig { +@@ -2814,5 +2814,16 @@ public class PurpurWorldConfig { }); conduitBlocks = conduitBlockList.toArray(Block[]::new); } diff --git a/patches/server/0215-Shulker-change-color-with-dye.patch b/patches/server/0215-Shulker-change-color-with-dye.patch index 07e817c12..17f8dbe86 100644 --- a/patches/server/0215-Shulker-change-color-with-dye.patch +++ b/patches/server/0215-Shulker-change-color-with-dye.patch @@ -47,10 +47,10 @@ index 70237d8891889818135ea024d0c8f31cbfe75524..3e6a8c541292a7ac7ca290e79bb14b70 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3ff68cf8938560187a653ed7b5dd7bba9894b28a..d3e6ac680c037722d39108c3811ebddd185879bd 100644 +index fa4cc494b98e1a4052f1ee88da637ff6a8d21339..ada719d0bae86e16498b04eecf8810329933edd3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2151,6 +2151,7 @@ public class PurpurWorldConfig { +@@ -2147,6 +2147,7 @@ public class PurpurWorldConfig { public double shulkerSpawnFromBulletNearbyRange = 8.0D; public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; @@ -58,7 +58,7 @@ index 3ff68cf8938560187a653ed7b5dd7bba9894b28a..d3e6ac680c037722d39108c3811ebddd private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2167,6 +2168,7 @@ public class PurpurWorldConfig { +@@ -2163,6 +2164,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/0221-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0221-Dolphins-naturally-aggressive-to-players-chance.patch index ae6682d2c..ad8206e15 100644 --- a/patches/server/0221-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0221-Dolphins-naturally-aggressive-to-players-chance.patch @@ -47,10 +47,10 @@ index b0c933644c1f4b5aa142c7c4d26a9b81cb4051f7..f8be4c96e7e7b8e6d8c538b1f425f01d 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 cee7850db74804a66f2548aaf300430a894fb6cf..26d79ad472870f5964f34a16b7a22c54b17a42d8 100644 +index 36d6edaa7200fbb38e955f7f45f88f176c9b581c..e66034ef3980eaa5b227f0f02357be765b529c2c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1249,6 +1249,7 @@ public class PurpurWorldConfig { +@@ -1245,6 +1245,7 @@ public class PurpurWorldConfig { public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index cee7850db74804a66f2548aaf300430a894fb6cf..26d79ad472870f5964f34a16b7a22c54 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1263,6 +1264,7 @@ public class PurpurWorldConfig { +@@ -1259,6 +1260,7 @@ public class PurpurWorldConfig { dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); diff --git a/patches/server/0222-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0222-Cows-naturally-aggressive-to-players-chance.patch index bd9d74e1f..a541bd37e 100644 --- a/patches/server/0222-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0222-Cows-naturally-aggressive-to-players-chance.patch @@ -59,10 +59,10 @@ index 48d20fcd481e76e180410c11040b2164315fce23..7bf4b399d68b04a43465e85061113249 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 26d79ad472870f5964f34a16b7a22c54b17a42d8..b8b043c2982c556a9f40b78114ee220bddb67ec8 100644 +index e66034ef3980eaa5b227f0f02357be765b529c2c..a3039bc6e4e64bf1fe876dca346645237afb2fb4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1198,7 +1198,14 @@ public class PurpurWorldConfig { +@@ -1194,7 +1194,14 @@ public class PurpurWorldConfig { public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; public boolean cowTakeDamageFromWater = false; @@ -77,7 +77,7 @@ index 26d79ad472870f5964f34a16b7a22c54b17a42d8..b8b043c2982c556a9f40b78114ee220b cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); cowControllable = getBoolean("mobs.cow.controllable", cowControllable); -@@ -1211,6 +1218,8 @@ public class PurpurWorldConfig { +@@ -1207,6 +1214,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/0224-Halloween-options-and-optimizations.patch b/patches/server/0224-Halloween-options-and-optimizations.patch index 73d58deaf..faa12db0d 100644 --- a/patches/server/0224-Halloween-options-and-optimizations.patch +++ b/patches/server/0224-Halloween-options-and-optimizations.patch @@ -60,10 +60,10 @@ index d6093557894789eb20f79b83547620b47bb65ffb..dfa2806faedf70ca5ffe77087a67822a 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 d09c046576bc8f8ff9a2c728aec286d84c81a2fd..a39898272437925cb65d973fa50632ff5ed90424 100644 +index 4da113e9c41293dc3b20e9528dc80b65c8480919..980d43da5250a0694caf3f26fefc2b6ad5c4188a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1591,6 +1591,13 @@ public class PurpurWorldConfig { +@@ -1587,6 +1587,13 @@ public class PurpurWorldConfig { guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); } diff --git a/patches/server/0229-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0229-Add-option-to-disable-zombie-villagers-cure.patch index 4bf2fbfa5..c1e544a5c 100644 --- a/patches/server/0229-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0229-Add-option-to-disable-zombie-villagers-cure.patch @@ -18,10 +18,10 @@ index 4ec10cf9613d03da66fb03bec3e9b06ec5b56c7a..c51e04e90e6a5b5b549666fe739491c1 itemstack.shrink(1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c8e8497db82968ec57f3f39399db896c16028672..b572c937b6f11783d0f4366e998e53fdb91cce4b 100644 +index 87061cc4bbcf15f9b13caae371c256767c76d203..116f6d5baab6da340e7a0daf66a825bdf337d6c5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2795,6 +2795,7 @@ public class PurpurWorldConfig { +@@ -2791,6 +2791,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index c8e8497db82968ec57f3f39399db896c16028672..b572c937b6f11783d0f4366e998e53fd private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2812,6 +2813,7 @@ public class PurpurWorldConfig { +@@ -2808,6 +2809,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/0231-Signs-allow-color-codes.patch b/patches/server/0231-Signs-allow-color-codes.patch index 162e747f5..e2dae03bb 100644 --- a/patches/server/0231-Signs-allow-color-codes.patch +++ b/patches/server/0231-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3f642a1a6d74d80d78e06441b50769810b820364..421493a14ac3908d4ae4032e4f19922598206135 100644 +index 6303ad230cfaf62c41f46d3fa679bdb80e7e82b4..0410d56e1aefb4a51b84530ef00ad80b1a598d36 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1549,6 +1549,7 @@ public class ServerPlayer extends Player { @@ -17,7 +17,7 @@ index 3f642a1a6d74d80d78e06441b50769810b820364..421493a14ac3908d4ae4032e4f199225 this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos())); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index debc05de0ad4a732b4d0ac4ccdc01014551550de..41aa546969e4c8248229a9fb47046dd5380da0bb 100644 +index 2beaff9ad1587861a404e1b488055fb9d4e627af..bb2c8a95a2c99676c1d59ede3982b1cf38897b87 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3519,11 +3519,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -70,10 +70,10 @@ index 4da4edae517a0efec6e03a719ec47b700509dab1..9e760a8e8244b15daaf0abdfc5f8a51d public CompoundTag getUpdateTag() { return this.saveWithoutMetadata(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a1f0dc14f0fcba7ba2c482368642e5e02aab6664..c34f5b971128ecf0f8e7bb3e74b8714678d27cf7 100644 +index 9a14c1b5f3a4ac3e1a043cf39fa6ce3aa94f6b4c..8d6d83122d93bc0afa447ef34081f2d0d2cd9874 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -956,8 +956,10 @@ public class PurpurWorldConfig { +@@ -954,8 +954,10 @@ public class PurpurWorldConfig { } public boolean signRightClickEdit = false; diff --git a/patches/server/0233-Mobs-always-drop-experience.patch b/patches/server/0233-Mobs-always-drop-experience.patch index e04e20cd5..99a0bda13 100644 --- a/patches/server/0233-Mobs-always-drop-experience.patch +++ b/patches/server/0233-Mobs-always-drop-experience.patch @@ -373,7 +373,7 @@ index 220a9ca9c78b14b4ca6f76192396db608db184b8..a3becf90c3309d52d2701c016d4c1697 public static String getPredefinedName(int variant) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 95ea01f3ded049a65a68cb84db8fb24f52c8dc8d..4ae69019aa0656ec7281af6352042c1a28d9a81c 100644 +index c53a1d86855368d6d359d663e93b1518a6244bed..f4d1e6240c30c4a83dccd7f09691b03131b572f0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -112,6 +112,11 @@ public class Turtle extends Animal { @@ -549,7 +549,7 @@ index 28e82e256d4634b12461f2969e65090b346f98f9..a0d346b332e48658e329a53d38bd17cb public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index e0c5a8afa5c394ab8bbd3e982632518c63b478b3..c849839f61ebfc6e7a8df0f000d635b8c4a47e2a 100644 +index 2953ca791b673b81e2e496569de87f91669755cf..30bce9055aa4a3f108362e57a9937dd80a39e54b 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -248,6 +248,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -821,7 +821,7 @@ index ec2f96b3517bd99cbd616aee56d0b1c6f6247759..1d4fed01ee94678e04962df0f086f53e @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index f477cca8e6cf7cd5bb2f90a8cd08ae2797d3cd38..a68c701c1ca448d64154852094704532a1b96445 100644 +index f8bde5f32fb37a06c84bef34edec9fed90033a0d..67815f8c68044b7dc05a6efd5c60dbf05bbcacbb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -100,6 +100,11 @@ public class Ravager extends Raider { @@ -1125,7 +1125,7 @@ index a44f9a59fbec146df95d89c26df12efb79f6179a..760015f7a98e70b735707c77472c084d public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index d3a956e75ec9300eb675ebdcdd348418a60f7def..425cc5f1e877f7d70308e0b3b2d8ef514902f8a2 100644 +index db623115fac9ad32ac128dd2691a18a365ad1144..2deaaace03f0f4bec8690203688cfcdcf5c4d10a 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -191,6 +191,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -1141,7 +1141,7 @@ index d3a956e75ec9300eb675ebdcdd348418a60f7def..425cc5f1e877f7d70308e0b3b2d8ef51 @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index eed9fed34fde4d27e424507f2f05510d46f64601..da9e749cf775fc4e3ec6846dab1f92e64f088442 100644 +index 0f347989aa776c3adeae51bf299ccf5707342aba..3d2791665475387d88e32708eba94b526ad3a942 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -96,6 +96,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -1157,10 +1157,10 @@ index eed9fed34fde4d27e424507f2f05510d46f64601..da9e749cf775fc4e3ec6846dab1f92e6 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb789e7b1f5 100644 +index 8d6d83122d93bc0afa447ef34081f2d0d2cd9874..4a3403757a22a4c93e0b84e14b766be2065210f7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1022,12 +1022,14 @@ public class PurpurWorldConfig { +@@ -1018,12 +1018,14 @@ public class PurpurWorldConfig { public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; public boolean axolotlTakeDamageFromWater = false; @@ -1175,7 +1175,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean batRidable = false; -@@ -1043,6 +1045,7 @@ public class PurpurWorldConfig { +@@ -1039,6 +1041,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1183,7 +1183,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1055,6 +1058,7 @@ public class PurpurWorldConfig { +@@ -1051,6 +1054,7 @@ public class PurpurWorldConfig { } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); batTakeDamageFromWater = getBoolean("mobs.bat.takes-damage-from-water", batTakeDamageFromWater); @@ -1191,7 +1191,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean beeRidable = false; -@@ -1066,6 +1070,7 @@ public class PurpurWorldConfig { +@@ -1062,6 +1066,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = false; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1199,7 +1199,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1081,6 +1086,7 @@ public class PurpurWorldConfig { +@@ -1077,6 +1082,7 @@ public class PurpurWorldConfig { beeTakeDamageFromWater = getBoolean("mobs.bee.takes-damage-from-water", beeTakeDamageFromWater); beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); @@ -1207,7 +1207,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean blazeRidable = false; -@@ -1089,6 +1095,7 @@ public class PurpurWorldConfig { +@@ -1085,6 +1091,7 @@ public class PurpurWorldConfig { public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; public boolean blazeTakeDamageFromWater = true; @@ -1215,7 +1215,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1101,6 +1108,7 @@ public class PurpurWorldConfig { +@@ -1097,6 +1104,7 @@ public class PurpurWorldConfig { } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); blazeTakeDamageFromWater = getBoolean("mobs.blaze.takes-damage-from-water", blazeTakeDamageFromWater); @@ -1223,7 +1223,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public int camelBreedingTicks = 6000; -@@ -1130,6 +1138,7 @@ public class PurpurWorldConfig { +@@ -1126,6 +1134,7 @@ public class PurpurWorldConfig { public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; public boolean catTakeDamageFromWater = false; @@ -1231,7 +1231,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1150,6 +1159,7 @@ public class PurpurWorldConfig { +@@ -1146,6 +1155,7 @@ public class PurpurWorldConfig { catDefaultCollarColor = DyeColor.RED; } catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1239,7 +1239,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean caveSpiderRidable = false; -@@ -1157,6 +1167,7 @@ public class PurpurWorldConfig { +@@ -1153,6 +1163,7 @@ public class PurpurWorldConfig { public boolean caveSpiderControllable = true; public double caveSpiderMaxHealth = 12.0D; public boolean caveSpiderTakeDamageFromWater = false; @@ -1247,7 +1247,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1168,6 +1179,7 @@ public class PurpurWorldConfig { +@@ -1164,6 +1175,7 @@ public class PurpurWorldConfig { } caveSpiderMaxHealth = getDouble("mobs.cave_spider.attributes.max_health", caveSpiderMaxHealth); caveSpiderTakeDamageFromWater = getBoolean("mobs.cave_spider.takes-damage-from-water", caveSpiderTakeDamageFromWater); @@ -1255,7 +1255,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean chickenRidable = false; -@@ -1177,6 +1189,7 @@ public class PurpurWorldConfig { +@@ -1173,6 +1185,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1263,7 +1263,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1190,12 +1203,14 @@ public class PurpurWorldConfig { +@@ -1186,12 +1199,14 @@ public class PurpurWorldConfig { chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); chickenTakeDamageFromWater = getBoolean("mobs.chicken.takes-damage-from-water", chickenTakeDamageFromWater); @@ -1278,7 +1278,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -1206,6 +1221,7 @@ public class PurpurWorldConfig { +@@ -1202,6 +1217,7 @@ public class PurpurWorldConfig { } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); codTakeDamageFromWater = getBoolean("mobs.cod.takes-damage-from-water", codTakeDamageFromWater); @@ -1286,7 +1286,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean cowRidable = false; -@@ -1217,6 +1233,7 @@ public class PurpurWorldConfig { +@@ -1213,6 +1229,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1294,7 +1294,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1237,6 +1254,7 @@ public class PurpurWorldConfig { +@@ -1233,6 +1250,7 @@ public class PurpurWorldConfig { cowTakeDamageFromWater = getBoolean("mobs.cow.takes-damage-from-water", cowTakeDamageFromWater); cowNaturallyAggressiveToPlayersChance = getDouble("mobs.cow.naturally-aggressive-to-players.chance", cowNaturallyAggressiveToPlayersChance); cowNaturallyAggressiveToPlayersDamage = getDouble("mobs.cow.naturally-aggressive-to-players.damage", cowNaturallyAggressiveToPlayersDamage); @@ -1302,7 +1302,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean creeperRidable = false; -@@ -1249,6 +1267,7 @@ public class PurpurWorldConfig { +@@ -1245,6 +1263,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1310,7 +1310,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1265,6 +1284,7 @@ public class PurpurWorldConfig { +@@ -1261,6 +1280,7 @@ public class PurpurWorldConfig { creeperTakeDamageFromWater = getBoolean("mobs.creeper.takes-damage-from-water", creeperTakeDamageFromWater); creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); @@ -1318,7 +1318,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean dolphinRidable = false; -@@ -1276,6 +1296,7 @@ public class PurpurWorldConfig { +@@ -1272,6 +1292,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1326,7 +1326,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1291,6 +1312,7 @@ public class PurpurWorldConfig { +@@ -1287,6 +1308,7 @@ public class PurpurWorldConfig { dolphinDisableTreasureSearching = getBoolean("mobs.dolphin.disable-treasure-searching", dolphinDisableTreasureSearching); dolphinTakeDamageFromWater = getBoolean("mobs.dolphin.takes-damage-from-water", dolphinTakeDamageFromWater); dolphinNaturallyAggressiveToPlayersChance = getDouble("mobs.dolphin.naturally-aggressive-to-players-chance", dolphinNaturallyAggressiveToPlayersChance); @@ -1334,7 +1334,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean donkeyRidableInWater = false; -@@ -1302,6 +1324,7 @@ public class PurpurWorldConfig { +@@ -1298,6 +1320,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1342,7 +1342,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1319,6 +1342,7 @@ public class PurpurWorldConfig { +@@ -1315,6 +1338,7 @@ public class PurpurWorldConfig { donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); donkeyTakeDamageFromWater = getBoolean("mobs.donkey.takes-damage-from-water", donkeyTakeDamageFromWater); @@ -1350,7 +1350,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean drownedRidable = false; -@@ -1331,6 +1355,7 @@ public class PurpurWorldConfig { +@@ -1327,6 +1351,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1358,7 +1358,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1347,12 +1372,14 @@ public class PurpurWorldConfig { +@@ -1343,12 +1368,14 @@ public class PurpurWorldConfig { drownedJockeyTryExistingChickens = getBoolean("mobs.drowned.jockey.try-existing-chickens", drownedJockeyTryExistingChickens); drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater); drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors); @@ -1373,7 +1373,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -1363,6 +1390,7 @@ public class PurpurWorldConfig { +@@ -1359,6 +1386,7 @@ public class PurpurWorldConfig { } elderGuardianMaxHealth = getDouble("mobs.elder_guardian.attributes.max_health", elderGuardianMaxHealth); elderGuardianTakeDamageFromWater = getBoolean("mobs.elder_guardian.takes-damage-from-water", elderGuardianTakeDamageFromWater); @@ -1381,7 +1381,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean enderDragonRidable = false; -@@ -1408,6 +1436,7 @@ public class PurpurWorldConfig { +@@ -1404,6 +1432,7 @@ public class PurpurWorldConfig { public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1389,7 +1389,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1431,6 +1460,7 @@ public class PurpurWorldConfig { +@@ -1427,6 +1456,7 @@ public class PurpurWorldConfig { endermanIgnorePlayerDragonHead = getBoolean("mobs.enderman.ignore-players-wearing-dragon-head", endermanIgnorePlayerDragonHead); endermanDisableStareAggro = getBoolean("mobs.enderman.disable-player-stare-aggression", endermanDisableStareAggro); endermanIgnoreProjectiles = getBoolean("mobs.enderman.ignore-projectiles", endermanIgnoreProjectiles); @@ -1397,7 +1397,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean endermiteRidable = false; -@@ -1438,6 +1468,7 @@ public class PurpurWorldConfig { +@@ -1434,6 +1464,7 @@ public class PurpurWorldConfig { public boolean endermiteControllable = true; public double endermiteMaxHealth = 8.0D; public boolean endermiteTakeDamageFromWater = false; @@ -1405,7 +1405,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1449,6 +1480,7 @@ public class PurpurWorldConfig { +@@ -1445,6 +1476,7 @@ public class PurpurWorldConfig { } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); endermiteTakeDamageFromWater = getBoolean("mobs.endermite.takes-damage-from-water", endermiteTakeDamageFromWater); @@ -1413,7 +1413,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean evokerRidable = false; -@@ -1457,6 +1489,7 @@ public class PurpurWorldConfig { +@@ -1453,6 +1485,7 @@ public class PurpurWorldConfig { public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1421,7 +1421,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1469,6 +1502,7 @@ public class PurpurWorldConfig { +@@ -1465,6 +1498,7 @@ public class PurpurWorldConfig { evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); evokerBypassMobGriefing = getBoolean("mobs.evoker.bypass-mob-griefing", evokerBypassMobGriefing); evokerTakeDamageFromWater = getBoolean("mobs.evoker.takes-damage-from-water", evokerTakeDamageFromWater); @@ -1429,7 +1429,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean foxRidable = false; -@@ -1479,6 +1513,7 @@ public class PurpurWorldConfig { +@@ -1475,6 +1509,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1437,7 +1437,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1493,6 +1528,7 @@ public class PurpurWorldConfig { +@@ -1489,6 +1524,7 @@ public class PurpurWorldConfig { foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); foxBypassMobGriefing = getBoolean("mobs.fox.bypass-mob-griefing", foxBypassMobGriefing); foxTakeDamageFromWater = getBoolean("mobs.fox.takes-damage-from-water", foxTakeDamageFromWater); @@ -1445,7 +1445,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean frogRidable = false; -@@ -1514,6 +1550,7 @@ public class PurpurWorldConfig { +@@ -1510,6 +1546,7 @@ public class PurpurWorldConfig { public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; public boolean ghastTakeDamageFromWater = false; @@ -1453,7 +1453,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1526,6 +1563,7 @@ public class PurpurWorldConfig { +@@ -1522,6 +1559,7 @@ public class PurpurWorldConfig { } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); ghastTakeDamageFromWater = getBoolean("mobs.ghast.takes-damage-from-water", ghastTakeDamageFromWater); @@ -1461,7 +1461,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean giantRidable = false; -@@ -1539,6 +1577,7 @@ public class PurpurWorldConfig { +@@ -1535,6 +1573,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1469,7 +1469,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1560,6 +1599,7 @@ public class PurpurWorldConfig { +@@ -1556,6 +1595,7 @@ public class PurpurWorldConfig { giantHaveAI = getBoolean("mobs.giant.have-ai", giantHaveAI); giantHaveHostileAI = getBoolean("mobs.giant.have-hostile-ai", giantHaveHostileAI); giantTakeDamageFromWater = getBoolean("mobs.giant.takes-damage-from-water", giantTakeDamageFromWater); @@ -1477,7 +1477,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean glowSquidRidable = false; -@@ -1567,12 +1607,14 @@ public class PurpurWorldConfig { +@@ -1563,12 +1603,14 @@ public class PurpurWorldConfig { public double glowSquidMaxHealth = 10.0D; public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; @@ -1492,7 +1492,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean goatRidable = false; -@@ -1581,6 +1623,7 @@ public class PurpurWorldConfig { +@@ -1577,6 +1619,7 @@ public class PurpurWorldConfig { public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1500,7 +1500,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void goatSettings() { goatRidable = getBoolean("mobs.goat.ridable", goatRidable); goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater); -@@ -1588,12 +1631,14 @@ public class PurpurWorldConfig { +@@ -1584,12 +1627,14 @@ public class PurpurWorldConfig { goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth); goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks); goatTakeDamageFromWater = getBoolean("mobs.goat.takes-damage-from-water", goatTakeDamageFromWater); @@ -1515,7 +1515,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1604,6 +1649,7 @@ public class PurpurWorldConfig { +@@ -1600,6 +1645,7 @@ public class PurpurWorldConfig { } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); @@ -1523,7 +1523,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean forceHalloweenSeason = false; -@@ -1619,6 +1665,7 @@ public class PurpurWorldConfig { +@@ -1615,6 +1661,7 @@ public class PurpurWorldConfig { public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1531,7 +1531,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1631,6 +1678,7 @@ public class PurpurWorldConfig { +@@ -1627,6 +1674,7 @@ public class PurpurWorldConfig { hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); hoglinTakeDamageFromWater = getBoolean("mobs.hoglin.takes-damage-from-water", hoglinTakeDamageFromWater); @@ -1539,7 +1539,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean horseRidableInWater = false; -@@ -1642,6 +1690,7 @@ public class PurpurWorldConfig { +@@ -1638,6 +1686,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; @@ -1547,7 +1547,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1659,6 +1708,7 @@ public class PurpurWorldConfig { +@@ -1655,6 +1704,7 @@ public class PurpurWorldConfig { horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); @@ -1555,7 +1555,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean huskRidable = false; -@@ -1670,6 +1720,7 @@ public class PurpurWorldConfig { +@@ -1666,6 +1716,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1563,7 +1563,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1685,6 +1736,7 @@ public class PurpurWorldConfig { +@@ -1681,6 +1732,7 @@ public class PurpurWorldConfig { huskJockeyChance = getDouble("mobs.husk.jockey.chance", huskJockeyChance); huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens); huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater); @@ -1571,7 +1571,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean illusionerRidable = false; -@@ -1694,6 +1746,7 @@ public class PurpurWorldConfig { +@@ -1690,6 +1742,7 @@ public class PurpurWorldConfig { public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1579,7 +1579,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1711,6 +1764,7 @@ public class PurpurWorldConfig { +@@ -1707,6 +1760,7 @@ public class PurpurWorldConfig { } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); illusionerTakeDamageFromWater = getBoolean("mobs.illusioner.takes-damage-from-water", illusionerTakeDamageFromWater); @@ -1587,7 +1587,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean ironGolemRidable = false; -@@ -1721,6 +1775,7 @@ public class PurpurWorldConfig { +@@ -1717,6 +1771,7 @@ public class PurpurWorldConfig { public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; public boolean ironGolemHealCalm = false; @@ -1595,7 +1595,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1735,6 +1790,7 @@ public class PurpurWorldConfig { +@@ -1731,6 +1786,7 @@ public class PurpurWorldConfig { ironGolemTakeDamageFromWater = getBoolean("mobs.iron_golem.takes-damage-from-water", ironGolemTakeDamageFromWater); ironGolemPoppyCalm = getBoolean("mobs.iron_golem.poppy-calms-anger", ironGolemPoppyCalm); ironGolemHealCalm = getBoolean("mobs.iron_golem.healing-calms-anger", ironGolemHealCalm); @@ -1603,7 +1603,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean llamaRidable = false; -@@ -1749,6 +1805,7 @@ public class PurpurWorldConfig { +@@ -1745,6 +1801,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1611,7 +1611,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1769,6 +1826,7 @@ public class PurpurWorldConfig { +@@ -1765,6 +1822,7 @@ public class PurpurWorldConfig { llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); llamaTakeDamageFromWater = getBoolean("mobs.llama.takes-damage-from-water", llamaTakeDamageFromWater); llamaJoinCaravans = getBoolean("mobs.llama.join-caravans", llamaJoinCaravans); @@ -1619,7 +1619,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean magmaCubeRidable = false; -@@ -1779,6 +1837,7 @@ public class PurpurWorldConfig { +@@ -1775,6 +1833,7 @@ public class PurpurWorldConfig { public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1793,6 +1852,7 @@ public class PurpurWorldConfig { +@@ -1789,6 +1848,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean mooshroomRidable = false; -@@ -1801,6 +1861,7 @@ public class PurpurWorldConfig { +@@ -1797,6 +1857,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1813,6 +1874,7 @@ public class PurpurWorldConfig { +@@ -1809,6 +1870,7 @@ public class PurpurWorldConfig { mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); mooshroomTakeDamageFromWater = getBoolean("mobs.mooshroom.takes-damage-from-water", mooshroomTakeDamageFromWater); @@ -1651,7 +1651,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean muleRidableInWater = false; -@@ -1824,6 +1886,7 @@ public class PurpurWorldConfig { +@@ -1820,6 +1882,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1841,6 +1904,7 @@ public class PurpurWorldConfig { +@@ -1837,6 +1900,7 @@ public class PurpurWorldConfig { muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); muleTakeDamageFromWater = getBoolean("mobs.mule.takes-damage-from-water", muleTakeDamageFromWater); @@ -1667,7 +1667,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean ocelotRidable = false; -@@ -1849,6 +1913,7 @@ public class PurpurWorldConfig { +@@ -1845,6 +1909,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1861,6 +1926,7 @@ public class PurpurWorldConfig { +@@ -1857,6 +1922,7 @@ public class PurpurWorldConfig { ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); ocelotTakeDamageFromWater = getBoolean("mobs.ocelot.takes-damage-from-water", ocelotTakeDamageFromWater); @@ -1683,7 +1683,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean pandaRidable = false; -@@ -1869,6 +1935,7 @@ public class PurpurWorldConfig { +@@ -1865,6 +1931,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1881,6 +1948,7 @@ public class PurpurWorldConfig { +@@ -1877,6 +1944,7 @@ public class PurpurWorldConfig { pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); pandaTakeDamageFromWater = getBoolean("mobs.panda.takes-damage-from-water", pandaTakeDamageFromWater); @@ -1699,7 +1699,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean parrotRidable = false; -@@ -1890,6 +1958,7 @@ public class PurpurWorldConfig { +@@ -1886,6 +1954,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1903,6 +1972,7 @@ public class PurpurWorldConfig { +@@ -1899,6 +1968,7 @@ public class PurpurWorldConfig { parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); parrotTakeDamageFromWater = getBoolean("mobs.parrot.takes-damage-from-water", parrotTakeDamageFromWater); parrotBreedable = getBoolean("mobs.parrot.can-breed", parrotBreedable); @@ -1715,7 +1715,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean phantomRidable = false; -@@ -1930,6 +2000,7 @@ public class PurpurWorldConfig { +@@ -1926,6 +1996,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1965,6 +2036,7 @@ public class PurpurWorldConfig { +@@ -1961,6 +2032,7 @@ public class PurpurWorldConfig { phantomIgnorePlayersWithTorch = getBoolean("mobs.phantom.ignore-players-with-torch", phantomIgnorePlayersWithTorch); phantomFlamesOnSwoop = getBoolean("mobs.phantom.flames-on-swoop", phantomFlamesOnSwoop); phantomTakeDamageFromWater = getBoolean("mobs.phantom.takes-damage-from-water", phantomTakeDamageFromWater); @@ -1731,7 +1731,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean pigRidable = false; -@@ -1974,6 +2046,7 @@ public class PurpurWorldConfig { +@@ -1970,6 +2042,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1987,6 +2060,7 @@ public class PurpurWorldConfig { +@@ -1983,6 +2056,7 @@ public class PurpurWorldConfig { pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); pigTakeDamageFromWater = getBoolean("mobs.pig.takes-damage-from-water", pigTakeDamageFromWater); @@ -1747,7 +1747,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean piglinRidable = false; -@@ -1996,6 +2070,7 @@ public class PurpurWorldConfig { +@@ -1992,6 +2066,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2009,6 +2084,7 @@ public class PurpurWorldConfig { +@@ -2005,6 +2080,7 @@ public class PurpurWorldConfig { piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); @@ -1763,7 +1763,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean piglinBruteRidable = false; -@@ -2016,6 +2092,7 @@ public class PurpurWorldConfig { +@@ -2012,6 +2088,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2027,6 +2104,7 @@ public class PurpurWorldConfig { +@@ -2023,6 +2100,7 @@ public class PurpurWorldConfig { } piglinBruteMaxHealth = getDouble("mobs.piglin_brute.attributes.max_health", piglinBruteMaxHealth); piglinBruteTakeDamageFromWater = getBoolean("mobs.piglin_brute.takes-damage-from-water", piglinBruteTakeDamageFromWater); @@ -1779,7 +1779,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean pillagerRidable = false; -@@ -2035,6 +2113,7 @@ public class PurpurWorldConfig { +@@ -2031,6 +2109,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2047,6 +2126,7 @@ public class PurpurWorldConfig { +@@ -2043,6 +2122,7 @@ public class PurpurWorldConfig { pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); pillagerBypassMobGriefing = getBoolean("mobs.pillager.bypass-mob-griefing", pillagerBypassMobGriefing); pillagerTakeDamageFromWater = getBoolean("mobs.pillager.takes-damage-from-water", pillagerTakeDamageFromWater); @@ -1795,7 +1795,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean polarBearRidable = false; -@@ -2057,6 +2137,7 @@ public class PurpurWorldConfig { +@@ -2053,6 +2133,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2072,12 +2153,14 @@ public class PurpurWorldConfig { +@@ -2068,12 +2149,14 @@ public class PurpurWorldConfig { if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); polarBearTakeDamageFromWater = getBoolean("mobs.polar_bear.takes-damage-from-water", polarBearTakeDamageFromWater); @@ -1818,7 +1818,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2088,6 +2171,7 @@ public class PurpurWorldConfig { +@@ -2084,6 +2167,7 @@ public class PurpurWorldConfig { } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); pufferfishTakeDamageFromWater = getBoolean("mobs.pufferfish.takes-damage-from-water", pufferfishTakeDamageFromWater); @@ -1826,7 +1826,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean rabbitRidable = false; -@@ -2099,6 +2183,7 @@ public class PurpurWorldConfig { +@@ -2095,6 +2179,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2114,6 +2199,7 @@ public class PurpurWorldConfig { +@@ -2110,6 +2195,7 @@ public class PurpurWorldConfig { rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); rabbitBypassMobGriefing = getBoolean("mobs.rabbit.bypass-mob-griefing", rabbitBypassMobGriefing); rabbitTakeDamageFromWater = getBoolean("mobs.rabbit.takes-damage-from-water", rabbitTakeDamageFromWater); @@ -1842,7 +1842,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean ravagerRidable = false; -@@ -2123,6 +2209,7 @@ public class PurpurWorldConfig { +@@ -2119,6 +2205,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2152,12 +2239,14 @@ public class PurpurWorldConfig { +@@ -2148,12 +2235,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2168,6 +2257,7 @@ public class PurpurWorldConfig { +@@ -2164,6 +2253,7 @@ public class PurpurWorldConfig { } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); salmonTakeDamageFromWater = getBoolean("mobs.salmon.takes-damage-from-water", salmonTakeDamageFromWater); @@ -1873,7 +1873,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean sheepRidable = false; -@@ -2177,6 +2267,7 @@ public class PurpurWorldConfig { +@@ -2173,6 +2263,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2190,6 +2281,7 @@ public class PurpurWorldConfig { +@@ -2186,6 +2277,7 @@ public class PurpurWorldConfig { sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); @@ -1889,7 +1889,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean shulkerRidable = false; -@@ -2203,6 +2295,7 @@ public class PurpurWorldConfig { +@@ -2199,6 +2291,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2220,6 +2313,7 @@ public class PurpurWorldConfig { +@@ -2216,6 +2309,7 @@ public class PurpurWorldConfig { shulkerSpawnFromBulletNearbyEquation = getString("mobs.shulker.spawn-from-bullet.nearby-equation", shulkerSpawnFromBulletNearbyEquation); shulkerSpawnFromBulletRandomColor = getBoolean("mobs.shulker.spawn-from-bullet.random-color", shulkerSpawnFromBulletRandomColor); shulkerChangeColorWithDye = getBoolean("mobs.shulker.change-color-with-dye", shulkerChangeColorWithDye); @@ -1905,7 +1905,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean silverfishRidable = false; -@@ -2228,6 +2322,7 @@ public class PurpurWorldConfig { +@@ -2224,6 +2318,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2240,6 +2335,7 @@ public class PurpurWorldConfig { +@@ -2236,6 +2331,7 @@ public class PurpurWorldConfig { silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); silverfishTakeDamageFromWater = getBoolean("mobs.silverfish.takes-damage-from-water", silverfishTakeDamageFromWater); @@ -1921,7 +1921,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean skeletonRidable = false; -@@ -2247,6 +2343,7 @@ public class PurpurWorldConfig { +@@ -2243,6 +2339,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2258,6 +2355,7 @@ public class PurpurWorldConfig { +@@ -2254,6 +2351,7 @@ public class PurpurWorldConfig { } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); @@ -1937,7 +1937,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean skeletonHorseRidableInWater = true; -@@ -2269,6 +2367,7 @@ public class PurpurWorldConfig { +@@ -2265,6 +2363,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -2285,6 +2384,7 @@ public class PurpurWorldConfig { +@@ -2281,6 +2380,7 @@ public class PurpurWorldConfig { skeletonHorseMovementSpeedMin = getDouble("mobs.skeleton_horse.attributes.movement_speed.min", skeletonHorseMovementSpeedMin); skeletonHorseMovementSpeedMax = getDouble("mobs.skeleton_horse.attributes.movement_speed.max", skeletonHorseMovementSpeedMax); skeletonHorseTakeDamageFromWater = getBoolean("mobs.skeleton_horse.takes-damage-from-water", skeletonHorseTakeDamageFromWater); @@ -1953,7 +1953,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean slimeRidable = false; -@@ -2295,6 +2395,7 @@ public class PurpurWorldConfig { +@@ -2291,6 +2391,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2309,6 +2410,7 @@ public class PurpurWorldConfig { +@@ -2305,6 +2406,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean snowGolemRidable = false; -@@ -2324,6 +2426,7 @@ public class PurpurWorldConfig { +@@ -2320,6 +2422,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2343,6 +2446,7 @@ public class PurpurWorldConfig { +@@ -2339,6 +2442,7 @@ public class PurpurWorldConfig { snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); snowGolemBypassMobGriefing = getBoolean("mobs.snow_golem.bypass-mob-griefing", snowGolemBypassMobGriefing); snowGolemTakeDamageFromWater = getBoolean("mobs.snow_golem.takes-damage-from-water", snowGolemTakeDamageFromWater); @@ -1985,7 +1985,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean squidRidable = false; -@@ -2352,6 +2456,7 @@ public class PurpurWorldConfig { +@@ -2348,6 +2452,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2365,6 +2470,7 @@ public class PurpurWorldConfig { +@@ -2361,6 +2466,7 @@ public class PurpurWorldConfig { squidOffsetWaterCheck = getDouble("mobs.squid.water-offset-check", squidOffsetWaterCheck); squidsCanFly = getBoolean("mobs.squid.can-fly", squidsCanFly); squidTakeDamageFromWater = getBoolean("mobs.squid.takes-damage-from-water", squidTakeDamageFromWater); @@ -2001,7 +2001,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean spiderRidable = false; -@@ -2372,6 +2478,7 @@ public class PurpurWorldConfig { +@@ -2368,6 +2474,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2383,6 +2490,7 @@ public class PurpurWorldConfig { +@@ -2379,6 +2486,7 @@ public class PurpurWorldConfig { } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); @@ -2017,7 +2017,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean strayRidable = false; -@@ -2390,6 +2498,7 @@ public class PurpurWorldConfig { +@@ -2386,6 +2494,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2401,6 +2510,7 @@ public class PurpurWorldConfig { +@@ -2397,6 +2506,7 @@ public class PurpurWorldConfig { } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); strayTakeDamageFromWater = getBoolean("mobs.stray.takes-damage-from-water", strayTakeDamageFromWater); @@ -2033,7 +2033,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean striderRidable = false; -@@ -2410,6 +2520,7 @@ public class PurpurWorldConfig { +@@ -2406,6 +2516,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2423,6 +2534,7 @@ public class PurpurWorldConfig { +@@ -2419,6 +2530,7 @@ public class PurpurWorldConfig { striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); striderGiveSaddleBack = getBoolean("mobs.strider.give-saddle-back", striderGiveSaddleBack); striderTakeDamageFromWater = getBoolean("mobs.strider.takes-damage-from-water", striderTakeDamageFromWater); @@ -2049,7 +2049,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean tadpoleRidable = false; -@@ -2445,6 +2557,7 @@ public class PurpurWorldConfig { +@@ -2441,6 +2553,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2464,12 +2577,14 @@ public class PurpurWorldConfig { +@@ -2460,12 +2573,14 @@ public class PurpurWorldConfig { traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); traderLlamaTakeDamageFromWater = getBoolean("mobs.trader_llama.takes-damage-from-water", traderLlamaTakeDamageFromWater); @@ -2072,7 +2072,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2480,6 +2595,7 @@ public class PurpurWorldConfig { +@@ -2476,6 +2591,7 @@ public class PurpurWorldConfig { } tropicalFishMaxHealth = getDouble("mobs.tropical_fish.attributes.max_health", tropicalFishMaxHealth); tropicalFishTakeDamageFromWater = getBoolean("mobs.tropical_fish.takes-damage-from-water", tropicalFishTakeDamageFromWater); @@ -2080,7 +2080,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean turtleRidable = false; -@@ -2488,6 +2604,7 @@ public class PurpurWorldConfig { +@@ -2484,6 +2600,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2500,6 +2617,7 @@ public class PurpurWorldConfig { +@@ -2496,6 +2613,7 @@ public class PurpurWorldConfig { turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); turtleTakeDamageFromWater = getBoolean("mobs.turtle.takes-damage-from-water", turtleTakeDamageFromWater); @@ -2096,7 +2096,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean vexRidable = false; -@@ -2508,6 +2626,7 @@ public class PurpurWorldConfig { +@@ -2504,6 +2622,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2520,6 +2639,7 @@ public class PurpurWorldConfig { +@@ -2516,6 +2635,7 @@ public class PurpurWorldConfig { } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); vexTakeDamageFromWater = getBoolean("mobs.vex.takes-damage-from-water", vexTakeDamageFromWater); @@ -2112,7 +2112,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean villagerRidable = false; -@@ -2535,6 +2655,7 @@ public class PurpurWorldConfig { +@@ -2531,6 +2651,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2554,6 +2675,7 @@ public class PurpurWorldConfig { +@@ -2550,6 +2671,7 @@ public class PurpurWorldConfig { villagerBypassMobGriefing = getBoolean("mobs.villager.bypass-mob-griefing", villagerBypassMobGriefing); villagerTakeDamageFromWater = getBoolean("mobs.villager.takes-damage-from-water", villagerTakeDamageFromWater); villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); @@ -2128,7 +2128,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean vindicatorRidable = false; -@@ -2562,6 +2684,7 @@ public class PurpurWorldConfig { +@@ -2558,6 +2680,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2574,6 +2697,7 @@ public class PurpurWorldConfig { +@@ -2570,6 +2693,7 @@ public class PurpurWorldConfig { vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); vindicatorJohnnySpawnChance = getDouble("mobs.vindicator.johnny.spawn-chance", vindicatorJohnnySpawnChance); vindicatorTakeDamageFromWater = getBoolean("mobs.vindicator.takes-damage-from-water", vindicatorTakeDamageFromWater); @@ -2144,7 +2144,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean wanderingTraderRidable = false; -@@ -2584,6 +2708,7 @@ public class PurpurWorldConfig { +@@ -2580,6 +2704,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2598,6 +2723,7 @@ public class PurpurWorldConfig { +@@ -2594,6 +2719,7 @@ public class PurpurWorldConfig { wanderingTraderCanBeLeashed = getBoolean("mobs.wandering_trader.can-be-leashed", wanderingTraderCanBeLeashed); wanderingTraderTakeDamageFromWater = getBoolean("mobs.wandering_trader.takes-damage-from-water", wanderingTraderTakeDamageFromWater); wanderingTraderAllowTrading = getBoolean("mobs.wandering_trader.allow-trading", wanderingTraderAllowTrading); @@ -2160,7 +2160,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean wardenRidable = false; -@@ -2614,6 +2740,7 @@ public class PurpurWorldConfig { +@@ -2610,6 +2736,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2625,6 +2752,7 @@ public class PurpurWorldConfig { +@@ -2621,6 +2748,7 @@ public class PurpurWorldConfig { } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); witchTakeDamageFromWater = getBoolean("mobs.witch.takes-damage-from-water", witchTakeDamageFromWater); @@ -2176,7 +2176,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean witherRidable = false; -@@ -2639,6 +2767,7 @@ public class PurpurWorldConfig { +@@ -2635,6 +2763,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2661,6 +2790,7 @@ public class PurpurWorldConfig { +@@ -2657,6 +2786,7 @@ public class PurpurWorldConfig { witherCanRideVehicles = getBoolean("mobs.wither.can-ride-vehicles", witherCanRideVehicles); witherExplosionRadius = (float) getDouble("mobs.wither.explosion-radius", witherExplosionRadius); witherPlaySpawnSound = getBoolean("mobs.wither.play-spawn-sound", witherPlaySpawnSound); @@ -2192,7 +2192,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean witherSkeletonRidable = false; -@@ -2668,6 +2798,7 @@ public class PurpurWorldConfig { +@@ -2664,6 +2794,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2679,6 +2810,7 @@ public class PurpurWorldConfig { +@@ -2675,6 +2806,7 @@ public class PurpurWorldConfig { } witherSkeletonMaxHealth = getDouble("mobs.wither_skeleton.attributes.max_health", witherSkeletonMaxHealth); witherSkeletonTakeDamageFromWater = getBoolean("mobs.wither_skeleton.takes-damage-from-water", witherSkeletonTakeDamageFromWater); @@ -2208,7 +2208,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean wolfRidable = false; -@@ -2690,6 +2822,7 @@ public class PurpurWorldConfig { +@@ -2686,6 +2818,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2709,6 +2842,7 @@ public class PurpurWorldConfig { +@@ -2705,6 +2838,7 @@ public class PurpurWorldConfig { wolfNaturalRabid = getDouble("mobs.wolf.spawn-rabid-chance", wolfNaturalRabid); wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); wolfTakeDamageFromWater = getBoolean("mobs.wolf.takes-damage-from-water", wolfTakeDamageFromWater); @@ -2224,7 +2224,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean zoglinRidable = false; -@@ -2716,6 +2850,7 @@ public class PurpurWorldConfig { +@@ -2712,6 +2846,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2727,6 +2862,7 @@ public class PurpurWorldConfig { +@@ -2723,6 +2858,7 @@ public class PurpurWorldConfig { } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); zoglinTakeDamageFromWater = getBoolean("mobs.zoglin.takes-damage-from-water", zoglinTakeDamageFromWater); @@ -2240,7 +2240,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean zombieRidable = false; -@@ -2740,6 +2876,7 @@ public class PurpurWorldConfig { +@@ -2736,6 +2872,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2757,6 +2894,7 @@ public class PurpurWorldConfig { +@@ -2753,6 +2890,7 @@ public class PurpurWorldConfig { zombieAggressiveTowardsVillagerWhenLagging = getBoolean("mobs.zombie.aggressive-towards-villager-when-lagging", zombieAggressiveTowardsVillagerWhenLagging); zombieBypassMobGriefing = getBoolean("mobs.zombie.bypass-mob-griefing", zombieBypassMobGriefing); zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater); @@ -2256,7 +2256,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean zombieHorseRidableInWater = false; -@@ -2769,6 +2907,7 @@ public class PurpurWorldConfig { +@@ -2765,6 +2903,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2786,6 +2925,7 @@ public class PurpurWorldConfig { +@@ -2782,6 +2921,7 @@ public class PurpurWorldConfig { zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); zombieHorseSpawnChance = getDouble("mobs.zombie_horse.spawn-chance", zombieHorseSpawnChance); zombieHorseTakeDamageFromWater = getBoolean("mobs.zombie_horse.takes-damage-from-water", zombieHorseTakeDamageFromWater); @@ -2272,7 +2272,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean zombieVillagerRidable = false; -@@ -2800,6 +2940,7 @@ public class PurpurWorldConfig { +@@ -2796,6 +2936,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2818,6 +2959,7 @@ public class PurpurWorldConfig { +@@ -2814,6 +2955,7 @@ public class PurpurWorldConfig { zombieVillagerCuringTimeMin = getInt("mobs.zombie_villager.curing_time.min", zombieVillagerCuringTimeMin); zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax); zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled); @@ -2288,7 +2288,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 } public boolean zombifiedPiglinRidable = false; -@@ -2830,6 +2972,7 @@ public class PurpurWorldConfig { +@@ -2826,6 +2968,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index c34f5b971128ecf0f8e7bb3e74b8714678d27cf7..50610ff5058ba39dbb3abdca98e23fb7 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2846,6 +2989,7 @@ public class PurpurWorldConfig { +@@ -2842,6 +2985,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/0237-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0237-Shearing-jeb-produces-random-color-wool.patch index 693056a9c..610c4f2a2 100644 --- a/patches/server/0237-Shearing-jeb-produces-random-color-wool.patch +++ b/patches/server/0237-Shearing-jeb-produces-random-color-wool.patch @@ -18,10 +18,10 @@ index 492316925f06d1bc7950c6b9d37615b2bd0138fd..99dbbe59116ae4fbdfb506a72959e3a6 if (entityitem != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 101172bc698671d011f1196e575b9215e39a228d..e85beb8d57d9f421e793215e6b8b2d20289d477d 100644 +index e46f73f285620d976568dc6e40714d6add5e29fe..17f57d02ed8408ca1cd9aaa9b9a7022fc38f5927 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2272,6 +2272,7 @@ public class PurpurWorldConfig { +@@ -2268,6 +2268,7 @@ public class PurpurWorldConfig { public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; public boolean sheepAlwaysDropExp = false; @@ -29,7 +29,7 @@ index 101172bc698671d011f1196e575b9215e39a228d..e85beb8d57d9f421e793215e6b8b2d20 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2286,6 +2287,7 @@ public class PurpurWorldConfig { +@@ -2282,6 +2283,7 @@ public class PurpurWorldConfig { sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); sheepAlwaysDropExp = getBoolean("mobs.sheep.always-drop-exp", sheepAlwaysDropExp); diff --git a/patches/server/0238-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0238-Turtle-eggs-random-tick-crack-chance.patch index 418b87113..6c1d06de3 100644 --- a/patches/server/0238-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0238-Turtle-eggs-random-tick-crack-chance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Turtle eggs random tick crack chance diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java -index dc3c8eb78439f0bf7420eb41b6f3925cf701e0c5..0a1242c2749dad6affe9e17625831705be7467cc 100644 +index b8f04ab1a970244406755cc6f8e860e7e7294fd9..9b0b7225ada7604d53f8587c3288c748b80fc940 100644 --- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java @@ -160,7 +160,7 @@ public class TurtleEggBlock extends Block { @@ -18,10 +18,10 @@ index dc3c8eb78439f0bf7420eb41b6f3925cf701e0c5..0a1242c2749dad6affe9e17625831705 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e85beb8d57d9f421e793215e6b8b2d20289d477d..0abaa61cd1ca81da3062c9732deba789309a55df 100644 +index 17f57d02ed8408ca1cd9aaa9b9a7022fc38f5927..e0d226ab4f02a2002b007a2daa7a031185bbaa69 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -989,11 +989,13 @@ public class PurpurWorldConfig { +@@ -987,11 +987,13 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; @@ -34,4 +34,4 @@ index e85beb8d57d9f421e793215e6b8b2d20289d477d..0abaa61cd1ca81da3062c9732deba789 + turtleEggsRandomTickCrackChance = getInt("blocks.turtle_egg.random-tick-crack-chance", turtleEggsRandomTickCrackChance); } - public boolean waterInfinite = true; + public int waterInfiniteRequiredSources = 2; diff --git a/patches/server/0239-Mob-head-visibility-percent.patch b/patches/server/0239-Mob-head-visibility-percent.patch index 52efb7fc9..ecb5547e9 100644 --- a/patches/server/0239-Mob-head-visibility-percent.patch +++ b/patches/server/0239-Mob-head-visibility-percent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Mob head visibility percent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7a60d00faa9434ca283f428df02a38c50c1666dc..7fc6a47dd0ded34c74c8aca3091a1d1e38cb2aa5 100644 +index a50d5d9487a31c560deddef26c7d8dda6d81bd88..2838c325126791beef94aa3444010dbdbbefe9b9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1029,9 +1029,20 @@ public abstract class LivingEntity extends Entity { @@ -32,10 +32,10 @@ index 7a60d00faa9434ca283f428df02a38c50c1666dc..7fc6a47dd0ded34c74c8aca3091a1d1e // 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 0abaa61cd1ca81da3062c9732deba789309a55df..63f1a1d3c1356473f8ee2cfe5e895902f4088245 100644 +index e0d226ab4f02a2002b007a2daa7a031185bbaa69..0f45c72ab93f7926b628202e4ddd2e4b109c1f29 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1274,6 +1274,7 @@ public class PurpurWorldConfig { +@@ -1270,6 +1270,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -43,7 +43,7 @@ index 0abaa61cd1ca81da3062c9732deba789309a55df..63f1a1d3c1356473f8ee2cfe5e895902 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1291,6 +1292,7 @@ public class PurpurWorldConfig { +@@ -1287,6 +1288,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 0abaa61cd1ca81da3062c9732deba789309a55df..63f1a1d3c1356473f8ee2cfe5e895902 } public boolean dolphinRidable = false; -@@ -2077,6 +2079,7 @@ public class PurpurWorldConfig { +@@ -2073,6 +2075,7 @@ public class PurpurWorldConfig { public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; @@ -59,7 +59,7 @@ index 0abaa61cd1ca81da3062c9732deba789309a55df..63f1a1d3c1356473f8ee2cfe5e895902 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2091,6 +2094,7 @@ public class PurpurWorldConfig { +@@ -2087,6 +2090,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 0abaa61cd1ca81da3062c9732deba789309a55df..63f1a1d3c1356473f8ee2cfe5e895902 } public boolean piglinBruteRidable = false; -@@ -2352,6 +2356,7 @@ public class PurpurWorldConfig { +@@ -2348,6 +2352,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -75,7 +75,7 @@ index 0abaa61cd1ca81da3062c9732deba789309a55df..63f1a1d3c1356473f8ee2cfe5e895902 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2364,6 +2369,7 @@ public class PurpurWorldConfig { +@@ -2360,6 +2365,7 @@ public class PurpurWorldConfig { skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); @@ -83,7 +83,7 @@ index 0abaa61cd1ca81da3062c9732deba789309a55df..63f1a1d3c1356473f8ee2cfe5e895902 } public boolean skeletonHorseRidableInWater = true; -@@ -2885,6 +2891,7 @@ public class PurpurWorldConfig { +@@ -2881,6 +2887,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index 0abaa61cd1ca81da3062c9732deba789309a55df..63f1a1d3c1356473f8ee2cfe5e895902 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2903,6 +2910,7 @@ public class PurpurWorldConfig { +@@ -2899,6 +2906,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/0242-Stop-bees-from-dying-after-stinging.patch b/patches/server/0242-Stop-bees-from-dying-after-stinging.patch index a7fa86246..5dbdd9f58 100644 --- a/patches/server/0242-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0242-Stop-bees-from-dying-after-stinging.patch @@ -17,10 +17,10 @@ index 251fc8c09d3856464b8f5c64f7840a65553ae16c..7d8ab3c5d5277b81157d56b408293cc3 ++this.timeSinceSting; if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, (int) 1, (int) 1200)) == 0) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6d474c112cd622910f168695e6e0a959b9f9f405..31b4c0624f45e44c98d29d51c486ee332faf1ab9 100644 +index 0f45c72ab93f7926b628202e4ddd2e4b109c1f29..3bf6c9e19e69dfb855c65cdbd3ec6a81f9e6891e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1077,6 +1077,7 @@ public class PurpurWorldConfig { +@@ -1073,6 +1073,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index 6d474c112cd622910f168695e6e0a959b9f9f405..31b4c0624f45e44c98d29d51c486ee33 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1093,6 +1094,7 @@ public class PurpurWorldConfig { +@@ -1089,6 +1090,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/0248-Configurable-phantom-size.patch b/patches/server/0248-Configurable-phantom-size.patch index 7efd0a0e3..d017afdde 100644 --- a/patches/server/0248-Configurable-phantom-size.patch +++ b/patches/server/0248-Configurable-phantom-size.patch @@ -22,10 +22,10 @@ index 35da78d79ee90acc69600adb78bc81ff75cee752..cf6f7c6c5754ab712e06a7bfb8c1ef8e } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f8329a1949013494cedc914c3d1c3e7fad3f1568..097aa216c717e2a866a0ff69627aecf8ab4c1db2 100644 +index 7bd124d81694542646b279c16b3ffde589b88038..7515ce403a08af7c776d5046c1f68623fe0c7a94 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2017,6 +2017,8 @@ public class PurpurWorldConfig { +@@ -2013,6 +2013,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index f8329a1949013494cedc914c3d1c3e7fad3f1568..097aa216c717e2a866a0ff69627aecf8 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2053,6 +2055,13 @@ public class PurpurWorldConfig { +@@ -2049,6 +2051,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/0251-Configurable-minimum-demand-for-trades.patch b/patches/server/0251-Configurable-minimum-demand-for-trades.patch index cdd2efebd..cbcae4cd9 100644 --- a/patches/server/0251-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0251-Configurable-minimum-demand-for-trades.patch @@ -9,7 +9,7 @@ This patch adds a config option to allow the minimum demand to instead be configurable. diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 425cc5f1e877f7d70308e0b3b2d8ef514902f8a2..07cc98c7582a02732bb9cedf1ba180069e621fab 100644 +index 2deaaace03f0f4bec8690203688cfcdcf5c4d10a..cd490eefb502435edab8d7ca871faf20adcfb9be 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -528,7 +528,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -40,10 +40,10 @@ index 8a9a701baabdaf066cd9b28c05430f673fcafb4e..17cc3237c7fc8ceda136b2371fabf6f0 public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 097aa216c717e2a866a0ff69627aecf8ab4c1db2..2451f0b0590a21f6f7ee977f6fd096db208bbacc 100644 +index 7515ce403a08af7c776d5046c1f68623fe0c7a94..18fc56102e68af4e7f0d208fa24c04f5f9b593ab 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2687,6 +2687,7 @@ public class PurpurWorldConfig { +@@ -2683,6 +2683,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 097aa216c717e2a866a0ff69627aecf8ab4c1db2..2451f0b0590a21f6f7ee977f6fd096db private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2707,6 +2708,7 @@ public class PurpurWorldConfig { +@@ -2703,6 +2704,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/0252-Lobotomize-stuck-villagers.patch b/patches/server/0252-Lobotomize-stuck-villagers.patch index 15c17ebda..9fb94ef60 100644 --- a/patches/server/0252-Lobotomize-stuck-villagers.patch +++ b/patches/server/0252-Lobotomize-stuck-villagers.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Lobotomize stuck villagers diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 07cc98c7582a02732bb9cedf1ba180069e621fab..ab1e841f14c6776644f8a2f92f6db98e83724afc 100644 +index cd490eefb502435edab8d7ca871faf20adcfb9be..9792a346fe3bdfc3b7ea454d9ae489fa4e175101 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -139,6 +139,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -110,10 +110,10 @@ index a1a8ac55e572156671e47317ba061855be79e5ac..ec3fb8865211bd7625103c37af7b96df + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2451f0b0590a21f6f7ee977f6fd096db208bbacc..8faf2f7d12520e9e7c79146ee7b4066d13983961 100644 +index 18fc56102e68af4e7f0d208fa24c04f5f9b593ab..4e08046fda7ed1ea24f27a2db590c3be00a48e17 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2688,6 +2688,8 @@ public class PurpurWorldConfig { +@@ -2684,6 +2684,8 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -122,7 +122,7 @@ index 2451f0b0590a21f6f7ee977f6fd096db208bbacc..8faf2f7d12520e9e7c79146ee7b4066d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2709,6 +2711,17 @@ public class PurpurWorldConfig { +@@ -2705,6 +2707,17 @@ public class PurpurWorldConfig { villagerAllowTrading = getBoolean("mobs.villager.allow-trading", villagerAllowTrading); villagerAlwaysDropExp = getBoolean("mobs.villager.always-drop-exp", villagerAlwaysDropExp); villagerMinimumDemand = getInt("mobs.villager.minimum-demand", villagerMinimumDemand); diff --git a/patches/server/0253-Option-for-villager-display-trade-item.patch b/patches/server/0253-Option-for-villager-display-trade-item.patch index 529b91ea1..0c90412f6 100644 --- a/patches/server/0253-Option-for-villager-display-trade-item.patch +++ b/patches/server/0253-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 98373e013748817209b811d4adbb40a8787242a6..567b501f4de7556e55e2418d2f5700b4 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8faf2f7d12520e9e7c79146ee7b4066d13983961..11716e7095f9001e8965e2ede27ce73b6711d67d 100644 +index 4e08046fda7ed1ea24f27a2db590c3be00a48e17..66310e46b2ff3824dc7310762fcfffb8a9582491 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2690,6 +2690,7 @@ public class PurpurWorldConfig { +@@ -2686,6 +2686,7 @@ public class PurpurWorldConfig { public int villagerMinimumDemand = 0; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; @@ -28,7 +28,7 @@ index 8faf2f7d12520e9e7c79146ee7b4066d13983961..11716e7095f9001e8965e2ede27ce73b private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2722,6 +2723,7 @@ public class PurpurWorldConfig { +@@ -2718,6 +2719,7 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); diff --git a/patches/server/0255-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0255-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch index 0ceb73646..db736a5f8 100644 --- a/patches/server/0255-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch +++ b/patches/server/0255-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch @@ -17,10 +17,10 @@ index 18389f46902bb9879ac6d734723e9a720724dc48..b2b8663a9cff08bacdab91c7bb014ba6 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 10133d45893281d40380cd62743f2b6b99fafdd1..4a1078f82b586840a2dbbdb81568a88e30ddeeb3 100644 +index 66310e46b2ff3824dc7310762fcfffb8a9582491..54642d5654beb587696735554521e03b661f3942 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -978,8 +978,10 @@ public class PurpurWorldConfig { +@@ -976,8 +976,10 @@ public class PurpurWorldConfig { } public boolean spawnerDeactivateByRedstone = false; diff --git a/patches/server/0259-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0259-Option-to-disable-turtle-egg-trampling-with-feather-.patch index 2e90737a0..94259e616 100644 --- a/patches/server/0259-Option-to-disable-turtle-egg-trampling-with-feather-.patch +++ b/patches/server/0259-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option to disable turtle egg trampling with feather falling diff --git a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java -index 0a1242c2749dad6affe9e17625831705be7467cc..22ed1e32fd2ca27a3a43cd1a3e48e39d89b93b5e 100644 +index 9b0b7225ada7604d53f8587c3288c748b80fc940..a5bd3f463ee8ab402d518d18a28425441af31686 100644 --- a/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java +++ b/src/main/java/net/minecraft/world/level/block/TurtleEggBlock.java @@ -209,7 +209,13 @@ public class TurtleEggBlock extends Block { @@ -24,10 +24,10 @@ index 0a1242c2749dad6affe9e17625831705be7467cc..22ed1e32fd2ca27a3a43cd1a3e48e39d 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 4fbaf83a19c42d74082d1420455e9b6d2abac1db..6847a69ccb0201f69be339326a8dd20797c9a605 100644 +index 05c00a2646765d51380028fc626f8bef8bb6fa7f..967bba8748349f479c9c07683f211ebe41f4e26a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1004,12 +1004,14 @@ public class PurpurWorldConfig { +@@ -1002,12 +1002,14 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; public int turtleEggsRandomTickCrackChance = 500; @@ -41,4 +41,4 @@ index 4fbaf83a19c42d74082d1420455e9b6d2abac1db..6847a69ccb0201f69be339326a8dd207 + turtleEggsTramplingFeatherFalling = getBoolean("blocks.turtle_egg.feather-fall-distance-affects-trampling", turtleEggsTramplingFeatherFalling); } - public boolean waterInfinite = true; + public int waterInfiniteRequiredSources = 2; diff --git a/patches/server/0262-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0262-Implement-configurable-search-radius-for-villagers-t.patch index c26f23cc3..a3addc04f 100644 --- a/patches/server/0262-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0262-Implement-configurable-search-radius-for-villagers-t.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index ab1e841f14c6776644f8a2f92f6db98e83724afc..700d32abc957769960fd081072c941681474f7f0 100644 +index 9792a346fe3bdfc3b7ea454d9ae489fa4e175101..1f9a9f535c54481fc16bec5db4111ca1eba409df 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -1081,6 +1081,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -18,10 +18,10 @@ index ab1e841f14c6776644f8a2f92f6db98e83724afc..700d32abc957769960fd081072c94168 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 6847a69ccb0201f69be339326a8dd20797c9a605..ca01415871b03d9a93859f89f236892817dff558 100644 +index 967bba8748349f479c9c07683f211ebe41f4e26a..f86ab6bd794480f479b5349fc0dd15e8704ed9e6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2701,6 +2701,8 @@ public class PurpurWorldConfig { +@@ -2697,6 +2697,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 6847a69ccb0201f69be339326a8dd20797c9a605..ca01415871b03d9a93859f89f2368928 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2734,6 +2736,8 @@ public class PurpurWorldConfig { +@@ -2730,6 +2732,8 @@ public class PurpurWorldConfig { villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); villagerDisplayTradeItem = getBoolean("mobs.villager.display-trade-item", villagerDisplayTradeItem); diff --git a/patches/server/0263-Stonecutter-damage.patch b/patches/server/0263-Stonecutter-damage.patch index b50b84029..156acb333 100644 --- a/patches/server/0263-Stonecutter-damage.patch +++ b/patches/server/0263-Stonecutter-damage.patch @@ -95,10 +95,10 @@ index ee62024b694ce6393ff6a04862f1ec888d5d1688..5894b0f3f608c26813e4a41a4a87e1b4 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 075235e1db1c2261c3917b57d752462cf4fba4d3..148845b0db3f3e2d2eec90db1d30adf02d3aeb2b 100644 +index f86ab6bd794480f479b5349fc0dd15e8704ed9e6..4c3f8dbe8daf38570751ed5de2ae0bb118a26752 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -999,6 +999,11 @@ public class PurpurWorldConfig { +@@ -997,6 +997,11 @@ public class PurpurWorldConfig { spongeAbsorbsLava = getBoolean("blocks.sponge.absorbs-lava", spongeAbsorbsLava); } diff --git a/patches/server/0264-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0264-Configurable-damage-settings-for-magma-blocks.patch index 4ab71957e..3826c2acc 100644 --- a/patches/server/0264-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0264-Configurable-damage-settings-for-magma-blocks.patch @@ -18,10 +18,10 @@ index d3540a4daaa8021ae009bfd4d9ef4f1172ab4c56..2b250439f263f64db7920536ed6eaf64 entity.hurt(DamageSource.HOT_FLOOR, 1.0F); org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 148845b0db3f3e2d2eec90db1d30adf02d3aeb2b..c7741f717e71dba7302710d262500a8dccbcdad2 100644 +index 4c3f8dbe8daf38570751ed5de2ae0bb118a26752..993e9647411783a9bbd8cab79fabd34dfed36823 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -930,6 +930,13 @@ public class PurpurWorldConfig { +@@ -928,6 +928,13 @@ public class PurpurWorldConfig { pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); } diff --git a/patches/server/0265-Add-config-for-snow-on-blue-ice.patch b/patches/server/0265-Add-config-for-snow-on-blue-ice.patch index baec171d9..fdae796b5 100644 --- a/patches/server/0265-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0265-Add-config-for-snow-on-blue-ice.patch @@ -22,7 +22,7 @@ index 14e00c7feb1c051d56a3d27cd00dcef072dd771a..4952fb1aaaafb55baa0fddb389f966a1 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c7741f717e71dba7302710d262500a8dccbcdad2..39c6d09fdade9809a43b749adb8b27d82e35460a 100644 +index 993e9647411783a9bbd8cab79fabd34dfed36823..01cbdac078d9bc02e53f82921489fb370dfa1399 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -909,9 +909,11 @@ public class PurpurWorldConfig { @@ -36,4 +36,4 @@ index c7741f717e71dba7302710d262500a8dccbcdad2..39c6d09fdade9809a43b749adb8b27d8 + snowOnBlueIce = getBoolean("blocks.blue_ice.allow-snow-formation", snowOnBlueIce); } - public boolean lavaInfinite = false; + public int lavaInfiniteRequiredSources = 2; diff --git a/patches/server/0266-Skeletons-eat-wither-roses.patch b/patches/server/0266-Skeletons-eat-wither-roses.patch index b7365f65c..f6a582069 100644 --- a/patches/server/0266-Skeletons-eat-wither-roses.patch +++ b/patches/server/0266-Skeletons-eat-wither-roses.patch @@ -94,10 +94,10 @@ index f5e8fbccd819f6fb66918bceb93d000da038d7ef..e0352f073c95f8caf47d6789c0bd10e5 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6bee6e6fda76c2072765e3909f0f9207fbda5622..65ef8479070ad804cc2c79b488190295d29489ff 100644 +index 01cbdac078d9bc02e53f82921489fb370dfa1399..559472bfbdad4fb8b86a6860091661fe7aa9ed3c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2398,6 +2398,7 @@ public class PurpurWorldConfig { +@@ -2394,6 +2394,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index 6bee6e6fda76c2072765e3909f0f9207fbda5622..65ef8479070ad804cc2c79b488190295 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2411,6 +2412,7 @@ public class PurpurWorldConfig { +@@ -2407,6 +2408,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/0267-Enchantment-Table-Persists-Lapis.patch b/patches/server/0267-Enchantment-Table-Persists-Lapis.patch index 98ec34ade..a7c41f2b9 100644 --- a/patches/server/0267-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0267-Enchantment-Table-Persists-Lapis.patch @@ -146,10 +146,10 @@ index 65e1381bb2d10bd212463feb602c60f8fdb9ade1..b7370e64fd0d50e8725d7d5afc30af2e + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 65ef8479070ad804cc2c79b488190295d29489ff..6c1fdc7a5d665642044827a2c66124c0326298d6 100644 +index 559472bfbdad4fb8b86a6860091661fe7aa9ed3c..85d14cf2b5c036914c7800b227df49a031bbd6ad 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1433,6 +1433,11 @@ public class PurpurWorldConfig { +@@ -1429,6 +1429,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0270-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0270-Config-for-sculk-shrieker-can_summon-state.patch index cc8b82699..2b70d6013 100644 --- a/patches/server/0270-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0270-Config-for-sculk-shrieker-can_summon-state.patch @@ -18,10 +18,10 @@ index e0998215841e500e5982a242e9f4e646402e1521..11038ba560439dab04c54c31a32d63be @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5122ee294a795f72a5ffa6ae4fe62b3574a2c52e..3780049479f9bb464a6049587bb2b9987e61b032 100644 +index 85d14cf2b5c036914c7800b227df49a031bbd6ad..9e4d3f2e1787d72f2dd1c78fbe779c3e4eb284bc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -975,6 +975,11 @@ public class PurpurWorldConfig { +@@ -973,6 +973,11 @@ public class PurpurWorldConfig { fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); } diff --git a/patches/server/0285-Add-skeleton-bow-accuracy-option.patch b/patches/server/0285-Add-skeleton-bow-accuracy-option.patch index a9af452cc..fcbb767a1 100644 --- a/patches/server/0285-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0285-Add-skeleton-bow-accuracy-option.patch @@ -18,10 +18,10 @@ index e542407894f58fb8c0339a7a6d2e7b2cb5891eb4..0cfe5cb3ce0ac8554bbdb68c66583693 org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper if (event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c0efea82bacda565876b8a01ed1f520706a2d127..11609d1c8e1dc80886435571d7c6ee1aa97fb177 100644 +index 7ad941a0a4661aab0585b0230d23e131b0298265..6c8d7344dabb9b2c621052edb3584cabffe8bada 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2418,6 +2418,8 @@ public class PurpurWorldConfig { +@@ -2414,6 +2414,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index c0efea82bacda565876b8a01ed1f520706a2d127..11609d1c8e1dc80886435571d7c6ee1a private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2432,6 +2434,28 @@ public class PurpurWorldConfig { +@@ -2428,6 +2430,28 @@ 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/0286-Allay-respect-item-NBT.patch b/patches/server/0286-Allay-respect-item-NBT.patch index 8e52ac823..26ee39652 100644 --- a/patches/server/0286-Allay-respect-item-NBT.patch +++ b/patches/server/0286-Allay-respect-item-NBT.patch @@ -44,10 +44,10 @@ index 910bf19c7325180f3121ae3982dddae9e4ea0e97..e8f42ad6cc32cb21584d8988fcf3d1e4 private boolean allayConsidersItemEqual(ItemStack stack, ItemStack stack2) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index af323d3136ca5d51ac122d5758251db965281020..b1312b36707aaae62d590994d8a3563901c32e94 100644 +index 6c8d7344dabb9b2c621052edb3584cabffe8bada..aeba23d63f0820a29a4885d037ff802ee5e894f1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1061,10 +1061,13 @@ public class PurpurWorldConfig { +@@ -1057,10 +1057,13 @@ public class PurpurWorldConfig { public boolean allayRidable = false; public boolean allayRidableInWater = false; public boolean allayControllable = true; diff --git a/patches/server/0291-Implement-squid-colors-for-rainglow-fabric-mod.patch b/patches/server/0291-Implement-squid-colors-for-rainglow-fabric-mod.patch index bc6610890..13a9fb443 100644 --- a/patches/server/0291-Implement-squid-colors-for-rainglow-fabric-mod.patch +++ b/patches/server/0291-Implement-squid-colors-for-rainglow-fabric-mod.patch @@ -40,10 +40,10 @@ index b7abcaa32341c292f9f884fa6319fd65596e1b37..5d6cddc221887be20ef75d688817dfe5 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b1312b36707aaae62d590994d8a3563901c32e94..88dc1c60a8f5d320f635219884896e7ca50422de 100644 +index aeba23d63f0820a29a4885d037ff802ee5e894f1..2816d652fa7a19917f3a26e425039ef9d61da777 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1670,6 +1670,7 @@ public class PurpurWorldConfig { +@@ -1666,6 +1666,7 @@ public class PurpurWorldConfig { public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; public boolean glowSquidAlwaysDropExp = false; @@ -51,7 +51,7 @@ index b1312b36707aaae62d590994d8a3563901c32e94..88dc1c60a8f5d320f635219884896e7c private void glowSquidSettings() { glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable); glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable); -@@ -1677,6 +1678,7 @@ public class PurpurWorldConfig { +@@ -1673,6 +1674,7 @@ public class PurpurWorldConfig { glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly); glowSquidTakeDamageFromWater = getBoolean("mobs.glow_squid.takes-damage-from-water", glowSquidTakeDamageFromWater); glowSquidAlwaysDropExp = getBoolean("mobs.glow_squid.always-drop-exp", glowSquidAlwaysDropExp); diff --git a/patches/server/0300-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0300-Add-option-to-allow-creeper-to-encircle-target-when-.patch index 07e240d23..72b56bf37 100644 --- a/patches/server/0300-Add-option-to-allow-creeper-to-encircle-target-when-.patch +++ b/patches/server/0300-Add-option-to-allow-creeper-to-encircle-target-when-.patch @@ -24,10 +24,10 @@ index e241ae250f4f04a17ef2c583d00b065a4ca56a4c..02b567e4e808e1a809d285ef39e1abc5 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9e24482e2dfe50a5503cdf20f0325320ecf79260..2808c30b7d74f1ca73d9b98ada30a9a818deac3b 100644 +index e4db3f7fc208af5fee26668229240cc383bcfdeb..16da0f32f16117fec977afaa47cc20eabedbdbd2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1326,6 +1326,7 @@ public class PurpurWorldConfig { +@@ -1322,6 +1322,7 @@ public class PurpurWorldConfig { public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; public double creeperHeadVisibilityPercent = 0.5D; @@ -35,7 +35,7 @@ index 9e24482e2dfe50a5503cdf20f0325320ecf79260..2808c30b7d74f1ca73d9b98ada30a9a8 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1344,6 +1345,7 @@ public class PurpurWorldConfig { +@@ -1340,6 +1341,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);