diff --git a/patches/server/0002-Purpur-config-files.patch b/patches/server/0002-Purpur-config-files.patch index 163966f27..dbf3b127c 100644 --- a/patches/server/0002-Purpur-config-files.patch +++ b/patches/server/0002-Purpur-config-files.patch @@ -172,7 +172,7 @@ index e072a5475a64d110f25ebcc871aa7703c2fc1e70..1913792032ef81a6f331cfdfc97052cf .withRequiredArg() diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..3fc92f92138d8223e18461758f5fe372b6552480 +index 0000000000000000000000000000000000000000..bd9ea8dfbd986c96000efb7dc36fc93d12a2c8b9 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -0,0 +1,175 @@ @@ -253,8 +253,8 @@ index 0000000000000000000000000000000000000000..3fc92f92138d8223e18461758f5fe372 + commands = new HashMap<>(); + commands.put("purpur", new PurpurCommand("purpur")); + -+ version = getInt("config-version", 30); -+ set("config-version", 30); ++ version = getInt("config-version", 31); ++ set("config-version", 31); + + readConfig(PurpurConfig.class, null); + diff --git a/patches/server/0069-Implement-bed-explosion-options.patch b/patches/server/0069-Implement-bed-explosion-options.patch index 7f3e1370b..ef1df4096 100644 --- a/patches/server/0069-Implement-bed-explosion-options.patch +++ b/patches/server/0069-Implement-bed-explosion-options.patch @@ -27,10 +27,10 @@ index f1a7c5202d4efbfaf5d88609d243f25f6817ecbe..812a93197774b8fbcb5745a5590717e1 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ed3170c111741fe7e0d0044d3c02da2d6352268d..a6a38979b3d7ea8a4a2bcba2f9c74df547ffcc75 100644 +index 4421f48e9dd433cdcff5b7c5ac249bae49a67bd8..e619b2cf060a8137bc8b3e7d8062e702b3f9e799 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -291,6 +291,22 @@ public class PurpurWorldConfig { +@@ -291,6 +291,27 @@ public class PurpurWorldConfig { }); } @@ -39,13 +39,18 @@ index ed3170c111741fe7e0d0044d3c02da2d6352268d..a6a38979b3d7ea8a4a2bcba2f9c74df5 + public boolean bedExplosionFire = true; + public net.minecraft.world.level.Level.ExplosionInteraction bedExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; + private void bedSettings() { ++ if (PurpurConfig.version < 31) { ++ if ("DESTROY".equals(getString("blocks.bed.explosion-effect", bedExplosionEffect.name()))) { ++ set("blocks.bed.explosion-effect", "BLOCK"); ++ } ++ } + bedExplode = getBoolean("blocks.bed.explode", bedExplode); + bedExplosionPower = getDouble("blocks.bed.explosion-power", bedExplosionPower); + bedExplosionFire = getBoolean("blocks.bed.explosion-fire", bedExplosionFire); + try { + bedExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.valueOf(getString("blocks.bed.explosion-effect", bedExplosionEffect.name())); + } catch (IllegalArgumentException e) { -+ log(Level.SEVERE, "Unknown value for `blocks.bed.explosion-effect`! Using default of `DESTROY`"); ++ log(Level.SEVERE, "Unknown value for `blocks.bed.explosion-effect`! Using default of `BLOCK`"); + bedExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; + } + } diff --git a/patches/server/0070-Implement-respawn-anchor-explosion-options.patch b/patches/server/0070-Implement-respawn-anchor-explosion-options.patch index 6a8dc763e..d1342f4ce 100644 --- a/patches/server/0070-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0070-Implement-respawn-anchor-explosion-options.patch @@ -18,10 +18,10 @@ index 53b35f003034e7f4c9dd8ccfaf77389163009453..de5d51eb67205d2f62582aea9465bbb9 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 a6a38979b3d7ea8a4a2bcba2f9c74df547ffcc75..7a01302e0ce1a89f2107cbb110ae4819daf118d2 100644 +index e619b2cf060a8137bc8b3e7d8062e702b3f9e799..aa04010dc4780f0f19937314f521208a164c2ae3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -328,6 +328,22 @@ public class PurpurWorldConfig { +@@ -333,6 +333,27 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } @@ -30,6 +30,11 @@ index a6a38979b3d7ea8a4a2bcba2f9c74df547ffcc75..7a01302e0ce1a89f2107cbb110ae4819 + public boolean respawnAnchorExplosionFire = true; + public net.minecraft.world.level.Level.ExplosionInteraction respawnAnchorExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; + private void respawnAnchorSettings() { ++ if (PurpurConfig.version < 31) { ++ if ("DESTROY".equals(getString("blocks.respawn_anchor.explosion-effect", respawnAnchorExplosionEffect.name()))) { ++ set("blocks.respawn_anchor.explosion-effect", "BLOCK"); ++ } ++ } + respawnAnchorExplode = getBoolean("blocks.respawn_anchor.explode", respawnAnchorExplode); + respawnAnchorExplosionPower = getDouble("blocks.respawn_anchor.explosion-power", respawnAnchorExplosionPower); + respawnAnchorExplosionFire = getBoolean("blocks.respawn_anchor.explosion-fire", respawnAnchorExplosionFire); diff --git a/patches/server/0075-Squid-EAR-immunity.patch b/patches/server/0075-Squid-EAR-immunity.patch index 830bddd0a..73df7eb6c 100644 --- a/patches/server/0075-Squid-EAR-immunity.patch +++ b/patches/server/0075-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 4c03d57fbed6501fd26cb8c745e042fe76b95835..d7f2a4a6b432c296ece503036de7b2e7fc8ad965 100644 +index 395634815198b7c754ee070783b20ca340ad8f09..dd5ff44bd1fbf6b55fa35ad5c889e2398bef60f0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1422,6 +1422,7 @@ public class PurpurWorldConfig { +@@ -1432,6 +1432,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidControllable = true; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index 4c03d57fbed6501fd26cb8c745e042fe76b95835..d7f2a4a6b432c296ece503036de7b2e7 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1431,6 +1432,7 @@ public class PurpurWorldConfig { +@@ -1441,6 +1442,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); diff --git a/patches/server/0076-Phantoms-burn-in-light.patch b/patches/server/0076-Phantoms-burn-in-light.patch index 116dc6ecb..63035e2af 100644 --- a/patches/server/0076-Phantoms-burn-in-light.patch +++ b/patches/server/0076-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 5cb9eeb5f33de2bbf34780976275641a8f584ece..cdbf56d05d09e1269493ef6a7c1730f229f2b0a8 100644 +index dd5ff44bd1fbf6b55fa35ad5c889e2398bef60f0..48f8ffce68f75142e29d9f71e3f245eb9c31f912 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1103,6 +1103,9 @@ public class PurpurWorldConfig { +@@ -1113,6 +1113,9 @@ public class PurpurWorldConfig { public double phantomSpawnLocalDifficultyChance = 3.0D; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -66,7 +66,7 @@ index 5cb9eeb5f33de2bbf34780976275641a8f584ece..cdbf56d05d09e1269493ef6a7c1730f2 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1133,6 +1136,9 @@ public class PurpurWorldConfig { +@@ -1143,6 +1146,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/0077-Configurable-villager-breeding.patch b/patches/server/0077-Configurable-villager-breeding.patch index dc8c9dee1..0b5a016d3 100644 --- a/patches/server/0077-Configurable-villager-breeding.patch +++ b/patches/server/0077-Configurable-villager-breeding.patch @@ -18,10 +18,10 @@ index ce70ddaf68cc0c4959fc520492b31f65deb7a3d6..80a0639c35906fdb3ed07f14395fc300 private boolean hungry() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a5102b1787b9d4d95c5d90ab0d24e8e53f81b038..f8fa8af8471a6c0194f7d303910d04a5d50f712e 100644 +index 48f8ffce68f75142e29d9f71e3f245eb9c31f912..6e97e7ac18695e8b0f1c9d333ba4b5afa3eee460 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1580,6 +1580,7 @@ public class PurpurWorldConfig { +@@ -1590,6 +1590,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -29,7 +29,7 @@ index a5102b1787b9d4d95c5d90ab0d24e8e53f81b038..f8fa8af8471a6c0194f7d303910d04a5 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1592,6 +1593,7 @@ public class PurpurWorldConfig { +@@ -1602,6 +1603,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/0078-Redstone-deactivates-spawners.patch b/patches/server/0078-Redstone-deactivates-spawners.patch index 22f266220..97af20a05 100644 --- a/patches/server/0078-Redstone-deactivates-spawners.patch +++ b/patches/server/0078-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 a93f0bc3b0f567118651acb3f7b71bc1ae1157a9..3cf911e9a9f58fbceed3f371c65cf946a8b31637 100644 +index 6e97e7ac18695e8b0f1c9d333ba4b5afa3eee460..218756b5db10fab3a0f32ff03a091838b2c87fe9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -356,6 +356,11 @@ public class PurpurWorldConfig { +@@ -366,6 +366,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch index 5c3f2861e..015af7ded 100644 --- a/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0080-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 ef6a8a5460f5f8994ce6712b11b58af15d217648..645368a53a15760660f1a683ebc8c14a7a49bedc 100644 +index b9dedd9a4318d82fbdc7393182ac07fae34779b1..141796ae466dcd2aa57f8662785bdb5140a3fe60 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 { +@@ -1617,6 +1617,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidableInWater = false; public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; @@ -33,7 +33,7 @@ index ef6a8a5460f5f8994ce6712b11b58af15d217648..645368a53a15760660f1a683ebc8c14a private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1617,6 +1618,7 @@ public class PurpurWorldConfig { +@@ -1627,6 +1628,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/server/0082-Dispensers-place-anvils-option.patch b/patches/server/0082-Dispensers-place-anvils-option.patch index 4de5d8f95..9545ff7e9 100644 --- a/patches/server/0082-Dispensers-place-anvils-option.patch +++ b/patches/server/0082-Dispensers-place-anvils-option.patch @@ -41,10 +41,10 @@ index a548d09fa7646254c34f41d30fbc1300e7cef3c1..4205a44473bd5131c9601d1cc56dd629 static void setEntityPokingOutOfBlock(BlockSource pointer, Entity entity, Direction direction) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 614051e304c04c4c561b91155a451671a76dfaf2..5f297cd2a0ea4661c6f59efce49abd6cb38a3042 100644 +index 141796ae466dcd2aa57f8662785bdb5140a3fe60..df1e48e325a6cec03cda2fe7471249f1d93b77f7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -317,8 +317,10 @@ public class PurpurWorldConfig { +@@ -322,8 +322,10 @@ public class PurpurWorldConfig { } public boolean dispenserApplyCursedArmor = true; diff --git a/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch index 132dffe81..5799ab0e1 100644 --- a/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0084-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 2358fcbaa13705ce80956514804aadf400aa53a9..25212d3a715cb1c9942101fe6ffac51b11916a2c 100644 +index ca70fd0cee8c0d8b4c398a8dc12c4f3bbadab665..0ae4a84f953c5f68d50124e6446df88f276ad2f6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -590,6 +590,7 @@ public class PurpurWorldConfig { +@@ -600,6 +600,7 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; @@ -28,7 +28,7 @@ index 2358fcbaa13705ce80956514804aadf400aa53a9..25212d3a715cb1c9942101fe6ffac51b private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -602,6 +603,7 @@ public class PurpurWorldConfig { +@@ -612,6 +613,7 @@ public class PurpurWorldConfig { set("mobs.dolphin.attributes.max_health", oldValue); } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); diff --git a/patches/server/0086-Stop-squids-floating-on-top-of-water.patch b/patches/server/0086-Stop-squids-floating-on-top-of-water.patch index 3665107bb..41783d898 100644 --- a/patches/server/0086-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0086-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 6548864871e91f7aed24ef4ca7b67699d79e8654..69c54739d8dd3b7810bbee210f5f80dca555c653 100644 +index 0ae4a84f953c5f68d50124e6446df88f276ad2f6..5a6da03ce41cc78a36dc0c4fb0f89bbbacb0a6da 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1447,6 +1447,7 @@ public class PurpurWorldConfig { +@@ -1457,6 +1457,7 @@ public class PurpurWorldConfig { public boolean squidControllable = true; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -65,7 +65,7 @@ index 6548864871e91f7aed24ef4ca7b67699d79e8654..69c54739d8dd3b7810bbee210f5f80dc private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1457,6 +1458,7 @@ public class PurpurWorldConfig { +@@ -1467,6 +1468,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/0090-Customizable-wither-health-and-healing.patch b/patches/server/0090-Customizable-wither-health-and-healing.patch index b11af9c36..ad07f4355 100644 --- a/patches/server/0090-Customizable-wither-health-and-healing.patch +++ b/patches/server/0090-Customizable-wither-health-and-healing.patch @@ -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 acdb6408fe44e452c1c58ad8954c3330abfd532f..be451ee8dc88b60556fd441cd914a4952437742c 100644 +index 3bd18d72f996d93e0c5c31a7fb143a29401fca75..d6a4e3dead9ffc7cc779cb1b8413c61308850a01 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1686,6 +1686,8 @@ public class PurpurWorldConfig { +@@ -1696,6 +1696,8 @@ public class PurpurWorldConfig { public boolean witherControllable = true; public double witherMaxY = 320D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index acdb6408fe44e452c1c58ad8954c3330abfd532f..be451ee8dc88b60556fd441cd914a495 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1701,6 +1703,8 @@ public class PurpurWorldConfig { +@@ -1711,6 +1713,8 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch index fc9f76d29..07853d97d 100644 --- a/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0094-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 231b76d2c3025e75b881f62796504954b0bb524d..75a3a8361726c12a6de63f4ecb3389c413704db0 100644 +index 34b1fa9b540bc42e13bf4a1949c266fc8a973398..d16469a057c6782bdd13d92ca114e89f93744238 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1819,6 +1819,7 @@ public class PurpurWorldConfig { +@@ -1829,6 +1829,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -82,7 +82,7 @@ index 231b76d2c3025e75b881f62796504954b0bb524d..75a3a8361726c12a6de63f4ecb3389c4 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1833,6 +1834,7 @@ public class PurpurWorldConfig { +@@ -1843,6 +1844,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/0096-Flying-squids-Oh-my.patch b/patches/server/0096-Flying-squids-Oh-my.patch index 0c45e0830..440c34749 100644 --- a/patches/server/0096-Flying-squids-Oh-my.patch +++ b/patches/server/0096-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 75a3a8361726c12a6de63f4ecb3389c413704db0..761433576c8a5c810a23a10db11f49ae31965fb5 100644 +index d16469a057c6782bdd13d92ca114e89f93744238..0d0bfec73d3b4419220d7f82ff6d4d6c3778a381 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -882,10 +882,12 @@ public class PurpurWorldConfig { +@@ -892,10 +892,12 @@ public class PurpurWorldConfig { public boolean glowSquidRidable = false; public boolean glowSquidControllable = true; public double glowSquidMaxHealth = 10.0D; @@ -74,7 +74,7 @@ index 75a3a8361726c12a6de63f4ecb3389c413704db0..761433576c8a5c810a23a10db11f49ae } public boolean goatRidable = false; -@@ -1506,6 +1508,7 @@ public class PurpurWorldConfig { +@@ -1516,6 +1518,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -82,7 +82,7 @@ index 75a3a8361726c12a6de63f4ecb3389c413704db0..761433576c8a5c810a23a10db11f49ae private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1517,6 +1520,7 @@ public class PurpurWorldConfig { +@@ -1527,6 +1530,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/0100-Furnace-uses-lava-from-underneath.patch b/patches/server/0100-Furnace-uses-lava-from-underneath.patch index d19cd53ee..64bc97258 100644 --- a/patches/server/0100-Furnace-uses-lava-from-underneath.patch +++ b/patches/server/0100-Furnace-uses-lava-from-underneath.patch @@ -47,10 +47,10 @@ 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 df653093c4d00f45f1536c9c9cb2293ad69f9e2e..0acc57bf9ca2a2cfef8a662c8893ca1bc34b9e9a 100644 +index c15e6d7a666ddde4d6fc957ca2986d4af3eaebf9..3593489c838c514be2703d7f81e2eb825fc5cd1b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -411,6 +411,17 @@ public class PurpurWorldConfig { +@@ -416,6 +416,17 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0102-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0102-Ability-to-re-add-farmland-mechanics-from-Alpha.patch index c37bef3e4..7e4ca1732 100644 --- a/patches/server/0102-Ability-to-re-add-farmland-mechanics-from-Alpha.patch +++ b/patches/server/0102-Ability-to-re-add-farmland-mechanics-from-Alpha.patch @@ -24,10 +24,10 @@ index 4208833252a5b5c74d294dc3435869d71d774e37..a3ff99c461dd862733816d9d1204cf8b return; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 72a409ca200864040eb317fef3090e5719c076f6..df0d0cdf8a1d8e8119a35445a0364289dce0ab03 100644 +index 14f756a561ceb07772126715f00f11b14d5f29b5..49c714c07903b8620051f256b36ba62d59c3fac4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -412,8 +412,10 @@ public class PurpurWorldConfig { +@@ -417,8 +417,10 @@ public class PurpurWorldConfig { } public boolean farmlandGetsMoistFromBelow = false; diff --git a/patches/server/0104-Make-entity-breeding-times-configurable.patch b/patches/server/0104-Make-entity-breeding-times-configurable.patch index f2cc60537..c8726998e 100644 --- a/patches/server/0104-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0104-Make-entity-breeding-times-configurable.patch @@ -509,10 +509,10 @@ index 2d06a3ac4a5763cf948fc578ff5320c22c01c219..56dba90d0bb76b85cf21ace7ad50531f @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fbadbbeb08 100644 +index 213ee1230206fe9afcf89b1be5af738cd64afbb1..7ebe655892cd22e06e41eea0cdb705ccbb123622 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -505,10 +505,12 @@ public class PurpurWorldConfig { +@@ -515,10 +515,12 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; @@ -525,7 +525,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean batRidable = false; -@@ -541,6 +543,7 @@ public class PurpurWorldConfig { +@@ -551,6 +553,7 @@ public class PurpurWorldConfig { public boolean beeControllable = true; public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; @@ -533,7 +533,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -552,6 +555,7 @@ public class PurpurWorldConfig { +@@ -562,6 +565,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -541,7 +541,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean blazeRidable = false; -@@ -572,6 +576,11 @@ public class PurpurWorldConfig { +@@ -582,6 +586,11 @@ public class PurpurWorldConfig { blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); } @@ -553,7 +553,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb public boolean catRidable = false; public boolean catRidableInWater = false; public boolean catControllable = true; -@@ -579,6 +588,7 @@ public class PurpurWorldConfig { +@@ -589,6 +598,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -561,7 +561,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -592,6 +602,7 @@ public class PurpurWorldConfig { +@@ -602,6 +612,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); @@ -569,7 +569,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean caveSpiderRidable = false; -@@ -615,6 +626,7 @@ public class PurpurWorldConfig { +@@ -625,6 +636,7 @@ public class PurpurWorldConfig { public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -577,7 +577,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -626,6 +638,7 @@ public class PurpurWorldConfig { +@@ -636,6 +648,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -585,7 +585,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean codRidable = false; -@@ -647,6 +660,7 @@ public class PurpurWorldConfig { +@@ -657,6 +670,7 @@ public class PurpurWorldConfig { public boolean cowControllable = true; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -593,7 +593,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -658,6 +672,7 @@ public class PurpurWorldConfig { +@@ -668,6 +682,7 @@ public class PurpurWorldConfig { } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); @@ -601,7 +601,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean creeperRidable = false; -@@ -709,6 +724,7 @@ public class PurpurWorldConfig { +@@ -719,6 +734,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -609,7 +609,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -724,6 +740,7 @@ public class PurpurWorldConfig { +@@ -734,6 +750,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); @@ -617,7 +617,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean drownedRidable = false; -@@ -843,6 +860,7 @@ public class PurpurWorldConfig { +@@ -853,6 +870,7 @@ public class PurpurWorldConfig { public boolean foxControllable = true; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -625,7 +625,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -854,17 +872,20 @@ public class PurpurWorldConfig { +@@ -864,17 +882,20 @@ public class PurpurWorldConfig { } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); @@ -646,7 +646,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean ghastRidable = false; -@@ -932,11 +953,13 @@ public class PurpurWorldConfig { +@@ -942,11 +963,13 @@ public class PurpurWorldConfig { public boolean goatRidableInWater = false; public boolean goatControllable = true; public double goatMaxHealth = 10.0D; @@ -660,7 +660,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean guardianRidable = false; -@@ -957,6 +980,7 @@ public class PurpurWorldConfig { +@@ -967,6 +990,7 @@ public class PurpurWorldConfig { public boolean hoglinRidableInWater = false; public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; @@ -668,7 +668,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -967,6 +991,7 @@ public class PurpurWorldConfig { +@@ -977,6 +1001,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -676,7 +676,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean horseRidableInWater = false; -@@ -976,6 +1001,7 @@ public class PurpurWorldConfig { +@@ -986,6 +1011,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -684,7 +684,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -991,6 +1017,7 @@ public class PurpurWorldConfig { +@@ -1001,6 +1027,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); @@ -692,7 +692,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean huskRidable = false; -@@ -1068,6 +1095,7 @@ public class PurpurWorldConfig { +@@ -1078,6 +1105,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -700,7 +700,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1085,6 +1113,7 @@ public class PurpurWorldConfig { +@@ -1095,6 +1123,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); @@ -708,7 +708,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean magmaCubeRidable = false; -@@ -1113,6 +1142,7 @@ public class PurpurWorldConfig { +@@ -1123,6 +1152,7 @@ public class PurpurWorldConfig { public boolean mooshroomRidableInWater = false; public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; @@ -716,7 +716,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1123,6 +1153,7 @@ public class PurpurWorldConfig { +@@ -1133,6 +1163,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -724,7 +724,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean muleRidableInWater = false; -@@ -1132,6 +1163,7 @@ public class PurpurWorldConfig { +@@ -1142,6 +1173,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -732,7 +732,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1147,12 +1179,14 @@ public class PurpurWorldConfig { +@@ -1157,12 +1189,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); @@ -747,7 +747,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1163,12 +1197,14 @@ public class PurpurWorldConfig { +@@ -1173,12 +1207,14 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -762,7 +762,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1179,6 +1215,7 @@ public class PurpurWorldConfig { +@@ -1189,6 +1225,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -770,7 +770,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean parrotRidable = false; -@@ -1262,6 +1299,7 @@ public class PurpurWorldConfig { +@@ -1272,6 +1309,7 @@ public class PurpurWorldConfig { public boolean pigControllable = true; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -778,7 +778,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1273,6 +1311,7 @@ public class PurpurWorldConfig { +@@ -1283,6 +1321,7 @@ public class PurpurWorldConfig { } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); @@ -786,7 +786,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean piglinRidable = false; -@@ -1329,6 +1368,7 @@ public class PurpurWorldConfig { +@@ -1339,6 +1378,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -794,7 +794,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1342,6 +1382,7 @@ public class PurpurWorldConfig { +@@ -1352,6 +1392,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; @@ -802,7 +802,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean pufferfishRidable = false; -@@ -1364,6 +1405,7 @@ public class PurpurWorldConfig { +@@ -1374,6 +1415,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -810,7 +810,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1376,6 +1418,7 @@ public class PurpurWorldConfig { +@@ -1386,6 +1428,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); @@ -818,7 +818,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean ravagerRidable = false; -@@ -1412,6 +1455,7 @@ public class PurpurWorldConfig { +@@ -1422,6 +1465,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = false; public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; @@ -826,7 +826,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1422,6 +1466,7 @@ public class PurpurWorldConfig { +@@ -1432,6 +1476,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -834,7 +834,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean shulkerRidable = false; -@@ -1597,6 +1642,7 @@ public class PurpurWorldConfig { +@@ -1607,6 +1652,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public boolean striderControllable = true; public double striderMaxHealth = 20.0D; @@ -842,7 +842,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1607,6 +1653,7 @@ public class PurpurWorldConfig { +@@ -1617,6 +1663,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -850,7 +850,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean tadpoleRidable = false; -@@ -1627,6 +1674,7 @@ public class PurpurWorldConfig { +@@ -1637,6 +1684,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -858,7 +858,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1644,6 +1692,7 @@ public class PurpurWorldConfig { +@@ -1654,6 +1702,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); @@ -866,7 +866,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean tropicalFishRidable = false; -@@ -1664,6 +1713,7 @@ public class PurpurWorldConfig { +@@ -1674,6 +1723,7 @@ public class PurpurWorldConfig { public boolean turtleRidableInWater = false; public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; @@ -874,7 +874,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1674,6 +1724,7 @@ public class PurpurWorldConfig { +@@ -1684,6 +1734,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); @@ -882,7 +882,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean vexRidable = false; -@@ -1701,6 +1752,7 @@ public class PurpurWorldConfig { +@@ -1711,6 +1762,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; @@ -890,7 +890,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1714,6 +1766,7 @@ public class PurpurWorldConfig { +@@ -1724,6 +1776,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); @@ -898,7 +898,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb } public boolean vindicatorRidable = false; -@@ -1825,6 +1878,7 @@ public class PurpurWorldConfig { +@@ -1835,6 +1888,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -906,7 +906,7 @@ index 4195261edfb9119cced1250443c7392238cd19c6..0ce0d80860071b5e77b08e02a58007fb private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1835,6 +1889,7 @@ public class PurpurWorldConfig { +@@ -1845,6 +1899,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 155985c50..05f890d3e 100644 --- a/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -21,10 +21,10 @@ index f130f3f8ceb5ab30e0b53e8b78281bfb953af5a9..72bddd57059e4dfffa0c5ac04bb3c80c 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 08f73c8e1a54769f1c292f0a49dac7dc4a5263c0..216167f1f3b80cc9f84999165aa6b5057f22cf28 100644 +index d3c9285d5f7aa51367e5052ab8b00a9bd269dddd..6c1f8b9aa052f78a59bb3dcbe0c3f480b73e9f34 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -816,6 +816,7 @@ public class PurpurWorldConfig { +@@ -826,6 +826,7 @@ public class PurpurWorldConfig { public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index 08f73c8e1a54769f1c292f0a49dac7dc4a5263c0..216167f1f3b80cc9f84999165aa6b505 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -827,6 +828,7 @@ public class PurpurWorldConfig { +@@ -837,6 +838,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); diff --git a/patches/server/0111-Snow-Golem-rate-of-fire-config.patch b/patches/server/0111-Snow-Golem-rate-of-fire-config.patch index 98cf94180..7d6fe73d2 100644 --- a/patches/server/0111-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0111-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 72eabfd1543177cb02ff33f98d20b7f0e57f386e..e64db82ac1305a89a692e851040bd0b6a1202282 100644 +index 24154b253a27bd72f8cfcec700fc385d535b84a3..77859fdf49d86c5577457abdd1594ad9b6c1df61 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1588,6 +1588,10 @@ public class PurpurWorldConfig { +@@ -1598,6 +1598,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index 72eabfd1543177cb02ff33f98d20b7f0e57f386e..e64db82ac1305a89a692e851040bd0b6 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1601,6 +1605,10 @@ public class PurpurWorldConfig { +@@ -1611,6 +1615,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/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index f3d0351e7..b11a6d930 100644 --- a/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -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 e64db82ac1305a89a692e851040bd0b6a1202282..60b2375d5dceeda700a20a4e7f5d19c0dcd0e8e0 100644 +index 77859fdf49d86c5577457abdd1594ad9b6c1df61..1acfc3776bdaaef852c67bc9f7b20e6365df684e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1778,6 +1778,8 @@ public class PurpurWorldConfig { +@@ -1788,6 +1788,8 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -193,7 +193,7 @@ index e64db82ac1305a89a692e851040bd0b6a1202282..60b2375d5dceeda700a20a4e7f5d19c0 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1792,6 +1794,8 @@ public class PurpurWorldConfig { +@@ -1802,6 +1804,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/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index 396feabea..c146662da 100644 --- a/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0114-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 60b2375d5dceeda700a20a4e7f5d19c0dcd0e8e0..49db5068a28a1ee08b076aeef3d9f10c5c206254 100644 +index 1acfc3776bdaaef852c67bc9f7b20e6365df684e..89b2a4c5adb70c8790dad34a5474011f9ad681b2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2022,6 +2022,7 @@ public class PurpurWorldConfig { +@@ -2032,6 +2032,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 60b2375d5dceeda700a20a4e7f5d19c0dcd0e8e0..49db5068a28a1ee08b076aeef3d9f10c private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2036,5 +2037,6 @@ public class PurpurWorldConfig { +@@ -2046,5 +2047,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/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch index 65aec8410..3a86c52e2 100644 --- a/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0115-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 49db5068a28a1ee08b076aeef3d9f10c5c206254..4df6138a186d3dc8701a580596a27c0676d5c65a 100644 +index 89b2a4c5adb70c8790dad34a5474011f9ad681b2..419e89bd2f825d449238f0d7234d0f33abc5ec05 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1907,6 +1907,8 @@ public class PurpurWorldConfig { +@@ -1917,6 +1917,8 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -234,7 +234,7 @@ index 49db5068a28a1ee08b076aeef3d9f10c5c206254..4df6138a186d3dc8701a580596a27c06 public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1918,6 +1920,8 @@ public class PurpurWorldConfig { +@@ -1928,6 +1930,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0116-Configurable-default-collar-color.patch b/patches/server/0116-Configurable-default-collar-color.patch index f7bdb328a..d689c52e2 100644 --- a/patches/server/0116-Configurable-default-collar-color.patch +++ b/patches/server/0116-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 4df6138a186d3dc8701a580596a27c0676d5c65a..c7e0b1bc3b07bf7f163978348c5cf34d09f85d26 100644 +index 419e89bd2f825d449238f0d7234d0f33abc5ec05..f87081b6424a58bee2f74c1a7f85d0a388bac3cd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -604,6 +604,7 @@ public class PurpurWorldConfig { +@@ -614,6 +614,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -54,7 +54,7 @@ index 4df6138a186d3dc8701a580596a27c0676d5c65a..c7e0b1bc3b07bf7f163978348c5cf34d private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -618,6 +619,11 @@ public class PurpurWorldConfig { +@@ -628,6 +629,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 4df6138a186d3dc8701a580596a27c0676d5c65a..c7e0b1bc3b07bf7f163978348c5cf34d } public boolean caveSpiderRidable = false; -@@ -1907,6 +1913,7 @@ public class PurpurWorldConfig { +@@ -1917,6 +1923,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -74,7 +74,7 @@ index 4df6138a186d3dc8701a580596a27c0676d5c65a..c7e0b1bc3b07bf7f163978348c5cf34d public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1920,6 +1927,11 @@ public class PurpurWorldConfig { +@@ -1930,6 +1937,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0117-Phantom-flames-on-swoop.patch b/patches/server/0117-Phantom-flames-on-swoop.patch index 0b799afaf..9b4344d28 100644 --- a/patches/server/0117-Phantom-flames-on-swoop.patch +++ b/patches/server/0117-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 87951bef82e17c96299f17ed559d39f7c1100bf0..dea71dc10747f814a33f2e0dc8fe022b8acba3d1 100644 +index f87081b6424a58bee2f74c1a7f85d0a388bac3cd..7312198c3059058de967f4caf5ca0bcc0a31f445 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1282,6 +1282,7 @@ public class PurpurWorldConfig { +@@ -1292,6 +1292,7 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -28,7 +28,7 @@ index 87951bef82e17c96299f17ed559d39f7c1100bf0..dea71dc10747f814a33f2e0dc8fe022b private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1315,6 +1316,7 @@ public class PurpurWorldConfig { +@@ -1325,6 +1326,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/0118-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0118-Option-for-chests-to-open-even-with-a-solid-block-on.patch index 15db1c692..85da2c15a 100644 --- a/patches/server/0118-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/server/0118-Option-for-chests-to-open-even-with-a-solid-block-on.patch @@ -17,10 +17,10 @@ index c6b57d45383441aa35510e759ce3cb82bc98f305..330ff3bc5fd8625e37b79e1204eddbe8 return world.getBlockState(blockposition1).isRedstoneConductor(world, blockposition1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ce7477b823d8e7516cc67bb381ab4ffc81996879..7f0454cdda13b145dc6ed3209ddd60f4363ee3c4 100644 +index 7312198c3059058de967f4caf5ca0bcc0a31f445..615ceb5c0d465de3e86e5b6556b73e08c8bb9baf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -421,6 +421,11 @@ public class PurpurWorldConfig { +@@ -426,6 +426,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0120-Striders-give-saddle-back.patch b/patches/server/0120-Striders-give-saddle-back.patch index 5397f0866..cd885b8c5 100644 --- a/patches/server/0120-Striders-give-saddle-back.patch +++ b/patches/server/0120-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 0569eb47d4b5d5ae318cbeadeb5a855695ade43e..d761febcea8b9e4f139cd59f916a29181d9f40c5 100644 +index 615ceb5c0d465de3e86e5b6556b73e08c8bb9baf..3ad07d56faf7bf206d24d2c0a1d8790c3e910227 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1681,6 +1681,7 @@ public class PurpurWorldConfig { +@@ -1691,6 +1691,7 @@ public class PurpurWorldConfig { public boolean striderControllable = true; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -40,7 +40,7 @@ index 0569eb47d4b5d5ae318cbeadeb5a855695ade43e..d761febcea8b9e4f139cd59f916a2918 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1692,6 +1693,7 @@ public class PurpurWorldConfig { +@@ -1702,6 +1703,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/0124-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch index 48b48bde1..2e3f03267 100644 --- a/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch @@ -374,7 +374,7 @@ index d54a46fc8d78df54777e4a7a250a8d0ae74e9831..4eeb777a49556c54a3f31c1b9d755b11 return true; // Purpur end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac118310c7d 100644 +index 992f6aeb2e75217d997db528de70c05a6a689cc1..56ffdcc2a4546bff83979d4d7071fbce79617d46 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 { @@ -401,7 +401,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight); voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); -@@ -446,9 +452,11 @@ public class PurpurWorldConfig { +@@ -451,9 +457,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -413,7 +413,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -475,6 +483,11 @@ public class PurpurWorldConfig { +@@ -480,6 +488,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } @@ -425,7 +425,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -504,10 +517,12 @@ public class PurpurWorldConfig { +@@ -514,10 +527,12 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; @@ -438,7 +438,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean waterInfinite = true; -@@ -720,6 +735,7 @@ public class PurpurWorldConfig { +@@ -730,6 +745,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -446,7 +446,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -732,6 +748,7 @@ public class PurpurWorldConfig { +@@ -742,6 +758,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 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean dolphinRidable = false; -@@ -826,6 +843,7 @@ public class PurpurWorldConfig { +@@ -836,6 +853,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -462,7 +462,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -842,6 +860,7 @@ public class PurpurWorldConfig { +@@ -852,6 +870,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 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean endermanRidable = false; -@@ -850,6 +869,7 @@ public class PurpurWorldConfig { +@@ -860,6 +879,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -478,7 +478,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -862,6 +882,7 @@ public class PurpurWorldConfig { +@@ -872,6 +892,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 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean endermiteRidable = false; -@@ -884,6 +905,7 @@ public class PurpurWorldConfig { +@@ -894,6 +915,7 @@ public class PurpurWorldConfig { public boolean evokerRidableInWater = false; public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; @@ -494,7 +494,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -894,6 +916,7 @@ public class PurpurWorldConfig { +@@ -904,6 +926,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -502,7 +502,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean foxRidable = false; -@@ -902,6 +925,7 @@ public class PurpurWorldConfig { +@@ -912,6 +935,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -510,7 +510,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -914,6 +938,7 @@ public class PurpurWorldConfig { +@@ -924,6 +948,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 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean frogRidable = false; -@@ -1361,6 +1386,7 @@ public class PurpurWorldConfig { +@@ -1371,6 +1396,7 @@ public class PurpurWorldConfig { public boolean piglinRidableInWater = false; public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; @@ -526,7 +526,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1371,6 +1397,7 @@ public class PurpurWorldConfig { +@@ -1381,6 +1407,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -534,7 +534,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean piglinBruteRidable = false; -@@ -1393,6 +1420,7 @@ public class PurpurWorldConfig { +@@ -1403,6 +1430,7 @@ public class PurpurWorldConfig { public boolean pillagerRidableInWater = false; public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; @@ -542,7 +542,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1403,6 +1431,7 @@ public class PurpurWorldConfig { +@@ -1413,6 +1441,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -550,7 +550,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean polarBearRidable = false; -@@ -1449,6 +1478,7 @@ public class PurpurWorldConfig { +@@ -1459,6 +1488,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -558,7 +558,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1462,12 +1492,14 @@ public class PurpurWorldConfig { +@@ -1472,12 +1502,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 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1478,6 +1510,7 @@ public class PurpurWorldConfig { +@@ -1488,6 +1520,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -581,7 +581,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean salmonRidable = false; -@@ -1499,6 +1532,7 @@ public class PurpurWorldConfig { +@@ -1509,6 +1542,7 @@ public class PurpurWorldConfig { public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -589,7 +589,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1510,6 +1544,7 @@ public class PurpurWorldConfig { +@@ -1520,6 +1554,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 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean shulkerRidable = false; -@@ -1532,6 +1567,7 @@ public class PurpurWorldConfig { +@@ -1542,6 +1577,7 @@ public class PurpurWorldConfig { public boolean silverfishRidableInWater = false; public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; @@ -605,7 +605,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1542,6 +1578,7 @@ public class PurpurWorldConfig { +@@ -1552,6 +1588,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -613,7 +613,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean skeletonRidable = false; -@@ -1618,6 +1655,7 @@ public class PurpurWorldConfig { +@@ -1628,6 +1665,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -621,7 +621,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1635,6 +1673,7 @@ public class PurpurWorldConfig { +@@ -1645,6 +1683,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 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean squidRidable = false; -@@ -1808,6 +1847,7 @@ public class PurpurWorldConfig { +@@ -1818,6 +1857,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -637,7 +637,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1824,6 +1864,7 @@ public class PurpurWorldConfig { +@@ -1834,6 +1874,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 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean vindicatorRidable = false; -@@ -1896,6 +1937,7 @@ public class PurpurWorldConfig { +@@ -1906,6 +1947,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -653,7 +653,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1913,6 +1955,7 @@ public class PurpurWorldConfig { +@@ -1923,6 +1965,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 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 } public boolean witherSkeletonRidable = false; -@@ -1984,6 +2027,7 @@ public class PurpurWorldConfig { +@@ -1994,6 +2037,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -669,7 +669,7 @@ index 86076fc3c6ede94f1b71389dcd10de6aff5b8c63..851b31b6cfa7db4414ab3489bdcdeac1 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1999,6 +2043,7 @@ public class PurpurWorldConfig { +@@ -2009,6 +2053,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/0127-Farmland-trampling-changes.patch b/patches/server/0127-Farmland-trampling-changes.patch index bd0380189..2e9a02083 100644 --- a/patches/server/0127-Farmland-trampling-changes.patch +++ b/patches/server/0127-Farmland-trampling-changes.patch @@ -37,10 +37,10 @@ index d92ea9f29b9d919871662977d3e3eb41ddf2eb35..e5a3e3a4367dfb924624a913b816b3fd if (CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.DIRT.defaultBlockState()).isCancelled()) { return; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1a26ba2b0eb2126278b052a41e80944c864dd74c..08501fcd8b74a378b5294b96f379ecdc0d67f494 100644 +index db2e69bc1882eedd4800eca54da69d350fe4ec7a..b6d531a34a1e29f5956ee3b27dacaedf73711e7c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -459,10 +459,16 @@ public class PurpurWorldConfig { +@@ -464,10 +464,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch index 2c928072d..c7eeea12e 100644 --- a/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch @@ -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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a3089a10907 100644 +index 63da935f57a9910408b6fd78eb9988c7bf45cde5..3819a99e94520810550dd2752916e6f1b5af4537 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -572,11 +572,13 @@ public class PurpurWorldConfig { +@@ -582,11 +582,13 @@ public class PurpurWorldConfig { public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; @@ -1214,7 +1214,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean batRidable = false; -@@ -591,6 +593,7 @@ public class PurpurWorldConfig { +@@ -601,6 +603,7 @@ public class PurpurWorldConfig { public double batArmor = 0.0D; public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; @@ -1222,7 +1222,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -602,6 +605,7 @@ public class PurpurWorldConfig { +@@ -612,6 +615,7 @@ public class PurpurWorldConfig { set("mobs.bat.attributes.max_health", oldValue); } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); @@ -1230,7 +1230,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean beeRidable = false; -@@ -610,6 +614,7 @@ public class PurpurWorldConfig { +@@ -620,6 +624,7 @@ public class PurpurWorldConfig { public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; @@ -1238,7 +1238,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -622,6 +627,7 @@ public class PurpurWorldConfig { +@@ -632,6 +637,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean blazeRidable = false; -@@ -629,6 +635,7 @@ public class PurpurWorldConfig { +@@ -639,6 +645,7 @@ public class PurpurWorldConfig { public boolean blazeControllable = true; public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; @@ -1254,7 +1254,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -640,6 +647,7 @@ public class PurpurWorldConfig { +@@ -650,6 +657,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -1262,7 +1262,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public int camelBreedingTicks = 6000; -@@ -656,6 +664,7 @@ public class PurpurWorldConfig { +@@ -666,6 +674,7 @@ public class PurpurWorldConfig { public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; @@ -1270,7 +1270,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -675,12 +684,14 @@ public class PurpurWorldConfig { +@@ -685,12 +694,14 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { catDefaultCollarColor = DyeColor.RED; } @@ -1285,7 +1285,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -691,6 +702,7 @@ public class PurpurWorldConfig { +@@ -701,6 +712,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean chickenRidable = false; -@@ -699,6 +711,7 @@ public class PurpurWorldConfig { +@@ -709,6 +721,7 @@ public class PurpurWorldConfig { public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; @@ -1301,7 +1301,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -711,11 +724,13 @@ public class PurpurWorldConfig { +@@ -721,11 +734,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -725,6 +740,7 @@ public class PurpurWorldConfig { +@@ -735,6 +750,7 @@ public class PurpurWorldConfig { set("mobs.cod.attributes.max_health", oldValue); } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); @@ -1323,7 +1323,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean cowRidable = false; -@@ -733,6 +749,7 @@ public class PurpurWorldConfig { +@@ -743,6 +759,7 @@ public class PurpurWorldConfig { public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; @@ -1331,7 +1331,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -745,6 +762,7 @@ public class PurpurWorldConfig { +@@ -755,6 +772,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean creeperRidable = false; -@@ -754,6 +772,7 @@ public class PurpurWorldConfig { +@@ -764,6 +782,7 @@ public class PurpurWorldConfig { public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; @@ -1347,7 +1347,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -767,6 +786,7 @@ public class PurpurWorldConfig { +@@ -777,6 +796,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean dolphinRidable = false; -@@ -776,6 +796,7 @@ public class PurpurWorldConfig { +@@ -786,6 +806,7 @@ public class PurpurWorldConfig { public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; @@ -1363,7 +1363,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -789,6 +810,7 @@ public class PurpurWorldConfig { +@@ -799,6 +820,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean donkeyRidableInWater = false; -@@ -799,6 +821,7 @@ public class PurpurWorldConfig { +@@ -809,6 +831,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; @@ -1379,7 +1379,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -815,6 +838,7 @@ public class PurpurWorldConfig { +@@ -825,6 +848,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean drownedRidable = false; -@@ -825,6 +849,7 @@ public class PurpurWorldConfig { +@@ -835,6 +859,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1395,7 +1395,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -839,11 +864,13 @@ public class PurpurWorldConfig { +@@ -849,11 +874,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -853,6 +880,7 @@ public class PurpurWorldConfig { +@@ -863,6 +890,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean enderDragonRidable = false; -@@ -862,6 +890,7 @@ public class PurpurWorldConfig { +@@ -872,6 +900,7 @@ public class PurpurWorldConfig { public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; @@ -1425,7 +1425,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -879,6 +908,7 @@ public class PurpurWorldConfig { +@@ -889,6 +918,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean endermanRidable = false; -@@ -888,6 +918,7 @@ public class PurpurWorldConfig { +@@ -898,6 +928,7 @@ public class PurpurWorldConfig { public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; @@ -1441,7 +1441,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -901,12 +932,14 @@ public class PurpurWorldConfig { +@@ -911,12 +942,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -917,6 +950,7 @@ public class PurpurWorldConfig { +@@ -927,6 +960,7 @@ public class PurpurWorldConfig { set("mobs.endermite.attributes.max_health", oldValue); } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); @@ -1464,7 +1464,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean evokerRidable = false; -@@ -924,6 +958,7 @@ public class PurpurWorldConfig { +@@ -934,6 +968,7 @@ public class PurpurWorldConfig { public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; @@ -1472,7 +1472,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -935,6 +970,7 @@ public class PurpurWorldConfig { +@@ -945,6 +980,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean foxRidable = false; -@@ -944,6 +980,7 @@ public class PurpurWorldConfig { +@@ -954,6 +990,7 @@ public class PurpurWorldConfig { public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; @@ -1488,7 +1488,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -957,6 +994,7 @@ public class PurpurWorldConfig { +@@ -967,6 +1004,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean frogRidable = false; -@@ -977,6 +1015,7 @@ public class PurpurWorldConfig { +@@ -987,6 +1025,7 @@ public class PurpurWorldConfig { public boolean ghastControllable = true; public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; @@ -1504,7 +1504,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -988,6 +1027,7 @@ public class PurpurWorldConfig { +@@ -998,6 +1037,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max_health", oldValue); } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); @@ -1512,7 +1512,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean giantRidable = false; -@@ -1000,6 +1040,7 @@ public class PurpurWorldConfig { +@@ -1010,6 +1050,7 @@ public class PurpurWorldConfig { public float giantJumpHeight = 1.0F; public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; @@ -1520,7 +1520,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1020,17 +1061,20 @@ public class PurpurWorldConfig { +@@ -1030,17 +1071,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean goatRidable = false; -@@ -1038,17 +1082,20 @@ public class PurpurWorldConfig { +@@ -1048,17 +1092,20 @@ public class PurpurWorldConfig { public boolean goatControllable = true; public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; @@ -1562,7 +1562,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1058,6 +1105,7 @@ public class PurpurWorldConfig { +@@ -1068,6 +1115,7 @@ public class PurpurWorldConfig { set("mobs.guardian.attributes.max_health", oldValue); } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); @@ -1570,7 +1570,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean hoglinRidable = false; -@@ -1065,6 +1113,7 @@ public class PurpurWorldConfig { +@@ -1075,6 +1123,7 @@ public class PurpurWorldConfig { public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; @@ -1578,7 +1578,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1076,6 +1125,7 @@ public class PurpurWorldConfig { +@@ -1086,6 +1135,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean horseRidableInWater = false; -@@ -1086,6 +1136,7 @@ public class PurpurWorldConfig { +@@ -1096,6 +1146,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; @@ -1594,7 +1594,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1102,6 +1153,7 @@ public class PurpurWorldConfig { +@@ -1112,6 +1163,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean huskRidable = false; -@@ -1112,6 +1164,7 @@ public class PurpurWorldConfig { +@@ -1122,6 +1174,7 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1610,7 +1610,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1126,6 +1179,7 @@ public class PurpurWorldConfig { +@@ -1136,6 +1189,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean illusionerRidable = false; -@@ -1134,6 +1188,7 @@ public class PurpurWorldConfig { +@@ -1144,6 +1198,7 @@ public class PurpurWorldConfig { public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; @@ -1626,7 +1626,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1150,6 +1205,7 @@ public class PurpurWorldConfig { +@@ -1160,6 +1215,7 @@ public class PurpurWorldConfig { set("mobs.illusioner.attributes.max_health", oldValue); } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); @@ -1634,7 +1634,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean ironGolemRidable = false; -@@ -1157,6 +1213,7 @@ public class PurpurWorldConfig { +@@ -1167,6 +1223,7 @@ public class PurpurWorldConfig { public boolean ironGolemControllable = true; public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; @@ -1642,7 +1642,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1168,6 +1225,7 @@ public class PurpurWorldConfig { +@@ -1178,6 +1235,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean llamaRidable = false; -@@ -1180,6 +1238,7 @@ public class PurpurWorldConfig { +@@ -1190,6 +1248,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; @@ -1658,7 +1658,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1198,6 +1257,7 @@ public class PurpurWorldConfig { +@@ -1208,6 +1267,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean magmaCubeRidable = false; -@@ -1207,6 +1267,7 @@ public class PurpurWorldConfig { +@@ -1217,6 +1277,7 @@ public class PurpurWorldConfig { public String magmaCubeAttackDamage = "size"; public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); @@ -1674,7 +1674,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1220,6 +1281,7 @@ public class PurpurWorldConfig { +@@ -1230,6 +1291,7 @@ public class PurpurWorldConfig { magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage); magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); @@ -1682,7 +1682,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean mooshroomRidable = false; -@@ -1227,6 +1289,7 @@ public class PurpurWorldConfig { +@@ -1237,6 +1299,7 @@ public class PurpurWorldConfig { public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; @@ -1690,7 +1690,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1238,6 +1301,7 @@ public class PurpurWorldConfig { +@@ -1248,6 +1311,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean muleRidableInWater = false; -@@ -1248,6 +1312,7 @@ public class PurpurWorldConfig { +@@ -1258,6 +1322,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; @@ -1706,7 +1706,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1264,6 +1329,7 @@ public class PurpurWorldConfig { +@@ -1274,6 +1339,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean ocelotRidable = false; -@@ -1271,6 +1337,7 @@ public class PurpurWorldConfig { +@@ -1281,6 +1347,7 @@ public class PurpurWorldConfig { public boolean ocelotControllable = true; public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; @@ -1722,7 +1722,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1282,6 +1349,7 @@ public class PurpurWorldConfig { +@@ -1292,6 +1359,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean pandaRidable = false; -@@ -1289,6 +1357,7 @@ public class PurpurWorldConfig { +@@ -1299,6 +1367,7 @@ public class PurpurWorldConfig { public boolean pandaControllable = true; public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; @@ -1738,7 +1738,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1300,6 +1369,7 @@ public class PurpurWorldConfig { +@@ -1310,6 +1379,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean parrotRidable = false; -@@ -1307,6 +1377,7 @@ public class PurpurWorldConfig { +@@ -1317,6 +1387,7 @@ public class PurpurWorldConfig { public boolean parrotControllable = true; public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; @@ -1754,7 +1754,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1318,6 +1389,7 @@ public class PurpurWorldConfig { +@@ -1328,6 +1399,7 @@ public class PurpurWorldConfig { set("mobs.parrot.attributes.max_health", oldValue); } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); @@ -1762,7 +1762,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean phantomRidable = false; -@@ -1344,6 +1416,7 @@ public class PurpurWorldConfig { +@@ -1354,6 +1426,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; @@ -1770,7 +1770,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1378,6 +1451,7 @@ public class PurpurWorldConfig { +@@ -1388,6 +1461,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean pigRidable = false; -@@ -1386,6 +1460,7 @@ public class PurpurWorldConfig { +@@ -1396,6 +1470,7 @@ public class PurpurWorldConfig { public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; @@ -1786,7 +1786,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1398,6 +1473,7 @@ public class PurpurWorldConfig { +@@ -1408,6 +1483,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean piglinRidable = false; -@@ -1405,6 +1481,7 @@ public class PurpurWorldConfig { +@@ -1415,6 +1491,7 @@ public class PurpurWorldConfig { public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; @@ -1802,7 +1802,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1416,12 +1493,14 @@ public class PurpurWorldConfig { +@@ -1426,12 +1503,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1432,6 +1511,7 @@ public class PurpurWorldConfig { +@@ -1442,6 +1521,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean pillagerRidable = false; -@@ -1439,6 +1519,7 @@ public class PurpurWorldConfig { +@@ -1449,6 +1529,7 @@ public class PurpurWorldConfig { public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; @@ -1833,7 +1833,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1450,6 +1531,7 @@ public class PurpurWorldConfig { +@@ -1460,6 +1541,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean polarBearRidable = false; -@@ -1459,6 +1541,7 @@ public class PurpurWorldConfig { +@@ -1469,6 +1551,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -1849,7 +1849,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1473,11 +1556,13 @@ public class PurpurWorldConfig { +@@ -1483,11 +1566,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -1487,6 +1572,7 @@ public class PurpurWorldConfig { +@@ -1497,6 +1582,7 @@ public class PurpurWorldConfig { set("mobs.pufferfish.attributes.max_health", oldValue); } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); @@ -1871,7 +1871,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean rabbitRidable = false; -@@ -1497,6 +1583,7 @@ public class PurpurWorldConfig { +@@ -1507,6 +1593,7 @@ public class PurpurWorldConfig { public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; @@ -1879,7 +1879,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1511,6 +1598,7 @@ public class PurpurWorldConfig { +@@ -1521,6 +1608,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean ravagerRidable = false; -@@ -1518,6 +1606,7 @@ public class PurpurWorldConfig { +@@ -1528,6 +1616,7 @@ public class PurpurWorldConfig { public boolean ravagerControllable = true; public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; @@ -1895,7 +1895,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1529,11 +1618,13 @@ public class PurpurWorldConfig { +@@ -1539,11 +1628,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -1543,6 +1634,7 @@ public class PurpurWorldConfig { +@@ -1553,6 +1644,7 @@ public class PurpurWorldConfig { set("mobs.salmon.attributes.max_health", oldValue); } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); @@ -1917,7 +1917,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean sheepRidable = false; -@@ -1551,6 +1643,7 @@ public class PurpurWorldConfig { +@@ -1561,6 +1653,7 @@ public class PurpurWorldConfig { public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; @@ -1925,7 +1925,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1563,12 +1656,14 @@ public class PurpurWorldConfig { +@@ -1573,12 +1666,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1579,6 +1674,7 @@ public class PurpurWorldConfig { +@@ -1589,6 +1684,7 @@ public class PurpurWorldConfig { set("mobs.shulker.attributes.max_health", oldValue); } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); @@ -1948,7 +1948,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean silverfishRidable = false; -@@ -1586,6 +1682,7 @@ public class PurpurWorldConfig { +@@ -1596,6 +1692,7 @@ public class PurpurWorldConfig { public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; @@ -1956,7 +1956,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1597,12 +1694,14 @@ public class PurpurWorldConfig { +@@ -1607,12 +1704,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -1613,6 +1712,7 @@ public class PurpurWorldConfig { +@@ -1623,6 +1722,7 @@ public class PurpurWorldConfig { set("mobs.skeleton.attributes.max_health", oldValue); } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); @@ -1979,7 +1979,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean skeletonHorseRidableInWater = true; -@@ -1623,6 +1723,7 @@ public class PurpurWorldConfig { +@@ -1633,6 +1733,7 @@ public class PurpurWorldConfig { public double skeletonHorseJumpStrengthMax = 1.0D; public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; @@ -1987,7 +1987,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -1638,6 +1739,7 @@ public class PurpurWorldConfig { +@@ -1648,6 +1749,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean slimeRidable = false; -@@ -1647,6 +1749,7 @@ public class PurpurWorldConfig { +@@ -1657,6 +1759,7 @@ public class PurpurWorldConfig { public String slimeAttackDamage = "size"; public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); @@ -2003,7 +2003,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -1660,6 +1763,7 @@ public class PurpurWorldConfig { +@@ -1670,6 +1773,7 @@ public class PurpurWorldConfig { slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage); slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); @@ -2011,7 +2011,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean snowGolemRidable = false; -@@ -1674,6 +1778,7 @@ public class PurpurWorldConfig { +@@ -1684,6 +1788,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -2019,7 +2019,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1692,6 +1797,7 @@ public class PurpurWorldConfig { +@@ -1702,6 +1807,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean squidRidable = false; -@@ -1700,6 +1806,7 @@ public class PurpurWorldConfig { +@@ -1710,6 +1816,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -2035,7 +2035,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1712,12 +1819,14 @@ public class PurpurWorldConfig { +@@ -1722,12 +1829,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1728,12 +1837,14 @@ public class PurpurWorldConfig { +@@ -1738,12 +1847,14 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2065,7 +2065,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1744,6 +1855,7 @@ public class PurpurWorldConfig { +@@ -1754,6 +1865,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2073,7 +2073,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean striderRidable = false; -@@ -1752,6 +1864,7 @@ public class PurpurWorldConfig { +@@ -1762,6 +1874,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2081,7 +2081,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1764,6 +1877,7 @@ public class PurpurWorldConfig { +@@ -1774,6 +1887,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean tadpoleRidable = false; -@@ -1785,6 +1899,7 @@ public class PurpurWorldConfig { +@@ -1795,6 +1909,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2097,7 +2097,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1803,11 +1918,13 @@ public class PurpurWorldConfig { +@@ -1813,11 +1928,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -1817,6 +1934,7 @@ public class PurpurWorldConfig { +@@ -1827,6 +1944,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean turtleRidable = false; -@@ -1824,6 +1942,7 @@ public class PurpurWorldConfig { +@@ -1834,6 +1952,7 @@ public class PurpurWorldConfig { public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; @@ -2127,7 +2127,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1835,6 +1954,7 @@ public class PurpurWorldConfig { +@@ -1845,6 +1964,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean vexRidable = false; -@@ -1842,6 +1962,7 @@ public class PurpurWorldConfig { +@@ -1852,6 +1972,7 @@ public class PurpurWorldConfig { public boolean vexControllable = true; public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; @@ -2143,7 +2143,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1853,6 +1974,7 @@ public class PurpurWorldConfig { +@@ -1863,6 +1984,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2151,7 +2151,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean villagerRidable = false; -@@ -1866,6 +1988,7 @@ public class PurpurWorldConfig { +@@ -1876,6 +1998,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2159,7 +2159,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1883,6 +2006,7 @@ public class PurpurWorldConfig { +@@ -1893,6 +2016,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean vindicatorRidable = false; -@@ -1890,6 +2014,7 @@ public class PurpurWorldConfig { +@@ -1900,6 +2024,7 @@ public class PurpurWorldConfig { public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; @@ -2175,7 +2175,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1901,6 +2026,7 @@ public class PurpurWorldConfig { +@@ -1911,6 +2036,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean wanderingTraderRidable = false; -@@ -1909,6 +2035,7 @@ public class PurpurWorldConfig { +@@ -1919,6 +2045,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2191,7 +2191,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1921,6 +2048,7 @@ public class PurpurWorldConfig { +@@ -1931,6 +2058,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean wardenRidable = false; -@@ -1936,6 +2064,7 @@ public class PurpurWorldConfig { +@@ -1946,6 +2074,7 @@ public class PurpurWorldConfig { public boolean witchRidableInWater = false; public boolean witchControllable = true; public double witchMaxHealth = 26.0D; @@ -2207,7 +2207,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1946,6 +2075,7 @@ public class PurpurWorldConfig { +@@ -1956,6 +2085,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2215,7 +2215,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean witherRidable = false; -@@ -1956,6 +2086,7 @@ public class PurpurWorldConfig { +@@ -1966,6 +2096,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2223,7 +2223,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1974,12 +2105,14 @@ public class PurpurWorldConfig { +@@ -1984,12 +2115,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -1990,6 +2123,7 @@ public class PurpurWorldConfig { +@@ -2000,6 +2133,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean wolfRidable = false; -@@ -2000,6 +2134,7 @@ public class PurpurWorldConfig { +@@ -2010,6 +2144,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2254,7 +2254,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2018,12 +2153,14 @@ public class PurpurWorldConfig { +@@ -2028,12 +2163,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2034,6 +2171,7 @@ public class PurpurWorldConfig { +@@ -2044,6 +2181,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2277,7 +2277,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean zombieRidable = false; -@@ -2046,6 +2184,7 @@ public class PurpurWorldConfig { +@@ -2056,6 +2194,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2285,7 +2285,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2062,6 +2201,7 @@ public class PurpurWorldConfig { +@@ -2072,6 +2211,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean zombieHorseRidableInWater = false; -@@ -2073,6 +2213,7 @@ public class PurpurWorldConfig { +@@ -2083,6 +2223,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; @@ -2301,7 +2301,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2089,6 +2230,7 @@ public class PurpurWorldConfig { +@@ -2099,6 +2240,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean zombieVillagerRidable = false; -@@ -2099,6 +2241,7 @@ public class PurpurWorldConfig { +@@ -2109,6 +2251,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2317,7 +2317,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2113,6 +2256,7 @@ public class PurpurWorldConfig { +@@ -2123,6 +2266,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 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 } public boolean zombifiedPiglinRidable = false; -@@ -2124,6 +2268,7 @@ public class PurpurWorldConfig { +@@ -2134,6 +2278,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2333,7 +2333,7 @@ index 5c36fc42a96a7ae7989af68f57f4779bbb712858..c82d5e9179d9d89b8cb62da14f690a30 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2139,5 +2284,6 @@ public class PurpurWorldConfig { +@@ -2149,5 +2294,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/0132-End-crystal-explosion-options.patch b/patches/server/0132-End-crystal-explosion-options.patch index 7bdeab4a8..e5a82e4ff 100644 --- a/patches/server/0132-End-crystal-explosion-options.patch +++ b/patches/server/0132-End-crystal-explosion-options.patch @@ -54,10 +54,10 @@ index d9c7ed7ef8f00e2f903fac3d61590589449b6763..eccd32b4cdff15bee637ba6784ce92f5 this.onDestroyedBy(source); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2e3aea802041b5d1d499de35e7bfe8c0cee2cf34..503d1a914f90f6b99b10db27ee004c023f631631 100644 +index b5b3661c9b4a7e24d8a62ad7e33f3cd22b56c79b..8fea71f17bad0805764568acd75f75972ea1b0e6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -466,6 +466,35 @@ public class PurpurWorldConfig { +@@ -471,6 +471,43 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -70,6 +70,14 @@ index 2e3aea802041b5d1d499de35e7bfe8c0cee2cf34..503d1a914f90f6b99b10db27ee004c02 + public boolean basedEndCrystalExplosionFire = false; + public net.minecraft.world.level.Level.ExplosionInteraction basedEndCrystalExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; + private void endCrystalSettings() { ++ if (PurpurConfig.version < 31) { ++ if ("DESTROY".equals(getString("blocks.end-crystal.baseless.explosion-effect", baselessEndCrystalExplosionEffect.name()))) { ++ set("blocks.end-crystal.baseless.explosion-effect", "BLOCK"); ++ } ++ if ("DESTROY".equals(getString("blocks.end-crystal.base.explosion-effect", basedEndCrystalExplosionEffect.name()))) { ++ set("blocks.end-crystal.base.explosion-effect", "BLOCK"); ++ } ++ } + baselessEndCrystalExplode = getBoolean("blocks.end-crystal.baseless.explode", baselessEndCrystalExplode); + baselessEndCrystalExplosionPower = getDouble("blocks.end-crystal.baseless.explosion-power", baselessEndCrystalExplosionPower); + baselessEndCrystalExplosionFire = getBoolean("blocks.end-crystal.baseless.explosion-fire", baselessEndCrystalExplosionFire); diff --git a/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 9cabe4389..5a0c3aa18 100644 --- a/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -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 618f22db55cccdab8ca5787e093e188dc726e06f..490ed4bc5bb3fa54b48417533888094de3a25559 100644 +index 8fea71f17bad0805764568acd75f75972ea1b0e6..44dc44f0959c65ea4a856e39c3ca23270a9c4631 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -922,6 +922,7 @@ public class PurpurWorldConfig { +@@ -940,6 +940,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public boolean enderDragonTakeDamageFromWater = false; @@ -40,7 +40,7 @@ index 618f22db55cccdab8ca5787e093e188dc726e06f..490ed4bc5bb3fa54b48417533888094d private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -940,6 +941,7 @@ public class PurpurWorldConfig { +@@ -958,6 +959,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 618f22db55cccdab8ca5787e093e188dc726e06f..490ed4bc5bb3fa54b48417533888094d } public boolean endermanRidable = false; -@@ -2118,6 +2120,7 @@ public class PurpurWorldConfig { +@@ -2136,6 +2138,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index 618f22db55cccdab8ca5787e093e188dc726e06f..490ed4bc5bb3fa54b48417533888094d private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2137,6 +2140,7 @@ public class PurpurWorldConfig { +@@ -2155,6 +2158,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/0139-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch index 51a2abc77..4e909207f 100644 --- a/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch @@ -18,10 +18,10 @@ index 3cab85703315ea9f79b77b6fbb52d50596350454..22b74af4ead64389a53fe019b259c498 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 521db43e966b01de3e0e1659a04d129f2deba5a6..75c2b5a19b22b4c6b69ccf2f65f19506631467a4 100644 +index 110d17b38eff5396fd7632befe90ceefea32406b..09ba595d6256764dab412e2f46909499746fdfc6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -968,6 +968,8 @@ public class PurpurWorldConfig { +@@ -986,6 +986,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index 521db43e966b01de3e0e1659a04d129f2deba5a6..75c2b5a19b22b4c6b69ccf2f65f19506 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -977,11 +979,17 @@ public class PurpurWorldConfig { +@@ -995,11 +997,17 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max-health", null); set("mobs.enderman.attributes.max_health", oldValue); } diff --git a/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index 5ca0f22c9..d7c8105af 100644 --- a/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -20,10 +20,10 @@ index 22b74af4ead64389a53fe019b259c498ac10feaf..b7ca9f5135cb65d7fdd69f258f2e84ee } 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 75c2b5a19b22b4c6b69ccf2f65f19506631467a4..d305af7b7d890de9e9d1ebf25bc8b8b5f5e130ba 100644 +index 09ba595d6256764dab412e2f46909499746fdfc6..9fdb3e1e162ff331ef14ec6ab207b29502f99396 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -970,6 +970,8 @@ public class PurpurWorldConfig { +@@ -988,6 +988,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index 75c2b5a19b22b4c6b69ccf2f65f19506631467a4..d305af7b7d890de9e9d1ebf25bc8b8b5 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -990,6 +992,8 @@ public class PurpurWorldConfig { +@@ -1008,6 +1010,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/0142-Config-to-disable-Llama-caravans.patch b/patches/server/0142-Config-to-disable-Llama-caravans.patch index 0268fa08b..19fc054c4 100644 --- a/patches/server/0142-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0142-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 469fac4b5a27b6fc2d1e49bce67dae4e5b5eed60..016772cdd18f82d8aaeefdc9db7e080a8517f9ee 100644 +index 83de63bcec03b82068f95e24c167449618967141..13f8050acaa8d50e759b320ba031e2afbf03f611 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1302,6 +1302,7 @@ public class PurpurWorldConfig { +@@ -1320,6 +1320,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 469fac4b5a27b6fc2d1e49bce67dae4e5b5eed60..016772cdd18f82d8aaeefdc9db7e080a private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1321,6 +1322,7 @@ public class PurpurWorldConfig { +@@ -1339,6 +1340,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/0143-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0143-Config-to-make-Creepers-explode-on-death.patch index f3d775dbb..b5ff86e03 100644 --- a/patches/server/0143-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0143-Config-to-make-Creepers-explode-on-death.patch @@ -50,10 +50,10 @@ index f4b6345777a8f48b0d156bdfa80a5207376caeaf..b6f8d2927152a8e5a1203f3d57efb436 private void spawnLingeringCloud() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 016772cdd18f82d8aaeefdc9db7e080a8517f9ee..94e383fa58b99e3c35916a5ee80cf997e8b99316 100644 +index 13f8050acaa8d50e759b320ba031e2afbf03f611..214c46eed9e2460da40fbc3c8be7d6d9d885d7cb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -822,6 +822,7 @@ public class PurpurWorldConfig { +@@ -840,6 +840,7 @@ public class PurpurWorldConfig { public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index 016772cdd18f82d8aaeefdc9db7e080a8517f9ee..94e383fa58b99e3c35916a5ee80cf997 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -836,6 +837,7 @@ public class PurpurWorldConfig { +@@ -854,6 +855,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/0144-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0144-Configurable-ravager-griefable-blocks-list.patch index 26a0e15f4..0c0aa454b 100644 --- a/patches/server/0144-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0144-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 0f2e6d7a3114cfb6a41daa0a75d3448bed6c906e..59be4a17c4317f8d73e157b1d8d0f5e2468a2a5f 100644 +index 214c46eed9e2460da40fbc3c8be7d6d9d885d7cb..026d84d19c1a9077b17846dea050f3048eefe9e5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1674,6 +1674,7 @@ public class PurpurWorldConfig { +@@ -1692,6 +1692,7 @@ public class PurpurWorldConfig { public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 0f2e6d7a3114cfb6a41daa0a75d3448bed6c906e..59be4a17c4317f8d73e157b1d8d0f5e2 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1686,6 +1687,23 @@ public class PurpurWorldConfig { +@@ -1704,6 +1705,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/0145-Sneak-to-bulk-process-composter.patch b/patches/server/0145-Sneak-to-bulk-process-composter.patch index 3f2dc70ef..cac3f2a4b 100644 --- a/patches/server/0145-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0145-Sneak-to-bulk-process-composter.patch @@ -90,10 +90,10 @@ index 564822911c25238900b361d564c5db3103900fb3..5d1567f7413b4065b5587ae45ccf9a3e int i = (Integer) iblockdata.getValue(ComposterBlock.LEVEL); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a319d476d7aef05a06aa59fbf310adcfa061bdc4..ddeb49925b984f4b9feff238970e3c60ce06d227 100644 +index 026d84d19c1a9077b17846dea050f3048eefe9e5..528a12dea32ac2646fb2039aaa1edeb6bec0c94a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -477,6 +477,11 @@ public class PurpurWorldConfig { +@@ -482,6 +482,11 @@ public class PurpurWorldConfig { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); } diff --git a/patches/server/0147-Add-config-for-villager-trading.patch b/patches/server/0147-Add-config-for-villager-trading.patch index 689ecb139..12faf4733 100644 --- a/patches/server/0147-Add-config-for-villager-trading.patch +++ b/patches/server/0147-Add-config-for-villager-trading.patch @@ -31,10 +31,10 @@ index a028732368cdc6b249135742b4a86920d95fa76e..eed9fed34fde4d27e424507f2f05510d 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 309b024341615a3605e0f1dad3a1dd913e2ab08d..e981e3e1e22b7f5a85484d3577a989995f183ad1 100644 +index 4d9f2529245958ddd9f6b74e758f73420b8a7ed6..6a915354f9f3fd0fc18ea0f44cc242623c989477 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2081,6 +2081,7 @@ public class PurpurWorldConfig { +@@ -2099,6 +2099,7 @@ public class PurpurWorldConfig { public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 309b024341615a3605e0f1dad3a1dd913e2ab08d..e981e3e1e22b7f5a85484d3577a98999 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2099,6 +2100,7 @@ public class PurpurWorldConfig { +@@ -2117,6 +2118,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 309b024341615a3605e0f1dad3a1dd913e2ab08d..e981e3e1e22b7f5a85484d3577a98999 } public boolean vindicatorRidable = false; -@@ -2128,6 +2130,7 @@ public class PurpurWorldConfig { +@@ -2146,6 +2148,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 309b024341615a3605e0f1dad3a1dd913e2ab08d..e981e3e1e22b7f5a85484d3577a98999 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2141,6 +2144,7 @@ public class PurpurWorldConfig { +@@ -2159,6 +2162,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/0150-Break-individual-slabs-when-sneaking.patch b/patches/server/0150-Break-individual-slabs-when-sneaking.patch index 1073e0f65..54c47fc60 100644 --- a/patches/server/0150-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0150-Break-individual-slabs-when-sneaking.patch @@ -47,10 +47,10 @@ index 18b603d646081926343dea108b55d641df1c2c34..fdbbd2e5d4fd970a4593b55f16bd0f82 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9a8a2cca4de503d07ee61cd32f7b6b8484804631..e3f8b5f644c9b64f1aa5f97a38a65180c455cb9f 100644 +index 6f6095f01ef7e6d8cb0ba94570e5f96c31c9fd18..e97ea0945e31b81baee731574e6ba315435b8cbc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -592,6 +592,11 @@ public class PurpurWorldConfig { +@@ -610,6 +610,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0151-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0151-Config-to-disable-hostile-mob-spawn-on-ice.patch index e910f3568..9ac638a89 100644 --- a/patches/server/0151-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/server/0151-Config-to-disable-hostile-mob-spawn-on-ice.patch @@ -24,10 +24,10 @@ 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 e3f8b5f644c9b64f1aa5f97a38a65180c455cb9f..723bcd1c3cd4fd95a5cdf78595edf302a55d1df4 100644 +index e97ea0945e31b81baee731574e6ba315435b8cbc..bde85d5b7525cda37bfa1b9849ed9b6817e28609 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -555,6 +555,13 @@ public class PurpurWorldConfig { +@@ -568,6 +568,13 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0153-Option-to-make-doors-require-redstone.patch b/patches/server/0153-Option-to-make-doors-require-redstone.patch index f010a90ef..5adf6f442 100644 --- a/patches/server/0153-Option-to-make-doors-require-redstone.patch +++ b/patches/server/0153-Option-to-make-doors-require-redstone.patch @@ -67,10 +67,10 @@ index fc4793fefe52adfeb0272bf5324c32c1c3946416..58e5acea025287214757cba632e1268e + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 802325603b28fa624f01b2c29e5c770d4ecf3b3e..81a27a654c70cd11b16f1fa49063e813b3c79762 100644 +index c5233ee4bd651b8931009963c321128b8083507a..cd8a1fb7c21d48bcb63087846acc1f981197fc86 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -502,6 +502,16 @@ public class PurpurWorldConfig { +@@ -507,6 +507,16 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0155-Configurable-sponge-absorption.patch b/patches/server/0155-Configurable-sponge-absorption.patch index e0a5f9a16..86ec6b443 100644 --- a/patches/server/0155-Configurable-sponge-absorption.patch +++ b/patches/server/0155-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 19c0943594b702066d0781e7b222507fce098b93..1de94f0bfcc60be28896274cebd0c9a8c7aa4810 100644 +index cd8a1fb7c21d48bcb63087846acc1f981197fc86..35e362e61c6a4bac0a9d774f23659a01b3540c7a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -621,6 +621,13 @@ public class PurpurWorldConfig { +@@ -639,6 +639,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0157-Config-for-powered-rail-activation-distance.patch b/patches/server/0157-Config-for-powered-rail-activation-distance.patch index f149ad85c..1f58fc870 100644 --- a/patches/server/0157-Config-for-powered-rail-activation-distance.patch +++ b/patches/server/0157-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 7b7a74d2bd7112ad1774a3b4e3bc0cffa69d1b84..7412f5be64ea35d3bc6248d81ee239ccdd09bce2 100644 +index 9c58b51b463fe12aa34951b2eeb73cb2600914cb..e2a4729effa575f8a125210a7629e2a83cab7412 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -607,6 +607,11 @@ public class PurpurWorldConfig { +@@ -620,6 +620,11 @@ public class PurpurWorldConfig { powderSnowBypassMobGriefing = getBoolean("blocks.powder_snow.bypass-mob-griefing", powderSnowBypassMobGriefing); } diff --git a/patches/server/0158-Piglin-portal-spawn-modifier.patch b/patches/server/0158-Piglin-portal-spawn-modifier.patch index 35d9c6f0a..10885aa7d 100644 --- a/patches/server/0158-Piglin-portal-spawn-modifier.patch +++ b/patches/server/0158-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 b6d2452556ab670a8ec2c021b157e93a21ac53d2..29d260249617d22bd706d24d1bfab8f3a60fe516 100644 +index e2a4729effa575f8a125210a7629e2a83cab7412..43489708ce0e21ea10abfb9e7f2cb92d18fa21f4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1618,6 +1618,7 @@ public class PurpurWorldConfig { +@@ -1636,6 +1636,7 @@ public class PurpurWorldConfig { public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index b6d2452556ab670a8ec2c021b157e93a21ac53d2..29d260249617d22bd706d24d1bfab8f3 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1630,6 +1631,7 @@ public class PurpurWorldConfig { +@@ -1648,6 +1649,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/0160-Config-for-wither-explosion-radius.patch b/patches/server/0160-Config-for-wither-explosion-radius.patch index d5af4c4d8..c7f0f6a72 100644 --- a/patches/server/0160-Config-for-wither-explosion-radius.patch +++ b/patches/server/0160-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 d00bb10ca6b010cd05ae75bdcc85170d0267a689..edb7b84f6170369f7044f8233554fc6b449e036d 100644 +index 43489708ce0e21ea10abfb9e7f2cb92d18fa21f4..5c02af6ff74909bfa41323857080d3c0d1443f17 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2248,6 +2248,7 @@ public class PurpurWorldConfig { +@@ -2266,6 +2266,7 @@ public class PurpurWorldConfig { public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index d00bb10ca6b010cd05ae75bdcc85170d0267a689..edb7b84f6170369f7044f8233554fc6b private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2268,6 +2269,7 @@ public class PurpurWorldConfig { +@@ -2286,6 +2287,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/0163-Configurable-piston-push-limit.patch b/patches/server/0163-Configurable-piston-push-limit.patch index e60d617df..99e0a805e 100644 --- a/patches/server/0163-Configurable-piston-push-limit.patch +++ b/patches/server/0163-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 dcd136732def702a76666095f35dbf2d19fecb11..cba3ee6c0cd140c0d0dd5023cb79806dfa46b8c0 100644 +index 275a3fff5a87c774cbd91a88ed0da50d78e8e886..6027a587e86c6b75d819cca938e273d7f7465382 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -617,6 +617,11 @@ public class PurpurWorldConfig { +@@ -630,6 +630,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch index 2110f34ae..21f0417d5 100644 --- a/patches/server/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0167-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -21,10 +21,10 @@ index b6f8d2927152a8e5a1203f3d57efb436cf72b30a..5e7dcb99daf6dcb61b8cd907d882778b 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 85ef8d61fbd9aab463a0bf4690652097b0b8cde0..c954275dbb593ae5500e3deccbecac3abbffaac7 100644 +index 79f58ce6df2471e3348c772594524ba01dbc83aa..c52fad4471aef8fe62ce6c873d7a77741577d0b7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -914,6 +914,7 @@ public class PurpurWorldConfig { +@@ -932,6 +932,7 @@ public class PurpurWorldConfig { public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 85ef8d61fbd9aab463a0bf4690652097b0b8cde0..c954275dbb593ae5500e3deccbecac3a private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -929,6 +930,7 @@ public class PurpurWorldConfig { +@@ -947,6 +948,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/0168-Iron-golem-calm-anger-options.patch b/patches/server/0168-Iron-golem-calm-anger-options.patch index 05fd58189..7dbfd73b7 100644 --- a/patches/server/0168-Iron-golem-calm-anger-options.patch +++ b/patches/server/0168-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 c954275dbb593ae5500e3deccbecac3abbffaac7..4726b08ee6b5bba463f912ccbe3ee7ba750e620b 100644 +index c52fad4471aef8fe62ce6c873d7a77741577d0b7..a590a89d8e90a70509a13c78d7c4ee93b042f1d0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1372,6 +1372,8 @@ public class PurpurWorldConfig { +@@ -1390,6 +1390,8 @@ public class PurpurWorldConfig { public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; public boolean ironGolemTakeDamageFromWater = false; @@ -38,7 +38,7 @@ index c954275dbb593ae5500e3deccbecac3abbffaac7..4726b08ee6b5bba463f912ccbe3ee7ba private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1384,6 +1386,8 @@ public class PurpurWorldConfig { +@@ -1402,6 +1404,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/0169-Breedable-parrots.patch b/patches/server/0169-Breedable-parrots.patch index 592bb83cd..4eb40cfa9 100644 --- a/patches/server/0169-Breedable-parrots.patch +++ b/patches/server/0169-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 4726b08ee6b5bba463f912ccbe3ee7ba750e620b..d6d47760639841dabcbba39326c248fa9e6ee514 100644 +index a590a89d8e90a70509a13c78d7c4ee93b042f1d0..b1e2f45601d71f31cd001bbd3b0668650d7e5635 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1542,6 +1542,7 @@ public class PurpurWorldConfig { +@@ -1560,6 +1560,7 @@ public class PurpurWorldConfig { public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index 4726b08ee6b5bba463f912ccbe3ee7ba750e620b..d6d47760639841dabcbba39326c248fa private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1554,6 +1555,7 @@ public class PurpurWorldConfig { +@@ -1572,6 +1573,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/0172-Option-to-disable-dragon-egg-teleporting.patch b/patches/server/0172-Option-to-disable-dragon-egg-teleporting.patch index 4671b3a32..768b3631d 100644 --- a/patches/server/0172-Option-to-disable-dragon-egg-teleporting.patch +++ b/patches/server/0172-Option-to-disable-dragon-egg-teleporting.patch @@ -19,10 +19,10 @@ index 7e1edcc7b9f170b7c649437c2f0dd78c0bab9be4..5f8ac1fdac2c334951261f2b9702f5e7 BlockPos blockposition1 = pos.offset(world.random.nextInt(16) - world.random.nextInt(16), world.random.nextInt(8) - world.random.nextInt(8), world.random.nextInt(16) - world.random.nextInt(16)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d1608a3054e9cb1d55d3fec953e9f3526c7d8bab..58294dd6629f3296cf9f86b35c73abe6e019f0e4 100644 +index 7987d427be1a19693b735365812f317a10812ff5..2d2f2b15cbd982f2ae2e3ec0c68ebcc8ecf4d557 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -550,6 +550,11 @@ public class PurpurWorldConfig { +@@ -555,6 +555,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0175-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0175-ShulkerBox-allow-oversized-stacks.patch index d497ef4e9..05aa28c87 100644 --- a/patches/server/0175-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0175-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 58294dd6629f3296cf9f86b35c73abe6e019f0e4..6f0cc1fb353b017c2476b933958668affd6f8a09 100644 +index 2d2f2b15cbd982f2ae2e3ec0c68ebcc8ecf4d557..7b7d9ec76c0ea940da99971a27568b1ce743f7f1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -659,6 +659,11 @@ public class PurpurWorldConfig { +@@ -677,6 +677,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0176-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0176-Bee-can-work-when-raining-or-at-night.patch index 0d4fda152..46f81f2e7 100644 --- a/patches/server/0176-Bee-can-work-when-raining-or-at-night.patch +++ b/patches/server/0176-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 6f0cc1fb353b017c2476b933958668affd6f8a09..dad973fb21b2c3259c323e83c1ed08fbd696ca88 100644 +index 7b7d9ec76c0ea940da99971a27568b1ce743f7f1..41b09eae6132497def6c5c615236b76fed94c911 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -769,6 +769,8 @@ public class PurpurWorldConfig { +@@ -787,6 +787,8 @@ public class PurpurWorldConfig { public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; public boolean beeTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 6f0cc1fb353b017c2476b933958668affd6f8a09..dad973fb21b2c3259c323e83c1ed08fb private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -782,6 +784,8 @@ public class PurpurWorldConfig { +@@ -800,6 +802,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/0180-Add-toggle-for-sand-duping-fix.patch b/patches/server/0180-Add-toggle-for-sand-duping-fix.patch index 21821aca7..0bb1ca1c2 100644 --- a/patches/server/0180-Add-toggle-for-sand-duping-fix.patch +++ b/patches/server/0180-Add-toggle-for-sand-duping-fix.patch @@ -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 19d90a881168409514fa4d31d3ccaa770b4edac3..25e7d308281131b066642140abc64e648e959d78 100644 +index b35b621346d4c9f284fe3c1d1b358c4f08a6fe4d..346b5ae9ea7c581d7d28314fa62fcc1c153b36cd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -685,6 +685,11 @@ public class PurpurWorldConfig { +@@ -703,6 +703,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch index 39d9d7f4e..166312f5f 100644 --- a/patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0181-Add-toggle-for-end-portal-safe-teleporting.patch @@ -45,10 +45,10 @@ index 04bae5085756842ce88710646a17e9dc1aad5994..e7658fa9806701505e15cbf1d28ea3bd entity.portalWorld = ((ServerLevel)world); entity.portalBlock = pos.immutable(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 25e7d308281131b066642140abc64e648e959d78..12fd1b68a04caa9e5b6c2ea6d92845f01464bff9 100644 +index 346b5ae9ea7c581d7d28314fa62fcc1c153b36cd..e2bcb73a99843dff02b2dcede9b3451262428a31 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -636,6 +636,11 @@ public class PurpurWorldConfig { +@@ -649,6 +649,11 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0187-Shulker-spawn-from-bullet-options.patch b/patches/server/0187-Shulker-spawn-from-bullet-options.patch index f96dab826..1e518ae02 100644 --- a/patches/server/0187-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0187-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 23213eb78d9f30101c3de2b7806e2898fe5c333e..931bba87be78463c21c79752caf4e2b274daa4de 100644 +index 22baf3d82b2304c27d4a6fc50101478a9d3e7966..a94a3bc8be6f1aa518195e17d99655b02d292d14 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1908,6 +1908,11 @@ public class PurpurWorldConfig { +@@ -1926,6 +1926,11 @@ public class PurpurWorldConfig { public boolean shulkerControllable = true; public double shulkerMaxHealth = 30.0D; public boolean shulkerTakeDamageFromWater = false; @@ -82,7 +82,7 @@ index 23213eb78d9f30101c3de2b7806e2898fe5c333e..931bba87be78463c21c79752caf4e2b2 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1919,6 +1924,11 @@ public class PurpurWorldConfig { +@@ -1937,6 +1942,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/0189-Option-to-make-drowned-break-doors.patch b/patches/server/0189-Option-to-make-drowned-break-doors.patch index 2c18a5fd9..dfe43f011 100644 --- a/patches/server/0189-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0189-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 dd61c0f37205c22553004a185816f966f3ec859d..c23313f82064352244205709f5c792201cbb7629 100644 +index d3ed64a39a91e4b12df9f4fc91ffd2f426d54778..b3b7f1f624382d8105410d942eac697848cba6f5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1054,6 +1054,7 @@ public class PurpurWorldConfig { +@@ -1072,6 +1072,7 @@ public class PurpurWorldConfig { public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; @@ -45,7 +45,7 @@ index dd61c0f37205c22553004a185816f966f3ec859d..c23313f82064352244205709f5c79220 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1069,6 +1070,7 @@ public class PurpurWorldConfig { +@@ -1087,6 +1088,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/0190-Configurable-hunger-starvation-damage.patch b/patches/server/0190-Configurable-hunger-starvation-damage.patch index 71bcd0453..72255967d 100644 --- a/patches/server/0190-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0190-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 90a33d6b180a56ce46d6e755a28597a5e9768efd..f9b9c735cf280bd9e8d7a0ba6d56568eb579e044 100644 +index b3b7f1f624382d8105410d942eac697848cba6f5..3cd04d8e1bf920c36fbab1968df1cb65fbcdc068 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2552,4 +2552,9 @@ public class PurpurWorldConfig { +@@ -2570,4 +2570,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 4a3709d75..b89a9de69 100644 --- a/patches/server/0200-Silk-touchable-budding-amethyst.patch +++ b/patches/server/0200-Silk-touchable-budding-amethyst.patch @@ -24,10 +24,10 @@ index bedccb8717d08d5a60058445b04ddff149e7d36c..5293ffca3da94c9c485a87d1232b6a90 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cc16e72f6033d3fe3cf06186eb11fe9767bfa15c..233ef41ac3801807fa4508d466d892c298261cdf 100644 +index b297ce9d27c44d87e90b6893b73516e716e1df47..f39c8dc011eea4bee42bbc10dd8061d07921d8de 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -714,6 +714,11 @@ public class PurpurWorldConfig { +@@ -719,6 +719,11 @@ public class PurpurWorldConfig { } } @@ -39,7 +39,7 @@ index cc16e72f6033d3fe3cf06186eb11fe9767bfa15c..233ef41ac3801807fa4508d466d892c2 public boolean chestOpenWithBlockOnTop = false; private void chestSettings() { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); -@@ -2717,3 +2722,4 @@ public class PurpurWorldConfig { +@@ -2735,3 +2740,4 @@ public class PurpurWorldConfig { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } } diff --git a/patches/server/0201-Big-dripleaf-tilt-delay.patch b/patches/server/0201-Big-dripleaf-tilt-delay.patch index f89f35de3..33839adf1 100644 --- a/patches/server/0201-Big-dripleaf-tilt-delay.patch +++ b/patches/server/0201-Big-dripleaf-tilt-delay.patch @@ -24,10 +24,10 @@ index 8537581e7ca1f4efb492a2e734f46f947f36cffa..5f89229ff68d923c5cdee40e72e379ba if (i != -1) { world.scheduleTick(blockposition, (Block) this, i); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 40407828fbaab1989f6753ee04a6f2b86ee60c2b..31f7106acadb04a97bd5017039018a76d0aaa3c5 100644 +index f39c8dc011eea4bee42bbc10dd8061d07921d8de..8cf43bbc34383a4471f669c2d8b66d45aa15be4c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -714,6 +714,22 @@ public class PurpurWorldConfig { +@@ -719,6 +719,22 @@ public class PurpurWorldConfig { } } 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 cc2693ee4..9e801e1e0 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 b7ca9f5135cb65d7fdd69f258f2e84ee9e252d26..8b9462496ee60c44a1a28082563c573a boolean flag; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c016c63feb293a84b4d7824f380cce03936598f9..e8a7237ed1594d0b61e197e6be1ba5c501ada927 100644 +index 6f94eeeeb03341621e7a8340b0d91073fa96fbbe..27b06d6ebe464c14b7795161a0692540858ad4f9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1313,6 +1313,7 @@ public class PurpurWorldConfig { +@@ -1331,6 +1331,7 @@ public class PurpurWorldConfig { public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; @@ -29,7 +29,7 @@ index c016c63feb293a84b4d7824f380cce03936598f9..e8a7237ed1594d0b61e197e6be1ba5c5 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1335,6 +1336,7 @@ public class PurpurWorldConfig { +@@ -1353,6 +1354,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 00b6edabf..d4a18344c 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 09808785c382f9c78119b8f306cc73eef24ef471..117b17bc01e0df17bdc15269ac99a63330cbdab0 100644 +index e1997fa949d21d2c5f4c248ed8292fbb5d2eb4e6..674fbe85641dfcb2c93090457c24bc198aa40b65 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 { +@@ -2719,6 +2719,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index 09808785c382f9c78119b8f306cc73eef24ef471..117b17bc01e0df17bdc15269ac99a633 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2716,6 +2718,8 @@ public class PurpurWorldConfig { +@@ -2734,6 +2736,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 8a45eb3bf..214ec8e02 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 9fe05daa2303ca44c9e50f5f30c1974e5fb49152..4977df6436cc889944c169dc2d173f0475a7a188 100644 +index 674fbe85641dfcb2c93090457c24bc198aa40b65..df61924acdbc23e8c30d9be82ba26b74d07d2d5b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -914,9 +914,11 @@ public class PurpurWorldConfig { +@@ -932,9 +932,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 8e534aed0..d618b577c 100644 --- a/patches/server/0209-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0209-Toggle-for-Wither-s-spawn-sound.patch @@ -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 cc0f3cf3fca3ea59caa914ecf568bc24fa85ad92..3116bee32f70357639666a5fc9ebad990b7a3cd0 100644 +index df61924acdbc23e8c30d9be82ba26b74d07d2d5b..4025e00da97b1477ca76a927b01e2020cfa2d563 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2546,6 +2546,7 @@ public class PurpurWorldConfig { +@@ -2564,6 +2564,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index cc0f3cf3fca3ea59caa914ecf568bc24fa85ad92..3116bee32f70357639666a5fc9ebad99 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2567,6 +2568,7 @@ public class PurpurWorldConfig { +@@ -2585,6 +2586,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/0210-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0210-Cactus-breaks-from-solid-neighbors-config.patch index 7e479939f..9ff84d951 100644 --- a/patches/server/0210-Cactus-breaks-from-solid-neighbors-config.patch +++ b/patches/server/0210-Cactus-breaks-from-solid-neighbors-config.patch @@ -18,10 +18,10 @@ index 1ec242205b82a5a1f10deb2312795cc5dc157a76..2fd7e33a161bc89c91deca1f245d6dac return false; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5c7fff668ed33f402eb73c0d99728e177cff5b01..5ff17517d11b79537fec4a581251649eca44ced2 100644 +index 4025e00da97b1477ca76a927b01e2020cfa2d563..df687020c0d3e7b5a4cf7ce5871b2aae3c5fd5a1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -746,6 +746,11 @@ public class PurpurWorldConfig { +@@ -751,6 +751,11 @@ public class PurpurWorldConfig { buddingAmethystSilkTouch = getBoolean("blocks.budding_amethyst.silk-touch", buddingAmethystSilkTouch); } diff --git a/patches/server/0212-Conduit-behavior-configuration.patch b/patches/server/0212-Conduit-behavior-configuration.patch index 338a7d90c..b1657bb3a 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 e483a5d31202d52d7b2a7fead19e54176f28c6a3..c70427f27af63bfe543659dea4f939446d48c448 100644 +index 9ebd8b4b527fe8c30483abf34a5840fe0c77355e..9207e3f4c61c478365ab43a138c8738bd4d89732 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2765,5 +2765,28 @@ public class PurpurWorldConfig { +@@ -2783,5 +2783,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 b5d3e9582..54c8ca39e 100644 --- a/patches/server/0213-Cauldron-fill-chances.patch +++ b/patches/server/0213-Cauldron-fill-chances.patch @@ -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 c70427f27af63bfe543659dea4f939446d48c448..f458db54538a78731027469511d200ae5e6341a0 100644 +index 9207e3f4c61c478365ab43a138c8738bd4d89732..99358fb2f2f97dde8df4c8f4606b4e2e70ee11d1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2788,5 +2788,16 @@ public class PurpurWorldConfig { +@@ -2806,5 +2806,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 4ecc40c6a..d69bf4c12 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 c0e48e8c6e815e8c388c62ba1a451a5517de2288..bb32ec5b6526b27f61c2d15e10be13bae2596427 100644 +index 1731c84ba16f56e12640132f693639db89ceded6..ae772a31e0a53c26cb0f10dd23bdbef783df9770 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2121,6 +2121,7 @@ public class PurpurWorldConfig { +@@ -2139,6 +2139,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 c0e48e8c6e815e8c388c62ba1a451a5517de2288..bb32ec5b6526b27f61c2d15e10be13ba private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2137,6 +2138,7 @@ public class PurpurWorldConfig { +@@ -2155,6 +2156,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/0219-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0219-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index c7a3dd143..058ef46ef 100644 --- a/patches/server/0219-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0219-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch @@ -45,7 +45,7 @@ index fdd3aa81644087bff33a47c5f98e14ca0452f3ef..c75404ddcb36105b84ff8c21545549be public static final Block MOSS_BLOCK = register("moss_block", new MossBlock(BlockBehaviour.Properties.of(Material.MOSS, MaterialColor.COLOR_GREEN).strength(0.1F).sound(SoundType.MOSS))); public static final Block BIG_DRIPLEAF = register("big_dripleaf", new BigDripleafBlock(BlockBehaviour.Properties.of(Material.PLANT).strength(0.1F).sound(SoundType.BIG_DRIPLEAF))); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 08ef6efc26d3798a651b9fd1400d1b73d21b6b20..3acbb777269b1b117821383ed931dbe71bf0479b 100644 +index feeb2e385650207cee824847c10c611ff7e6ba26..22e6426270a5f6a2fb7f7b0bafff6f6d43dcb865 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -706,6 +706,11 @@ public class PurpurWorldConfig { @@ -60,7 +60,7 @@ index 08ef6efc26d3798a651b9fd1400d1b73d21b6b20..3acbb777269b1b117821383ed931dbe7 public int beaconLevelOne = 20; public int beaconLevelTwo = 30; public int beaconLevelThree = 40; -@@ -835,6 +840,11 @@ public class PurpurWorldConfig { +@@ -848,6 +853,11 @@ public class PurpurWorldConfig { farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); } 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 2f1cbc6c3..4290d2392 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 40ee2cb4d1224cbc61676581acd483b8c84c5d76..46c414e51837bedd7f347a125925d1704750e0db 100644 +index f3778a9b35bf0b70ff786160a713e39895370bed..658e7838b0400346ee417d9b9ab238ba8c014312 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1219,6 +1219,7 @@ public class PurpurWorldConfig { +@@ -1237,6 +1237,7 @@ public class PurpurWorldConfig { public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 40ee2cb4d1224cbc61676581acd483b8c84c5d76..46c414e51837bedd7f347a125925d170 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1233,6 +1234,7 @@ public class PurpurWorldConfig { +@@ -1251,6 +1252,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 15385fc14..168cb27d7 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 46c414e51837bedd7f347a125925d1704750e0db..d822f5f1fcbe0ff404fba384bdf52e10f20f0004 100644 +index 658e7838b0400346ee417d9b9ab238ba8c014312..9d1eb60814e57ede2235aaa695c57fc9b07fd795 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1168,7 +1168,14 @@ public class PurpurWorldConfig { +@@ -1186,7 +1186,14 @@ public class PurpurWorldConfig { public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; public boolean cowTakeDamageFromWater = false; @@ -77,7 +77,7 @@ index 46c414e51837bedd7f347a125925d1704750e0db..d822f5f1fcbe0ff404fba384bdf52e10 cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); cowControllable = getBoolean("mobs.cow.controllable", cowControllable); -@@ -1181,6 +1188,8 @@ public class PurpurWorldConfig { +@@ -1199,6 +1206,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/0223-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0223-Option-for-beds-to-explode-on-villager-sleep.patch index 58a469aa6..0522cc6b5 100644 --- a/patches/server/0223-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0223-Option-for-beds-to-explode-on-villager-sleep.patch @@ -22,10 +22,10 @@ index 1db5d966c2ce26c2e5e2999ae8639a20e30d6fa8..a2cf362d84135ff39a427024f7df1d1b this.brain.setMemory(MemoryModuleType.LAST_SLEPT, this.level.getGameTime()); // CraftBukkit - decompile error this.brain.eraseMemory(MemoryModuleType.WALK_TARGET); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ccaf3309162fe4f916bcadbe665e09c151bc2241..ad7f3c58f2b7c5ba565914d34177d311b61182dc 100644 +index 9d1eb60814e57ede2235aaa695c57fc9b07fd795..f534cb88365dce7054bec5367594fc21172c740d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -725,11 +725,13 @@ public class PurpurWorldConfig { +@@ -725,6 +725,7 @@ public class PurpurWorldConfig { } public boolean bedExplode = true; @@ -33,7 +33,9 @@ index ccaf3309162fe4f916bcadbe665e09c151bc2241..ad7f3c58f2b7c5ba565914d34177d311 public double bedExplosionPower = 5.0D; public boolean bedExplosionFire = true; public net.minecraft.world.level.Level.ExplosionInteraction bedExplosionEffect = net.minecraft.world.level.Level.ExplosionInteraction.BLOCK; - private void bedSettings() { +@@ -735,6 +736,7 @@ public class PurpurWorldConfig { + } + } bedExplode = getBoolean("blocks.bed.explode", bedExplode); + bedExplodeOnVillagerSleep = getBoolean("blocks.bed.explode-on-villager-sleep", bedExplodeOnVillagerSleep); bedExplosionPower = getDouble("blocks.bed.explosion-power", bedExplosionPower); diff --git a/patches/server/0224-Halloween-options-and-optimizations.patch b/patches/server/0224-Halloween-options-and-optimizations.patch index 434c73a10..e962420dd 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 334e2f78bdaf76118e2af9749e5c820a6c7e0ca2..73aa9d484d2fac2e1776b2b90fc261968e042b06 100644 +index f534cb88365dce7054bec5367594fc21172c740d..512e3ce4f83c592dfb0cef2b4eb94560a2d7eb48 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1561,6 +1561,13 @@ public class PurpurWorldConfig { +@@ -1579,6 +1579,13 @@ public class PurpurWorldConfig { guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); } diff --git a/patches/server/0227-Campfire-option-for-lit-when-placed.patch b/patches/server/0227-Campfire-option-for-lit-when-placed.patch index 22cdaa8a7..e15d647e7 100644 --- a/patches/server/0227-Campfire-option-for-lit-when-placed.patch +++ b/patches/server/0227-Campfire-option-for-lit-when-placed.patch @@ -18,10 +18,10 @@ index a4c44cb59dee29cf227dbb51bfc1576d89dfb2e3..551bacade8642e6aad17120d8a901bcc @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 32fa948d3ff145762463b0e57c1de8ea5dbe3ac5..a851ce8066f8365343cb4e732b61947f931ba610 100644 +index 512e3ce4f83c592dfb0cef2b4eb94560a2d7eb48..afba5f1a4699aa6852175e47ed82fa165afac8dd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -768,6 +768,11 @@ public class PurpurWorldConfig { +@@ -773,6 +773,11 @@ public class PurpurWorldConfig { cactusBreaksFromSolidNeighbors = getBoolean("blocks.cactus.breaks-from-solid-neighbors", cactusBreaksFromSolidNeighbors); } 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 b7a29f971..16f540645 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 33728459066467cee5bf3ba03f810eb664778bcf..db8fdf11ccd9ab83cfd42784d68e341a26c48ed9 100644 +index 479295d603169b3858bb1bcafe6c0f63f140c5b3..138823179c7afff52f504bddfcf07fdc5302c398 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2765,6 +2765,7 @@ public class PurpurWorldConfig { +@@ -2783,6 +2783,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index 33728459066467cee5bf3ba03f810eb664778bcf..db8fdf11ccd9ab83cfd42784d68e341a private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2782,6 +2783,7 @@ public class PurpurWorldConfig { +@@ -2800,6 +2801,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 93bae8ba1..33e5c4794 100644 --- a/patches/server/0231-Signs-allow-color-codes.patch +++ b/patches/server/0231-Signs-allow-color-codes.patch @@ -17,7 +17,7 @@ index db7bf36474ac0e0a95b11ab212d9c866368a161b..05c442041e11d7a87359857ad9d6fed3 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 cbcaf80736ab50f781b65f7a8c813331238c74ec..69011c01936eae6a8939b94acfaac56c2cf6cae6 100644 +index 7e7a69968b9a8e6d6c97910703cc8521026c35c2..03519ba7c2f93dc0bd4bdaba2f33808d24acbcc1 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -3513,11 +3513,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 610279d349dad0c9f8e0d99f64b80425efad0933..bda122612dc1336baa2be0a01276a598312873aa 100644 +index f7ba61dea5f0f1ab82a3f193cebcaa7f162c2435..c68ec3b20ed829ed4d63ce7bdd1f266bf9d00d71 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -938,8 +938,10 @@ public class PurpurWorldConfig { +@@ -956,8 +956,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 0c01a4417..3d09a6b77 100644 --- a/patches/server/0233-Mobs-always-drop-experience.patch +++ b/patches/server/0233-Mobs-always-drop-experience.patch @@ -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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce3913b03280 100644 +index c68ec3b20ed829ed4d63ce7bdd1f266bf9d00d71..550442ebdd824a799c65efeebf2d2e5e9cdc10e8 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 { +@@ -1022,12 +1022,14 @@ public class PurpurWorldConfig { public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; public boolean axolotlTakeDamageFromWater = false; @@ -1175,7 +1175,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean batRidable = false; -@@ -1025,6 +1027,7 @@ public class PurpurWorldConfig { +@@ -1043,6 +1045,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1183,7 +1183,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1037,6 +1040,7 @@ public class PurpurWorldConfig { +@@ -1055,6 +1058,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean beeRidable = false; -@@ -1048,6 +1052,7 @@ public class PurpurWorldConfig { +@@ -1066,6 +1070,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = false; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1199,7 +1199,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1063,6 +1068,7 @@ public class PurpurWorldConfig { +@@ -1081,6 +1086,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean blazeRidable = false; -@@ -1071,6 +1077,7 @@ public class PurpurWorldConfig { +@@ -1089,6 +1095,7 @@ public class PurpurWorldConfig { public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; public boolean blazeTakeDamageFromWater = true; @@ -1215,7 +1215,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1083,6 +1090,7 @@ public class PurpurWorldConfig { +@@ -1101,6 +1108,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public int camelBreedingTicks = 6000; -@@ -1100,6 +1108,7 @@ public class PurpurWorldConfig { +@@ -1118,6 +1126,7 @@ public class PurpurWorldConfig { public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; public boolean catTakeDamageFromWater = false; @@ -1231,7 +1231,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1120,6 +1129,7 @@ public class PurpurWorldConfig { +@@ -1138,6 +1147,7 @@ public class PurpurWorldConfig { catDefaultCollarColor = DyeColor.RED; } catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1239,7 +1239,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean caveSpiderRidable = false; -@@ -1127,6 +1137,7 @@ public class PurpurWorldConfig { +@@ -1145,6 +1155,7 @@ public class PurpurWorldConfig { public boolean caveSpiderControllable = true; public double caveSpiderMaxHealth = 12.0D; public boolean caveSpiderTakeDamageFromWater = false; @@ -1247,7 +1247,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1138,6 +1149,7 @@ public class PurpurWorldConfig { +@@ -1156,6 +1167,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean chickenRidable = false; -@@ -1147,6 +1159,7 @@ public class PurpurWorldConfig { +@@ -1165,6 +1177,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1263,7 +1263,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1160,12 +1173,14 @@ public class PurpurWorldConfig { +@@ -1178,12 +1191,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -1176,6 +1191,7 @@ public class PurpurWorldConfig { +@@ -1194,6 +1209,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean cowRidable = false; -@@ -1187,6 +1203,7 @@ public class PurpurWorldConfig { +@@ -1205,6 +1221,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1294,7 +1294,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1207,6 +1224,7 @@ public class PurpurWorldConfig { +@@ -1225,6 +1242,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean creeperRidable = false; -@@ -1219,6 +1237,7 @@ public class PurpurWorldConfig { +@@ -1237,6 +1255,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1310,7 +1310,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1235,6 +1254,7 @@ public class PurpurWorldConfig { +@@ -1253,6 +1272,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean dolphinRidable = false; -@@ -1246,6 +1266,7 @@ public class PurpurWorldConfig { +@@ -1264,6 +1284,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1326,7 +1326,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1261,6 +1282,7 @@ public class PurpurWorldConfig { +@@ -1279,6 +1300,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean donkeyRidableInWater = false; -@@ -1272,6 +1294,7 @@ public class PurpurWorldConfig { +@@ -1290,6 +1312,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1342,7 +1342,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1289,6 +1312,7 @@ public class PurpurWorldConfig { +@@ -1307,6 +1330,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean drownedRidable = false; -@@ -1301,6 +1325,7 @@ public class PurpurWorldConfig { +@@ -1319,6 +1343,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1358,7 +1358,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1317,12 +1342,14 @@ public class PurpurWorldConfig { +@@ -1335,12 +1360,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -1333,6 +1360,7 @@ public class PurpurWorldConfig { +@@ -1351,6 +1378,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean enderDragonRidable = false; -@@ -1378,6 +1406,7 @@ public class PurpurWorldConfig { +@@ -1396,6 +1424,7 @@ public class PurpurWorldConfig { public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1389,7 +1389,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1401,6 +1430,7 @@ public class PurpurWorldConfig { +@@ -1419,6 +1448,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean endermiteRidable = false; -@@ -1408,6 +1438,7 @@ public class PurpurWorldConfig { +@@ -1426,6 +1456,7 @@ public class PurpurWorldConfig { public boolean endermiteControllable = true; public double endermiteMaxHealth = 8.0D; public boolean endermiteTakeDamageFromWater = false; @@ -1405,7 +1405,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1419,6 +1450,7 @@ public class PurpurWorldConfig { +@@ -1437,6 +1468,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean evokerRidable = false; -@@ -1427,6 +1459,7 @@ public class PurpurWorldConfig { +@@ -1445,6 +1477,7 @@ public class PurpurWorldConfig { public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1421,7 +1421,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1439,6 +1472,7 @@ public class PurpurWorldConfig { +@@ -1457,6 +1490,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean foxRidable = false; -@@ -1449,6 +1483,7 @@ public class PurpurWorldConfig { +@@ -1467,6 +1501,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1437,7 +1437,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1463,6 +1498,7 @@ public class PurpurWorldConfig { +@@ -1481,6 +1516,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean frogRidable = false; -@@ -1484,6 +1520,7 @@ public class PurpurWorldConfig { +@@ -1502,6 +1538,7 @@ public class PurpurWorldConfig { public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; public boolean ghastTakeDamageFromWater = false; @@ -1453,7 +1453,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1496,6 +1533,7 @@ public class PurpurWorldConfig { +@@ -1514,6 +1551,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean giantRidable = false; -@@ -1509,6 +1547,7 @@ public class PurpurWorldConfig { +@@ -1527,6 +1565,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1469,7 +1469,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1530,6 +1569,7 @@ public class PurpurWorldConfig { +@@ -1548,6 +1587,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean glowSquidRidable = false; -@@ -1537,12 +1577,14 @@ public class PurpurWorldConfig { +@@ -1555,12 +1595,14 @@ public class PurpurWorldConfig { public double glowSquidMaxHealth = 10.0D; public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; @@ -1492,7 +1492,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean goatRidable = false; -@@ -1551,6 +1593,7 @@ public class PurpurWorldConfig { +@@ -1569,6 +1611,7 @@ public class PurpurWorldConfig { public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1500,7 +1500,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void goatSettings() { goatRidable = getBoolean("mobs.goat.ridable", goatRidable); goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater); -@@ -1558,12 +1601,14 @@ public class PurpurWorldConfig { +@@ -1576,12 +1619,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1574,6 +1619,7 @@ public class PurpurWorldConfig { +@@ -1592,6 +1637,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean forceHalloweenSeason = false; -@@ -1589,6 +1635,7 @@ public class PurpurWorldConfig { +@@ -1607,6 +1653,7 @@ public class PurpurWorldConfig { public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1531,7 +1531,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1601,6 +1648,7 @@ public class PurpurWorldConfig { +@@ -1619,6 +1666,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean horseRidableInWater = false; -@@ -1612,6 +1660,7 @@ public class PurpurWorldConfig { +@@ -1630,6 +1678,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; @@ -1547,7 +1547,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1629,6 +1678,7 @@ public class PurpurWorldConfig { +@@ -1647,6 +1696,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean huskRidable = false; -@@ -1640,6 +1690,7 @@ public class PurpurWorldConfig { +@@ -1658,6 +1708,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1563,7 +1563,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1655,6 +1706,7 @@ public class PurpurWorldConfig { +@@ -1673,6 +1724,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean illusionerRidable = false; -@@ -1664,6 +1716,7 @@ public class PurpurWorldConfig { +@@ -1682,6 +1734,7 @@ public class PurpurWorldConfig { public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1579,7 +1579,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1681,6 +1734,7 @@ public class PurpurWorldConfig { +@@ -1699,6 +1752,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean ironGolemRidable = false; -@@ -1691,6 +1745,7 @@ public class PurpurWorldConfig { +@@ -1709,6 +1763,7 @@ public class PurpurWorldConfig { public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; public boolean ironGolemHealCalm = false; @@ -1595,7 +1595,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1705,6 +1760,7 @@ public class PurpurWorldConfig { +@@ -1723,6 +1778,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean llamaRidable = false; -@@ -1719,6 +1775,7 @@ public class PurpurWorldConfig { +@@ -1737,6 +1793,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1611,7 +1611,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1739,6 +1796,7 @@ public class PurpurWorldConfig { +@@ -1757,6 +1814,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean magmaCubeRidable = false; -@@ -1749,6 +1807,7 @@ public class PurpurWorldConfig { +@@ -1767,6 +1825,7 @@ public class PurpurWorldConfig { public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1763,6 +1822,7 @@ public class PurpurWorldConfig { +@@ -1781,6 +1840,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean mooshroomRidable = false; -@@ -1771,6 +1831,7 @@ public class PurpurWorldConfig { +@@ -1789,6 +1849,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1783,6 +1844,7 @@ public class PurpurWorldConfig { +@@ -1801,6 +1862,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean muleRidableInWater = false; -@@ -1794,6 +1856,7 @@ public class PurpurWorldConfig { +@@ -1812,6 +1874,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1811,6 +1874,7 @@ public class PurpurWorldConfig { +@@ -1829,6 +1892,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean ocelotRidable = false; -@@ -1819,6 +1883,7 @@ public class PurpurWorldConfig { +@@ -1837,6 +1901,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1831,6 +1896,7 @@ public class PurpurWorldConfig { +@@ -1849,6 +1914,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean pandaRidable = false; -@@ -1839,6 +1905,7 @@ public class PurpurWorldConfig { +@@ -1857,6 +1923,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1851,6 +1918,7 @@ public class PurpurWorldConfig { +@@ -1869,6 +1936,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean parrotRidable = false; -@@ -1860,6 +1928,7 @@ public class PurpurWorldConfig { +@@ -1878,6 +1946,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1873,6 +1942,7 @@ public class PurpurWorldConfig { +@@ -1891,6 +1960,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean phantomRidable = false; -@@ -1900,6 +1970,7 @@ public class PurpurWorldConfig { +@@ -1918,6 +1988,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1935,6 +2006,7 @@ public class PurpurWorldConfig { +@@ -1953,6 +2024,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean pigRidable = false; -@@ -1944,6 +2016,7 @@ public class PurpurWorldConfig { +@@ -1962,6 +2034,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1957,6 +2030,7 @@ public class PurpurWorldConfig { +@@ -1975,6 +2048,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean piglinRidable = false; -@@ -1966,6 +2040,7 @@ public class PurpurWorldConfig { +@@ -1984,6 +2058,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1979,6 +2054,7 @@ public class PurpurWorldConfig { +@@ -1997,6 +2072,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean piglinBruteRidable = false; -@@ -1986,6 +2062,7 @@ public class PurpurWorldConfig { +@@ -2004,6 +2080,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1997,6 +2074,7 @@ public class PurpurWorldConfig { +@@ -2015,6 +2092,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean pillagerRidable = false; -@@ -2005,6 +2083,7 @@ public class PurpurWorldConfig { +@@ -2023,6 +2101,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2017,6 +2096,7 @@ public class PurpurWorldConfig { +@@ -2035,6 +2114,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean polarBearRidable = false; -@@ -2027,6 +2107,7 @@ public class PurpurWorldConfig { +@@ -2045,6 +2125,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2042,12 +2123,14 @@ public class PurpurWorldConfig { +@@ -2060,12 +2141,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2058,6 +2141,7 @@ public class PurpurWorldConfig { +@@ -2076,6 +2159,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean rabbitRidable = false; -@@ -2069,6 +2153,7 @@ public class PurpurWorldConfig { +@@ -2087,6 +2171,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2084,6 +2169,7 @@ public class PurpurWorldConfig { +@@ -2102,6 +2187,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean ravagerRidable = false; -@@ -2093,6 +2179,7 @@ public class PurpurWorldConfig { +@@ -2111,6 +2197,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2122,12 +2209,14 @@ public class PurpurWorldConfig { +@@ -2140,12 +2227,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2138,6 +2227,7 @@ public class PurpurWorldConfig { +@@ -2156,6 +2245,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean sheepRidable = false; -@@ -2147,6 +2237,7 @@ public class PurpurWorldConfig { +@@ -2165,6 +2255,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2160,6 +2251,7 @@ public class PurpurWorldConfig { +@@ -2178,6 +2269,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean shulkerRidable = false; -@@ -2173,6 +2265,7 @@ public class PurpurWorldConfig { +@@ -2191,6 +2283,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2190,6 +2283,7 @@ public class PurpurWorldConfig { +@@ -2208,6 +2301,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean silverfishRidable = false; -@@ -2198,6 +2292,7 @@ public class PurpurWorldConfig { +@@ -2216,6 +2310,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2210,6 +2305,7 @@ public class PurpurWorldConfig { +@@ -2228,6 +2323,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean skeletonRidable = false; -@@ -2217,6 +2313,7 @@ public class PurpurWorldConfig { +@@ -2235,6 +2331,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2228,6 +2325,7 @@ public class PurpurWorldConfig { +@@ -2246,6 +2343,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean skeletonHorseRidableInWater = true; -@@ -2239,6 +2337,7 @@ public class PurpurWorldConfig { +@@ -2257,6 +2355,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -2255,6 +2354,7 @@ public class PurpurWorldConfig { +@@ -2273,6 +2372,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean slimeRidable = false; -@@ -2265,6 +2365,7 @@ public class PurpurWorldConfig { +@@ -2283,6 +2383,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2279,6 +2380,7 @@ public class PurpurWorldConfig { +@@ -2297,6 +2398,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean snowGolemRidable = false; -@@ -2294,6 +2396,7 @@ public class PurpurWorldConfig { +@@ -2312,6 +2414,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2313,6 +2416,7 @@ public class PurpurWorldConfig { +@@ -2331,6 +2434,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean squidRidable = false; -@@ -2322,6 +2426,7 @@ public class PurpurWorldConfig { +@@ -2340,6 +2444,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2335,6 +2440,7 @@ public class PurpurWorldConfig { +@@ -2353,6 +2458,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean spiderRidable = false; -@@ -2342,6 +2448,7 @@ public class PurpurWorldConfig { +@@ -2360,6 +2466,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2353,6 +2460,7 @@ public class PurpurWorldConfig { +@@ -2371,6 +2478,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean strayRidable = false; -@@ -2360,6 +2468,7 @@ public class PurpurWorldConfig { +@@ -2378,6 +2486,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2371,6 +2480,7 @@ public class PurpurWorldConfig { +@@ -2389,6 +2498,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean striderRidable = false; -@@ -2380,6 +2490,7 @@ public class PurpurWorldConfig { +@@ -2398,6 +2508,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2393,6 +2504,7 @@ public class PurpurWorldConfig { +@@ -2411,6 +2522,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean tadpoleRidable = false; -@@ -2415,6 +2527,7 @@ public class PurpurWorldConfig { +@@ -2433,6 +2545,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2434,12 +2547,14 @@ public class PurpurWorldConfig { +@@ -2452,12 +2565,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2450,6 +2565,7 @@ public class PurpurWorldConfig { +@@ -2468,6 +2583,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean turtleRidable = false; -@@ -2458,6 +2574,7 @@ public class PurpurWorldConfig { +@@ -2476,6 +2592,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2470,6 +2587,7 @@ public class PurpurWorldConfig { +@@ -2488,6 +2605,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean vexRidable = false; -@@ -2478,6 +2596,7 @@ public class PurpurWorldConfig { +@@ -2496,6 +2614,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2490,6 +2609,7 @@ public class PurpurWorldConfig { +@@ -2508,6 +2627,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean villagerRidable = false; -@@ -2505,6 +2625,7 @@ public class PurpurWorldConfig { +@@ -2523,6 +2643,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2524,6 +2645,7 @@ public class PurpurWorldConfig { +@@ -2542,6 +2663,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean vindicatorRidable = false; -@@ -2532,6 +2654,7 @@ public class PurpurWorldConfig { +@@ -2550,6 +2672,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2544,6 +2667,7 @@ public class PurpurWorldConfig { +@@ -2562,6 +2685,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean wanderingTraderRidable = false; -@@ -2554,6 +2678,7 @@ public class PurpurWorldConfig { +@@ -2572,6 +2696,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2568,6 +2693,7 @@ public class PurpurWorldConfig { +@@ -2586,6 +2711,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean wardenRidable = false; -@@ -2584,6 +2710,7 @@ public class PurpurWorldConfig { +@@ -2602,6 +2728,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2595,6 +2722,7 @@ public class PurpurWorldConfig { +@@ -2613,6 +2740,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean witherRidable = false; -@@ -2609,6 +2737,7 @@ public class PurpurWorldConfig { +@@ -2627,6 +2755,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2631,6 +2760,7 @@ public class PurpurWorldConfig { +@@ -2649,6 +2778,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean witherSkeletonRidable = false; -@@ -2638,6 +2768,7 @@ public class PurpurWorldConfig { +@@ -2656,6 +2786,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2649,6 +2780,7 @@ public class PurpurWorldConfig { +@@ -2667,6 +2798,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean wolfRidable = false; -@@ -2660,6 +2792,7 @@ public class PurpurWorldConfig { +@@ -2678,6 +2810,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2679,6 +2812,7 @@ public class PurpurWorldConfig { +@@ -2697,6 +2830,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean zoglinRidable = false; -@@ -2686,6 +2820,7 @@ public class PurpurWorldConfig { +@@ -2704,6 +2838,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2697,6 +2832,7 @@ public class PurpurWorldConfig { +@@ -2715,6 +2850,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean zombieRidable = false; -@@ -2710,6 +2846,7 @@ public class PurpurWorldConfig { +@@ -2728,6 +2864,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2727,6 +2864,7 @@ public class PurpurWorldConfig { +@@ -2745,6 +2882,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean zombieHorseRidableInWater = false; -@@ -2739,6 +2877,7 @@ public class PurpurWorldConfig { +@@ -2757,6 +2895,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2756,6 +2895,7 @@ public class PurpurWorldConfig { +@@ -2774,6 +2913,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean zombieVillagerRidable = false; -@@ -2770,6 +2910,7 @@ public class PurpurWorldConfig { +@@ -2788,6 +2928,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2788,6 +2929,7 @@ public class PurpurWorldConfig { +@@ -2806,6 +2947,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 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 } public boolean zombifiedPiglinRidable = false; -@@ -2800,6 +2942,7 @@ public class PurpurWorldConfig { +@@ -2818,6 +2960,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index 5223384a367e151572eb15370d8fc6108564ef6e..b914f7712765720f1fb375f639f9ce39 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2816,6 +2959,7 @@ public class PurpurWorldConfig { +@@ -2834,6 +2977,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/0236-Option-to-prevent-spiders-from-climbing-world-border.patch b/patches/server/0236-Option-to-prevent-spiders-from-climbing-world-border.patch index f38749787..f4724b9eb 100644 --- a/patches/server/0236-Option-to-prevent-spiders-from-climbing-world-border.patch +++ b/patches/server/0236-Option-to-prevent-spiders-from-climbing-world-border.patch @@ -39,10 +39,10 @@ index b1f23e67f7f21cb9a85301a819e8079d9000c0f6..62996f5e65cc04744852897ecca0c83a } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b914f7712765720f1fb375f639f9ce3913b03280..8b7738f48e287370f46d11110fa27a03e6cfece6 100644 +index 550442ebdd824a799c65efeebf2d2e5e9cdc10e8..51df14e58858012b21931f57df0a30fe96c873f0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2449,6 +2449,7 @@ public class PurpurWorldConfig { +@@ -2467,6 +2467,7 @@ public class PurpurWorldConfig { public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; public boolean spiderAlwaysDropExp = false; @@ -50,7 +50,7 @@ index b914f7712765720f1fb375f639f9ce3913b03280..8b7738f48e287370f46d11110fa27a03 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2461,6 +2462,7 @@ public class PurpurWorldConfig { +@@ -2479,6 +2480,7 @@ public class PurpurWorldConfig { spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); spiderTakeDamageFromWater = getBoolean("mobs.spider.takes-damage-from-water", spiderTakeDamageFromWater); spiderAlwaysDropExp = getBoolean("mobs.spider.always-drop-exp", spiderAlwaysDropExp); diff --git a/patches/server/0238-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0238-Shearing-jeb-produces-random-color-wool.patch index 10d546c2f..dfe780c07 100644 --- a/patches/server/0238-Shearing-jeb-produces-random-color-wool.patch +++ b/patches/server/0238-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 158db79b4db5e768371aef45ec36f7ac4b96c051..4ba424ca8d0daf0cd01bafbaf21f65c1776813d7 100644 +index 95020427ac3848db5d4a1387ffba3263fe4767a6..df92f8f6ede63bf0967666993a9e59a7377c18fb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2242,6 +2242,7 @@ public class PurpurWorldConfig { +@@ -2260,6 +2260,7 @@ public class PurpurWorldConfig { public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; public boolean sheepAlwaysDropExp = false; @@ -29,7 +29,7 @@ index 158db79b4db5e768371aef45ec36f7ac4b96c051..4ba424ca8d0daf0cd01bafbaf21f65c1 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2256,6 +2257,7 @@ public class PurpurWorldConfig { +@@ -2274,6 +2275,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/0239-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0239-Turtle-eggs-random-tick-crack-chance.patch index 69524b2a6..57ceb0f94 100644 --- a/patches/server/0239-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0239-Turtle-eggs-random-tick-crack-chance.patch @@ -32,10 +32,10 @@ index 4eeb777a49556c54a3f31c1b9d755b110a3e8fab..d4896c4d1eca6a1494571a40024422ad @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 90a43499dcd3c1b6f8582eaadc766c35a3a5b591..4ad75e8fc73639a1b53ee2e654d8766b84ff37f6 100644 +index df92f8f6ede63bf0967666993a9e59a7377c18fb..0387895a705860549c85178ff5436762db207897 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -971,11 +971,13 @@ public class PurpurWorldConfig { +@@ -989,11 +989,13 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; diff --git a/patches/server/0240-Mob-head-visibility-percent.patch b/patches/server/0240-Mob-head-visibility-percent.patch index 29546cd3d..9098ba5a2 100644 --- a/patches/server/0240-Mob-head-visibility-percent.patch +++ b/patches/server/0240-Mob-head-visibility-percent.patch @@ -32,10 +32,10 @@ index 001dbb7427f963cb570fc593eaeb0d728ef028f3..3328dfb1790d66de36b92d0ef82ec6ca // 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 5ceae41cdaa99c5ce8e1746f317403a2dcd844c7..f84f1d2027845fc371e17d48bb4df4f8ed6f554b 100644 +index 0387895a705860549c85178ff5436762db207897..c42d1c68bfcd53bdfb7a2bad31391641babc2dec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1244,6 +1244,7 @@ public class PurpurWorldConfig { +@@ -1262,6 +1262,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -43,7 +43,7 @@ index 5ceae41cdaa99c5ce8e1746f317403a2dcd844c7..f84f1d2027845fc371e17d48bb4df4f8 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1261,6 +1262,7 @@ public class PurpurWorldConfig { +@@ -1279,6 +1280,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 5ceae41cdaa99c5ce8e1746f317403a2dcd844c7..f84f1d2027845fc371e17d48bb4df4f8 } public boolean dolphinRidable = false; -@@ -2047,6 +2049,7 @@ public class PurpurWorldConfig { +@@ -2065,6 +2067,7 @@ public class PurpurWorldConfig { public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; @@ -59,7 +59,7 @@ index 5ceae41cdaa99c5ce8e1746f317403a2dcd844c7..f84f1d2027845fc371e17d48bb4df4f8 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2061,6 +2064,7 @@ public class PurpurWorldConfig { +@@ -2079,6 +2082,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 5ceae41cdaa99c5ce8e1746f317403a2dcd844c7..f84f1d2027845fc371e17d48bb4df4f8 } public boolean piglinBruteRidable = false; -@@ -2322,6 +2326,7 @@ public class PurpurWorldConfig { +@@ -2340,6 +2344,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -75,7 +75,7 @@ index 5ceae41cdaa99c5ce8e1746f317403a2dcd844c7..f84f1d2027845fc371e17d48bb4df4f8 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2334,6 +2339,7 @@ public class PurpurWorldConfig { +@@ -2352,6 +2357,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 5ceae41cdaa99c5ce8e1746f317403a2dcd844c7..f84f1d2027845fc371e17d48bb4df4f8 } public boolean skeletonHorseRidableInWater = true; -@@ -2857,6 +2863,7 @@ public class PurpurWorldConfig { +@@ -2875,6 +2881,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index 5ceae41cdaa99c5ce8e1746f317403a2dcd844c7..f84f1d2027845fc371e17d48bb4df4f8 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2875,6 +2882,7 @@ public class PurpurWorldConfig { +@@ -2893,6 +2900,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/0243-Stop-bees-from-dying-after-stinging.patch b/patches/server/0243-Stop-bees-from-dying-after-stinging.patch index 86d0bd47a..5b61371db 100644 --- a/patches/server/0243-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0243-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 d4a25e677f2c40e53a881beca434ff1c5c5ab420..82ac1fbdd5f3d859902bdfa621837ea1977772ef 100644 +index c42d1c68bfcd53bdfb7a2bad31391641babc2dec..f8fa43440495512bdec81fbd3b9ddd66df5a2958 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1059,6 +1059,7 @@ public class PurpurWorldConfig { +@@ -1077,6 +1077,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index d4a25e677f2c40e53a881beca434ff1c5c5ab420..82ac1fbdd5f3d859902bdfa621837ea1 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1075,6 +1076,7 @@ public class PurpurWorldConfig { +@@ -1093,6 +1094,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/0245-Configurable-farmland-trample-height.patch b/patches/server/0245-Configurable-farmland-trample-height.patch index 23dbc82aa..0ba786f0a 100644 --- a/patches/server/0245-Configurable-farmland-trample-height.patch +++ b/patches/server/0245-Configurable-farmland-trample-height.patch @@ -35,10 +35,10 @@ index e5a3e3a4367dfb924624a913b816b3fd56e3fefd..7068cb39ab264fa0c65febff01236b8d org.bukkit.event.Cancellable cancellable; if (entity instanceof Player) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 82ac1fbdd5f3d859902bdfa621837ea1977772ef..ae51ffce1c829f8e62cf5c90a1eedfac982f8c4f 100644 +index f8fa43440495512bdec81fbd3b9ddd66df5a2958..bcb7ec819310444b1263afccf65de60108b31a5c 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 { +@@ -865,6 +865,7 @@ public class PurpurWorldConfig { public boolean farmlandTramplingDisabled = false; public boolean farmlandTramplingOnlyPlayers = false; public boolean farmlandTramplingFeatherFalling = false; @@ -46,7 +46,7 @@ index 82ac1fbdd5f3d859902bdfa621837ea1977772ef..ae51ffce1c829f8e62cf5c90a1eedfac private void farmlandSettings() { farmlandBypassMobGriefing = getBoolean("blocks.farmland.bypass-mob-griefing", farmlandBypassMobGriefing); farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); -@@ -859,6 +860,7 @@ public class PurpurWorldConfig { +@@ -872,6 +873,7 @@ public class PurpurWorldConfig { farmlandTramplingDisabled = getBoolean("blocks.farmland.disable-trampling", farmlandTramplingDisabled); farmlandTramplingOnlyPlayers = getBoolean("blocks.farmland.only-players-trample", farmlandTramplingOnlyPlayers); farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); diff --git a/patches/server/0249-Configurable-phantom-size.patch b/patches/server/0249-Configurable-phantom-size.patch index a6b5d905d..bd94e4668 100644 --- a/patches/server/0249-Configurable-phantom-size.patch +++ b/patches/server/0249-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 ec6c0fb48ed2f8005bc53ef9a4efbb911f3eddd5..7fd1e5567a37d2434fd54042773211e21604a58a 100644 +index abe46f309b48f4376f8019aa3d7f07476de727f2..1c938baeb7d2b30d457b3dcb1e416f45944b708a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1987,6 +1987,8 @@ public class PurpurWorldConfig { +@@ -2005,6 +2005,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index ec6c0fb48ed2f8005bc53ef9a4efbb911f3eddd5..7fd1e5567a37d2434fd54042773211e2 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2023,6 +2025,13 @@ public class PurpurWorldConfig { +@@ -2041,6 +2043,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/0252-Configurable-minimum-demand-for-trades.patch b/patches/server/0252-Configurable-minimum-demand-for-trades.patch index b54dae98d..31b5bfeb1 100644 --- a/patches/server/0252-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0252-Configurable-minimum-demand-for-trades.patch @@ -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 67111ebca413fff823ec5dc4a46ab7216709f0a4..b16666f2490416c9e93d8c1cd75536eba02f5385 100644 +index 1c938baeb7d2b30d457b3dcb1e416f45944b708a..bba87691e639bdb24194934b1ba22ef70fb6b763 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2659,6 +2659,7 @@ public class PurpurWorldConfig { +@@ -2677,6 +2677,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 67111ebca413fff823ec5dc4a46ab7216709f0a4..b16666f2490416c9e93d8c1cd75536eb private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2679,6 +2680,7 @@ public class PurpurWorldConfig { +@@ -2697,6 +2698,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/0253-Lobotomize-stuck-villagers.patch b/patches/server/0253-Lobotomize-stuck-villagers.patch index aceded783..e614bdc9c 100644 --- a/patches/server/0253-Lobotomize-stuck-villagers.patch +++ b/patches/server/0253-Lobotomize-stuck-villagers.patch @@ -105,10 +105,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 b16666f2490416c9e93d8c1cd75536eba02f5385..31fb28fb38cdf7684ad2d6535a602fa7a8b83c5d 100644 +index bba87691e639bdb24194934b1ba22ef70fb6b763..83be208e91862534c927f2090665ded9a23e74b6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2660,6 +2660,8 @@ public class PurpurWorldConfig { +@@ -2678,6 +2678,8 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -117,7 +117,7 @@ index b16666f2490416c9e93d8c1cd75536eba02f5385..31fb28fb38cdf7684ad2d6535a602fa7 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2681,6 +2683,17 @@ public class PurpurWorldConfig { +@@ -2699,6 +2701,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/0254-Option-for-villager-display-trade-item.patch b/patches/server/0254-Option-for-villager-display-trade-item.patch index a94a8e552..4ff523c07 100644 --- a/patches/server/0254-Option-for-villager-display-trade-item.patch +++ b/patches/server/0254-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 31fb28fb38cdf7684ad2d6535a602fa7a8b83c5d..3181045cbd3836e45c276699081feec8b5d15c48 100644 +index 83be208e91862534c927f2090665ded9a23e74b6..b30ca4fd74523a56d865e778b9423981846a0603 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2662,6 +2662,7 @@ public class PurpurWorldConfig { +@@ -2680,6 +2680,7 @@ public class PurpurWorldConfig { public int villagerMinimumDemand = 0; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; @@ -28,7 +28,7 @@ index 31fb28fb38cdf7684ad2d6535a602fa7a8b83c5d..3181045cbd3836e45c276699081feec8 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2694,6 +2695,7 @@ public class PurpurWorldConfig { +@@ -2712,6 +2713,7 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); diff --git a/patches/server/0256-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0256-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch index d27eee963..8b7de6cba 100644 --- a/patches/server/0256-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch +++ b/patches/server/0256-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 b2077af824453927f5c70f7d45977d4f53d71fe7..8bbfa9cfa17a3d654c4267b3a36335530e87c430 100644 +index b30ca4fd74523a56d865e778b9423981846a0603..49bb74b5d7dbbca52b7e195897ee75153e498c6d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -960,8 +960,10 @@ public class PurpurWorldConfig { +@@ -978,8 +978,10 @@ public class PurpurWorldConfig { } public boolean spawnerDeactivateByRedstone = false; diff --git a/patches/server/0260-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0260-Option-to-disable-turtle-egg-trampling-with-feather-.patch index 99893ba5d..522bb5956 100644 --- a/patches/server/0260-Option-to-disable-turtle-egg-trampling-with-feather-.patch +++ b/patches/server/0260-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -20,10 +20,10 @@ index d4896c4d1eca6a1494571a40024422ada41d1e78..9f56496fd327f5baaf6b12f40d75646a // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d1f0e4ebecc7ddd9c6728334d6e784113a657a10..ccbaf28b720ec1e61272e16eecf7dc26a1195584 100644 +index 992c178a540753ae13ca3cb7c23dabf7663be160..56cd5573751c43db15c42a34b25ffd25d5e370be 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -986,12 +986,14 @@ public class PurpurWorldConfig { +@@ -1004,12 +1004,14 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; public int turtleEggsRandomTickCrackChance = 500; diff --git a/patches/server/0263-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0263-Implement-configurable-search-radius-for-villagers-t.patch index 0a737cc29..23c68a1f4 100644 --- a/patches/server/0263-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0263-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index f8c78da70ad8b36c07c02259227a43444642e926..dd724eccd08c60f482f74dfadea21ef6 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 60ed1b3caed82256686fe75447f6d5cd4a2b14aa..51347d45266cfaf0bc662271ed19deae5ab98fdb 100644 +index 56cd5573751c43db15c42a34b25ffd25d5e370be..e0025af94a2516e6f7f8a2855175cb34870f493a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2673,6 +2673,8 @@ public class PurpurWorldConfig { +@@ -2691,6 +2691,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 60ed1b3caed82256686fe75447f6d5cd4a2b14aa..51347d45266cfaf0bc662271ed19deae private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2706,6 +2708,8 @@ public class PurpurWorldConfig { +@@ -2724,6 +2726,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/0264-Stonecutter-damage.patch b/patches/server/0264-Stonecutter-damage.patch index 386179854..518e84f3b 100644 --- a/patches/server/0264-Stonecutter-damage.patch +++ b/patches/server/0264-Stonecutter-damage.patch @@ -80,7 +80,7 @@ index 07ecccf5eddb0088e5409b3bb8a6b3c1883189d2..8378c458b03bf0fe71dbc7452dce40f6 throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager, source.msgId)); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java -index 6ae12d6684620a0e524294b28a5abcbc53392089..fec6308aeb99826040fdf5424362b99e07b42838 100644 +index 8a517170c6076badd47e48b64538816857ed413e..44d6b32ad6a760a12fa8ea27f09b2f950e1376f3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java @@ -205,8 +205,10 @@ public class PurpurConfig { @@ -95,10 +95,10 @@ index 6ae12d6684620a0e524294b28a5abcbc53392089..fec6308aeb99826040fdf5424362b99e 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 9d3418e5e13e7750d22ea26c2a448daf1b05573a..4267a4ef91b7bed9a8d145ade36f7f6bd461053e 100644 +index e0025af94a2516e6f7f8a2855175cb34870f493a..a16fa8e1e59f01cd61cd10affd132c1e1d0fbbbc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -981,6 +981,11 @@ public class PurpurWorldConfig { +@@ -999,6 +999,11 @@ public class PurpurWorldConfig { spongeAbsorbsLava = getBoolean("blocks.sponge.absorbs-lava", spongeAbsorbsLava); } diff --git a/patches/server/0265-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0265-Configurable-damage-settings-for-magma-blocks.patch index fc43d5f00..e85f3edfc 100644 --- a/patches/server/0265-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0265-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 4267a4ef91b7bed9a8d145ade36f7f6bd461053e..d7aa5e5119c085ad806e3207b260e612bb27f806 100644 +index a16fa8e1e59f01cd61cd10affd132c1e1d0fbbbc..8f2721502dbc55a0c791e4d1745279b5650c1a62 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -917,6 +917,13 @@ public class PurpurWorldConfig { +@@ -930,6 +930,13 @@ public class PurpurWorldConfig { pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); } diff --git a/patches/server/0266-Add-config-for-snow-on-blue-ice.patch b/patches/server/0266-Add-config-for-snow-on-blue-ice.patch index 4b5edb3a7..396020c08 100644 --- a/patches/server/0266-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0266-Add-config-for-snow-on-blue-ice.patch @@ -22,10 +22,10 @@ index 14e00c7feb1c051d56a3d27cd00dcef072dd771a..4952fb1aaaafb55baa0fddb389f966a1 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d7aa5e5119c085ad806e3207b260e612bb27f806..e790112855f67f2fd19dfa3fa6b49cadcf7e10a4 100644 +index 8f2721502dbc55a0c791e4d1745279b5650c1a62..23caa98fdd5f81e513e1ed57a3666f90c1040e0a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -896,9 +896,11 @@ public class PurpurWorldConfig { +@@ -909,9 +909,11 @@ public class PurpurWorldConfig { public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnBlueIce = true; diff --git a/patches/server/0267-Skeletons-eat-wither-roses.patch b/patches/server/0267-Skeletons-eat-wither-roses.patch index e9f95e023..a296cfcbd 100644 --- a/patches/server/0267-Skeletons-eat-wither-roses.patch +++ b/patches/server/0267-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 8b6a50794b65e8dadf74a4be0f86d40f26d1d63a..edc51e44e219d1adf9428074086f53b54f2e5ad8 100644 +index 23caa98fdd5f81e513e1ed57a3666f90c1040e0a..95bc0deadfca22f84a21c0f17431a504cd7e0306 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2368,6 +2368,7 @@ public class PurpurWorldConfig { +@@ -2386,6 +2386,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index 8b6a50794b65e8dadf74a4be0f86d40f26d1d63a..edc51e44e219d1adf9428074086f53b5 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2381,6 +2382,7 @@ public class PurpurWorldConfig { +@@ -2399,6 +2400,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/0268-Enchantment-Table-Persists-Lapis.patch b/patches/server/0268-Enchantment-Table-Persists-Lapis.patch index b7277cbc2..2607fc663 100644 --- a/patches/server/0268-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0268-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 cb23007b6424eb76dcdb61d615f2dd6fc11ad5ca..e91d40e861ec5aa1f04ab73a16e8facae72d556f 100644 +index 95bc0deadfca22f84a21c0f17431a504cd7e0306..d3887f0f0fafa98a89f73bc6178fc4cb4bacee60 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1403,6 +1403,11 @@ public class PurpurWorldConfig { +@@ -1421,6 +1421,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0271-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0271-Config-for-sculk-shrieker-can_summon-state.patch index 9d391739b..b26d5a8d8 100644 --- a/patches/server/0271-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0271-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 4a141f9278eb31998f2bdac890274630374b929c..38c8ed48427ba1862bc3ab2219d3f162d76dbe3c 100644 +index d3887f0f0fafa98a89f73bc6178fc4cb4bacee60..c76a5953788a33e2466c02a5553521ff8c3d9a18 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -957,6 +957,11 @@ public class PurpurWorldConfig { +@@ -975,6 +975,11 @@ public class PurpurWorldConfig { fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); } diff --git a/patches/server/0272-Config-to-not-let-coral-die.patch b/patches/server/0272-Config-to-not-let-coral-die.patch index e6ea6f509..b5fe14a3d 100644 --- a/patches/server/0272-Config-to-not-let-coral-die.patch +++ b/patches/server/0272-Config-to-not-let-coral-die.patch @@ -29,10 +29,10 @@ index 88faea00be60a519f56f975a5311df5e1eb3e6b8..cbb726ac367be81e27d3a86643baf7c4 int i = aenumdirection.length; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 38c8ed48427ba1862bc3ab2219d3f162d76dbe3c..d8067822ee9b94a070773950bc893032b10e7c3a 100644 +index c76a5953788a33e2466c02a5553521ff8c3d9a18..a34e8a7ec9c42c562646cbf7db767919e3128086 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -805,6 +805,11 @@ public class PurpurWorldConfig { +@@ -810,6 +810,11 @@ public class PurpurWorldConfig { composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); } diff --git a/patches/server/0287-Add-skeleton-bow-accuracy-option.patch b/patches/server/0287-Add-skeleton-bow-accuracy-option.patch index 170797761..af29eb41b 100644 --- a/patches/server/0287-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0287-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 6a162fa85ea2a3efa53bc89d68f0a5b4ed5ac79a..c6279a549d68bff81e14f1ad4793266638d19442 100644 +index ec87511c3cbb0300fd7e918971b43ec94db630d4..7e20ab899271be23ed90b7d3c3b8f79d07076716 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2388,6 +2388,8 @@ public class PurpurWorldConfig { +@@ -2406,6 +2406,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index 6a162fa85ea2a3efa53bc89d68f0a5b4ed5ac79a..c6279a549d68bff81e14f1ad47932666 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2402,6 +2404,18 @@ public class PurpurWorldConfig { +@@ -2420,6 +2422,18 @@ public class PurpurWorldConfig { skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); skeletonHeadVisibilityPercent = getDouble("mobs.skeleton.head-visibility-percent", skeletonHeadVisibilityPercent); skeletonFeedWitherRoses = getInt("mobs.skeleton.feed-wither-roses", skeletonFeedWitherRoses); diff --git a/patches/server/0288-Allay-respect-item-NBT.patch b/patches/server/0288-Allay-respect-item-NBT.patch index 2d15ab325..4ee3eb376 100644 --- a/patches/server/0288-Allay-respect-item-NBT.patch +++ b/patches/server/0288-Allay-respect-item-NBT.patch @@ -44,10 +44,10 @@ index c03eca3f9e5ca87e7607aeca86ff62638d294ff9..a3d34e100647853f887d6ee8a5cf87a3 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 a5515245fdcf096dea59dc0e93298633c2ae7f06..fe34899a605525361e5cb6b2b8f7f0d097cbf788 100644 +index 7e20ab899271be23ed90b7d3c3b8f79d07076716..6fcbdb4b6567196f99fddaa70b9b1f393edf4ae6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1043,10 +1043,13 @@ public class PurpurWorldConfig { +@@ -1061,10 +1061,13 @@ public class PurpurWorldConfig { public boolean allayRidable = false; public boolean allayRidableInWater = false; public boolean allayControllable = true; diff --git a/patches/server/0293-Implement-squid-colors-for-rainglow-fabric-mod.patch b/patches/server/0293-Implement-squid-colors-for-rainglow-fabric-mod.patch index aeaa8ddfd..51d1a4938 100644 --- a/patches/server/0293-Implement-squid-colors-for-rainglow-fabric-mod.patch +++ b/patches/server/0293-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 474685edca03561bfd08e9efce4fb9086d46be41..eda923723929f95489715d617baa13b2bc8a9a16 100644 +index 6fcbdb4b6567196f99fddaa70b9b1f393edf4ae6..1234a56a9320d79cf524e11dc959f672e12b45ae 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1640,6 +1640,7 @@ public class PurpurWorldConfig { +@@ -1658,6 +1658,7 @@ public class PurpurWorldConfig { public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; public boolean glowSquidAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 474685edca03561bfd08e9efce4fb9086d46be41..eda923723929f95489715d617baa13b2 private void glowSquidSettings() { glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable); glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable); -@@ -1647,6 +1648,7 @@ public class PurpurWorldConfig { +@@ -1665,6 +1666,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/0302-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0302-Add-option-to-allow-creeper-to-encircle-target-when-.patch index d9b1861c9..ffa04bcba 100644 --- a/patches/server/0302-Add-option-to-allow-creeper-to-encircle-target-when-.patch +++ b/patches/server/0302-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 79da889535ce03c87f41b828119db85c594bc8e1..f6d7b27063e08e2d65b8b73f2ef7ddc764537bf7 100644 +index 0ccc7acb4e11b45cf95ea3b79e80611da9ffa8e7..cee5ba9488fe7823b5c86647c22fa042b5c43333 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1296,6 +1296,7 @@ public class PurpurWorldConfig { +@@ -1314,6 +1314,7 @@ public class PurpurWorldConfig { public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; public double creeperHeadVisibilityPercent = 0.5D; @@ -35,7 +35,7 @@ index 79da889535ce03c87f41b828119db85c594bc8e1..f6d7b27063e08e2d65b8b73f2ef7ddc7 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1314,6 +1315,7 @@ public class PurpurWorldConfig { +@@ -1332,6 +1333,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);