diff --git a/patches/server/0004-Purpur-config-files.patch b/patches/server/0004-Purpur-config-files.patch index d74e2e0f2..232e14985 100644 --- a/patches/server/0004-Purpur-config-files.patch +++ b/patches/server/0004-Purpur-config-files.patch @@ -29,7 +29,7 @@ index 061716934ba0a1f01e4d85d664034f72b3c7a765..acd95cf1dc7f009b63e44e4404e17362 metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> { Map> map = new HashMap<>(); diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java -index dd0143f319d4adef8834c513af34b1cce7a94a84..40f6d9845d2405c6e54c5213618e1b21016e3d3f 100644 +index 0d140dd7d55407b57fc3394ceb2eba5136e4fcaf..ed64b78bc8510fbe8fda9a10b779e91d99313676 100644 --- a/src/main/java/net/minecraft/commands/CommandSourceStack.java +++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java @@ -318,6 +318,30 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy @@ -351,10 +351,10 @@ index 0000000000000000000000000000000000000000..5907e78bb059bca4a63ea8043d0be730 +} diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..98784ef305393ba90ca54efde363b2fea5757b3d +index 0000000000000000000000000000000000000000..b1628149a2f3effebbf86fd5615f1c8c1d0fbe73 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -0,0 +1,94 @@ +@@ -0,0 +1,95 @@ +package org.purpurmc.purpur; + +import gg.pufferfish.pufferfish.PufferfishConfig; @@ -370,6 +370,7 @@ index 0000000000000000000000000000000000000000..98784ef305393ba90ca54efde363b2fe +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.properties.Tilt; ++import org.purpurmc.purpur.entity.GlowSquidColor; +import org.purpurmc.purpur.tool.Strippable; +import org.purpurmc.purpur.tool.Tillable; +import org.purpurmc.purpur.tool.Waxable; diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index ef260e5d1..7f998cb14 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -5236,10 +5236,10 @@ index 5907e78bb059bca4a63ea8043d0be730412d9c13..b5d8d9475e563a77c9a7923fc4e780e0 + } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 98784ef305393ba90ca54efde363b2fea5757b3d..3a9c885dd59bd5a8c3f54b8397701e4e0c9ca8b7 100644 +index b1628149a2f3effebbf86fd5615f1c8c1d0fbe73..c2e8eb6b25b21ea3238c5df180e4deb8d59ab5b2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -91,4 +91,706 @@ public class PurpurWorldConfig { +@@ -92,4 +92,706 @@ public class PurpurWorldConfig { final Map value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null); return value.isEmpty() ? fallback : value; } diff --git a/patches/server/0009-Configurable-entity-base-attributes.patch b/patches/server/0009-Configurable-entity-base-attributes.patch index e973d368a..6e7d9ddad 100644 --- a/patches/server/0009-Configurable-entity-base-attributes.patch +++ b/patches/server/0009-Configurable-entity-base-attributes.patch @@ -1464,10 +1464,10 @@ index 2ae9a5da91ad20f1b566a686dcc8d4f14c62ecc5..8bfa041297db79e8f1452ce7059d1536 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3a9c885dd59bd5a8c3f54b8397701e4e0c9ca8b7..6255b208de609d4e0331d611c2f0c7bcb54df073 100644 +index c2e8eb6b25b21ea3238c5df180e4deb8d59ab5b2..b411ba7283b8d6abf7cf53c3c82b612c801ebbee 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -112,94 +112,166 @@ public class PurpurWorldConfig { +@@ -113,94 +113,166 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; @@ -1634,7 +1634,7 @@ index 3a9c885dd59bd5a8c3f54b8397701e4e0c9ca8b7..6255b208de609d4e0331d611c2f0c7bc } public boolean dolphinRidable = false; -@@ -207,80 +279,161 @@ public class PurpurWorldConfig { +@@ -208,80 +280,161 @@ public class PurpurWorldConfig { public int dolphinSpitCooldown = 20; public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; @@ -1796,7 +1796,7 @@ index 3a9c885dd59bd5a8c3f54b8397701e4e0c9ca8b7..6255b208de609d4e0331d611c2f0c7bc } public boolean frogRidable = false; -@@ -298,147 +451,316 @@ public class PurpurWorldConfig { +@@ -299,147 +452,316 @@ public class PurpurWorldConfig { public boolean ghastRidableInWater = false; public boolean ghastControllable = true; public double ghastMaxY = 320D; @@ -2113,7 +2113,7 @@ index 3a9c885dd59bd5a8c3f54b8397701e4e0c9ca8b7..6255b208de609d4e0331d611c2f0c7bc } public boolean phantomRidable = false; -@@ -448,6 +770,10 @@ public class PurpurWorldConfig { +@@ -449,6 +771,10 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -2124,7 +2124,7 @@ index 3a9c885dd59bd5a8c3f54b8397701e4e0c9ca8b7..6255b208de609d4e0331d611c2f0c7bc private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -456,180 +782,350 @@ public class PurpurWorldConfig { +@@ -457,180 +783,350 @@ public class PurpurWorldConfig { phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage); phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime); phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing); @@ -2475,7 +2475,7 @@ index 3a9c885dd59bd5a8c3f54b8397701e4e0c9ca8b7..6255b208de609d4e0331d611c2f0c7bc } public boolean tadpoleRidable = false; -@@ -644,64 +1140,125 @@ public class PurpurWorldConfig { +@@ -645,64 +1141,125 @@ public class PurpurWorldConfig { public boolean traderLlamaRidable = false; public boolean traderLlamaRidableInWater = false; public boolean traderLlamaControllable = true; @@ -2601,7 +2601,7 @@ index 3a9c885dd59bd5a8c3f54b8397701e4e0c9ca8b7..6255b208de609d4e0331d611c2f0c7bc } public boolean wardenRidable = false; -@@ -716,81 +1273,165 @@ public class PurpurWorldConfig { +@@ -717,81 +1274,165 @@ public class PurpurWorldConfig { public boolean witchRidable = false; public boolean witchRidableInWater = false; public boolean witchControllable = true; diff --git a/patches/server/0012-AFK-API.patch b/patches/server/0012-AFK-API.patch index ffefbd8c7..0eac01691 100644 --- a/patches/server/0012-AFK-API.patch +++ b/patches/server/0012-AFK-API.patch @@ -213,7 +213,7 @@ index 3f458ddd4dc04ed28510a212be76bb19e7f6a61e..a36469186f72eccf8c4428d920d0583b if (range < 0.0D || d < range * range) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index ea2c76116d8328d2ba6e5e7cc2ed1464f43a8c82..c272fc856113ca2399832b4af7f1e94af9ebb3e2 100644 +index b158f3add91becadd8faad67e20791f16b58583d..a5bedcf16df7665e428bbfabfac31403bbb759e1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -522,10 +522,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -276,10 +276,10 @@ index 492fb7fc8452bb214566e1ca1ebfd0f3ee5fde9e..88b76a75623d306da3bb3d935e7598a9 public static int barrelRows = 3; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6255b208de609d4e0331d611c2f0c7bcb54df073..b9580396b99af75ae4895b09fd8f10a56d0f6046 100644 +index b411ba7283b8d6abf7cf53c3c82b612c801ebbee..657dfaa9cf2990fcade8739d3e1c3f9e71e2d38d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -92,6 +92,24 @@ public class PurpurWorldConfig { +@@ -93,6 +93,24 @@ public class PurpurWorldConfig { return value.isEmpty() ? fallback : value; } diff --git a/patches/server/0019-Player-invulnerabilities.patch b/patches/server/0019-Player-invulnerabilities.patch index 6c2bfd718..0d7dda3a9 100644 --- a/patches/server/0019-Player-invulnerabilities.patch +++ b/patches/server/0019-Player-invulnerabilities.patch @@ -121,7 +121,7 @@ index 2da8186b5f34b5cce97512f50323bee091d380ab..e09cfac18f2b952bb54ec75b04505024 return entityplayer1; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c272fc856113ca2399832b4af7f1e94af9ebb3e2..dee07e6f1d85f37f4dbb9cd0956d48f91bd39ca2 100644 +index a5bedcf16df7665e428bbfabfac31403bbb759e1..e98b9b3c549b077a220b108f668e6ab8df966c2c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2963,5 +2963,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -146,10 +146,10 @@ index c272fc856113ca2399832b4af7f1e94af9ebb3e2..dee07e6f1d85f37f4dbb9cd0956d48f9 // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b9580396b99af75ae4895b09fd8f10a56d0f6046..1aea97e220b088c145a2cfdcd44530649389ce86 100644 +index 657dfaa9cf2990fcade8739d3e1c3f9e71e2d38d..8eaac4b3b7e999ec99785fa41463d8e18d25a277 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,6 +97,8 @@ public class PurpurWorldConfig { +@@ -98,6 +98,8 @@ public class PurpurWorldConfig { public boolean idleTimeoutCountAsSleeping = false; public boolean idleTimeoutUpdateTabList = false; public boolean idleTimeoutTargetPlayer = true; @@ -158,7 +158,7 @@ index b9580396b99af75ae4895b09fd8f10a56d0f6046..1aea97e220b088c145a2cfdcd4453064 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -108,6 +110,8 @@ public class PurpurWorldConfig { +@@ -109,6 +111,8 @@ public class PurpurWorldConfig { idleTimeoutCountAsSleeping = getBoolean("gameplay-mechanics.player.idle-timeout.count-as-sleeping", idleTimeoutCountAsSleeping); idleTimeoutUpdateTabList = getBoolean("gameplay-mechanics.player.idle-timeout.update-tab-list", idleTimeoutUpdateTabList); idleTimeoutTargetPlayer = getBoolean("gameplay-mechanics.player.idle-timeout.mobs-target", idleTimeoutTargetPlayer); diff --git a/patches/server/0021-Configurable-villager-brain-ticks.patch b/patches/server/0021-Configurable-villager-brain-ticks.patch index 276f4d42a..64cda9d06 100644 --- a/patches/server/0021-Configurable-villager-brain-ticks.patch +++ b/patches/server/0021-Configurable-villager-brain-ticks.patch @@ -36,10 +36,10 @@ index ef08ec3eb88ee1ab624e2bd38aaff5e8f97720f2..4cb1cf2b51f1c58e2600996f1d67dcef this.getBrain().tick((ServerLevel) this.level, this); // Paper } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6bb51d0ec5d110c8a6690c1df25a730d50df0f72..707ebaa9568d2875ead797feccd80da1cb9fc6a2 100644 +index 8eaac4b3b7e999ec99785fa41463d8e18d25a277..f6bbe6326b60de83ee79c749705edca4ce293a11 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1239,6 +1239,8 @@ public class PurpurWorldConfig { +@@ -1240,6 +1240,8 @@ public class PurpurWorldConfig { public boolean villagerRidableInWater = false; public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; @@ -48,7 +48,7 @@ index 6bb51d0ec5d110c8a6690c1df25a730d50df0f72..707ebaa9568d2875ead797feccd80da1 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1249,6 +1251,8 @@ public class PurpurWorldConfig { +@@ -1250,6 +1252,8 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); diff --git a/patches/server/0023-Silk-touch-spawners.patch b/patches/server/0023-Silk-touch-spawners.patch index add1340b3..ec09812ea 100644 --- a/patches/server/0023-Silk-touch-spawners.patch +++ b/patches/server/0023-Silk-touch-spawners.patch @@ -127,10 +127,10 @@ index 39bc91423c830d69eff1996881373296f322f06a..e0d8bd28576f16822a584f3514dbcb8f int i = 15 + worldserver.random.nextInt(15) + worldserver.random.nextInt(15); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 707ebaa9568d2875ead797feccd80da1cb9fc6a2..cc194b3560229101fcf2836cbb950082d3d35397 100644 +index f6bbe6326b60de83ee79c749705edca4ce293a11..a4d4ef2e390df3b1f4d88413bd67fa78e847f35b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -114,6 +114,38 @@ public class PurpurWorldConfig { +@@ -115,6 +115,38 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); } diff --git a/patches/server/0024-MC-168772-Fix-Add-turtle-egg-block-options.patch b/patches/server/0024-MC-168772-Fix-Add-turtle-egg-block-options.patch index ade8e56ff..70db218f5 100644 --- a/patches/server/0024-MC-168772-Fix-Add-turtle-egg-block-options.patch +++ b/patches/server/0024-MC-168772-Fix-Add-turtle-egg-block-options.patch @@ -50,10 +50,10 @@ index 7d25fb0fc64a4f559fe206198fde900afa06f258..1a12fee99a8b69fc6c01e1e217575c7c } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cc194b3560229101fcf2836cbb950082d3d35397..b22e855393e5f3d3099db3bba60ad62c1163ca2b 100644 +index a4d4ef2e390df3b1f4d88413bd67fa78e847f35b..8214b85d372c2cb16aa56791f158fc6a88e5a988 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -146,6 +146,15 @@ public class PurpurWorldConfig { +@@ -147,6 +147,15 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0028-Giants-AI-settings.patch b/patches/server/0028-Giants-AI-settings.patch index c2e8a5d3a..67afd71a6 100644 --- a/patches/server/0028-Giants-AI-settings.patch +++ b/patches/server/0028-Giants-AI-settings.patch @@ -120,10 +120,10 @@ index c1c5e884f00398032196ee71b55b348fcfce21ce..ed032918fb33d60c2d60d4db9275dddf } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b22e855393e5f3d3099db3bba60ad62c1163ca2b..2cf4bab37d7789f9d22ae1d9edbdabbe8fa79ab5 100644 +index 8214b85d372c2cb16aa56791f158fc6a88e5a988..ebea7fe95f5722eb526aa94787e899f9bbfe6e72 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -534,6 +534,10 @@ public class PurpurWorldConfig { +@@ -535,6 +535,10 @@ public class PurpurWorldConfig { public double giantMovementSpeed = 0.5D; public double giantAttackDamage = 50.0D; public double giantMaxHealth = 100.0D; @@ -134,7 +134,7 @@ index b22e855393e5f3d3099db3bba60ad62c1163ca2b..2cf4bab37d7789f9d22ae1d9edbdabbe private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -550,6 +554,10 @@ public class PurpurWorldConfig { +@@ -551,6 +555,10 @@ public class PurpurWorldConfig { set("mobs.giant.attributes.max_health", oldValue); } giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth); diff --git a/patches/server/0029-Zombie-horse-naturally-spawn.patch b/patches/server/0029-Zombie-horse-naturally-spawn.patch index 77852f542..ccace2275 100644 --- a/patches/server/0029-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0029-Zombie-horse-naturally-spawn.patch @@ -28,10 +28,10 @@ index eab96c9b53cd608ff99cdad06721cd19e490ad14..6e6559b7edbabc000ac47617ab064e43 entityhorseskeleton.setPos((double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ()); this.addFreshEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); // CraftBukkit diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3e86f0fa382a80250c9b9a0e97eb6544b597760d..3657c311c2be4c8f9f6c8816c885bce7ed621f0f 100644 +index ebea7fe95f5722eb526aa94787e899f9bbfe6e72..c48312f89859787cdecf667becee866a10c88e3b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1457,6 +1457,7 @@ public class PurpurWorldConfig { +@@ -1458,6 +1458,7 @@ public class PurpurWorldConfig { public double zombieHorseJumpStrengthMax = 1.0D; public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; @@ -39,7 +39,7 @@ index 3e86f0fa382a80250c9b9a0e97eb6544b597760d..3657c311c2be4c8f9f6c8816c885bce7 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -1472,6 +1473,7 @@ public class PurpurWorldConfig { +@@ -1473,6 +1474,7 @@ public class PurpurWorldConfig { zombieHorseJumpStrengthMax = getDouble("mobs.zombie_horse.attributes.jump_strength.max", zombieHorseJumpStrengthMax); zombieHorseMovementSpeedMin = getDouble("mobs.zombie_horse.attributes.movement_speed.min", zombieHorseMovementSpeedMin); zombieHorseMovementSpeedMax = getDouble("mobs.zombie_horse.attributes.movement_speed.max", zombieHorseMovementSpeedMax); diff --git a/patches/server/0030-Charged-creeper-naturally-spawn.patch b/patches/server/0030-Charged-creeper-naturally-spawn.patch index 6793ac990..df7599c6f 100644 --- a/patches/server/0030-Charged-creeper-naturally-spawn.patch +++ b/patches/server/0030-Charged-creeper-naturally-spawn.patch @@ -24,10 +24,10 @@ index bb9fc7f78514b434aba2de25f79fb3404eac4c72..5b20eea9dd51498842599579b2f105e5 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 408f80e6046a45ff3f7526f603e5c68d222057d4..c14e710ca4137912978212d69b9dad78d5613f83 100644 +index c48312f89859787cdecf667becee866a10c88e3b..c452a21f82d0b873eea4ec9ce80040e0e5f77fd8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -325,6 +325,7 @@ public class PurpurWorldConfig { +@@ -326,6 +326,7 @@ public class PurpurWorldConfig { public boolean creeperRidableInWater = false; public boolean creeperControllable = true; public double creeperMaxHealth = 20.0D; @@ -35,7 +35,7 @@ index 408f80e6046a45ff3f7526f603e5c68d222057d4..c14e710ca4137912978212d69b9dad78 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -335,6 +336,7 @@ public class PurpurWorldConfig { +@@ -336,6 +337,7 @@ public class PurpurWorldConfig { set("mobs.creeper.attributes.max_health", oldValue); } creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); diff --git a/patches/server/0031-Rabbit-naturally-spawn-toast-and-killer.patch b/patches/server/0031-Rabbit-naturally-spawn-toast-and-killer.patch index ef1a7d17c..6b73dcee4 100644 --- a/patches/server/0031-Rabbit-naturally-spawn-toast-and-killer.patch +++ b/patches/server/0031-Rabbit-naturally-spawn-toast-and-killer.patch @@ -38,10 +38,10 @@ index eaf040f10e33fdfb57391b6e7bc6901c87270853..47dc84052f1fb0017ff2e608c3f6d8b9 int i = world.getRandom().nextInt(100); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c14e710ca4137912978212d69b9dad78d5613f83..ecc43e84b839d66a0636623708633a5a71b95127 100644 +index c452a21f82d0b873eea4ec9ce80040e0e5f77fd8..c092ef4a028d7dc335077b6b741bd1991cb3e7ba 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 { +@@ -969,6 +969,8 @@ public class PurpurWorldConfig { public boolean rabbitRidableInWater = false; public boolean rabbitControllable = true; public double rabbitMaxHealth = 3.0D; @@ -50,7 +50,7 @@ index c14e710ca4137912978212d69b9dad78d5613f83..ecc43e84b839d66a0636623708633a5a private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -978,6 +980,8 @@ public class PurpurWorldConfig { +@@ -979,6 +981,8 @@ public class PurpurWorldConfig { set("mobs.rabbit.attributes.max_health", oldValue); } rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); diff --git a/patches/server/0033-Tulips-change-fox-type.patch b/patches/server/0033-Tulips-change-fox-type.patch index 3b9553df5..426deb3e6 100644 --- a/patches/server/0033-Tulips-change-fox-type.patch +++ b/patches/server/0033-Tulips-change-fox-type.patch @@ -75,10 +75,10 @@ index 0d1e8ad0edcbe53d203b9fa6748f76f783afae5c..a708a9d855fd32c0eb659b44d91a5a1a // Paper start - Cancellable death event protected org.bukkit.event.entity.EntityDeathEvent dropAllDeathLoot(DamageSource source) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ecc43e84b839d66a0636623708633a5a71b95127..81e031ca9345a0dd3e3afb78880d1ae4a936247e 100644 +index c092ef4a028d7dc335077b6b741bd1991cb3e7ba..e655b23d45ad4daca07202ae1e03d3dbdeff1813 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -489,6 +489,7 @@ public class PurpurWorldConfig { +@@ -490,6 +490,7 @@ public class PurpurWorldConfig { public boolean foxRidableInWater = false; public boolean foxControllable = true; public double foxMaxHealth = 10.0D; @@ -86,7 +86,7 @@ index ecc43e84b839d66a0636623708633a5a71b95127..81e031ca9345a0dd3e3afb78880d1ae4 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -499,6 +500,7 @@ public class PurpurWorldConfig { +@@ -500,6 +501,7 @@ public class PurpurWorldConfig { set("mobs.fox.attributes.max_health", oldValue); } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); diff --git a/patches/server/0034-Breedable-Polar-Bears.patch b/patches/server/0034-Breedable-Polar-Bears.patch index 1246c7c40..e3a86eeda 100644 --- a/patches/server/0034-Breedable-Polar-Bears.patch +++ b/patches/server/0034-Breedable-Polar-Bears.patch @@ -59,10 +59,10 @@ index 798269a1098008e14fc2548e480c815fa4ff4d25..e68782ac48fd9ee11080dfd76c88d9a4 this.goalSelector.addGoal(5, new RandomStrollGoal(this, 1.0D)); this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 6.0F)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 81e031ca9345a0dd3e3afb78880d1ae4a936247e..5dbba6fcb3cf0750520e4ea55489cf6e1f04f7d4 100644 +index e655b23d45ad4daca07202ae1e03d3dbdeff1813..2784e968248e5e5ecfbe1a912825c0830ef89083 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -940,6 +940,8 @@ public class PurpurWorldConfig { +@@ -941,6 +941,8 @@ public class PurpurWorldConfig { public boolean polarBearRidableInWater = false; public boolean polarBearControllable = true; public double polarBearMaxHealth = 30.0D; @@ -71,7 +71,7 @@ index 81e031ca9345a0dd3e3afb78880d1ae4a936247e..5dbba6fcb3cf0750520e4ea55489cf6e private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -950,6 +952,9 @@ public class PurpurWorldConfig { +@@ -951,6 +953,9 @@ public class PurpurWorldConfig { set("mobs.polar_bear.attributes.max_health", oldValue); } polarBearMaxHealth = getDouble("mobs.polar_bear.attributes.max_health", polarBearMaxHealth); diff --git a/patches/server/0035-Chickens-can-retaliate.patch b/patches/server/0035-Chickens-can-retaliate.patch index f19b88090..485107675 100644 --- a/patches/server/0035-Chickens-can-retaliate.patch +++ b/patches/server/0035-Chickens-can-retaliate.patch @@ -51,10 +51,10 @@ index 8503a3393026134df18601ed87dcec1f3e6680b8..96dceb9943c4320e0edfba47cc211d60 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5dbba6fcb3cf0750520e4ea55489cf6e1f04f7d4..5c739edfd8b81493248beddb712bbc24a7098ea4 100644 +index 2784e968248e5e5ecfbe1a912825c0830ef89083..2ba6d4749e20519a6ed2f7f1646f8a77341a7a4a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -279,6 +279,7 @@ public class PurpurWorldConfig { +@@ -280,6 +280,7 @@ public class PurpurWorldConfig { public boolean chickenRidableInWater = false; public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; @@ -62,7 +62,7 @@ index 5dbba6fcb3cf0750520e4ea55489cf6e1f04f7d4..5c739edfd8b81493248beddb712bbc24 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -289,6 +290,7 @@ public class PurpurWorldConfig { +@@ -290,6 +291,7 @@ public class PurpurWorldConfig { set("mobs.chicken.attributes.max_health", oldValue); } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); diff --git a/patches/server/0036-Add-option-to-set-armorstand-step-height.patch b/patches/server/0036-Add-option-to-set-armorstand-step-height.patch index f572b2590..39829211d 100644 --- a/patches/server/0036-Add-option-to-set-armorstand-step-height.patch +++ b/patches/server/0036-Add-option-to-set-armorstand-step-height.patch @@ -17,10 +17,10 @@ index 150afceb491cfd254c0f1b84800e6df14cf26676..ba9e851eebb25edf94efe8dfbd591e26 if (!this.canTick) { if (this.noTickPoseDirty) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5c739edfd8b81493248beddb712bbc24a7098ea4..a95aea65d8aafe90d8ba15a7580536c155dcd862 100644 +index 2ba6d4749e20519a6ed2f7f1646f8a77341a7a4a..4327261b78eb936d7afc159e6359b293ef15bacc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -92,6 +92,11 @@ public class PurpurWorldConfig { +@@ -93,6 +93,11 @@ public class PurpurWorldConfig { return value.isEmpty() ? fallback : value; } diff --git a/patches/server/0037-Cat-spawning-options.patch b/patches/server/0037-Cat-spawning-options.patch index 0c0a19163..bf2bb1ca3 100644 --- a/patches/server/0037-Cat-spawning-options.patch +++ b/patches/server/0037-Cat-spawning-options.patch @@ -51,10 +51,10 @@ index 8808cb9f5df43d781cbb9c7943ff2f222e3a6969..f7e3ee98b006a53c3c6bf87fc90e5ef4 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a95aea65d8aafe90d8ba15a7580536c155dcd862..1d6a90f54d415e328804c70b6381ee4010aba7b1 100644 +index 4327261b78eb936d7afc159e6359b293ef15bacc..9ac7c6324f01c6de7f2161cd1bd33d9c5218af90 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -252,6 +252,9 @@ public class PurpurWorldConfig { +@@ -253,6 +253,9 @@ public class PurpurWorldConfig { public boolean catRidableInWater = false; public boolean catControllable = true; public double catMaxHealth = 10.0D; @@ -64,7 +64,7 @@ index a95aea65d8aafe90d8ba15a7580536c155dcd862..1d6a90f54d415e328804c70b6381ee40 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -262,6 +265,9 @@ public class PurpurWorldConfig { +@@ -263,6 +266,9 @@ public class PurpurWorldConfig { set("mobs.cat.attributes.max_health", oldValue); } catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth); diff --git a/patches/server/0039-Cows-eat-mushrooms.patch b/patches/server/0039-Cows-eat-mushrooms.patch index af12bab7b..fa19588e8 100644 --- a/patches/server/0039-Cows-eat-mushrooms.patch +++ b/patches/server/0039-Cows-eat-mushrooms.patch @@ -114,10 +114,10 @@ index dd4d5e2e7cbfed18cf3b4664dbe08eaf9d95f61e..732c560383da3b8a270139758f29734d public Cow getBreedOffspring(ServerLevel world, AgeableMob entity) { return (Cow) EntityType.COW.create(world); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1d6a90f54d415e328804c70b6381ee4010aba7b1..1ed669848112c1b323b2a52b26666570361632d1 100644 +index 9ac7c6324f01c6de7f2161cd1bd33d9c5218af90..dee17f0ae23f59c0165cbd410ffc1dd4c4986c02 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -322,6 +322,7 @@ public class PurpurWorldConfig { +@@ -323,6 +323,7 @@ public class PurpurWorldConfig { public boolean cowRidableInWater = false; public boolean cowControllable = true; public double cowMaxHealth = 10.0D; @@ -125,7 +125,7 @@ index 1d6a90f54d415e328804c70b6381ee4010aba7b1..1ed669848112c1b323b2a52b26666570 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -332,6 +333,7 @@ public class PurpurWorldConfig { +@@ -333,6 +334,7 @@ public class PurpurWorldConfig { set("mobs.cow.attributes.max_health", oldValue); } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); diff --git a/patches/server/0041-Pigs-give-saddle-back.patch b/patches/server/0041-Pigs-give-saddle-back.patch index 42d533f97..aa3d11721 100644 --- a/patches/server/0041-Pigs-give-saddle-back.patch +++ b/patches/server/0041-Pigs-give-saddle-back.patch @@ -27,10 +27,10 @@ index a02476bdc34a4e3e0389abaf08687393cc3bff97..d4348bd3877813295d01d0171fee2d59 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 1ed669848112c1b323b2a52b26666570361632d1..4672bcf648751b813cb22853251c535c5adaa13f 100644 +index dee17f0ae23f59c0165cbd410ffc1dd4c4986c02..61716a46282e51e487cb044d3bc754be0ce4dea6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -891,6 +891,7 @@ public class PurpurWorldConfig { +@@ -892,6 +892,7 @@ public class PurpurWorldConfig { public boolean pigRidableInWater = false; public boolean pigControllable = true; public double pigMaxHealth = 10.0D; @@ -38,7 +38,7 @@ index 1ed669848112c1b323b2a52b26666570361632d1..4672bcf648751b813cb22853251c535c private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -901,6 +902,7 @@ public class PurpurWorldConfig { +@@ -902,6 +903,7 @@ public class PurpurWorldConfig { set("mobs.pig.attributes.max_health", oldValue); } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); diff --git a/patches/server/0042-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0042-Snowman-drop-and-put-back-pumpkin.patch index 3d34f655b..f76e061c3 100644 --- a/patches/server/0042-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0042-Snowman-drop-and-put-back-pumpkin.patch @@ -32,10 +32,10 @@ index e2f0f1d7ed8004a03f14887750a470e08ee1f42d..b4459d68397cc5bac4f7ef79a2dfb18f this.forceDrops = false; // CraftBukkit } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4672bcf648751b813cb22853251c535c5adaa13f..fb7248785d466d6c996dc97ae2d301086e2e3d29 100644 +index 61716a46282e51e487cb044d3bc754be0ce4dea6..96fdc94990735e34aa7522d318197477922c2c4a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1154,6 +1154,8 @@ public class PurpurWorldConfig { +@@ -1155,6 +1155,8 @@ public class PurpurWorldConfig { public boolean snowGolemControllable = true; public boolean snowGolemLeaveTrailWhenRidden = false; public double snowGolemMaxHealth = 4.0D; @@ -44,7 +44,7 @@ index 4672bcf648751b813cb22853251c535c5adaa13f..fb7248785d466d6c996dc97ae2d30108 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1165,6 +1167,8 @@ public class PurpurWorldConfig { +@@ -1166,6 +1168,8 @@ public class PurpurWorldConfig { set("mobs.snow_golem.attributes.max_health", oldValue); } snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); diff --git a/patches/server/0043-Ender-dragon-always-drop-full-exp.patch b/patches/server/0043-Ender-dragon-always-drop-full-exp.patch index 7c27966af..6feff3cdc 100644 --- a/patches/server/0043-Ender-dragon-always-drop-full-exp.patch +++ b/patches/server/0043-Ender-dragon-always-drop-full-exp.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Ender dragon always drop full exp diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index 7dcc1fd63294afa95b2f7115a72961ce175f01f2..6ccacd37f7602a759e47433a97ff54ff761c50fc 100644 +index 1e3afa3d98e755b7a06dc6b90f90e2d41843a482..a2d7d2e1ea6596d0a3188169cf8d7295e888c20f 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -713,7 +713,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -18,10 +18,10 @@ index 7dcc1fd63294afa95b2f7115a72961ce175f01f2..6ccacd37f7602a759e47433a97ff54ff } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fb7248785d466d6c996dc97ae2d301086e2e3d29..283982b9676736b27afc152f0563e0731178e400 100644 +index 96fdc94990735e34aa7522d318197477922c2c4a..1997b61722f4b19e206614ddf92d2d63e009d209 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -435,6 +435,7 @@ public class PurpurWorldConfig { +@@ -436,6 +436,7 @@ public class PurpurWorldConfig { public boolean enderDragonControllable = true; public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; @@ -29,7 +29,7 @@ index fb7248785d466d6c996dc97ae2d301086e2e3d29..283982b9676736b27afc152f0563e073 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -450,6 +451,7 @@ public class PurpurWorldConfig { +@@ -451,6 +452,7 @@ public class PurpurWorldConfig { set("mobs.ender_dragon.attributes.max_health", oldValue); } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); diff --git a/patches/server/0044-Signs-editable-on-right-click.patch b/patches/server/0044-Signs-editable-on-right-click.patch index 7f56f7508..2cfd3300c 100644 --- a/patches/server/0044-Signs-editable-on-right-click.patch +++ b/patches/server/0044-Signs-editable-on-right-click.patch @@ -35,10 +35,10 @@ index ed3d78494735ceda14ad0ea23adeadc374f3b35e..a0d23b7e244e7df8a462b801dee18fd4 } else { return InteractionResult.PASS; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 283982b9676736b27afc152f0563e0731178e400..93a94161696bc7f7e2e02164c9d8b5895f94aa69 100644 +index 1997b61722f4b19e206614ddf92d2d63e009d209..97314f926981ba68fafc175ca1768663202210fd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -151,6 +151,11 @@ public class PurpurWorldConfig { +@@ -152,6 +152,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0045-Allow-soil-to-moisten-from-water-directly-under-it.patch b/patches/server/0045-Allow-soil-to-moisten-from-water-directly-under-it.patch index 14fd32d4e..f03612c60 100644 --- a/patches/server/0045-Allow-soil-to-moisten-from-water-directly-under-it.patch +++ b/patches/server/0045-Allow-soil-to-moisten-from-water-directly-under-it.patch @@ -18,10 +18,10 @@ index d089887030ac7c7a79abca97134ba9291e244059..4208833252a5b5c74d294dc3435869d7 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 93a94161696bc7f7e2e02164c9d8b5895f94aa69..805434c62063cfa9b26d92431fa62b10504ad0f8 100644 +index 97314f926981ba68fafc175ca1768663202210fd..dcad4a05c287fc6448eeafaed16d7163b0ae855a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -151,6 +151,11 @@ public class PurpurWorldConfig { +@@ -152,6 +152,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0046-Minecart-settings-and-WASD-controls.patch b/patches/server/0046-Minecart-settings-and-WASD-controls.patch index c499338bb..be5b1d7e4 100644 --- a/patches/server/0046-Minecart-settings-and-WASD-controls.patch +++ b/patches/server/0046-Minecart-settings-and-WASD-controls.patch @@ -149,10 +149,10 @@ index b86c17b5572f8f74bfefd0f3c6f9d25187574392..304f0f372d669e3da2e8131c50f2f124 protected final float explosionResistance; protected final boolean isRandomlyTicking; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b069f9a5da47d5117a220335035952eea142d6c4..0b7a5fa45591ae79f95af3390373250b6e6b83db 100644 +index dcad4a05c287fc6448eeafaed16d7163b0ae855a..e4b920976dab1d29d686f7948fb3f8bdd643288b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,6 +97,68 @@ public class PurpurWorldConfig { +@@ -98,6 +98,68 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0047-Disable-loot-drops-on-death-by-cramming.patch b/patches/server/0047-Disable-loot-drops-on-death-by-cramming.patch index c0cb7dcc4..998b59527 100644 --- a/patches/server/0047-Disable-loot-drops-on-death-by-cramming.patch +++ b/patches/server/0047-Disable-loot-drops-on-death-by-cramming.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Disable loot drops on death by cramming diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 9bb19e7a112c1411bb6b717de983c0359f6b0cb6..cb90fec7558923f547bab2d37ceffd67c07501ce 100644 +index 4dbe0ed1a9bfd97450cb28ba2d105c25d1416c6a..0f2260e3c5bad76f691bdfa144f9a340a3e34a5e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1747,6 +1747,7 @@ public abstract class LivingEntity extends Entity { @@ -25,10 +25,10 @@ index 9bb19e7a112c1411bb6b717de983c0359f6b0cb6..cb90fec7558923f547bab2d37ceffd67 // CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment org.bukkit.event.entity.EntityDeathEvent deathEvent = CraftEventFactory.callEntityDeathEvent(this, this.drops, () -> { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8e6bc5815e9624c6eb24e66cdba6d95989de4aae..ec5821991becc54f132b97806000759268558450 100644 +index e4b920976dab1d29d686f7948fb3f8bdd643288b..1d5aecb050f6ef6237ea8c1c32b41741477fdf54 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,6 +97,11 @@ public class PurpurWorldConfig { +@@ -98,6 +98,11 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0048-Option-to-toggle-milk-curing-bad-omen.patch b/patches/server/0048-Option-to-toggle-milk-curing-bad-omen.patch index 8a2a96d84..bb07b3a21 100644 --- a/patches/server/0048-Option-to-toggle-milk-curing-bad-omen.patch +++ b/patches/server/0048-Option-to-toggle-milk-curing-bad-omen.patch @@ -28,10 +28,10 @@ index f33977d95b6db473be4f95075ba99caf90ad0220..56dc04d8875971ee9a5d077a695509af return stack.isEmpty() ? new ItemStack(Items.BUCKET) : stack; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ec5821991becc54f132b97806000759268558450..9b38a406705f1733827a4b74e304c2e5d370ac60 100644 +index 1d5aecb050f6ef6237ea8c1c32b41741477fdf54..f06462675a155d95a303e7ea0a7dae3be287a0de 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -98,8 +98,10 @@ public class PurpurWorldConfig { +@@ -99,8 +99,10 @@ public class PurpurWorldConfig { } public boolean disableDropsOnCrammingDeath = false; diff --git a/patches/server/0053-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch b/patches/server/0053-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch index 9baa4d527..eb9b90f03 100644 --- a/patches/server/0053-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch +++ b/patches/server/0053-Add-option-to-allow-loyalty-on-tridents-to-work-in-t.patch @@ -18,10 +18,10 @@ index 1b31b32d42eeb54680b902cd7e82d10ba7daa5d0..5be708a76642d4133757c5d181b3c541 if (!this.level.isClientSide && this.pickup == AbstractArrow.Pickup.ALLOWED) { this.spawnAtLocation(this.getPickupItem(), 0.1F); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9b38a406705f1733827a4b74e304c2e5d370ac60..3aa9497d07d58cc5a1b3e66943a313ad05364ff1 100644 +index f06462675a155d95a303e7ea0a7dae3be287a0de..2427adea65f9400993b3bb62c53a10bbb9da9add 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -99,9 +99,11 @@ public class PurpurWorldConfig { +@@ -100,9 +100,11 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; diff --git a/patches/server/0054-Add-enderman-and-creeper-griefing-controls.patch b/patches/server/0054-Add-enderman-and-creeper-griefing-controls.patch index d5d4775a5..9efa4d372 100644 --- a/patches/server/0054-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/server/0054-Add-enderman-and-creeper-griefing-controls.patch @@ -38,10 +38,10 @@ index d86aeb3f91a01206e7cb13caae3e5c571a73952c..ad47267eb6797e1591841cb7a576fb65 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3aa9497d07d58cc5a1b3e66943a313ad05364ff1..47c1ec44380a90f7f7fb0b6fd6f287796f536a5e 100644 +index 2427adea65f9400993b3bb62c53a10bbb9da9add..976f65da88ab40d2550591f6685a853fafa23abe 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -422,6 +422,7 @@ public class PurpurWorldConfig { +@@ -423,6 +423,7 @@ public class PurpurWorldConfig { public boolean creeperControllable = true; public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; @@ -49,7 +49,7 @@ index 3aa9497d07d58cc5a1b3e66943a313ad05364ff1..47c1ec44380a90f7f7fb0b6fd6f28779 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -433,6 +434,7 @@ public class PurpurWorldConfig { +@@ -434,6 +435,7 @@ public class PurpurWorldConfig { } creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); @@ -57,7 +57,7 @@ index 3aa9497d07d58cc5a1b3e66943a313ad05364ff1..47c1ec44380a90f7f7fb0b6fd6f28779 } public boolean dolphinRidable = false; -@@ -539,6 +541,7 @@ public class PurpurWorldConfig { +@@ -540,6 +542,7 @@ public class PurpurWorldConfig { public boolean endermanRidableInWater = false; public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; @@ -65,7 +65,7 @@ index 3aa9497d07d58cc5a1b3e66943a313ad05364ff1..47c1ec44380a90f7f7fb0b6fd6f28779 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -549,6 +552,7 @@ public class PurpurWorldConfig { +@@ -550,6 +553,7 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max_health", oldValue); } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); diff --git a/patches/server/0055-Villagers-follow-emerald-blocks.patch b/patches/server/0055-Villagers-follow-emerald-blocks.patch index 9475f43d9..20d724723 100644 --- a/patches/server/0055-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0055-Villagers-follow-emerald-blocks.patch @@ -54,10 +54,10 @@ index 8bfa041297db79e8f1452ce7059d1536a6e2854f..615fdf709b81693cced9a208cc96a33f this.goalSelector.addGoal(8, new WaterAvoidingRandomStrollGoal(this, 0.35D)); this.goalSelector.addGoal(9, new InteractGoal(this, Player.class, 3.0F, 1.0F)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 47c1ec44380a90f7f7fb0b6fd6f287796f536a5e..bc8faf0d8bb6c92e667bf61d5efb459121afe180 100644 +index 976f65da88ab40d2550591f6685a853fafa23abe..5f0ca014620632ffcb3dacba8468196c4d083dae 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1411,6 +1411,7 @@ public class PurpurWorldConfig { +@@ -1412,6 +1412,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; @@ -65,7 +65,7 @@ index 47c1ec44380a90f7f7fb0b6fd6f287796f536a5e..bc8faf0d8bb6c92e667bf61d5efb4591 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1423,6 +1424,7 @@ public class PurpurWorldConfig { +@@ -1424,6 +1425,7 @@ public class PurpurWorldConfig { villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); @@ -73,7 +73,7 @@ index 47c1ec44380a90f7f7fb0b6fd6f287796f536a5e..bc8faf0d8bb6c92e667bf61d5efb4591 } public boolean vindicatorRidable = false; -@@ -1445,6 +1447,7 @@ public class PurpurWorldConfig { +@@ -1446,6 +1448,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderRidableInWater = false; public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; @@ -81,7 +81,7 @@ index 47c1ec44380a90f7f7fb0b6fd6f287796f536a5e..bc8faf0d8bb6c92e667bf61d5efb4591 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1455,6 +1458,7 @@ public class PurpurWorldConfig { +@@ -1456,6 +1459,7 @@ public class PurpurWorldConfig { set("mobs.wandering_trader.attributes.max_health", oldValue); } wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); diff --git a/patches/server/0056-Allow-leashing-villagers.patch b/patches/server/0056-Allow-leashing-villagers.patch index 61c0d0042..c0ab06460 100644 --- a/patches/server/0056-Allow-leashing-villagers.patch +++ b/patches/server/0056-Allow-leashing-villagers.patch @@ -49,10 +49,10 @@ index 615fdf709b81693cced9a208cc96a33fb686c9a1..8756e0d8d0077308f5fb74bf45fe093d @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 66b8b647df7cc59c8bd916fed6b0586b0198f699..b21bac52d0ecd70cdc4c059b5f1fcbc8fa49da19 100644 +index 5f0ca014620632ffcb3dacba8468196c4d083dae..8f21736b201948ae5970812de412a13b878f534e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1412,6 +1412,7 @@ public class PurpurWorldConfig { +@@ -1413,6 +1413,7 @@ public class PurpurWorldConfig { public int villagerBrainTicks = 1; public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index 66b8b647df7cc59c8bd916fed6b0586b0198f699..b21bac52d0ecd70cdc4c059b5f1fcbc8 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1425,6 +1426,7 @@ public class PurpurWorldConfig { +@@ -1426,6 +1427,7 @@ public class PurpurWorldConfig { villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks); villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); @@ -68,7 +68,7 @@ index 66b8b647df7cc59c8bd916fed6b0586b0198f699..b21bac52d0ecd70cdc4c059b5f1fcbc8 } public boolean vindicatorRidable = false; -@@ -1448,6 +1450,7 @@ public class PurpurWorldConfig { +@@ -1449,6 +1451,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index 66b8b647df7cc59c8bd916fed6b0586b0198f699..b21bac52d0ecd70cdc4c059b5f1fcbc8 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1459,6 +1462,7 @@ public class PurpurWorldConfig { +@@ -1460,6 +1463,7 @@ public class PurpurWorldConfig { } wanderingTraderMaxHealth = getDouble("mobs.wandering_trader.attributes.max_health", wanderingTraderMaxHealth); wanderingTraderFollowEmeraldBlock = getBoolean("mobs.wandering_trader.follow-emerald-blocks", wanderingTraderFollowEmeraldBlock); diff --git a/patches/server/0057-Implement-infinite-liquids.patch b/patches/server/0057-Implement-infinite-liquids.patch index cf91a70d4..f23cde0dc 100644 --- a/patches/server/0057-Implement-infinite-liquids.patch +++ b/patches/server/0057-Implement-infinite-liquids.patch @@ -81,10 +81,10 @@ index ac33ba631f4b0ae0e08bff5748440ef5b76c2117..29068ca2df90ab0351b91cd0aa3e224c @Override protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state, BlockPos source) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 489a51fb7a80b1e576b5c6d23c41cbe6a7254251..69f249b8647542c1502cf2407ec7737b09566ebb 100644 +index 8f21736b201948ae5970812de412a13b878f534e..317ba58b36bbb9a2430a763794c64e0e98f29f00 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -227,6 +227,13 @@ public class PurpurWorldConfig { +@@ -228,6 +228,13 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } @@ -98,7 +98,7 @@ index 489a51fb7a80b1e576b5c6d23c41cbe6a7254251..69f249b8647542c1502cf2407ec7737b public boolean signRightClickEdit = false; private void signSettings() { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); -@@ -241,6 +248,13 @@ public class PurpurWorldConfig { +@@ -242,6 +249,13 @@ public class PurpurWorldConfig { turtleEggsBreakFromMinecarts = getBoolean("blocks.turtle_egg.break-from-minecarts", turtleEggsBreakFromMinecarts); } diff --git a/patches/server/0058-Make-lava-flow-speed-configurable.patch b/patches/server/0058-Make-lava-flow-speed-configurable.patch index fc29ed141..2417ca662 100644 --- a/patches/server/0058-Make-lava-flow-speed-configurable.patch +++ b/patches/server/0058-Make-lava-flow-speed-configurable.patch @@ -18,10 +18,10 @@ index d96c52a55cad5f6127b17e1307fe341e8bdd1335..87643b76ea46ddfe0281e8a97a5b0996 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 69f249b8647542c1502cf2407ec7737b09566ebb..bfd7592780565f851a0d3da0c4531eb7a50a4b3c 100644 +index 317ba58b36bbb9a2430a763794c64e0e98f29f00..b177081ffd734847ea0fe17859036b38e9d72822 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -229,9 +229,13 @@ public class PurpurWorldConfig { +@@ -230,9 +230,13 @@ public class PurpurWorldConfig { public boolean lavaInfinite = false; public int lavaInfiniteRequiredSources = 2; diff --git a/patches/server/0059-Add-player-death-exp-control-options.patch b/patches/server/0059-Add-player-death-exp-control-options.patch index 8609828c6..c1cee114a 100644 --- a/patches/server/0059-Add-player-death-exp-control-options.patch +++ b/patches/server/0059-Add-player-death-exp-control-options.patch @@ -31,10 +31,10 @@ index 74ef0579739cdc6961718dd2d2b34752f172ed73..df34e5332a6d9c36cad89bac72b5f278 return 0; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bfd7592780565f851a0d3da0c4531eb7a50a4b3c..699fb31a9ce01e88b0a1fb2af99b74ec64856eb0 100644 +index b177081ffd734847ea0fe17859036b38e9d72822..9cf7278f13ac13a2cb1451a4dc72878418b7369d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -175,6 +175,8 @@ public class PurpurWorldConfig { +@@ -176,6 +176,8 @@ public class PurpurWorldConfig { public boolean idleTimeoutTargetPlayer = true; public int playerSpawnInvulnerableTicks = 60; public boolean playerInvulnerableWhileAcceptingResourcePack = false; @@ -43,7 +43,7 @@ index bfd7592780565f851a0d3da0c4531eb7a50a4b3c..699fb31a9ce01e88b0a1fb2af99b74ec private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -188,6 +190,8 @@ public class PurpurWorldConfig { +@@ -189,6 +191,8 @@ public class PurpurWorldConfig { idleTimeoutTargetPlayer = getBoolean("gameplay-mechanics.player.idle-timeout.mobs-target", idleTimeoutTargetPlayer); playerSpawnInvulnerableTicks = getInt("gameplay-mechanics.player.spawn-invulnerable-ticks", playerSpawnInvulnerableTicks); playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); diff --git a/patches/server/0060-Configurable-void-damage-height-and-damage.patch b/patches/server/0060-Configurable-void-damage-height-and-damage.patch index 0fbb2b384..ba8249f47 100644 --- a/patches/server/0060-Configurable-void-damage-height-and-damage.patch +++ b/patches/server/0060-Configurable-void-damage-height-and-damage.patch @@ -31,10 +31,10 @@ index 0f2260e3c5bad76f691bdfa144f9a340a3e34a5e..f6e6ef12f76d8c0e3c62daa4b831fb21 protected void updateSwingTime() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 56f590e38064ac9ab8b2ded728f238f40f1418e6..016c5bdcc9a90eb4dbe1c088ec2ca247ee1ab7a8 100644 +index 9cf7278f13ac13a2cb1451a4dc72878418b7369d..44f57a4098d862b8f7930d9af0abbc4a0b02ec3b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -100,10 +100,14 @@ public class PurpurWorldConfig { +@@ -101,10 +101,14 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; diff --git a/patches/server/0062-Dispenser-curse-of-binding-protection.patch b/patches/server/0062-Dispenser-curse-of-binding-protection.patch index 1eb5c3f47..847785819 100644 --- a/patches/server/0062-Dispenser-curse-of-binding-protection.patch +++ b/patches/server/0062-Dispenser-curse-of-binding-protection.patch @@ -43,10 +43,10 @@ index baa7e055d8ee4a153842128b07984b9f6deac6ca..014dd3aa8a7313d978d4781a1b7c6f53 // CraftBukkit start Level world = pointer.getLevel(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 016c5bdcc9a90eb4dbe1c088ec2ca247ee1ab7a8..40d4bb55f0424f90028fb90f5b12953e68c76d25 100644 +index 44f57a4098d862b8f7930d9af0abbc4a0b02ec3b..9db2f16af2b776805747591f20456319f8aff65a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -230,6 +230,11 @@ public class PurpurWorldConfig { +@@ -231,6 +231,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0063-Add-option-for-boats-to-eject-players-on-land.patch b/patches/server/0063-Add-option-for-boats-to-eject-players-on-land.patch index ddc4ddd76..09e5789b6 100644 --- a/patches/server/0063-Add-option-for-boats-to-eject-players-on-land.patch +++ b/patches/server/0063-Add-option-for-boats-to-eject-players-on-land.patch @@ -17,10 +17,10 @@ index 29da8a42406feccf7932097b07b1d32a38fa96b7..539c9d60cecb63fb2b0858951ff58cc0 } else { return Boat.Status.IN_AIR; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 61e0ab842e2e0a5856a39cb3a2a0c7837b02353e..6f888c569f6054e2e1dbf550d914476fe062417f 100644 +index 9db2f16af2b776805747591f20456319f8aff65a..ebb932d4311cd96dcfec98b9be13b75cd725c6f6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,12 +97,14 @@ public class PurpurWorldConfig { +@@ -98,12 +98,14 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0064-Mending-mends-most-damages-equipment-first.patch b/patches/server/0064-Mending-mends-most-damages-equipment-first.patch index ebe645b51..ae6762221 100644 --- a/patches/server/0064-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0064-Mending-mends-most-damages-equipment-first.patch @@ -73,10 +73,10 @@ index 22925b2f44fc510832ef07290d3109f0394f7d30..4afa30753a90d9bbd3c71b21cb4a8dea public static Map.Entry getRandomItemWith(Enchantment enchantment, LivingEntity entity) { return getRandomItemWith(enchantment, entity, (stack) -> { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6f888c569f6054e2e1dbf550d914476fe062417f..74244b61ef528df49f2f71a3d52522b397d6e7e1 100644 +index ebb932d4311cd96dcfec98b9be13b75cd725c6f6..602b6841bba07fbaa2dc04a1dff2ffd0cecfb5c1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -97,6 +97,7 @@ public class PurpurWorldConfig { +@@ -98,6 +98,7 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } @@ -84,7 +84,7 @@ index 6f888c569f6054e2e1dbf550d914476fe062417f..74244b61ef528df49f2f71a3d52522b3 public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; public boolean milkCuresBadOmen = true; -@@ -104,6 +105,7 @@ public class PurpurWorldConfig { +@@ -105,6 +106,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; private void miscGameplayMechanicsSettings() { diff --git a/patches/server/0066-Implement-elytra-settings.patch b/patches/server/0066-Implement-elytra-settings.patch index b1f6ab9e9..b57940d8b 100644 --- a/patches/server/0066-Implement-elytra-settings.patch +++ b/patches/server/0066-Implement-elytra-settings.patch @@ -99,10 +99,10 @@ index 998758be827efbcb7693ed36ab1dffc0ef0369bf..5beaafec0759543d3bddf99028c97d0d entityhuman.startAutoSpinAttack(20); if (entityhuman.isOnGround()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d73da2cb103cc440cf8c46b73f6f450afcb88be2..02f9e33f7f8f36d65374b3ed7cac3b2b7939583e 100644 +index 602b6841bba07fbaa2dc04a1dff2ffd0cecfb5c1..80d72a73d119f57c44f0cc5c5517678e67196e2b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -114,6 +114,19 @@ public class PurpurWorldConfig { +@@ -115,6 +115,19 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); } diff --git a/patches/server/0067-Item-entity-immunities.patch b/patches/server/0067-Item-entity-immunities.patch index ab9569d2f..299c2aa7f 100644 --- a/patches/server/0067-Item-entity-immunities.patch +++ b/patches/server/0067-Item-entity-immunities.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Item entity immunities diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java -index 88152988425b7b02ec5ce229ba4c24b40e030329..78c01b08ff8683960d1d227523ca6cecf56c06b1 100644 +index 1eb912ad97f9663bf6bd336ad739f2552b0a5c9b..3441339e1ba5efb0e25c16fa13cb65d2fbdafc42 100644 --- a/src/main/java/net/minecraft/server/level/ServerEntity.java +++ b/src/main/java/net/minecraft/server/level/ServerEntity.java @@ -65,7 +65,7 @@ public class ServerEntity { @@ -115,10 +115,10 @@ index fea44ba6a6584b4a510af6a58cab07eecec6b68b..f3bf5199bc7ddf8a3d0dc67a184e7690 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index aecaf3bfa1153caa66153a560575336b844e5e55..298289ec1f000391cec03734f238f2fb558a8a50 100644 +index 80d72a73d119f57c44f0cc5c5517678e67196e2b..7d1be131f0fb8631542f429391fed918d36d4534 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -127,6 +127,49 @@ public class PurpurWorldConfig { +@@ -128,6 +128,49 @@ public class PurpurWorldConfig { elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } diff --git a/patches/server/0071-Configurable-jockey-options.patch b/patches/server/0071-Configurable-jockey-options.patch index 0ffaca342..61f1de09d 100644 --- a/patches/server/0071-Configurable-jockey-options.patch +++ b/patches/server/0071-Configurable-jockey-options.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable jockey options diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index 9e7ea6be928fb536c9898a85bb0a9ad40af25bd5..c11c51d2054042f8e12fafff4c4d13bc17b9d176 100644 +index 4b58ca48deda0410edf9ad3c9079858d5a31a762..968392e9dd124f997d5d5996893363ac7ef2c740 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -93,6 +93,21 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -167,10 +167,10 @@ index bc3ffb8867d5f7c2fa548d31256341d388bf8112..6c1dd723373f9b1b920548de85aeb6ce @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061870fc066 100644 +index 7d1be131f0fb8631542f429391fed918d36d4534..66fa3990f6a7e6e1623d0e911ee18f3eafebf1c1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -577,6 +577,9 @@ public class PurpurWorldConfig { +@@ -578,6 +578,9 @@ public class PurpurWorldConfig { public boolean drownedControllable = true; public double drownedMaxHealth = 20.0D; public double drownedSpawnReinforcements = 0.1D; @@ -180,7 +180,7 @@ index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -588,6 +591,9 @@ public class PurpurWorldConfig { +@@ -589,6 +592,9 @@ public class PurpurWorldConfig { } drownedMaxHealth = getDouble("mobs.drowned.attributes.max_health", drownedMaxHealth); drownedSpawnReinforcements = getDouble("mobs.drowned.attributes.spawn_reinforcements", drownedSpawnReinforcements); @@ -190,7 +190,7 @@ index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061 } public boolean elderGuardianRidable = false; -@@ -836,6 +842,9 @@ public class PurpurWorldConfig { +@@ -837,6 +843,9 @@ public class PurpurWorldConfig { public boolean huskControllable = true; public double huskMaxHealth = 20.0D; public double huskSpawnReinforcements = 0.1D; @@ -200,7 +200,7 @@ index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -847,6 +856,9 @@ public class PurpurWorldConfig { +@@ -848,6 +857,9 @@ public class PurpurWorldConfig { } huskMaxHealth = getDouble("mobs.husk.attributes.max_health", huskMaxHealth); huskSpawnReinforcements = getDouble("mobs.husk.attributes.spawn_reinforcements", huskSpawnReinforcements); @@ -210,7 +210,7 @@ index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061 } public boolean illusionerRidable = false; -@@ -1656,6 +1668,9 @@ public class PurpurWorldConfig { +@@ -1657,6 +1669,9 @@ public class PurpurWorldConfig { public boolean zombieControllable = true; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1667,6 +1682,9 @@ public class PurpurWorldConfig { +@@ -1668,6 +1683,9 @@ public class PurpurWorldConfig { } zombieMaxHealth = getDouble("mobs.zombie.attributes.max_health", zombieMaxHealth); zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements); @@ -230,7 +230,7 @@ index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061 } public boolean zombieHorseRidableInWater = false; -@@ -1701,6 +1719,9 @@ public class PurpurWorldConfig { +@@ -1702,6 +1720,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerControllable = true; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1712,6 +1733,9 @@ public class PurpurWorldConfig { +@@ -1713,6 +1734,9 @@ public class PurpurWorldConfig { } zombieVillagerMaxHealth = getDouble("mobs.zombie_villager.attributes.max_health", zombieVillagerMaxHealth); zombieVillagerSpawnReinforcements = getDouble("mobs.zombie_villager.attributes.spawn_reinforcements", zombieVillagerSpawnReinforcements); @@ -250,7 +250,7 @@ index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061 } public boolean zombifiedPiglinRidable = false; -@@ -1719,6 +1743,9 @@ public class PurpurWorldConfig { +@@ -1720,6 +1744,9 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinControllable = true; public double zombifiedPiglinMaxHealth = 20.0D; public double zombifiedPiglinSpawnReinforcements = 0.0D; @@ -260,7 +260,7 @@ index 298289ec1f000391cec03734f238f2fb558a8a50..fee17cd019a98e685a2783387fee2061 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1730,5 +1757,8 @@ public class PurpurWorldConfig { +@@ -1731,5 +1758,8 @@ public class PurpurWorldConfig { } zombifiedPiglinMaxHealth = getDouble("mobs.zombified_piglin.attributes.max_health", zombifiedPiglinMaxHealth); zombifiedPiglinSpawnReinforcements = getDouble("mobs.zombified_piglin.attributes.spawn_reinforcements", zombifiedPiglinSpawnReinforcements); diff --git a/patches/server/0072-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0072-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index 7ef5559a4..22a0f89ed 100644 --- a/patches/server/0072-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0072-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -73,7 +73,7 @@ index 6a08ab40e60b80f8f5c4d3f02da121be9da05111..e1493079d06a91f3e14e333e2a040872 @Override protected void addAdditionalSaveData(CompoundTag nbt) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index a3b871797c3e006f66978a73da01fede52fc8c49..9c82953b45471a40faea41f164feabbd2af02984 100644 +index 022f40b66864940652099e91fad18e02aee8c5b2..f847e785f4313cd3c814b0fe9156ccbb9536024f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -49,6 +49,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -258,10 +258,10 @@ index a3b871797c3e006f66978a73da01fede52fc8c49..9c82953b45471a40faea41f164feabbd private float speed = 0.1F; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fee17cd019a98e685a2783387fee2061870fc066..1c55bd66f132c93dc0e2aa09cb4c52cfc5b4715e 100644 +index 66fa3990f6a7e6e1623d0e911ee18f3eafebf1c1..3a216283fd76991539b494afacbaeb011fb8f8ec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1054,6 +1054,9 @@ public class PurpurWorldConfig { +@@ -1055,6 +1055,9 @@ public class PurpurWorldConfig { public String phantomAttackDamage = "6 + size"; public Map phantomMaxHealthCache = new HashMap<>(); public Map phantomAttackDamageCache = new HashMap<>(); @@ -271,7 +271,7 @@ index fee17cd019a98e685a2783387fee2061870fc066..1c55bd66f132c93dc0e2aa09cb4c52cf private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1075,6 +1078,9 @@ public class PurpurWorldConfig { +@@ -1076,6 +1079,9 @@ public class PurpurWorldConfig { phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage); phantomMaxHealthCache.clear(); phantomAttackDamageCache.clear(); diff --git a/patches/server/0073-Add-phantom-spawning-options.patch b/patches/server/0073-Add-phantom-spawning-options.patch index f36c88868..c8a1eabfa 100644 --- a/patches/server/0073-Add-phantom-spawning-options.patch +++ b/patches/server/0073-Add-phantom-spawning-options.patch @@ -48,10 +48,10 @@ index 6b5c31470499e25d01936106839c2fff21b113c8..cbf4a7ca1f09d156eed12030fafb7240 for (int l = 0; l < k; ++l) { // Paper start diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1c55bd66f132c93dc0e2aa09cb4c52cfc5b4715e..3f2d97e54fa79c0143459a88d9a8a63757883fd7 100644 +index 3a216283fd76991539b494afacbaeb011fb8f8ec..b45d0094151d12724705bfa65eef52e5bdcb8426 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1057,6 +1057,18 @@ public class PurpurWorldConfig { +@@ -1058,6 +1058,18 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; @@ -70,7 +70,7 @@ index 1c55bd66f132c93dc0e2aa09cb4c52cfc5b4715e..3f2d97e54fa79c0143459a88d9a8a637 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1081,6 +1093,18 @@ public class PurpurWorldConfig { +@@ -1082,6 +1094,18 @@ public class PurpurWorldConfig { phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius); diff --git a/patches/server/0074-Implement-bed-explosion-options.patch b/patches/server/0074-Implement-bed-explosion-options.patch index 8d7c3e527..a25889082 100644 --- a/patches/server/0074-Implement-bed-explosion-options.patch +++ b/patches/server/0074-Implement-bed-explosion-options.patch @@ -27,10 +27,10 @@ index 654a859a37bf991c7a7fa8a44a3d20f8feb223db..e1d274a9be856f6fa5be00958c35b7d7 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3f2d97e54fa79c0143459a88d9a8a63757883fd7..b1aef35ae90d698d67f06053f5ace5721f5b2cde 100644 +index b45d0094151d12724705bfa65eef52e5bdcb8426..e80f4a4dca04daa8587c42c476ff6d2012ac9657 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -290,6 +290,22 @@ public class PurpurWorldConfig { +@@ -291,6 +291,22 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0075-Implement-respawn-anchor-explosion-options.patch b/patches/server/0075-Implement-respawn-anchor-explosion-options.patch index 5d8653226..7d48bb2ad 100644 --- a/patches/server/0075-Implement-respawn-anchor-explosion-options.patch +++ b/patches/server/0075-Implement-respawn-anchor-explosion-options.patch @@ -18,10 +18,10 @@ index c2f3d3a09327e7cb7d3167609eb3ce68eadf6443..12b25aec1167620ed7048c0c8631b0b5 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 b1aef35ae90d698d67f06053f5ace5721f5b2cde..4180a1215daff7383acd9c77adb4e813ed9a4359 100644 +index e80f4a4dca04daa8587c42c476ff6d2012ac9657..ff850c647216d061e06c247f709eff398468c397 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -327,6 +327,22 @@ public class PurpurWorldConfig { +@@ -328,6 +328,22 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0078-Entity-lifespan.patch b/patches/server/0078-Entity-lifespan.patch index 068e5b2a7..2fca17c00 100644 --- a/patches/server/0078-Entity-lifespan.patch +++ b/patches/server/0078-Entity-lifespan.patch @@ -95,10 +95,10 @@ index c6e2ecb9c7417c00118d7b5a58583a3f4f5e1485..8d7adb461acdc37ee820c56c15944eed } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 76a80276e0634595954d976aab8f9b20c89b7227..3243c8aa7fc710d655f12de6e995d604710f2122 100644 +index ff850c647216d061e06c247f709eff398468c397..0f33736b1daf1d5721cd08abd66c70a9690124b6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -127,6 +127,11 @@ public class PurpurWorldConfig { +@@ -128,6 +128,11 @@ public class PurpurWorldConfig { elytraDamagePerTridentBoost = getInt("gameplay-mechanics.elytra.damage-per-boost.trident", elytraDamagePerTridentBoost); } diff --git a/patches/server/0079-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0079-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index b7bca9ee7..18ee0ce7f 100644 --- a/patches/server/0079-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0079-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -56,10 +56,10 @@ index 0f54b1f6024ea4a3d1bb0a86015a084f9c298c7c..fa2404a02d32b8fdcd3a9134bde58c68 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3243c8aa7fc710d655f12de6e995d604710f2122..c1427f1902d3eca6bec8c3f0a1503ec1a28baf6b 100644 +index 0f33736b1daf1d5721cd08abd66c70a9690124b6..be33d4c0c00804547da3f0aa56b52014343dd804 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -246,6 +246,7 @@ public class PurpurWorldConfig { +@@ -247,6 +247,7 @@ public class PurpurWorldConfig { public boolean playerInvulnerableWhileAcceptingResourcePack = false; public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; @@ -67,7 +67,7 @@ index 3243c8aa7fc710d655f12de6e995d604710f2122..c1427f1902d3eca6bec8c3f0a1503ec1 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -261,6 +262,7 @@ public class PurpurWorldConfig { +@@ -262,6 +263,7 @@ public class PurpurWorldConfig { playerInvulnerableWhileAcceptingResourcePack = getBoolean("gameplay-mechanics.player.invulnerable-while-accepting-resource-pack", playerInvulnerableWhileAcceptingResourcePack); playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation); playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); diff --git a/patches/server/0080-Squid-EAR-immunity.patch b/patches/server/0080-Squid-EAR-immunity.patch index ffccd12b4..7c8e7312e 100644 --- a/patches/server/0080-Squid-EAR-immunity.patch +++ b/patches/server/0080-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 68d87cd69a830a4b5e15b31a43ab0a80f07fe7cc..0479eb38b18712028fd255e2749997d8f6008a7a 100644 +index be33d4c0c00804547da3f0aa56b52014343dd804..7edc474d30256811a04788e01d6f0ceb2404de73 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1433,6 +1433,7 @@ public class PurpurWorldConfig { +@@ -1434,6 +1434,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidControllable = true; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index 68d87cd69a830a4b5e15b31a43ab0a80f07fe7cc..0479eb38b18712028fd255e2749997d8 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1442,6 +1443,7 @@ public class PurpurWorldConfig { +@@ -1443,6 +1444,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); diff --git a/patches/server/0081-Phantoms-burn-in-light.patch b/patches/server/0081-Phantoms-burn-in-light.patch index 7ff793a90..37a2ce2b1 100644 --- a/patches/server/0081-Phantoms-burn-in-light.patch +++ b/patches/server/0081-Phantoms-burn-in-light.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Phantoms burn in light diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 9c82953b45471a40faea41f164feabbd2af02984..82d56a6968f3bbea5a2d32c2a7a84a8ba36d3d15 100644 +index f847e785f4313cd3c814b0fe9156ccbb9536024f..77716d29aa50887bfa704ebafe2a304faddcc5c2 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -50,6 +50,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -53,10 +53,10 @@ index 9c82953b45471a40faea41f164feabbd2af02984..82d56a6968f3bbea5a2d32c2a7a84a8b 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 0479eb38b18712028fd255e2749997d8f6008a7a..feed341e67e3580e13d5c3c705f3aeb87d8a9031 100644 +index 7edc474d30256811a04788e01d6f0ceb2404de73..a5a7fff2375d8216fede6f606fb305907be0b518 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1108,6 +1108,9 @@ public class PurpurWorldConfig { +@@ -1109,6 +1109,9 @@ public class PurpurWorldConfig { public int phantomSpawnOverheadRadius = 10; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -66,7 +66,7 @@ index 0479eb38b18712028fd255e2749997d8f6008a7a..feed341e67e3580e13d5c3c705f3aeb8 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1144,6 +1147,9 @@ public class PurpurWorldConfig { +@@ -1145,6 +1148,9 @@ public class PurpurWorldConfig { phantomSpawnOverheadRadius = getInt("mobs.phantom.spawn.overhead.radius", phantomSpawnOverheadRadius); phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt); phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt); diff --git a/patches/server/0082-Configurable-villager-breeding.patch b/patches/server/0082-Configurable-villager-breeding.patch index 141fe1704..44ae7923e 100644 --- a/patches/server/0082-Configurable-villager-breeding.patch +++ b/patches/server/0082-Configurable-villager-breeding.patch @@ -18,10 +18,10 @@ index 2087b4a4fbc4076c5ec59aaf73f1367ffcd0ef7c..09a7af00e05f5369c1c87c51f121ed34 private boolean hungry() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index feed341e67e3580e13d5c3c705f3aeb87d8a9031..37fc8cca1034949c63fce0edd662748f12982517 100644 +index a5a7fff2375d8216fede6f606fb305907be0b518..69032e6cc241014ed0a8024757cab66a01235b90 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1593,6 +1593,7 @@ public class PurpurWorldConfig { +@@ -1594,6 +1594,7 @@ public class PurpurWorldConfig { public boolean villagerUseBrainTicksOnlyWhenLagging = true; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -29,7 +29,7 @@ index feed341e67e3580e13d5c3c705f3aeb87d8a9031..37fc8cca1034949c63fce0edd662748f private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1607,6 +1608,7 @@ public class PurpurWorldConfig { +@@ -1608,6 +1609,7 @@ public class PurpurWorldConfig { villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); diff --git a/patches/server/0083-Redstone-deactivates-spawners.patch b/patches/server/0083-Redstone-deactivates-spawners.patch index 3c8ce1f40..f3197f405 100644 --- a/patches/server/0083-Redstone-deactivates-spawners.patch +++ b/patches/server/0083-Redstone-deactivates-spawners.patch @@ -17,10 +17,10 @@ index ee619590aa49323059947fbaee9e88d61df99789..deffa277272c34adb39d7c3e69e91502 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 37fc8cca1034949c63fce0edd662748f12982517..addbc5f93292874717e5d394e9ebd7a7a0d69394 100644 +index 69032e6cc241014ed0a8024757cab66a01235b90..5ad41ae78145e0488676c2addeb0fcdccbfcda85 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -355,6 +355,11 @@ public class PurpurWorldConfig { +@@ -356,6 +356,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0084-Totems-work-in-inventory.patch b/patches/server/0084-Totems-work-in-inventory.patch index 3a8b70c71..1aada01f0 100644 --- a/patches/server/0084-Totems-work-in-inventory.patch +++ b/patches/server/0084-Totems-work-in-inventory.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Totems work in inventory diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index c9dd775e01da040ac6c97c0ee0147828f1cc7fdd..6a72ce966db535d9f9996bebe23aeae889cde41e 100644 +index fa2404a02d32b8fdcd3a9134bde58c683d542bca..992f4ecd565f1da36c233bc32e74de25421784c9 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1544,6 +1544,19 @@ public abstract class LivingEntity extends Entity { @@ -29,10 +29,10 @@ index c9dd775e01da040ac6c97c0ee0147828f1cc7fdd..6a72ce966db535d9f9996bebe23aeae8 event.setCancelled(itemstack == null); this.level.getCraftServer().getPluginManager().callEvent(event); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index addbc5f93292874717e5d394e9ebd7a7a0d69394..0f36235678efa995a10474e6f7652f1782e693d7 100644 +index 5ad41ae78145e0488676c2addeb0fcdccbfcda85..da29a7a36e9d7bae2fd6d8cd93c236502d24ca3d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -247,6 +247,7 @@ public class PurpurWorldConfig { +@@ -248,6 +248,7 @@ public class PurpurWorldConfig { public String playerDeathExpDropEquation = "expLevel * 7"; public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; @@ -40,7 +40,7 @@ index addbc5f93292874717e5d394e9ebd7a7a0d69394..0f36235678efa995a10474e6f7652f17 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -263,6 +264,7 @@ public class PurpurWorldConfig { +@@ -264,6 +265,7 @@ public class PurpurWorldConfig { playerDeathExpDropEquation = getString("gameplay-mechanics.player.exp-dropped-on-death.equation", playerDeathExpDropEquation); playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); diff --git a/patches/server/0085-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0085-Add-vindicator-johnny-spawn-chance.patch index 61b369743..625a039b9 100644 --- a/patches/server/0085-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0085-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 0f36235678efa995a10474e6f7652f1782e693d7..2ceefab6594d70e0585817d7bc386caed077c377 100644 +index da29a7a36e9d7bae2fd6d8cd93c236502d24ca3d..6cc8176551a6bd90c7b070095263d4f1b2cb7bec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1622,6 +1622,7 @@ public class PurpurWorldConfig { +@@ -1623,6 +1623,7 @@ public class PurpurWorldConfig { public boolean vindicatorRidableInWater = false; public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; @@ -33,7 +33,7 @@ index 0f36235678efa995a10474e6f7652f1782e693d7..2ceefab6594d70e0585817d7bc386cae private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1632,6 +1633,7 @@ public class PurpurWorldConfig { +@@ -1633,6 +1634,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/server/0087-Dispensers-place-anvils-option.patch b/patches/server/0087-Dispensers-place-anvils-option.patch index a790c0016..bd015f96b 100644 --- a/patches/server/0087-Dispensers-place-anvils-option.patch +++ b/patches/server/0087-Dispensers-place-anvils-option.patch @@ -41,10 +41,10 @@ index 3d2b5f040715a0e4fac0e6786bd11a4d715330ce..9aef3cfd930594c1a2c92a02a18133d0 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 2ceefab6594d70e0585817d7bc386caed077c377..8137db4239792b114b7f5886a502e6a10176304f 100644 +index 6cc8176551a6bd90c7b070095263d4f1b2cb7bec..2421b9d2c41a878ff01c81753d140c50f30ef4c2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -316,8 +316,10 @@ public class PurpurWorldConfig { +@@ -317,8 +317,10 @@ public class PurpurWorldConfig { } public boolean dispenserApplyCursedArmor = true; diff --git a/patches/server/0088-Allow-anvil-colors.patch b/patches/server/0088-Allow-anvil-colors.patch index c66aec71f..141b62b0e 100644 --- a/patches/server/0088-Allow-anvil-colors.patch +++ b/patches/server/0088-Allow-anvil-colors.patch @@ -27,10 +27,10 @@ index 0363d2263b2d6bd6166fa21d7849297e95eddd77..800df3b7c04ce7ed52f265d681e7752f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8137db4239792b114b7f5886a502e6a10176304f..f619f15d5f1e71af80b9df73d3632eeef38a9d5d 100644 +index 2421b9d2c41a878ff01c81753d140c50f30ef4c2..f9d778ea201c5a0ff552d05edf5701fcb55120bd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -299,6 +299,11 @@ public class PurpurWorldConfig { +@@ -300,6 +300,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0089-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0089-Add-option-to-disable-dolphin-treasure-searching.patch index 8689642e9..599a54b9e 100644 --- a/patches/server/0089-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0089-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 f619f15d5f1e71af80b9df73d3632eeef38a9d5d..c5b921450f257785f0e089e3744cf309affe1f75 100644 +index f9d778ea201c5a0ff552d05edf5701fcb55120bd..6aee3448c08210a2f87de6759d364179c5bf8a1e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -587,6 +587,7 @@ public class PurpurWorldConfig { +@@ -588,6 +588,7 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; @@ -28,7 +28,7 @@ index f619f15d5f1e71af80b9df73d3632eeef38a9d5d..c5b921450f257785f0e089e3744cf309 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -599,6 +600,7 @@ public class PurpurWorldConfig { +@@ -600,6 +601,7 @@ public class PurpurWorldConfig { set("mobs.dolphin.attributes.max_health", oldValue); } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); diff --git a/patches/server/0091-Stop-squids-floating-on-top-of-water.patch b/patches/server/0091-Stop-squids-floating-on-top-of-water.patch index be094bc89..683b36b50 100644 --- a/patches/server/0091-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0091-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 64123872bd883d01b760faf6277a45a0777ccf00..6d432e258fa51843d9833cdd771814e2fd5cf7eb 100644 +index 6aee3448c08210a2f87de6759d364179c5bf8a1e..94984558798bb4571a30a54bc4fdd43087dcbcd5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1456,6 +1456,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 64123872bd883d01b760faf6277a45a0777ccf00..6d432e258fa51843d9833cdd771814e2 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1466,6 +1467,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/0093-Entities-can-use-portals-configuration.patch b/patches/server/0093-Entities-can-use-portals-configuration.patch index 615600602..9e99105dc 100644 --- a/patches/server/0093-Entities-can-use-portals-configuration.patch +++ b/patches/server/0093-Entities-can-use-portals-configuration.patch @@ -27,10 +27,10 @@ index 7b7350712996a27c8a10d8d44cc820be9ccb5dfd..edf291ea8a2bd1a94d4f8e8b6fa0a3f5 public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6d432e258fa51843d9833cdd771814e2fd5cf7eb..21369e002d0dd780b4326d577cba26211d7376b3 100644 +index 94984558798bb4571a30a54bc4fdd43087dcbcd5..1ff5a05f5b3c5caf804fd67ff857e9d776e08677 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -100,6 +100,7 @@ public class PurpurWorldConfig { +@@ -101,6 +101,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; public boolean disableDropsOnCrammingDeath = false; @@ -38,7 +38,7 @@ index 6d432e258fa51843d9833cdd771814e2fd5cf7eb..21369e002d0dd780b4326d577cba2621 public boolean milkCuresBadOmen = true; public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; -@@ -108,6 +109,7 @@ public class PurpurWorldConfig { +@@ -109,6 +110,7 @@ public class PurpurWorldConfig { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); diff --git a/patches/server/0095-Customizable-wither-health-and-healing.patch b/patches/server/0095-Customizable-wither-health-and-healing.patch index 7a00049bd..75a9a36f0 100644 --- a/patches/server/0095-Customizable-wither-health-and-healing.patch +++ b/patches/server/0095-Customizable-wither-health-and-healing.patch @@ -23,10 +23,10 @@ index 80674ee4882d2d1c67f78c6bc627e34a78d0c4b0..9cf7cd70492c8769cd3dad1ed57eeff1 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 21369e002d0dd780b4326d577cba26211d7376b3..7ad7af0c1c699309f535128cd8add5bc2c83c75f 100644 +index 1ff5a05f5b3c5caf804fd67ff857e9d776e08677..3261f6ca362b199b472570ab7a089215a30960b7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1699,6 +1699,8 @@ public class PurpurWorldConfig { +@@ -1700,6 +1700,8 @@ public class PurpurWorldConfig { public boolean witherControllable = true; public double witherMaxY = 320D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index 21369e002d0dd780b4326d577cba26211d7376b3..7ad7af0c1c699309f535128cd8add5bc private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1714,6 +1716,8 @@ public class PurpurWorldConfig { +@@ -1715,6 +1717,8 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0096-Allow-toggling-special-MobSpawners-per-world.patch b/patches/server/0096-Allow-toggling-special-MobSpawners-per-world.patch index 1986edfe7..be9f42bf4 100644 --- a/patches/server/0096-Allow-toggling-special-MobSpawners-per-world.patch +++ b/patches/server/0096-Allow-toggling-special-MobSpawners-per-world.patch @@ -67,10 +67,10 @@ index daa7c4bd8a3f6c28f02b7117b061f0def29e3743..d4699d7eefafffd2d4e0a03d62d5094f if (NaturalSpawner.isSpawnPositionOk(SpawnPlacements.Type.ON_GROUND, world, blockposition2, EntityType.WANDERING_TRADER)) { blockposition1 = blockposition2; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7ad7af0c1c699309f535128cd8add5bc2c83c75f..3aec776234a76e0153d35358de1004b8eb0e50f7 100644 +index 3261f6ca362b199b472570ab7a089215a30960b7..23899c81d555a78ef153fdf4dde2889d0fe2646b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -71,6 +71,12 @@ public class PurpurWorldConfig { +@@ -72,6 +72,12 @@ public class PurpurWorldConfig { return PurpurConfig.config.getBoolean("world-settings." + worldName + "." + path, PurpurConfig.config.getBoolean("world-settings.default." + path)); } @@ -83,7 +83,7 @@ index 7ad7af0c1c699309f535128cd8add5bc2c83c75f..3aec776234a76e0153d35358de1004b8 private double getDouble(String path, double def) { PurpurConfig.config.addDefault("world-settings.default." + path, def); return PurpurConfig.config.getDouble("world-settings." + worldName + "." + path, PurpurConfig.config.getDouble("world-settings.default." + path)); -@@ -239,6 +245,21 @@ public class PurpurWorldConfig { +@@ -240,6 +246,21 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0097-Raid-cooldown-setting.patch b/patches/server/0097-Raid-cooldown-setting.patch index 431da2889..0685b1a6c 100644 --- a/patches/server/0097-Raid-cooldown-setting.patch +++ b/patches/server/0097-Raid-cooldown-setting.patch @@ -49,10 +49,10 @@ index fa8fcdfea51a35e4a482d3d7b18159099da62706..6e2373a06ea4c048e5a6eebff19f924c if (!this.raidMap.containsKey(raid.getId())) { this.raidMap.put(raid.getId(), raid); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 80d1beff9f66619c37c992072a7046b6f4614f12..10be99da087706094e93144252ea666dc1238979 100644 +index 23899c81d555a78ef153fdf4dde2889d0fe2646b..d26316f75f634d539a4d0b66889c7c8af6205fec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -111,6 +111,7 @@ public class PurpurWorldConfig { +@@ -112,6 +112,7 @@ public class PurpurWorldConfig { public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; @@ -60,7 +60,7 @@ index 80d1beff9f66619c37c992072a7046b6f4614f12..10be99da087706094e93144252ea666d private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -120,6 +121,7 @@ public class PurpurWorldConfig { +@@ -121,6 +122,7 @@ public class PurpurWorldConfig { 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); diff --git a/patches/server/0098-Despawn-rate-config-options-per-projectile-type.patch b/patches/server/0098-Despawn-rate-config-options-per-projectile-type.patch index 4bddb93b6..ef4e2503b 100644 --- a/patches/server/0098-Despawn-rate-config-options-per-projectile-type.patch +++ b/patches/server/0098-Despawn-rate-config-options-per-projectile-type.patch @@ -7,7 +7,7 @@ This patch's implementation has been removed in favor of Pufferfish's entity-tim The config remains for migration purposes. diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java -index ed9c8e882739c02d0d04129d251e4c726b422c07..0d32a0bb4bbd34dbeffea95cf8403ae54ef8f227 100644 +index 5426e57ed67b0d144818a7e3b917c90d45f548ce..44ee788422cdf946be5f156e2a4662b0b030cdc9 100644 --- a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java +++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java @@ -113,6 +113,22 @@ public class PufferfishConfig { @@ -34,10 +34,10 @@ index ed9c8e882739c02d0d04129d251e4c726b422c07..0d32a0bb4bbd34dbeffea95cf8403ae5 private static boolean getBoolean(String key, boolean defaultValue, String... comment) { return getBoolean(key, null, defaultValue, comment); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1df637910089c654ffde3ff9f27cd163ef1c346d..c89b9932058541904c5d85c3199cb8b4ca21b8ce 100644 +index d26316f75f634d539a4d0b66889c7c8af6205fec..69d31556151df6fc6e2c0a57bc8345b0433b56be 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -292,6 +292,39 @@ public class PurpurWorldConfig { +@@ -293,6 +293,39 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); } diff --git a/patches/server/0099-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0099-Add-option-to-disable-zombie-aggressiveness-towards-.patch index 34a741501..dcff67a89 100644 --- a/patches/server/0099-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0099-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -21,7 +21,7 @@ index c9901f8c7f3af57cb2e0bec315caa97adcb6f5ea..407377e8791400f73e2e2305cbd38f17 ignored.add("goal_selector_1"); ignored.add("goal_selector_2"); diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index c11c51d2054042f8e12fafff4c4d13bc17b9d176..dbf1c0704788136f4f8a893460f57ba6d3f42780 100644 +index 968392e9dd124f997d5d5996893363ac7ef2c740..1d57ee963416e784a759f2ecee7b7c380f0597eb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -120,7 +120,19 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -46,7 +46,7 @@ index c11c51d2054042f8e12fafff4c4d13bc17b9d176..dbf1c0704788136f4f8a893460f57ba6 this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Axolotl.class, true, false)); this.targetSelector.addGoal(5, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 7be6cb6ad9a8b5f695b1a13564a37917a914b983..efe74738b5a90f822901488aa99f981029416fb5 100644 +index eeb01e54125cab3d0803341f21d135068924d786..66b69f9c6cc5cbf235dce888623b6cea98695f6f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -155,7 +155,19 @@ public class Zombie extends Monster { @@ -71,10 +71,10 @@ index 7be6cb6ad9a8b5f695b1a13564a37917a914b983..efe74738b5a90f822901488aa99f9810 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 79afd91b958d111468901d49fe85565277839891..cbe9e554d43b962da37d0fea20f483b142417855 100644 +index 69d31556151df6fc6e2c0a57bc8345b0433b56be..bf4afe1895f679a32d70cafbef717b1d37de0aa7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1832,6 +1832,7 @@ public class PurpurWorldConfig { +@@ -1833,6 +1833,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -82,7 +82,7 @@ index 79afd91b958d111468901d49fe85565277839891..cbe9e554d43b962da37d0fea20f483b1 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1846,6 +1847,7 @@ public class PurpurWorldConfig { +@@ -1847,6 +1848,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/0101-Flying-squids-Oh-my.patch b/patches/server/0101-Flying-squids-Oh-my.patch index 028280b08..b6fa91e88 100644 --- a/patches/server/0101-Flying-squids-Oh-my.patch +++ b/patches/server/0101-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 cbe9e554d43b962da37d0fea20f483b142417855..2324c6e2e9fafcbb42e437bb28e699070206b5c0 100644 +index bf4afe1895f679a32d70cafbef717b1d37de0aa7..8905ba0297d1e5294faeafbd425bd35c202ee025 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -879,10 +879,12 @@ public class PurpurWorldConfig { +@@ -880,10 +880,12 @@ public class PurpurWorldConfig { public boolean glowSquidRidable = false; public boolean glowSquidControllable = true; public double glowSquidMaxHealth = 10.0D; @@ -74,7 +74,7 @@ index cbe9e554d43b962da37d0fea20f483b142417855..2324c6e2e9fafcbb42e437bb28e69907 } public boolean goatRidable = false; -@@ -1515,6 +1517,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 cbe9e554d43b962da37d0fea20f483b142417855..2324c6e2e9fafcbb42e437bb28e69907 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1526,6 +1529,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/0102-Infinity-bow-settings.patch b/patches/server/0102-Infinity-bow-settings.patch index 265bc40d0..fcd86bc11 100644 --- a/patches/server/0102-Infinity-bow-settings.patch +++ b/patches/server/0102-Infinity-bow-settings.patch @@ -27,10 +27,10 @@ index 08d597db1a5345a343777a01427655e6bf2c926b..33df0ca406dc8321b76b393f317bbd1c } else { user.startUsingItem(hand); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2324c6e2e9fafcbb42e437bb28e699070206b5c0..3413c9cbc06c02c1bf52f03905072c804b4c5df1 100644 +index 8905ba0297d1e5294faeafbd425bd35c202ee025..f6f67bc6c6cc81c4d867ab6aaa23e263ef14ecf6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -142,6 +142,17 @@ public class PurpurWorldConfig { +@@ -143,6 +143,17 @@ public class PurpurWorldConfig { entityLifeSpan = getInt("gameplay-mechanics.entity-lifespan", entityLifeSpan); } diff --git a/patches/server/0103-Configurable-daylight-cycle.patch b/patches/server/0103-Configurable-daylight-cycle.patch index b71ad835f..26aa2949d 100644 --- a/patches/server/0103-Configurable-daylight-cycle.patch +++ b/patches/server/0103-Configurable-daylight-cycle.patch @@ -88,10 +88,10 @@ index 30fab9ee2e549ddf85ce71a74c70199801af5815..284fb0308ccd458804f9dfe9eb10529e public void tickCustomSpawners(boolean spawnMonsters, boolean spawnAnimals) { Iterator iterator = this.customSpawners.iterator(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 221787d92b1617d6d68227796207b23f1591f6b4..2b30c6176c21fd9115de6ab65d355cac58d1d6eb 100644 +index f6f67bc6c6cc81c4d867ab6aaa23e263ef14ecf6..e95c39c76f71d1434f874c56e22b2470c3f543c1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -124,6 +124,13 @@ public class PurpurWorldConfig { +@@ -125,6 +125,13 @@ public class PurpurWorldConfig { raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); } diff --git a/patches/server/0105-Furnace-uses-lava-from-underneath.patch b/patches/server/0105-Furnace-uses-lava-from-underneath.patch index 9b023dd60..4d8ee2469 100644 --- a/patches/server/0105-Furnace-uses-lava-from-underneath.patch +++ b/patches/server/0105-Furnace-uses-lava-from-underneath.patch @@ -47,10 +47,10 @@ index 4977f3fad3bfc12fd4c5f9fbe8beea2895247c57..c617a8aacbbefb37d53d0e005e822469 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 5afef591d5c61539dfc6b6faf64e392041727d39..fb7a51aa77a90b2a2dc57c4795d0ccfb160837e4 100644 +index e95c39c76f71d1434f874c56e22b2470c3f543c1..239cf141be60074cda41e262571f22c96f5dad34 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -408,6 +408,17 @@ public class PurpurWorldConfig { +@@ -409,6 +409,17 @@ public class PurpurWorldConfig { farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); } diff --git a/patches/server/0106-Arrows-should-not-reset-despawn-counter.patch b/patches/server/0106-Arrows-should-not-reset-despawn-counter.patch index 6b02b4b9b..5e8a862fc 100644 --- a/patches/server/0106-Arrows-should-not-reset-despawn-counter.patch +++ b/patches/server/0106-Arrows-should-not-reset-despawn-counter.patch @@ -20,10 +20,10 @@ index bc01e5014e1355a225bdf5c47f2965290b45e2d2..e292589e015c6691be65285b041f5b4f @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fb7a51aa77a90b2a2dc57c4795d0ccfb160837e4..9eb4ddafed9629193417afaf867686fb0c738399 100644 +index 239cf141be60074cda41e262571f22c96f5dad34..4535d7dddc65084bd058ec966dc5db628497047c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -103,6 +103,11 @@ public class PurpurWorldConfig { +@@ -104,6 +104,11 @@ public class PurpurWorldConfig { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); } diff --git a/patches/server/0107-Ability-to-re-add-farmland-mechanics-from-Alpha.patch b/patches/server/0107-Ability-to-re-add-farmland-mechanics-from-Alpha.patch index 9e16ba184..e3cc18224 100644 --- a/patches/server/0107-Ability-to-re-add-farmland-mechanics-from-Alpha.patch +++ b/patches/server/0107-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 9eb4ddafed9629193417afaf867686fb0c738399..c7d009d628e541e2ff9b35d339c14bc997f99c76 100644 +index 4535d7dddc65084bd058ec966dc5db628497047c..94e69bee785a4da44ead68d451eac2dd8ce719fa 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -409,8 +409,10 @@ public class PurpurWorldConfig { +@@ -410,8 +410,10 @@ public class PurpurWorldConfig { } public boolean farmlandGetsMoistFromBelow = false; diff --git a/patches/server/0108-Add-adjustable-breeding-cooldown-to-config.patch b/patches/server/0108-Add-adjustable-breeding-cooldown-to-config.patch index cd315ed3c..aa50d6456 100644 --- a/patches/server/0108-Add-adjustable-breeding-cooldown-to-config.patch +++ b/patches/server/0108-Add-adjustable-breeding-cooldown-to-config.patch @@ -33,7 +33,7 @@ index 6216513805add7c8f52e1ed6c77e2d26786b3ab5..34e82b97c5b294f0a6423581220403a1 entityageable.setBaby(true); entityageable.moveTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index a249430e34addd26a3fb49913ea9efe0f3d1b7b6..824f3dfaf2ba6f064efaa7939b990023de1f1448 100644 +index dedba0c0da7cd56e94e3e9306178c28a43de01b0..0c9f7f9ed3e24ddc6b963063723feb56422843c5 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -193,6 +193,49 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -95,10 +95,10 @@ index a249430e34addd26a3fb49913ea9efe0f3d1b7b6..824f3dfaf2ba6f064efaa7939b990023 this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c7d009d628e541e2ff9b35d339c14bc997f99c76..c938383d719b641c537279c790a3096091a7d601 100644 +index 94e69bee785a4da44ead68d451eac2dd8ce719fa..ec65383579b629b6ba3009001c654ae45b434f7b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -117,6 +117,7 @@ public class PurpurWorldConfig { +@@ -118,6 +118,7 @@ public class PurpurWorldConfig { public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; @@ -106,7 +106,7 @@ index c7d009d628e541e2ff9b35d339c14bc997f99c76..c938383d719b641c537279c790a30960 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); -@@ -127,6 +128,7 @@ public class PurpurWorldConfig { +@@ -128,6 +129,7 @@ public class PurpurWorldConfig { voidDamageHeight = getDouble("gameplay-mechanics.void-damage-height", voidDamageHeight); voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); diff --git a/patches/server/0109-Make-entity-breeding-times-configurable.patch b/patches/server/0109-Make-entity-breeding-times-configurable.patch index ee732ac85..aaf267c40 100644 --- a/patches/server/0109-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0109-Make-entity-breeding-times-configurable.patch @@ -47,7 +47,7 @@ index 34e82b97c5b294f0a6423581220403a10264da8b..a0c3a27a90e0788b573f0776c25cfc6e other.resetLove(); world.addFreshEntityWithPassengers(entityageable, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index feab2c5553e62016f2e82977257ecf2a22fd713d..590315ebc1d71850e439efed6551a7773852ef07 100644 +index 33f2100a9cb7616339c18d9b41293eab8c0e4a65..f2345d7ce5ba8b4bd3e44819fcf82cd46501e6e3 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -219,6 +219,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -63,7 +63,7 @@ index feab2c5553e62016f2e82977257ecf2a22fd713d..590315ebc1d71850e439efed6551a777 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index 90ef6c8d5371b62d043320d493d624ae18737f07..c6812166ee708100850561a0573be81af76ecfa5 100644 +index 413205e8214b87f022dda5eeb1eeca3794dcd6ce..a731a834098fa78995c7b0445865d3f7fa8700fa 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -123,6 +123,11 @@ public class Cat extends TamableAnimal { @@ -300,7 +300,7 @@ index 01c8508571a88c22359cbf36341338c5497e4d45..28e35304e76b26af734fcfbccef8f431 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index a80a7d460051a39fe805ae669b4586fb42e46943..6d444248b9e283e31d5777d450a52643cc84f59b 100644 +index ad6a87ba97138253db2b300dec8a89faff38f075..e68a40ec759925317a0db2087339cd29351dbeb4 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -122,6 +122,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { @@ -316,7 +316,7 @@ index a80a7d460051a39fe805ae669b4586fb42e46943..6d444248b9e283e31d5777d450a52643 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index 952d8da2d5bc35aba52b9b63c3cf0e7b2c81f157..04262d31dc0767500f2b22cfe5768a8e24de7af9 100644 +index 6a6613f70f9c4cc950882191b00048d4c47bd84f..e739416fa58b182d7bd311be094d6aab2a7f7133 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java @@ -140,6 +140,10 @@ public class Frog extends Animal { @@ -379,7 +379,7 @@ index 390f630462c907cd6e961c6ca432804e2f19f07c..6a7d8ff804b184005fda17f3d7a4b975 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 8512103686380c2114851666fce649d573a61355..3c9ea07ded25ac8a479a03fecfdd7ddb9d5a046c 100644 +index 8beacf4afc8168d930ec2fb7926a19283ee31065..91ec5c71c90496f79c80e42cfdd86e4eb5befddf 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java @@ -131,6 +131,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { @@ -491,10 +491,10 @@ index e99ffbf30652e188e88f8e17ed41d39ff25c9f73..c335a32832c6eef95658fbf632b943bb @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b315c5b929 100644 +index ec65383579b629b6ba3009001c654ae45b434f7b..2902ff168400063c3a6a37427fe37910395f3442 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -502,10 +502,12 @@ public class PurpurWorldConfig { +@@ -503,10 +503,12 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; @@ -507,7 +507,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean batRidable = false; -@@ -538,6 +540,7 @@ public class PurpurWorldConfig { +@@ -539,6 +541,7 @@ public class PurpurWorldConfig { public boolean beeControllable = true; public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; @@ -515,7 +515,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -549,6 +552,7 @@ public class PurpurWorldConfig { +@@ -550,6 +553,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -523,7 +523,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean blazeRidable = false; -@@ -576,6 +580,7 @@ public class PurpurWorldConfig { +@@ -577,6 +581,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -531,7 +531,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -589,6 +594,7 @@ public class PurpurWorldConfig { +@@ -590,6 +595,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); @@ -539,7 +539,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean caveSpiderRidable = false; -@@ -612,6 +618,7 @@ public class PurpurWorldConfig { +@@ -613,6 +619,7 @@ public class PurpurWorldConfig { public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -547,7 +547,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -623,6 +630,7 @@ public class PurpurWorldConfig { +@@ -624,6 +631,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -555,7 +555,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean codRidable = false; -@@ -644,6 +652,7 @@ public class PurpurWorldConfig { +@@ -645,6 +653,7 @@ public class PurpurWorldConfig { public boolean cowControllable = true; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -563,7 +563,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -655,6 +664,7 @@ public class PurpurWorldConfig { +@@ -656,6 +665,7 @@ public class PurpurWorldConfig { } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); @@ -571,7 +571,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean creeperRidable = false; -@@ -706,6 +716,7 @@ public class PurpurWorldConfig { +@@ -707,6 +717,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -579,7 +579,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -721,6 +732,7 @@ public class PurpurWorldConfig { +@@ -722,6 +733,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); @@ -587,7 +587,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean drownedRidable = false; -@@ -840,6 +852,7 @@ public class PurpurWorldConfig { +@@ -841,6 +853,7 @@ public class PurpurWorldConfig { public boolean foxControllable = true; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -595,7 +595,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -851,17 +864,20 @@ public class PurpurWorldConfig { +@@ -852,17 +865,20 @@ public class PurpurWorldConfig { } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); @@ -616,7 +616,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean ghastRidable = false; -@@ -929,11 +945,13 @@ public class PurpurWorldConfig { +@@ -930,11 +946,13 @@ public class PurpurWorldConfig { public boolean goatRidableInWater = false; public boolean goatControllable = true; public double goatMaxHealth = 10.0D; @@ -630,7 +630,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean guardianRidable = false; -@@ -954,6 +972,7 @@ public class PurpurWorldConfig { +@@ -955,6 +973,7 @@ public class PurpurWorldConfig { public boolean hoglinRidableInWater = false; public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; @@ -638,7 +638,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -964,6 +983,7 @@ public class PurpurWorldConfig { +@@ -965,6 +984,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -646,7 +646,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean horseRidableInWater = false; -@@ -973,6 +993,7 @@ public class PurpurWorldConfig { +@@ -974,6 +994,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -654,7 +654,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -988,6 +1009,7 @@ public class PurpurWorldConfig { +@@ -989,6 +1010,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); @@ -662,7 +662,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean huskRidable = false; -@@ -1065,6 +1087,7 @@ public class PurpurWorldConfig { +@@ -1066,6 +1088,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -670,7 +670,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1082,6 +1105,7 @@ public class PurpurWorldConfig { +@@ -1083,6 +1106,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); @@ -678,7 +678,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean magmaCubeRidable = false; -@@ -1110,6 +1134,7 @@ public class PurpurWorldConfig { +@@ -1111,6 +1135,7 @@ public class PurpurWorldConfig { public boolean mooshroomRidableInWater = false; public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; @@ -686,7 +686,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1120,6 +1145,7 @@ public class PurpurWorldConfig { +@@ -1121,6 +1146,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -694,7 +694,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean muleRidableInWater = false; -@@ -1129,6 +1155,7 @@ public class PurpurWorldConfig { +@@ -1130,6 +1156,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -702,7 +702,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1144,12 +1171,14 @@ public class PurpurWorldConfig { +@@ -1145,12 +1172,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); @@ -717,7 +717,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1160,12 +1189,14 @@ public class PurpurWorldConfig { +@@ -1161,12 +1190,14 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -732,7 +732,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1176,6 +1207,7 @@ public class PurpurWorldConfig { +@@ -1177,6 +1208,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -740,7 +740,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean parrotRidable = false; -@@ -1271,6 +1303,7 @@ public class PurpurWorldConfig { +@@ -1272,6 +1304,7 @@ public class PurpurWorldConfig { public boolean pigControllable = true; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -748,7 +748,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1282,6 +1315,7 @@ public class PurpurWorldConfig { +@@ -1283,6 +1316,7 @@ public class PurpurWorldConfig { } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); @@ -756,7 +756,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean piglinRidable = false; -@@ -1338,6 +1372,7 @@ public class PurpurWorldConfig { +@@ -1339,6 +1373,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -764,7 +764,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1351,6 +1386,7 @@ public class PurpurWorldConfig { +@@ -1352,6 +1387,7 @@ public class PurpurWorldConfig { polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString); Item item = Registry.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; @@ -772,7 +772,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean pufferfishRidable = false; -@@ -1373,6 +1409,7 @@ public class PurpurWorldConfig { +@@ -1374,6 +1410,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -780,7 +780,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1385,6 +1422,7 @@ public class PurpurWorldConfig { +@@ -1386,6 +1423,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); @@ -788,7 +788,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean ravagerRidable = false; -@@ -1421,6 +1459,7 @@ public class PurpurWorldConfig { +@@ -1422,6 +1460,7 @@ public class PurpurWorldConfig { public boolean sheepRidableInWater = false; public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; @@ -796,7 +796,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1431,6 +1470,7 @@ public class PurpurWorldConfig { +@@ -1432,6 +1471,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -804,7 +804,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean shulkerRidable = false; -@@ -1606,6 +1646,7 @@ public class PurpurWorldConfig { +@@ -1607,6 +1647,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public boolean striderControllable = true; public double striderMaxHealth = 20.0D; @@ -812,7 +812,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1616,6 +1657,7 @@ public class PurpurWorldConfig { +@@ -1617,6 +1658,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -820,7 +820,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean tadpoleRidable = false; -@@ -1636,6 +1678,7 @@ public class PurpurWorldConfig { +@@ -1637,6 +1679,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -828,7 +828,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1653,6 +1696,7 @@ public class PurpurWorldConfig { +@@ -1654,6 +1697,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); @@ -836,7 +836,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean tropicalFishRidable = false; -@@ -1673,6 +1717,7 @@ public class PurpurWorldConfig { +@@ -1674,6 +1718,7 @@ public class PurpurWorldConfig { public boolean turtleRidableInWater = false; public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; @@ -844,7 +844,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1683,6 +1728,7 @@ public class PurpurWorldConfig { +@@ -1684,6 +1729,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); @@ -852,7 +852,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean vexRidable = false; -@@ -1712,6 +1758,7 @@ public class PurpurWorldConfig { +@@ -1713,6 +1759,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; @@ -860,7 +860,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1727,6 +1774,7 @@ public class PurpurWorldConfig { +@@ -1728,6 +1775,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); @@ -868,7 +868,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 } public boolean vindicatorRidable = false; -@@ -1838,6 +1886,7 @@ public class PurpurWorldConfig { +@@ -1839,6 +1887,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -876,7 +876,7 @@ index c938383d719b641c537279c790a3096091a7d601..834dd3b5244c1f0f0ab0b6b85fd692b3 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1848,6 +1897,7 @@ public class PurpurWorldConfig { +@@ -1849,6 +1898,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0110-Apply-display-names-from-item-forms-of-entities-to-e.patch b/patches/server/0110-Apply-display-names-from-item-forms-of-entities-to-e.patch index 1dbe2f056..619a55935 100644 --- a/patches/server/0110-Apply-display-names-from-item-forms-of-entities-to-e.patch +++ b/patches/server/0110-Apply-display-names-from-item-forms-of-entities-to-e.patch @@ -142,10 +142,10 @@ index 4c5671cd4c26c23e61b2196577c554f504a03c55..678e0cb7e5b704ce01eda96b2d74694d if (((HangingEntity) object).survives()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 834dd3b5244c1f0f0ab0b6b85fd692b315c5b929..1966cdca08f38f440b033a20c4ecb4c3e79d7482 100644 +index 2902ff168400063c3a6a37427fe37910395f3442..894a0c446adc8294a489222f92921ce88fb9e0d8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -99,8 +99,10 @@ public class PurpurWorldConfig { +@@ -100,8 +100,10 @@ public class PurpurWorldConfig { } public float armorstandStepHeight = 0.0F; @@ -156,7 +156,7 @@ index 834dd3b5244c1f0f0ab0b6b85fd692b315c5b929..1966cdca08f38f440b033a20c4ecb4c3 } public boolean arrowMovementResetsDespawnCounter = true; -@@ -113,6 +115,7 @@ public class PurpurWorldConfig { +@@ -114,6 +116,7 @@ public class PurpurWorldConfig { public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; @@ -164,7 +164,7 @@ index 834dd3b5244c1f0f0ab0b6b85fd692b315c5b929..1966cdca08f38f440b033a20c4ecb4c3 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -124,6 +127,7 @@ public class PurpurWorldConfig { +@@ -125,6 +128,7 @@ public class PurpurWorldConfig { disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0111-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0111-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch index 5483792a1..043de3b79 100644 --- a/patches/server/0111-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch +++ b/patches/server/0111-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch @@ -17,10 +17,10 @@ index 623f78c078fb3aa2665d7e8a37672438227bce6b..500c69e555c7247e20ef8cc59d834155 ((Mob) newEntityLiving).setPersistenceRequired(); // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1966cdca08f38f440b033a20c4ecb4c3e79d7482..9c9c526dad5eb2552e458b3f3ad390bed55ff34b 100644 +index 894a0c446adc8294a489222f92921ce88fb9e0d8..f58adcc7a4c739a28825ec63c96728231a6b6565 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -100,9 +100,11 @@ public class PurpurWorldConfig { +@@ -101,9 +101,11 @@ public class PurpurWorldConfig { public float armorstandStepHeight = 0.0F; public boolean armorstandSetNameVisible = false; diff --git a/patches/server/0112-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0112-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index f186225d8..2e643a413 100644 --- a/patches/server/0112-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0112-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -21,10 +21,10 @@ index 9458cab33d4ff468d3d009cc1c3b3736f21f649b..4443a4a300d17e8568a81bcb9af89251 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 9c9c526dad5eb2552e458b3f3ad390bed55ff34b..7db751ad178e01f692452e0201c03891ce6eb299 100644 +index f58adcc7a4c739a28825ec63c96728231a6b6565..cfd7173d287ca17b923c57dbe17ace5d40192980 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -808,6 +808,7 @@ public class PurpurWorldConfig { +@@ -809,6 +809,7 @@ public class PurpurWorldConfig { public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index 9c9c526dad5eb2552e458b3f3ad390bed55ff34b..7db751ad178e01f692452e0201c03891 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -819,6 +820,7 @@ public class PurpurWorldConfig { +@@ -820,6 +821,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); diff --git a/patches/server/0113-Add-configurable-snowball-damage.patch b/patches/server/0113-Add-configurable-snowball-damage.patch index 791fbe562..7505d3f1b 100644 --- a/patches/server/0113-Add-configurable-snowball-damage.patch +++ b/patches/server/0113-Add-configurable-snowball-damage.patch @@ -18,10 +18,10 @@ index a725851060f13e734dbd2fbf8c83c9e1af57a8b7..74f798baafc53cd7dd1d4f58bc9a3581 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7db751ad178e01f692452e0201c03891ce6eb299..0670df9d9ad1b62af6f2e14732cbe8da03fc78b9 100644 +index cfd7173d287ca17b923c57dbe17ace5d40192980..6edd5e8defe13a8bce95605a5c05c7a07518083c 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 { +@@ -357,6 +357,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0114-Changeable-Mob-Left-Handed-Chance.patch b/patches/server/0114-Changeable-Mob-Left-Handed-Chance.patch index 0d0a804bd..c9630f8a3 100644 --- a/patches/server/0114-Changeable-Mob-Left-Handed-Chance.patch +++ b/patches/server/0114-Changeable-Mob-Left-Handed-Chance.patch @@ -18,10 +18,10 @@ index 8d7adb461acdc37ee820c56c15944eedeefec390..30c3e4c67c9fff7fff8fb59d9bdd19ba } else { this.setLeftHanded(false); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cb787323d7a586158e8b2cb50d3756bc8690d04d..77de311ff7a1a39f1bba10e920f47d240670c28c 100644 +index 6edd5e8defe13a8bce95605a5c05c7a07518083c..57c23247cb3a09b215b0718cc477b4c071e6426c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -158,8 +158,10 @@ public class PurpurWorldConfig { +@@ -159,8 +159,10 @@ public class PurpurWorldConfig { } public int entityLifeSpan = 0; diff --git a/patches/server/0115-Add-boat-fall-damage-config.patch b/patches/server/0115-Add-boat-fall-damage-config.patch index b6d9dded7..9a9aff40c 100644 --- a/patches/server/0115-Add-boat-fall-damage-config.patch +++ b/patches/server/0115-Add-boat-fall-damage-config.patch @@ -27,10 +27,10 @@ index 7f82a22e308fd8240360300a6f799f4b40aeb6fb..e619420b635d41ed564493ed0b28b3d0 if (!flag && isSpawnInvulnerable() && source != DamageSource.OUT_OF_WORLD) { // Purpur diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 77de311ff7a1a39f1bba10e920f47d240670c28c..42a5b248bbd8f5aca734009d113b9b9976a3e2d9 100644 +index 57c23247cb3a09b215b0718cc477b4c071e6426c..4bf80aba46dee82cbbd1243f5f3357039f1d9835 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -114,6 +114,7 @@ public class PurpurWorldConfig { +@@ -115,6 +115,7 @@ public class PurpurWorldConfig { public boolean useBetterMending = false; public boolean boatEjectPlayersOnLand = false; @@ -38,7 +38,7 @@ index 77de311ff7a1a39f1bba10e920f47d240670c28c..42a5b248bbd8f5aca734009d113b9b99 public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; public boolean milkCuresBadOmen = true; -@@ -126,6 +127,7 @@ public class PurpurWorldConfig { +@@ -127,6 +128,7 @@ public class PurpurWorldConfig { private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); boatEjectPlayersOnLand = getBoolean("gameplay-mechanics.boat.eject-players-on-land", boatEjectPlayersOnLand); diff --git a/patches/server/0116-Snow-Golem-rate-of-fire-config.patch b/patches/server/0116-Snow-Golem-rate-of-fire-config.patch index 12855ff23..2f4a21834 100644 --- a/patches/server/0116-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0116-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 aab918a7d16977d11c7bc2b4befea5d306d2eeb1..55410b4879ce9463d17bbe832058c3526591d1d5 100644 +index 4bf80aba46dee82cbbd1243f5f3357039f1d9835..59981e32f601e03f8891fc2c05179e2155587b66 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1592,6 +1592,10 @@ public class PurpurWorldConfig { +@@ -1593,6 +1593,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index aab918a7d16977d11c7bc2b4befea5d306d2eeb1..55410b4879ce9463d17bbe832058c352 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1605,6 +1609,10 @@ public class PurpurWorldConfig { +@@ -1606,6 +1610,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/0118-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0118-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 4bf1f3874..90e4e7a2c 100644 --- a/patches/server/0118-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0118-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -181,10 +181,10 @@ index b1f20cb356e6b4e89fdddf4e48f2fd932bdb5170..352a7df156c638684a12a864eb5a9d06 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 55410b4879ce9463d17bbe832058c3526591d1d5..f49fed8ea48fd12c9958f327d080320d4bc63c7d 100644 +index 59981e32f601e03f8891fc2c05179e2155587b66..b00a8458655fc101f42f772487c4f0c6edc1f444 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1784,6 +1784,8 @@ public class PurpurWorldConfig { +@@ -1785,6 +1785,8 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -193,7 +193,7 @@ index 55410b4879ce9463d17bbe832058c3526591d1d5..f49fed8ea48fd12c9958f327d080320d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1800,6 +1802,8 @@ public class PurpurWorldConfig { +@@ -1801,6 +1803,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/0119-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0119-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index 98428739f..8a9d731c3 100644 --- a/patches/server/0119-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0119-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -35,10 +35,10 @@ index 6c1dd723373f9b1b920548de85aeb6cef0120fa7..1f0003fb08a45af02e6d38e28fa548ab } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f49fed8ea48fd12c9958f327d080320d4bc63c7d..e57795ebcc4128118108b3d4fa75f5f1c58fef1f 100644 +index b00a8458655fc101f42f772487c4f0c6edc1f444..de4dde048cfe5320a885752f1bfd4886d19d8688 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2030,6 +2030,7 @@ public class PurpurWorldConfig { +@@ -2031,6 +2031,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index f49fed8ea48fd12c9958f327d080320d4bc63c7d..e57795ebcc4128118108b3d4fa75f5f1 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2044,5 +2045,6 @@ public class PurpurWorldConfig { +@@ -2045,5 +2046,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/0121-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0121-Configurable-chance-for-wolves-to-spawn-rabid.patch index 2aca35f17..d9c9c6342 100644 --- a/patches/server/0121-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0121-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 e57795ebcc4128118108b3d4fa75f5f1c58fef1f..500da626b279673fe1bdc4f485def10972d2f04b 100644 +index de4dde048cfe5320a885752f1bfd4886d19d8688..8832680891a10afb12aa29370ac66f344b1482e9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1915,6 +1915,8 @@ public class PurpurWorldConfig { +@@ -1916,6 +1916,8 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -234,7 +234,7 @@ index e57795ebcc4128118108b3d4fa75f5f1c58fef1f..500da626b279673fe1bdc4f485def109 public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1926,6 +1928,8 @@ public class PurpurWorldConfig { +@@ -1927,6 +1929,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0122-Configurable-default-collar-color.patch b/patches/server/0122-Configurable-default-collar-color.patch index 0d451ba9a..ec98b4e58 100644 --- a/patches/server/0122-Configurable-default-collar-color.patch +++ b/patches/server/0122-Configurable-default-collar-color.patch @@ -7,7 +7,7 @@ This allows for the server to set a default collar color when a wolf or cat is t Resets to RED when the value is invalid. diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index c6812166ee708100850561a0573be81af76ecfa5..4e0f54689e4db6d4e23ed09bf9645b42fa889a5d 100644 +index a731a834098fa78995c7b0445865d3f7fa8700fa..3641599a119d5416b5756a972f9eb7fc6fbabcf6 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -346,6 +346,14 @@ public class Cat extends TamableAnimal { @@ -43,10 +43,10 @@ index f862d83db6127804b9254a33a73e6f186a1d1327..ffe8f80cfe3bec8fe79415015f529074 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 500da626b279673fe1bdc4f485def10972d2f04b..8ac9551fb2c62f1ddbc3715ba1f1df3691981d78 100644 +index 8832680891a10afb12aa29370ac66f344b1482e9..44aad04a796ed8d9de5e8f23244a6b7911994910 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -596,6 +596,7 @@ public class PurpurWorldConfig { +@@ -597,6 +597,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -54,7 +54,7 @@ index 500da626b279673fe1bdc4f485def10972d2f04b..8ac9551fb2c62f1ddbc3715ba1f1df36 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -610,6 +611,11 @@ public class PurpurWorldConfig { +@@ -611,6 +612,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 500da626b279673fe1bdc4f485def10972d2f04b..8ac9551fb2c62f1ddbc3715ba1f1df36 } public boolean caveSpiderRidable = false; -@@ -1915,6 +1921,7 @@ public class PurpurWorldConfig { +@@ -1916,6 +1922,7 @@ public class PurpurWorldConfig { public boolean wolfRidableInWater = false; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; @@ -74,7 +74,7 @@ index 500da626b279673fe1bdc4f485def10972d2f04b..8ac9551fb2c62f1ddbc3715ba1f1df36 public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1928,6 +1935,11 @@ public class PurpurWorldConfig { +@@ -1929,6 +1936,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0123-Phantom-flames-on-swoop.patch b/patches/server/0123-Phantom-flames-on-swoop.patch index 1537f341a..02fa69356 100644 --- a/patches/server/0123-Phantom-flames-on-swoop.patch +++ b/patches/server/0123-Phantom-flames-on-swoop.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Phantom flames on swoop diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index 82d56a6968f3bbea5a2d32c2a7a84a8ba36d3d15..f23ca987666fd23621d3d731fd1a4ab26ff04aa8 100644 +index 77716d29aa50887bfa704ebafe2a304faddcc5c2..9858361d4dd5407b5d24bd5ac656c2ea3ba64dfa 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -244,6 +244,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -17,10 +17,10 @@ index 82d56a6968f3bbea5a2d32c2a7a84a8ba36d3d15..f23ca987666fd23621d3d731fd1a4ab2 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8ac9551fb2c62f1ddbc3715ba1f1df3691981d78..d0e2861c9aa34734fce44a50b62b105236afecdd 100644 +index 44aad04a796ed8d9de5e8f23244a6b7911994910..fadf5c1c65c3c7bd240d281f3bc1c0cf28499dca 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1280,6 +1280,7 @@ public class PurpurWorldConfig { +@@ -1281,6 +1281,7 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -28,7 +28,7 @@ index 8ac9551fb2c62f1ddbc3715ba1f1df3691981d78..d0e2861c9aa34734fce44a50b62b1052 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1319,6 +1320,7 @@ public class PurpurWorldConfig { +@@ -1320,6 +1321,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/0124-Option-for-chests-to-open-even-with-a-solid-block-on.patch b/patches/server/0124-Option-for-chests-to-open-even-with-a-solid-block-on.patch index e8e8e508f..701965fd5 100644 --- a/patches/server/0124-Option-for-chests-to-open-even-with-a-solid-block-on.patch +++ b/patches/server/0124-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 d0e2861c9aa34734fce44a50b62b105236afecdd..b927cbf702ebd92c6d7b49ef62429aa94b7f6c37 100644 +index fadf5c1c65c3c7bd240d281f3bc1c0cf28499dca..7662645e5b836383b2f859a01c560d6357462629 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -418,6 +418,11 @@ public class PurpurWorldConfig { +@@ -419,6 +419,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0126-Striders-give-saddle-back.patch b/patches/server/0126-Striders-give-saddle-back.patch index fb3587982..8bff0e3d9 100644 --- a/patches/server/0126-Striders-give-saddle-back.patch +++ b/patches/server/0126-Striders-give-saddle-back.patch @@ -29,10 +29,10 @@ index eb2083d67f9486a24d2f0aa4bf1f5ba8a00e23a3..df9d16a6493a57b6034cd56bf8dbe38f 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 b927cbf702ebd92c6d7b49ef62429aa94b7f6c37..ac310f473357c1332ecce47a6e1dd01f8267292e 100644 +index 7662645e5b836383b2f859a01c560d6357462629..fcef95f95698bdb939b4372ad56a907a85b5d06f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1685,6 +1685,7 @@ public class PurpurWorldConfig { +@@ -1686,6 +1686,7 @@ public class PurpurWorldConfig { public boolean striderControllable = true; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -40,7 +40,7 @@ index b927cbf702ebd92c6d7b49ef62429aa94b7f6c37..ac310f473357c1332ecce47a6e1dd01f private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1696,6 +1697,7 @@ public class PurpurWorldConfig { +@@ -1697,6 +1698,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/0128-Full-netherite-armor-grants-fire-resistance.patch b/patches/server/0128-Full-netherite-armor-grants-fire-resistance.patch index 71c879ae1..3afb17153 100644 --- a/patches/server/0128-Full-netherite-armor-grants-fire-resistance.patch +++ b/patches/server/0128-Full-netherite-armor-grants-fire-resistance.patch @@ -26,10 +26,10 @@ index df34e5332a6d9c36cad89bac72b5f27892c6192a..f10a048d962ff80f566db11a8490e725 protected ItemCooldowns createItemCooldowns() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ac310f473357c1332ecce47a6e1dd01f8267292e..baf446b1dc8b4d6fe7180d27d94749052ce582d2 100644 +index fcef95f95698bdb939b4372ad56a907a85b5d06f..91d625799d51ac590eb73fd44e3373a8d5a0d762 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -297,6 +297,19 @@ public class PurpurWorldConfig { +@@ -298,6 +298,19 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } diff --git a/patches/server/0130-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0130-Add-mobGriefing-bypass-to-everything-affected.patch index 976d4c0bf..7a098b975 100644 --- a/patches/server/0130-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0130-Add-mobGriefing-bypass-to-everything-affected.patch @@ -409,10 +409,10 @@ index 1a12fee99a8b69fc6c01e1e217575c7c19e13155..4907e0acb7d01b7f57b75579e58ce743 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 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720305562f9 100644 +index 91d625799d51ac590eb73fd44e3373a8d5a0d762..c7ea267c63a30ba8d2d65c5fe55c349ed29bda43 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -117,8 +117,11 @@ public class PurpurWorldConfig { +@@ -118,8 +118,11 @@ public class PurpurWorldConfig { public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; public boolean entitiesCanUsePortals = true; @@ -424,7 +424,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -130,8 +133,11 @@ public class PurpurWorldConfig { +@@ -131,8 +134,11 @@ public class PurpurWorldConfig { boatsDoFallDamage = getBoolean("gameplay-mechanics.boat.do-fall-damage", boatsDoFallDamage); disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath); entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); @@ -436,7 +436,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 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); -@@ -443,9 +449,11 @@ public class PurpurWorldConfig { +@@ -444,9 +450,11 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } @@ -448,7 +448,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); farmlandAlpha = getBoolean("blocks.farmland.use-alpha-farmland", farmlandAlpha); } -@@ -472,6 +480,11 @@ public class PurpurWorldConfig { +@@ -473,6 +481,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } @@ -460,7 +460,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 public boolean respawnAnchorExplode = true; public double respawnAnchorExplosionPower = 5.0D; public boolean respawnAnchorExplosionFire = true; -@@ -501,10 +514,12 @@ public class PurpurWorldConfig { +@@ -502,10 +515,12 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromExpOrbs = true; public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; @@ -473,7 +473,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean waterInfinite = true; -@@ -712,6 +727,7 @@ public class PurpurWorldConfig { +@@ -713,6 +728,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -481,7 +481,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -724,6 +740,7 @@ public class PurpurWorldConfig { +@@ -725,6 +741,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); @@ -489,7 +489,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean dolphinRidable = false; -@@ -818,6 +835,7 @@ public class PurpurWorldConfig { +@@ -819,6 +836,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -497,7 +497,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -834,6 +852,7 @@ public class PurpurWorldConfig { +@@ -835,6 +853,7 @@ public class PurpurWorldConfig { } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); @@ -505,7 +505,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean endermanRidable = false; -@@ -842,6 +861,7 @@ public class PurpurWorldConfig { +@@ -843,6 +862,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -513,7 +513,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -854,6 +874,7 @@ public class PurpurWorldConfig { +@@ -855,6 +875,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); @@ -521,7 +521,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean endermiteRidable = false; -@@ -876,6 +897,7 @@ public class PurpurWorldConfig { +@@ -877,6 +898,7 @@ public class PurpurWorldConfig { public boolean evokerRidableInWater = false; public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; @@ -529,7 +529,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -886,6 +908,7 @@ public class PurpurWorldConfig { +@@ -887,6 +909,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -537,7 +537,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean foxRidable = false; -@@ -894,6 +917,7 @@ public class PurpurWorldConfig { +@@ -895,6 +918,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -545,7 +545,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -906,6 +930,7 @@ public class PurpurWorldConfig { +@@ -907,6 +931,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); @@ -553,7 +553,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean frogRidable = false; -@@ -1365,6 +1390,7 @@ public class PurpurWorldConfig { +@@ -1366,6 +1391,7 @@ public class PurpurWorldConfig { public boolean piglinRidableInWater = false; public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; @@ -561,7 +561,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1375,6 +1401,7 @@ public class PurpurWorldConfig { +@@ -1376,6 +1402,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -569,7 +569,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean piglinBruteRidable = false; -@@ -1397,6 +1424,7 @@ public class PurpurWorldConfig { +@@ -1398,6 +1425,7 @@ public class PurpurWorldConfig { public boolean pillagerRidableInWater = false; public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; @@ -577,7 +577,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1407,6 +1435,7 @@ public class PurpurWorldConfig { +@@ -1408,6 +1436,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -585,7 +585,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean polarBearRidable = false; -@@ -1453,6 +1482,7 @@ public class PurpurWorldConfig { +@@ -1454,6 +1483,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -593,7 +593,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1466,12 +1496,14 @@ public class PurpurWorldConfig { +@@ -1467,12 +1497,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); @@ -608,7 +608,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1482,6 +1514,7 @@ public class PurpurWorldConfig { +@@ -1483,6 +1515,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -616,7 +616,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean salmonRidable = false; -@@ -1503,6 +1536,7 @@ public class PurpurWorldConfig { +@@ -1504,6 +1537,7 @@ public class PurpurWorldConfig { public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -624,7 +624,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1514,6 +1548,7 @@ public class PurpurWorldConfig { +@@ -1515,6 +1549,7 @@ public class PurpurWorldConfig { } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); @@ -632,7 +632,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean shulkerRidable = false; -@@ -1536,6 +1571,7 @@ public class PurpurWorldConfig { +@@ -1537,6 +1572,7 @@ public class PurpurWorldConfig { public boolean silverfishRidableInWater = false; public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; @@ -640,7 +640,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1546,6 +1582,7 @@ public class PurpurWorldConfig { +@@ -1547,6 +1583,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -648,7 +648,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean skeletonRidable = false; -@@ -1622,6 +1659,7 @@ public class PurpurWorldConfig { +@@ -1623,6 +1660,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -656,7 +656,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1639,6 +1677,7 @@ public class PurpurWorldConfig { +@@ -1640,6 +1678,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); @@ -664,7 +664,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean squidRidable = false; -@@ -1814,6 +1853,7 @@ public class PurpurWorldConfig { +@@ -1815,6 +1854,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -672,7 +672,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1832,6 +1872,7 @@ public class PurpurWorldConfig { +@@ -1833,6 +1873,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); @@ -680,7 +680,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean vindicatorRidable = false; -@@ -1904,6 +1945,7 @@ public class PurpurWorldConfig { +@@ -1905,6 +1946,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -688,7 +688,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1921,6 +1963,7 @@ public class PurpurWorldConfig { +@@ -1922,6 +1964,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); @@ -696,7 +696,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 } public boolean witherSkeletonRidable = false; -@@ -1992,6 +2035,7 @@ public class PurpurWorldConfig { +@@ -1993,6 +2036,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -704,7 +704,7 @@ index 964291a0e04b702729ad76361678bd757151184a..be971ee7bbcf0e90e3de436bbcf43720 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2007,6 +2051,7 @@ public class PurpurWorldConfig { +@@ -2008,6 +2052,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/0131-Config-to-allow-Note-Block-sounds-when-blocked.patch b/patches/server/0131-Config-to-allow-Note-Block-sounds-when-blocked.patch index 62c0199d3..aa825467b 100644 --- a/patches/server/0131-Config-to-allow-Note-Block-sounds-when-blocked.patch +++ b/patches/server/0131-Config-to-allow-Note-Block-sounds-when-blocked.patch @@ -22,10 +22,10 @@ index 58e8905a4b98e2e1ee372b99bdc3de9815063ac9..443bf39734ba2b0a7cdf0362d415ff17 // org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); // Paper - move event into block event handler // if (event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a8a55aeb4a3579efc2fd4b5c8da254d8fea1de43..58d0da89c65187ca48f7444d7c5099778e64603f 100644 +index c7ea267c63a30ba8d2d65c5fe55c349ed29bda43..7988b6b572c83787ff0ab5f73ae49f097d8b391a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -120,6 +120,7 @@ public class PurpurWorldConfig { +@@ -121,6 +121,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; @@ -33,7 +33,7 @@ index a8a55aeb4a3579efc2fd4b5c8da254d8fea1de43..58d0da89c65187ca48f7444d7c509977 public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; public double tridentLoyaltyVoidReturnHeight = 0.0D; -@@ -136,6 +137,7 @@ public class PurpurWorldConfig { +@@ -137,6 +138,7 @@ public class PurpurWorldConfig { entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); diff --git a/patches/server/0132-Add-EntityTeleportHinderedEvent.patch b/patches/server/0132-Add-EntityTeleportHinderedEvent.patch index b86540fd4..bbb54c592 100644 --- a/patches/server/0132-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0132-Add-EntityTeleportHinderedEvent.patch @@ -93,7 +93,7 @@ index a0d8afdee5db3202d3693ad4d10b61fc3b942920..7bca861c3ebfc7550b82ae74483464b1 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5d80cdc482a630bd7951ee8010b0be5d86a74d2f..47f0743ecc1bef6ce55e4ae0c4cbc31a428332df 100644 +index ff25c6b60ebbcf562313a04632c81bcd8a3cd5ab..63236e74b787a594da60e42dc4314faec1d624c6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1305,6 +1305,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -108,10 +108,10 @@ index 5d80cdc482a630bd7951ee8010b0be5d86a74d2f..47f0743ecc1bef6ce55e4ae0c4cbc31a } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c1217325ed03d3546e04d6dee15351b26ce6ed3a..5ce92e94071adad81d252dc9f63b3b468bdedcb7 100644 +index 7988b6b572c83787ff0ab5f73ae49f097d8b391a..ea6af61304f6384009a2a661c042854a29c3f50b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -119,6 +119,7 @@ public class PurpurWorldConfig { +@@ -120,6 +120,7 @@ public class PurpurWorldConfig { public boolean entitiesCanUsePortals = true; public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; @@ -119,7 +119,7 @@ index c1217325ed03d3546e04d6dee15351b26ce6ed3a..5ce92e94071adad81d252dc9f63b3b46 public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = false; -@@ -136,6 +137,7 @@ public class PurpurWorldConfig { +@@ -137,6 +138,7 @@ public class PurpurWorldConfig { entitiesCanUsePortals = getBoolean("gameplay-mechanics.entities-can-use-portals", entitiesCanUsePortals); entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); diff --git a/patches/server/0133-Farmland-trampling-changes.patch b/patches/server/0133-Farmland-trampling-changes.patch index 0b07b64b2..a79d0eb13 100644 --- a/patches/server/0133-Farmland-trampling-changes.patch +++ b/patches/server/0133-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 5826bcc362aec1a867b18fe9b79aae645639e592..e50b23491b8936da4d0742045d0bb4345ed295ab 100644 +index ea6af61304f6384009a2a661c042854a29c3f50b..603145af0c61788c7ae268a763f3df7c6c0686dc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -456,10 +456,16 @@ public class PurpurWorldConfig { +@@ -457,10 +457,16 @@ public class PurpurWorldConfig { public boolean farmlandBypassMobGriefing = false; public boolean farmlandGetsMoistFromBelow = false; public boolean farmlandAlpha = false; diff --git a/patches/server/0134-Movement-options-for-armor-stands.patch b/patches/server/0134-Movement-options-for-armor-stands.patch index 2b62324df..ff868ace3 100644 --- a/patches/server/0134-Movement-options-for-armor-stands.patch +++ b/patches/server/0134-Movement-options-for-armor-stands.patch @@ -66,10 +66,10 @@ index 9dcb46959c723723a369cde50427cbee0349f5a1..6bd31ed84049bc36a060b5e01b0599bf + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 53bd0cb503b1bbb8ea9b083ae590096e5ae68ef6..7e20613a993780f0022b7586205f80248d3ea911 100644 +index 603145af0c61788c7ae268a763f3df7c6c0686dc..23dcee30a188730697060f40a188f6b3c93a1cf6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -101,10 +101,16 @@ public class PurpurWorldConfig { +@@ -102,10 +102,16 @@ public class PurpurWorldConfig { public float armorstandStepHeight = 0.0F; public boolean armorstandSetNameVisible = false; public boolean armorstandFixNametags = false; diff --git a/patches/server/0135-Fix-stuck-in-portals.patch b/patches/server/0135-Fix-stuck-in-portals.patch index 297af713c..8dd87e927 100644 --- a/patches/server/0135-Fix-stuck-in-portals.patch +++ b/patches/server/0135-Fix-stuck-in-portals.patch @@ -37,10 +37,10 @@ index 08a5be138c0c0f2d1239e13c5dd1a82a13145938..33050a4ad2448a2d96b9633302a057f1 this.isInsidePortal = true; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7e20613a993780f0022b7586205f80248d3ea911..fe17225756bddfc1c94cc32a3e655794816e3e8a 100644 +index 23dcee30a188730697060f40a188f6b3c93a1cf6..cc6c0c3dc982ce6322aa882289620befce0d8d05 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -337,6 +337,7 @@ public class PurpurWorldConfig { +@@ -338,6 +338,7 @@ public class PurpurWorldConfig { public int playerDeathExpDropMax = 100; public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; @@ -48,7 +48,7 @@ index 7e20613a993780f0022b7586205f80248d3ea911..fe17225756bddfc1c94cc32a3e655794 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -354,6 +355,7 @@ public class PurpurWorldConfig { +@@ -355,6 +356,7 @@ public class PurpurWorldConfig { playerDeathExpDropMax = getInt("gameplay-mechanics.player.exp-dropped-on-death.maximum", playerDeathExpDropMax); teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); diff --git a/patches/server/0136-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0136-Toggle-for-water-sensitive-mob-damage.patch index a01fab0e3..6d19778da 100644 --- a/patches/server/0136-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0136-Toggle-for-water-sensitive-mob-damage.patch @@ -37,7 +37,7 @@ index 007c945725721ddb8a3dc4b8085e8c68da741b93..53ef2004d1b6acaf27fef9a658fff99b @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index 590315ebc1d71850e439efed6551a7773852ef07..693d027f7ca49b539bb3c1f8804e8c4ae352d6dc 100644 +index f2345d7ce5ba8b4bd3e44819fcf82cd46501e6e3..f012bee87c13d4ab8973127e77ed2eef8ab72d3f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -176,7 +176,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -62,7 +62,7 @@ index 590315ebc1d71850e439efed6551a7773852ef07..693d027f7ca49b539bb3c1f8804e8c4a @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index 4e0f54689e4db6d4e23ed09bf9645b42fa889a5d..d60eb249c3cc893c8546ac99f7b25e545717335c 100644 +index 3641599a119d5416b5756a972f9eb7fc6fbabcf6..5b3d824c0ad43ebd30c6d5fb98e50b531cb85ac7 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -128,6 +128,11 @@ public class Cat extends TamableAnimal { @@ -411,7 +411,7 @@ index ffe8f80cfe3bec8fe79415015f5290749fcb770e..dd514cbf2f03b688eb4d8cd49052f177 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java -index 6d444248b9e283e31d5777d450a52643cc84f59b..83eef99d7f24634e301a51d2825370c9283b53ac 100644 +index e68a40ec759925317a0db2087339cd29351dbeb4..858a5beea8b038822789e6daec9561634c63447c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -127,6 +127,11 @@ public class Axolotl extends Animal implements LerpingModel, Bucketable { @@ -475,7 +475,7 @@ index 6a7d8ff804b184005fda17f3d7a4b9750a7c2fe5..704e08b1ad0601e9b7f3b355214a8208 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 3c9ea07ded25ac8a479a03fecfdd7ddb9d5a046c..708f0bccffc05fac0d711df13dd1b5e173ff6109 100644 +index 91ec5c71c90496f79c80e42cfdd86e4eb5befddf..a83bc1451fe7895bba46aae2da2bc8cb29c7da04 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java @@ -136,6 +136,11 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { @@ -555,7 +555,7 @@ index a2636f6e4767d408ef9d2cda4c346abdaa88da37..6d1938f1cbad394f218b36ec8958d5e7 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java -index a639ebe2ea3f7fdc5367e0d2cec7a257c7cb4933..23e5ab0e3b99659d30d8139dc005a714741a97c7 100644 +index 7cc0d8c9dbfe24de4fa2937db9fe6ef8e78bbef7..0363ba7cd8aa6c2f585355d2c8a86263277d6cfd 100644 --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java @@ -165,6 +165,11 @@ public class EnderDragon extends Mob implements Enemy { @@ -571,7 +571,7 @@ index a639ebe2ea3f7fdc5367e0d2cec7a257c7cb4933..23e5ab0e3b99659d30d8139dc005a714 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 2207c5a71b8a3c7c0c68388ec744c5272d10ab36..1329de5d3e6294d2eb7b6852b8cad19f0f4dba77 100644 +index ab3c741aa0894a9383833b3aa4a8d45ad46dd013..d5fc11b01fcd064562173fb35856686f6977144e 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -234,6 +234,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -641,7 +641,7 @@ index e5b8e09bfb03663afb19214b2759df30fe448704..6de0dccb7a70d9ebde7a518f820258a4 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index dbf1c0704788136f4f8a893460f57ba6d3f42780..8e7e94779f034e036110365f4200540a89910fd0 100644 +index 1d57ee963416e784a759f2ecee7b7c380f0597eb..037d77b47d0be69dfeda01f4a0d52ad72aea2c8d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -108,6 +108,11 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -673,7 +673,7 @@ index 01be40f1740fc689b101fc596dbbb1e66de0bfb1..64193dab104b735a9fa3b335774e6626 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 306da3808e98847534f4d4190c5b2f82ef50224c..6c9b3bb54b163cb2a6c05993e792558e983feecc 100644 +index 9ed04c56e840992a084f77bd667027ef0f6bb184..3d554d0c6f371a10fa939f87893d7dd727439541 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -84,7 +84,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -823,7 +823,7 @@ index 69375fdb63b9edde3d161bac7a1946a36306f0c5..5311b26e56eac2a854e615a3e694eadd public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java -index f23ca987666fd23621d3d731fd1a4ab26ff04aa8..f7689ba01ec6d7f3483be831026e0c5f995459e9 100644 +index 9858361d4dd5407b5d24bd5ac656c2ea3ba64dfa..93ce4f81ca03c003596f86810d4a869502c76242 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -151,6 +151,11 @@ public class Phantom extends FlyingMob implements Enemy { @@ -1069,7 +1069,7 @@ index 6236a557d2a73dff70141140f79faf851a2062f0..0d8495a73df5b1b6cd2c7e5cf18cb3eb @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index efe74738b5a90f822901488aa99f981029416fb5..f2900d76e9577c83be377500f7d7e7f438a56683 100644 +index 66b69f9c6cc5cbf235dce888623b6cea98695f6f..cfecf0322ea22b42fa83bafe3cd2f5d74f0d1311 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -137,6 +137,11 @@ public class Zombie extends Monster { @@ -1197,10 +1197,10 @@ index 8756e0d8d0077308f5fb74bf45fe093d0f043c99..6dd8856816bebb2766203589048cc68b @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944ecba0df8a 100644 +index cc6c0c3dc982ce6322aa882289620befce0d8d05..74961f18a221031be6e677579fc83ddfb55ef555 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -569,11 +569,13 @@ public class PurpurWorldConfig { +@@ -570,11 +570,13 @@ public class PurpurWorldConfig { public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; @@ -1214,7 +1214,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean batRidable = false; -@@ -588,6 +590,7 @@ public class PurpurWorldConfig { +@@ -589,6 +591,7 @@ public class PurpurWorldConfig { public double batArmor = 0.0D; public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; @@ -1222,7 +1222,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -599,6 +602,7 @@ public class PurpurWorldConfig { +@@ -600,6 +603,7 @@ public class PurpurWorldConfig { set("mobs.bat.attributes.max_health", oldValue); } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); @@ -1230,7 +1230,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean beeRidable = false; -@@ -607,6 +611,7 @@ public class PurpurWorldConfig { +@@ -608,6 +612,7 @@ public class PurpurWorldConfig { public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; @@ -1238,7 +1238,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -619,6 +624,7 @@ public class PurpurWorldConfig { +@@ -620,6 +625,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean blazeRidable = false; -@@ -626,6 +632,7 @@ public class PurpurWorldConfig { +@@ -627,6 +633,7 @@ public class PurpurWorldConfig { public boolean blazeControllable = true; public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; @@ -1254,7 +1254,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -637,6 +644,7 @@ public class PurpurWorldConfig { +@@ -638,6 +645,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -1262,7 +1262,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean catRidable = false; -@@ -648,6 +656,7 @@ public class PurpurWorldConfig { +@@ -649,6 +657,7 @@ public class PurpurWorldConfig { public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; @@ -1270,7 +1270,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -667,12 +676,14 @@ public class PurpurWorldConfig { +@@ -668,12 +677,14 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { catDefaultCollarColor = DyeColor.RED; } @@ -1285,7 +1285,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -683,6 +694,7 @@ public class PurpurWorldConfig { +@@ -684,6 +695,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean chickenRidable = false; -@@ -691,6 +703,7 @@ public class PurpurWorldConfig { +@@ -692,6 +704,7 @@ public class PurpurWorldConfig { public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; @@ -1301,7 +1301,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -703,11 +716,13 @@ public class PurpurWorldConfig { +@@ -704,11 +717,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -717,6 +732,7 @@ public class PurpurWorldConfig { +@@ -718,6 +733,7 @@ public class PurpurWorldConfig { set("mobs.cod.attributes.max_health", oldValue); } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); @@ -1323,7 +1323,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean cowRidable = false; -@@ -725,6 +741,7 @@ public class PurpurWorldConfig { +@@ -726,6 +742,7 @@ public class PurpurWorldConfig { public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; @@ -1331,7 +1331,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -737,6 +754,7 @@ public class PurpurWorldConfig { +@@ -738,6 +755,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean creeperRidable = false; -@@ -746,6 +764,7 @@ public class PurpurWorldConfig { +@@ -747,6 +765,7 @@ public class PurpurWorldConfig { public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; @@ -1347,7 +1347,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -759,6 +778,7 @@ public class PurpurWorldConfig { +@@ -760,6 +779,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean dolphinRidable = false; -@@ -768,6 +788,7 @@ public class PurpurWorldConfig { +@@ -769,6 +789,7 @@ public class PurpurWorldConfig { public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; @@ -1363,7 +1363,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -781,6 +802,7 @@ public class PurpurWorldConfig { +@@ -782,6 +803,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean donkeyRidableInWater = false; -@@ -791,6 +813,7 @@ public class PurpurWorldConfig { +@@ -792,6 +814,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; @@ -1379,7 +1379,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -807,6 +830,7 @@ public class PurpurWorldConfig { +@@ -808,6 +831,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean drownedRidable = false; -@@ -817,6 +841,7 @@ public class PurpurWorldConfig { +@@ -818,6 +842,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1395,7 +1395,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -831,11 +856,13 @@ public class PurpurWorldConfig { +@@ -832,11 +857,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -845,6 +872,7 @@ public class PurpurWorldConfig { +@@ -846,6 +873,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean enderDragonRidable = false; -@@ -854,6 +882,7 @@ public class PurpurWorldConfig { +@@ -855,6 +883,7 @@ public class PurpurWorldConfig { public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; @@ -1425,7 +1425,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -871,6 +900,7 @@ public class PurpurWorldConfig { +@@ -872,6 +901,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean endermanRidable = false; -@@ -880,6 +910,7 @@ public class PurpurWorldConfig { +@@ -881,6 +911,7 @@ public class PurpurWorldConfig { public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; @@ -1441,7 +1441,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -893,12 +924,14 @@ public class PurpurWorldConfig { +@@ -894,12 +925,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -909,6 +942,7 @@ public class PurpurWorldConfig { +@@ -910,6 +943,7 @@ public class PurpurWorldConfig { set("mobs.endermite.attributes.max_health", oldValue); } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); @@ -1464,7 +1464,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean evokerRidable = false; -@@ -916,6 +950,7 @@ public class PurpurWorldConfig { +@@ -917,6 +951,7 @@ public class PurpurWorldConfig { public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; @@ -1472,7 +1472,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -927,6 +962,7 @@ public class PurpurWorldConfig { +@@ -928,6 +963,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean foxRidable = false; -@@ -936,6 +972,7 @@ public class PurpurWorldConfig { +@@ -937,6 +973,7 @@ public class PurpurWorldConfig { public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; @@ -1488,7 +1488,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -949,6 +986,7 @@ public class PurpurWorldConfig { +@@ -950,6 +987,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean frogRidable = false; -@@ -969,6 +1007,7 @@ public class PurpurWorldConfig { +@@ -970,6 +1008,7 @@ public class PurpurWorldConfig { public boolean ghastControllable = true; public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; @@ -1504,7 +1504,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -980,6 +1019,7 @@ public class PurpurWorldConfig { +@@ -981,6 +1020,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max_health", oldValue); } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); @@ -1512,7 +1512,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean giantRidable = false; -@@ -992,6 +1032,7 @@ public class PurpurWorldConfig { +@@ -993,6 +1033,7 @@ public class PurpurWorldConfig { public float giantJumpHeight = 1.0F; public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; @@ -1520,7 +1520,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1012,17 +1053,20 @@ public class PurpurWorldConfig { +@@ -1013,17 +1054,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean goatRidable = false; -@@ -1030,17 +1074,20 @@ public class PurpurWorldConfig { +@@ -1031,17 +1075,20 @@ public class PurpurWorldConfig { public boolean goatControllable = true; public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; @@ -1562,7 +1562,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1050,6 +1097,7 @@ public class PurpurWorldConfig { +@@ -1051,6 +1098,7 @@ public class PurpurWorldConfig { set("mobs.guardian.attributes.max_health", oldValue); } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); @@ -1570,7 +1570,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean hoglinRidable = false; -@@ -1057,6 +1105,7 @@ public class PurpurWorldConfig { +@@ -1058,6 +1106,7 @@ public class PurpurWorldConfig { public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; @@ -1578,7 +1578,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1068,6 +1117,7 @@ public class PurpurWorldConfig { +@@ -1069,6 +1118,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean horseRidableInWater = false; -@@ -1078,6 +1128,7 @@ public class PurpurWorldConfig { +@@ -1079,6 +1129,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; @@ -1594,7 +1594,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1094,6 +1145,7 @@ public class PurpurWorldConfig { +@@ -1095,6 +1146,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean huskRidable = false; -@@ -1104,6 +1156,7 @@ public class PurpurWorldConfig { +@@ -1105,6 +1157,7 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1610,7 +1610,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1118,6 +1171,7 @@ public class PurpurWorldConfig { +@@ -1119,6 +1172,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean illusionerRidable = false; -@@ -1126,6 +1180,7 @@ public class PurpurWorldConfig { +@@ -1127,6 +1181,7 @@ public class PurpurWorldConfig { public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; @@ -1626,7 +1626,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1142,6 +1197,7 @@ public class PurpurWorldConfig { +@@ -1143,6 +1198,7 @@ public class PurpurWorldConfig { set("mobs.illusioner.attributes.max_health", oldValue); } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); @@ -1634,7 +1634,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean ironGolemRidable = false; -@@ -1149,6 +1205,7 @@ public class PurpurWorldConfig { +@@ -1150,6 +1206,7 @@ public class PurpurWorldConfig { public boolean ironGolemControllable = true; public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; @@ -1642,7 +1642,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1160,6 +1217,7 @@ public class PurpurWorldConfig { +@@ -1161,6 +1218,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean llamaRidable = false; -@@ -1172,6 +1230,7 @@ public class PurpurWorldConfig { +@@ -1173,6 +1231,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; @@ -1658,7 +1658,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1190,6 +1249,7 @@ public class PurpurWorldConfig { +@@ -1191,6 +1250,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean magmaCubeRidable = false; -@@ -1199,6 +1259,7 @@ public class PurpurWorldConfig { +@@ -1200,6 +1260,7 @@ public class PurpurWorldConfig { public String magmaCubeAttackDamage = "size"; public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); @@ -1674,7 +1674,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1212,6 +1273,7 @@ public class PurpurWorldConfig { +@@ -1213,6 +1274,7 @@ public class PurpurWorldConfig { magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage); magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); @@ -1682,7 +1682,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean mooshroomRidable = false; -@@ -1219,6 +1281,7 @@ public class PurpurWorldConfig { +@@ -1220,6 +1282,7 @@ public class PurpurWorldConfig { public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; @@ -1690,7 +1690,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1230,6 +1293,7 @@ public class PurpurWorldConfig { +@@ -1231,6 +1294,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean muleRidableInWater = false; -@@ -1240,6 +1304,7 @@ public class PurpurWorldConfig { +@@ -1241,6 +1305,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; @@ -1706,7 +1706,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1256,6 +1321,7 @@ public class PurpurWorldConfig { +@@ -1257,6 +1322,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean ocelotRidable = false; -@@ -1263,6 +1329,7 @@ public class PurpurWorldConfig { +@@ -1264,6 +1330,7 @@ public class PurpurWorldConfig { public boolean ocelotControllable = true; public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; @@ -1722,7 +1722,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1274,6 +1341,7 @@ public class PurpurWorldConfig { +@@ -1275,6 +1342,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean pandaRidable = false; -@@ -1281,6 +1349,7 @@ public class PurpurWorldConfig { +@@ -1282,6 +1350,7 @@ public class PurpurWorldConfig { public boolean pandaControllable = true; public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; @@ -1738,7 +1738,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1292,6 +1361,7 @@ public class PurpurWorldConfig { +@@ -1293,6 +1362,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean parrotRidable = false; -@@ -1299,6 +1369,7 @@ public class PurpurWorldConfig { +@@ -1300,6 +1370,7 @@ public class PurpurWorldConfig { public boolean parrotControllable = true; public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; @@ -1754,7 +1754,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1310,6 +1381,7 @@ public class PurpurWorldConfig { +@@ -1311,6 +1382,7 @@ public class PurpurWorldConfig { set("mobs.parrot.attributes.max_health", oldValue); } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); @@ -1762,7 +1762,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean phantomRidable = false; -@@ -1342,6 +1414,7 @@ public class PurpurWorldConfig { +@@ -1343,6 +1415,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; @@ -1770,7 +1770,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1382,6 +1455,7 @@ public class PurpurWorldConfig { +@@ -1383,6 +1456,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean pigRidable = false; -@@ -1390,6 +1464,7 @@ public class PurpurWorldConfig { +@@ -1391,6 +1465,7 @@ public class PurpurWorldConfig { public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; @@ -1786,7 +1786,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1402,6 +1477,7 @@ public class PurpurWorldConfig { +@@ -1403,6 +1478,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean piglinRidable = false; -@@ -1409,6 +1485,7 @@ public class PurpurWorldConfig { +@@ -1410,6 +1486,7 @@ public class PurpurWorldConfig { public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; @@ -1802,7 +1802,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1420,12 +1497,14 @@ public class PurpurWorldConfig { +@@ -1421,12 +1498,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1436,6 +1515,7 @@ public class PurpurWorldConfig { +@@ -1437,6 +1516,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean pillagerRidable = false; -@@ -1443,6 +1523,7 @@ public class PurpurWorldConfig { +@@ -1444,6 +1524,7 @@ public class PurpurWorldConfig { public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; @@ -1833,7 +1833,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1454,6 +1535,7 @@ public class PurpurWorldConfig { +@@ -1455,6 +1536,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean polarBearRidable = false; -@@ -1463,6 +1545,7 @@ public class PurpurWorldConfig { +@@ -1464,6 +1546,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -1849,7 +1849,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1477,11 +1560,13 @@ public class PurpurWorldConfig { +@@ -1478,11 +1561,13 @@ public class PurpurWorldConfig { Item item = Registry.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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -1491,6 +1576,7 @@ public class PurpurWorldConfig { +@@ -1492,6 +1577,7 @@ public class PurpurWorldConfig { set("mobs.pufferfish.attributes.max_health", oldValue); } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); @@ -1871,7 +1871,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean rabbitRidable = false; -@@ -1501,6 +1587,7 @@ public class PurpurWorldConfig { +@@ -1502,6 +1588,7 @@ public class PurpurWorldConfig { public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; @@ -1879,7 +1879,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1515,6 +1602,7 @@ public class PurpurWorldConfig { +@@ -1516,6 +1603,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean ravagerRidable = false; -@@ -1522,6 +1610,7 @@ public class PurpurWorldConfig { +@@ -1523,6 +1611,7 @@ public class PurpurWorldConfig { public boolean ravagerControllable = true; public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; @@ -1895,7 +1895,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1533,11 +1622,13 @@ public class PurpurWorldConfig { +@@ -1534,11 +1623,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -1547,6 +1638,7 @@ public class PurpurWorldConfig { +@@ -1548,6 +1639,7 @@ public class PurpurWorldConfig { set("mobs.salmon.attributes.max_health", oldValue); } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); @@ -1917,7 +1917,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean sheepRidable = false; -@@ -1555,6 +1647,7 @@ public class PurpurWorldConfig { +@@ -1556,6 +1648,7 @@ public class PurpurWorldConfig { public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; @@ -1925,7 +1925,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1567,12 +1660,14 @@ public class PurpurWorldConfig { +@@ -1568,12 +1661,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1583,6 +1678,7 @@ public class PurpurWorldConfig { +@@ -1584,6 +1679,7 @@ public class PurpurWorldConfig { set("mobs.shulker.attributes.max_health", oldValue); } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); @@ -1948,7 +1948,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean silverfishRidable = false; -@@ -1590,6 +1686,7 @@ public class PurpurWorldConfig { +@@ -1591,6 +1687,7 @@ public class PurpurWorldConfig { public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; @@ -1956,7 +1956,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1601,12 +1698,14 @@ public class PurpurWorldConfig { +@@ -1602,12 +1699,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -1617,6 +1716,7 @@ public class PurpurWorldConfig { +@@ -1618,6 +1717,7 @@ public class PurpurWorldConfig { set("mobs.skeleton.attributes.max_health", oldValue); } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); @@ -1979,7 +1979,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean skeletonHorseRidableInWater = true; -@@ -1627,6 +1727,7 @@ public class PurpurWorldConfig { +@@ -1628,6 +1728,7 @@ public class PurpurWorldConfig { public double skeletonHorseJumpStrengthMax = 1.0D; public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; @@ -1987,7 +1987,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -1642,6 +1743,7 @@ public class PurpurWorldConfig { +@@ -1643,6 +1744,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean slimeRidable = false; -@@ -1651,6 +1753,7 @@ public class PurpurWorldConfig { +@@ -1652,6 +1754,7 @@ public class PurpurWorldConfig { public String slimeAttackDamage = "size"; public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); @@ -2003,7 +2003,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -1664,6 +1767,7 @@ public class PurpurWorldConfig { +@@ -1665,6 +1768,7 @@ public class PurpurWorldConfig { slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage); slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); @@ -2011,7 +2011,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean snowGolemRidable = false; -@@ -1678,6 +1782,7 @@ public class PurpurWorldConfig { +@@ -1679,6 +1783,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -2019,7 +2019,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1696,6 +1801,7 @@ public class PurpurWorldConfig { +@@ -1697,6 +1802,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean squidRidable = false; -@@ -1704,6 +1810,7 @@ public class PurpurWorldConfig { +@@ -1705,6 +1811,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -2035,7 +2035,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1716,12 +1823,14 @@ public class PurpurWorldConfig { +@@ -1717,12 +1824,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1732,12 +1841,14 @@ public class PurpurWorldConfig { +@@ -1733,12 +1842,14 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2065,7 +2065,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1748,6 +1859,7 @@ public class PurpurWorldConfig { +@@ -1749,6 +1860,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2073,7 +2073,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean striderRidable = false; -@@ -1756,6 +1868,7 @@ public class PurpurWorldConfig { +@@ -1757,6 +1869,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2081,7 +2081,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1768,6 +1881,7 @@ public class PurpurWorldConfig { +@@ -1769,6 +1882,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean tadpoleRidable = false; -@@ -1789,6 +1903,7 @@ public class PurpurWorldConfig { +@@ -1790,6 +1904,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2097,7 +2097,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1807,11 +1922,13 @@ public class PurpurWorldConfig { +@@ -1808,11 +1923,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -1821,6 +1938,7 @@ public class PurpurWorldConfig { +@@ -1822,6 +1939,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean turtleRidable = false; -@@ -1828,6 +1946,7 @@ public class PurpurWorldConfig { +@@ -1829,6 +1947,7 @@ public class PurpurWorldConfig { public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; @@ -2127,7 +2127,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1839,6 +1958,7 @@ public class PurpurWorldConfig { +@@ -1840,6 +1959,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean vexRidable = false; -@@ -1846,6 +1966,7 @@ public class PurpurWorldConfig { +@@ -1847,6 +1967,7 @@ public class PurpurWorldConfig { public boolean vexControllable = true; public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; @@ -2143,7 +2143,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1857,6 +1978,7 @@ public class PurpurWorldConfig { +@@ -1858,6 +1979,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2151,7 +2151,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean villagerRidable = false; -@@ -1872,6 +1994,7 @@ public class PurpurWorldConfig { +@@ -1873,6 +1995,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2159,7 +2159,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1891,6 +2014,7 @@ public class PurpurWorldConfig { +@@ -1892,6 +2015,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean vindicatorRidable = false; -@@ -1898,6 +2022,7 @@ public class PurpurWorldConfig { +@@ -1899,6 +2023,7 @@ public class PurpurWorldConfig { public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; @@ -2175,7 +2175,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1909,6 +2034,7 @@ public class PurpurWorldConfig { +@@ -1910,6 +2035,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean wanderingTraderRidable = false; -@@ -1917,6 +2043,7 @@ public class PurpurWorldConfig { +@@ -1918,6 +2044,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2191,7 +2191,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1929,6 +2056,7 @@ public class PurpurWorldConfig { +@@ -1930,6 +2057,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean wardenRidable = false; -@@ -1944,6 +2072,7 @@ public class PurpurWorldConfig { +@@ -1945,6 +2073,7 @@ public class PurpurWorldConfig { public boolean witchRidableInWater = false; public boolean witchControllable = true; public double witchMaxHealth = 26.0D; @@ -2207,7 +2207,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1954,6 +2083,7 @@ public class PurpurWorldConfig { +@@ -1955,6 +2084,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2215,7 +2215,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean witherRidable = false; -@@ -1964,6 +2094,7 @@ public class PurpurWorldConfig { +@@ -1965,6 +2095,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2223,7 +2223,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1982,12 +2113,14 @@ public class PurpurWorldConfig { +@@ -1983,12 +2114,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -1998,6 +2131,7 @@ public class PurpurWorldConfig { +@@ -1999,6 +2132,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean wolfRidable = false; -@@ -2008,6 +2142,7 @@ public class PurpurWorldConfig { +@@ -2009,6 +2143,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2254,7 +2254,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2026,12 +2161,14 @@ public class PurpurWorldConfig { +@@ -2027,12 +2162,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2042,6 +2179,7 @@ public class PurpurWorldConfig { +@@ -2043,6 +2180,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2277,7 +2277,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean zombieRidable = false; -@@ -2054,6 +2192,7 @@ public class PurpurWorldConfig { +@@ -2055,6 +2193,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2285,7 +2285,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2070,6 +2209,7 @@ public class PurpurWorldConfig { +@@ -2071,6 +2210,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean zombieHorseRidableInWater = false; -@@ -2081,6 +2221,7 @@ public class PurpurWorldConfig { +@@ -2082,6 +2222,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; @@ -2301,7 +2301,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2097,6 +2238,7 @@ public class PurpurWorldConfig { +@@ -2098,6 +2239,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean zombieVillagerRidable = false; -@@ -2107,6 +2249,7 @@ public class PurpurWorldConfig { +@@ -2108,6 +2250,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2317,7 +2317,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2121,6 +2264,7 @@ public class PurpurWorldConfig { +@@ -2122,6 +2265,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 bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e } public boolean zombifiedPiglinRidable = false; -@@ -2132,6 +2276,7 @@ public class PurpurWorldConfig { +@@ -2133,6 +2277,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2333,7 +2333,7 @@ index bb1127f369de525430687ec1dc46cc56b5df7fc7..4e4a625fe34913d89bd933eeae15944e private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2147,5 +2292,6 @@ public class PurpurWorldConfig { +@@ -2148,5 +2293,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/0137-Config-to-always-tame-in-Creative.patch b/patches/server/0137-Config-to-always-tame-in-Creative.patch index de683401c..3615e6ee9 100644 --- a/patches/server/0137-Config-to-always-tame-in-Creative.patch +++ b/patches/server/0137-Config-to-always-tame-in-Creative.patch @@ -20,7 +20,7 @@ index 5c64905e90ccca6e0b347241ddf9cc3f71058b8e..3bd7521b131b2b40f807bdc7ab95e64c return; } diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java -index d60eb249c3cc893c8546ac99f7b25e545717335c..dca3b1b4099cab57c25c2df74e865c876709321d 100644 +index 5b3d824c0ad43ebd30c6d5fb98e50b531cb85ac7..97b5b9f63fc01b6945a5c61406a394cba80c10ec 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -468,7 +468,7 @@ public class Cat extends TamableAnimal { @@ -59,10 +59,10 @@ index dd514cbf2f03b688eb4d8cd49052f1775d3adebb..ed33573a96e96d557156fbe2f725e3d6 this.navigation.stop(); this.setTarget((LivingEntity) null); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4e4a625fe34913d89bd933eeae15944ecba0df8a..f2293d1a6f4aaaad7fbf1aea2da716f0566083cf 100644 +index 74961f18a221031be6e677579fc83ddfb55ef555..702a2caacf1cee7cf057fad12a9a490fc7f84e69 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -119,6 +119,7 @@ public class PurpurWorldConfig { +@@ -120,6 +120,7 @@ public class PurpurWorldConfig { } public boolean useBetterMending = false; @@ -70,7 +70,7 @@ index 4e4a625fe34913d89bd933eeae15944ecba0df8a..f2293d1a6f4aaaad7fbf1aea2da716f0 public boolean boatEjectPlayersOnLand = false; public boolean boatsDoFallDamage = true; public boolean disableDropsOnCrammingDeath = false; -@@ -137,6 +138,7 @@ public class PurpurWorldConfig { +@@ -138,6 +139,7 @@ public class PurpurWorldConfig { public int animalBreedingCooldownSeconds = 0; private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); diff --git a/patches/server/0138-End-crystal-explosion-options.patch b/patches/server/0138-End-crystal-explosion-options.patch index ec060e4ea..b829abcc0 100644 --- a/patches/server/0138-End-crystal-explosion-options.patch +++ b/patches/server/0138-End-crystal-explosion-options.patch @@ -52,10 +52,10 @@ index e1493079d06a91f3e14e333e2a0408725a8f5bea..59d7f4ef118b2a87d1fe9cc1dd2fea89 this.onDestroyedBy(source); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f2293d1a6f4aaaad7fbf1aea2da716f0566083cf..570e90dd3cd3bbd3078893fb972f7018b516f3e0 100644 +index 702a2caacf1cee7cf057fad12a9a490fc7f84e69..0e87b9ef34280b92b3b906f1b20fcc38b27181a1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -463,6 +463,35 @@ public class PurpurWorldConfig { +@@ -464,6 +464,35 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0139-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0139-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 874d5f765..a51b116df 100644 --- a/patches/server/0139-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0139-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -29,10 +29,10 @@ index d5fc11b01fcd064562173fb35856686f6977144e..0c3fe609a9d4c4c485b1a11e6ec39c06 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3b80759754a200d2dbbca63e0cfd25aa126b4641..41a4abb7c676285435f9a744ae3f50b9c80c8cbd 100644 +index 0e87b9ef34280b92b3b906f1b20fcc38b27181a1..b9700ec497ab84dde2424c1faa79a5ce5fcd4ad1 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 { +@@ -915,6 +915,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public boolean enderDragonTakeDamageFromWater = false; @@ -40,7 +40,7 @@ index 3b80759754a200d2dbbca63e0cfd25aa126b4641..41a4abb7c676285435f9a744ae3f50b9 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -932,6 +933,7 @@ public class PurpurWorldConfig { +@@ -933,6 +934,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 3b80759754a200d2dbbca63e0cfd25aa126b4641..41a4abb7c676285435f9a744ae3f50b9 } public boolean endermanRidable = false; -@@ -2126,6 +2128,7 @@ public class PurpurWorldConfig { +@@ -2127,6 +2129,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index 3b80759754a200d2dbbca63e0cfd25aa126b4641..41a4abb7c676285435f9a744ae3f50b9 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2145,6 +2148,7 @@ public class PurpurWorldConfig { +@@ -2146,6 +2149,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/0140-Dont-run-with-scissors.patch b/patches/server/0140-Dont-run-with-scissors.patch index 0423370bc..8941a66db 100644 --- a/patches/server/0140-Dont-run-with-scissors.patch +++ b/patches/server/0140-Dont-run-with-scissors.patch @@ -95,10 +95,10 @@ index cbe4d2d692edf29f9f6587871058fc1b3c53a731..bbc5d5af660b2aba16b02a9f8b33c877 public static String serverModName = "Purpur"; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 41a4abb7c676285435f9a744ae3f50b9c80c8cbd..46fbf50268f8531c11efccba0f971b19bdfd4a0e 100644 +index b9700ec497ab84dde2424c1faa79a5ce5fcd4ad1..895c988fa77059783527d7f73274694ca5e96fd8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -199,6 +199,8 @@ public class PurpurWorldConfig { +@@ -200,6 +200,8 @@ public class PurpurWorldConfig { public List itemImmuneToExplosion = new ArrayList<>(); public List itemImmuneToFire = new ArrayList<>(); public List itemImmuneToLightning = new ArrayList<>(); @@ -107,7 +107,7 @@ index 41a4abb7c676285435f9a744ae3f50b9c80c8cbd..46fbf50268f8531c11efccba0f971b19 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -236,6 +238,8 @@ public class PurpurWorldConfig { +@@ -237,6 +239,8 @@ public class PurpurWorldConfig { Item item = Registry.ITEM.get(new ResourceLocation(key.toString())); if (item != Items.AIR) itemImmuneToLightning.add(item); }); diff --git a/patches/server/0141-One-Punch-Man.patch b/patches/server/0141-One-Punch-Man.patch index 682651acc..5899a9f47 100644 --- a/patches/server/0141-One-Punch-Man.patch +++ b/patches/server/0141-One-Punch-Man.patch @@ -5,7 +5,7 @@ Subject: [PATCH] One Punch Man! diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 2838c9ae7d598e9e53f4e5d59c2bf5927e0d9bbe..c318a83363048e052333e98705f94217039662c4 100644 +index 2e8ac4ba143c12c2da5487ff817baa7fe3bd5926..ebed5983846bb4cfde5ecb06f99b3df8f514b6f3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2223,6 +2223,20 @@ public abstract class LivingEntity extends Entity { @@ -30,10 +30,10 @@ index 2838c9ae7d598e9e53f4e5d59c2bf5927e0d9bbe..c318a83363048e052333e98705f94217 if (human) { // PAIL: Be sure to drag all this code from the EntityHuman subclass each update. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 46fbf50268f8531c11efccba0f971b19bdfd4a0e..b2bcd43db51bad65f2dc7e01333b504ea3a751f0 100644 +index 895c988fa77059783527d7f73274694ca5e96fd8..ec9c6cea5cdd4931ff75f8ceee1cd9592f04e9b3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -344,6 +344,7 @@ public class PurpurWorldConfig { +@@ -345,6 +345,7 @@ public class PurpurWorldConfig { public boolean teleportIfOutsideBorder = false; public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; @@ -41,7 +41,7 @@ index 46fbf50268f8531c11efccba0f971b19bdfd4a0e..b2bcd43db51bad65f2dc7e01333b504e private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -362,6 +363,7 @@ public class PurpurWorldConfig { +@@ -363,6 +364,7 @@ public class PurpurWorldConfig { teleportIfOutsideBorder = getBoolean("gameplay-mechanics.player.teleport-if-outside-border", teleportIfOutsideBorder); totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); diff --git a/patches/server/0142-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch b/patches/server/0142-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch index 07eeecbe1..a095e1c6c 100644 --- a/patches/server/0142-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch +++ b/patches/server/0142-Configurable-Ender-Pearl-cooldown-damage-and-Endermi.patch @@ -43,10 +43,10 @@ index 749ab72edc0d2e9c6f1161415ab8d59d3d6ca976..897c202c0905040072a06fdfa2032a7f // Paper end if (user instanceof net.minecraft.server.level.ServerPlayer) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7c216897dc47e2b553ec936615e7e0ab44be906a..58ef5df9b6a494905434699f73fa848a85f4a52c 100644 +index ec9c6cea5cdd4931ff75f8ceee1cd9592f04e9b3..0312fcb2889c2557c1693c52f3813afc4d38415c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -201,6 +201,10 @@ public class PurpurWorldConfig { +@@ -202,6 +202,10 @@ public class PurpurWorldConfig { public List itemImmuneToLightning = new ArrayList<>(); public boolean dontRunWithScissors = false; public double scissorsRunningDamage = 1D; @@ -57,7 +57,7 @@ index 7c216897dc47e2b553ec936615e7e0ab44be906a..58ef5df9b6a494905434699f73fa848a private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -240,6 +244,10 @@ public class PurpurWorldConfig { +@@ -241,6 +245,10 @@ public class PurpurWorldConfig { }); dontRunWithScissors = getBoolean("gameplay-mechanics.item.shears.damage-if-sprinting", dontRunWithScissors); scissorsRunningDamage = getDouble("gameplay-mechanics.item.shears.sprinting-damage", scissorsRunningDamage); diff --git a/patches/server/0143-Config-to-ignore-nearby-mobs-when-sleeping.patch b/patches/server/0143-Config-to-ignore-nearby-mobs-when-sleeping.patch index 008b84155..1026508a1 100644 --- a/patches/server/0143-Config-to-ignore-nearby-mobs-when-sleeping.patch +++ b/patches/server/0143-Config-to-ignore-nearby-mobs-when-sleeping.patch @@ -18,10 +18,10 @@ index 743a5cf750cc56856477cf2b4d75ceb241ef1eb6..5d989ef08080bc6622b64b1eea8ae63a } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index abb38209f5596fe741d11415db93b231c3b90085..7cd24f545da327d537f79cde3170477a24102a45 100644 +index 0312fcb2889c2557c1693c52f3813afc4d38415c..b04d1dd43bec362f0632fe52436aa14c8988b1e1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -353,6 +353,7 @@ public class PurpurWorldConfig { +@@ -354,6 +354,7 @@ public class PurpurWorldConfig { public boolean totemOfUndyingWorksInInventory = false; public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; @@ -29,7 +29,7 @@ index abb38209f5596fe741d11415db93b231c3b90085..7cd24f545da327d537f79cde3170477a private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -372,6 +373,7 @@ public class PurpurWorldConfig { +@@ -373,6 +374,7 @@ public class PurpurWorldConfig { totemOfUndyingWorksInInventory = getBoolean("gameplay-mechanics.player.totem-of-undying-works-in-inventory", totemOfUndyingWorksInInventory); playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); diff --git a/patches/server/0145-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0145-Config-Enderman-aggressiveness-towards-Endermites.patch index 4294fbfec..b8c2dd1df 100644 --- a/patches/server/0145-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0145-Config-Enderman-aggressiveness-towards-Endermites.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config Enderman aggressiveness towards Endermites diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 6c9b3bb54b163cb2a6c05993e792558e983feecc..99e4c23140b85d37c7b266c2fcf57c94fd19ec7c 100644 +index 3d554d0c6f371a10fa939f87893d7dd727439541..78501dcf53672125d6895fb5ca1597450157e1d8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -123,7 +123,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -18,10 +18,10 @@ index 6c9b3bb54b163cb2a6c05993e792558e983feecc..99e4c23140b85d37c7b266c2fcf57c94 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8e6e5da5c089644136b365fb65df54c6f64ae44c..9a21672c00972f2333b588df60f6fdff9f5a6518 100644 +index b04d1dd43bec362f0632fe52436aa14c8988b1e1..9f91a83e7b6a0e7be3342db3e2fe42f3e6d098fe 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -960,6 +960,8 @@ public class PurpurWorldConfig { +@@ -961,6 +961,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index 8e6e5da5c089644136b365fb65df54c6f64ae44c..9a21672c00972f2333b588df60f6fdff private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -969,11 +971,17 @@ public class PurpurWorldConfig { +@@ -970,11 +972,17 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max-health", null); set("mobs.enderman.attributes.max_health", oldValue); } diff --git a/patches/server/0146-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0146-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index 166ca8259..fa6ec3948 100644 --- a/patches/server/0146-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0146-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -7,7 +7,7 @@ Prevents Enderman from becoming aggresive towards players that are wearing a Dra Adds functionality to a useless item! diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index 99e4c23140b85d37c7b266c2fcf57c94fd19ec7c..b0c4c90ab2d532a60911d53ac4764dcf49fff6c8 100644 +index 78501dcf53672125d6895fb5ca1597450157e1d8..6c1de46576c3cb65526de48400d268695ca53024 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -260,7 +260,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -20,10 +20,10 @@ index 99e4c23140b85d37c7b266c2fcf57c94fd19ec7c..b0c4c90ab2d532a60911d53ac4764dcf } 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 9a21672c00972f2333b588df60f6fdff9f5a6518..cfca4a5f08456bb06283fb7e1fb96711591aee13 100644 +index 9f91a83e7b6a0e7be3342db3e2fe42f3e6d098fe..7747a92b15ee5282810180ef8dfa4bcae74ec836 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -962,6 +962,8 @@ public class PurpurWorldConfig { +@@ -963,6 +963,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index 9a21672c00972f2333b588df60f6fdff9f5a6518..cfca4a5f08456bb06283fb7e1fb96711 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -982,6 +984,8 @@ public class PurpurWorldConfig { +@@ -983,6 +985,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/0147-Tick-fluids-config.patch b/patches/server/0147-Tick-fluids-config.patch index a5cf8cc3c..1bd6e6018 100644 --- a/patches/server/0147-Tick-fluids-config.patch +++ b/patches/server/0147-Tick-fluids-config.patch @@ -36,10 +36,10 @@ index 43e8ef1d6a65d4fd3fe53a587639ffb814368217..9c22a730772f71b34c63d1e43d48943f } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index cfca4a5f08456bb06283fb7e1fb96711591aee13..29e3f3dea9d9c4131e23d8b730bb0cbda8184d94 100644 +index 7747a92b15ee5282810180ef8dfa4bcae74ec836..a23158f7e766ff15b63f2950aec2f02a81674cee 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -131,6 +131,7 @@ public class PurpurWorldConfig { +@@ -132,6 +132,7 @@ public class PurpurWorldConfig { public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; @@ -47,7 +47,7 @@ index cfca4a5f08456bb06283fb7e1fb96711591aee13..29e3f3dea9d9c4131e23d8b730bb0cbd public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -150,6 +151,7 @@ public class PurpurWorldConfig { +@@ -151,6 +152,7 @@ public class PurpurWorldConfig { noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); diff --git a/patches/server/0148-Config-to-disable-Llama-caravans.patch b/patches/server/0148-Config-to-disable-Llama-caravans.patch index e1c23130f..0d50c3509 100644 --- a/patches/server/0148-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0148-Config-to-disable-Llama-caravans.patch @@ -19,7 +19,7 @@ index 7b141c495095afcd9c8b04c059d692e829259e7a..ad30f2d678cfc4b0d693e84e6e152c63 List list = this.llama.level.getEntities(this.llama, this.llama.getBoundingBox().inflate(9.0D, 4.0D, 9.0D), (entity) -> { EntityType entityType = entity.getType(); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java -index 708f0bccffc05fac0d711df13dd1b5e173ff6109..b7b8d7587018759fc418043694abd38fd043852b 100644 +index a83bc1451fe7895bba46aae2da2bc8cb29c7da04..06177b60406aa949c71277f75158f154e68ec0d8 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java @@ -540,7 +540,7 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { @@ -32,10 +32,10 @@ index 708f0bccffc05fac0d711df13dd1b5e173ff6109..b7b8d7587018759fc418043694abd38f 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 29e3f3dea9d9c4131e23d8b730bb0cbda8184d94..6d9f3aed3dfd141e191cde35598bc307cc4ffa89 100644 +index a23158f7e766ff15b63f2950aec2f02a81674cee..f14adabf3fac668aed31b0c9b47b993f598be1d3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1294,6 +1294,7 @@ public class PurpurWorldConfig { +@@ -1295,6 +1295,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 29e3f3dea9d9c4131e23d8b730bb0cbda8184d94..6d9f3aed3dfd141e191cde35598bc307 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1313,6 +1314,7 @@ public class PurpurWorldConfig { +@@ -1314,6 +1315,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/0149-Config-to-make-Creepers-explode-on-death.patch b/patches/server/0149-Config-to-make-Creepers-explode-on-death.patch index dd6b77144..450433da3 100644 --- a/patches/server/0149-Config-to-make-Creepers-explode-on-death.patch +++ b/patches/server/0149-Config-to-make-Creepers-explode-on-death.patch @@ -50,10 +50,10 @@ index 6de0dccb7a70d9ebde7a518f820258a445bed000..2ffa10ddd1a19aa44c088a41fdfcbd59 private void spawnLingeringCloud() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6d9f3aed3dfd141e191cde35598bc307cc4ffa89..85264922bbd784e6601066253df2b2ab7fb50b55 100644 +index f14adabf3fac668aed31b0c9b47b993f598be1d3..7f4b76cb8de86cb4265b765ed48ea00422a837db 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -814,6 +814,7 @@ public class PurpurWorldConfig { +@@ -815,6 +815,7 @@ public class PurpurWorldConfig { public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index 6d9f3aed3dfd141e191cde35598bc307cc4ffa89..85264922bbd784e6601066253df2b2ab private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -828,6 +829,7 @@ public class PurpurWorldConfig { +@@ -829,6 +830,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/0150-Configurable-ravager-griefable-blocks-list.patch b/patches/server/0150-Configurable-ravager-griefable-blocks-list.patch index fc9f6e7ec..db5262926 100644 --- a/patches/server/0150-Configurable-ravager-griefable-blocks-list.patch +++ b/patches/server/0150-Configurable-ravager-griefable-blocks-list.patch @@ -31,10 +31,10 @@ index a68bf10353e5c19adfa86c2dd6290f2386af9a9d..38bc19edc2dcfa33b3191cfa3b69f00d } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 85264922bbd784e6601066253df2b2ab7fb50b55..600abf6a419c99fde04ec7aeadfd3d0e02c883d9 100644 +index 7f4b76cb8de86cb4265b765ed48ea00422a837db..b575819bc23362f21b080c675e89b799b6ed99d2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1678,6 +1678,7 @@ public class PurpurWorldConfig { +@@ -1679,6 +1679,7 @@ public class PurpurWorldConfig { public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 85264922bbd784e6601066253df2b2ab7fb50b55..600abf6a419c99fde04ec7aeadfd3d0e private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1690,6 +1691,23 @@ public class PurpurWorldConfig { +@@ -1691,6 +1692,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/0151-Sneak-to-bulk-process-composter.patch b/patches/server/0151-Sneak-to-bulk-process-composter.patch index 8b270d42f..f1d9190d2 100644 --- a/patches/server/0151-Sneak-to-bulk-process-composter.patch +++ b/patches/server/0151-Sneak-to-bulk-process-composter.patch @@ -90,10 +90,10 @@ index 492e3ffd6a4588a521486db631f3e8b2a25b74ec..954c4a112d675144befd253abe880251 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 c01ddef1966843748f434ae195b38d2f290388ec..9c925dbee68ae33ae98436a5bb70d7fc5b55fe23 100644 +index b575819bc23362f21b080c675e89b799b6ed99d2..1d101f9fe489122e2c3a83f901bc19b2232a5d72 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -474,6 +474,11 @@ public class PurpurWorldConfig { +@@ -475,6 +475,11 @@ public class PurpurWorldConfig { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); } diff --git a/patches/server/0152-Config-for-skipping-night.patch b/patches/server/0152-Config-for-skipping-night.patch index 8f3029d38..7431f43bb 100644 --- a/patches/server/0152-Config-for-skipping-night.patch +++ b/patches/server/0152-Config-for-skipping-night.patch @@ -18,10 +18,10 @@ index 284fb0308ccd458804f9dfe9eb10529e32ba0207..9dc317d471ce6eab24e0ebec729cea1d j = this.levelData.getDayTime() + 24000L; TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (j - j % 24000L) - this.getDayTime()); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9c925dbee68ae33ae98436a5bb70d7fc5b55fe23..23a95b87cf7b92bbb2b34975e49d1d0d65e5e9b5 100644 +index 1d101f9fe489122e2c3a83f901bc19b2232a5d72..f36e00c716532b0ab12565ca0076c94b7d73e5b3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -356,6 +356,7 @@ public class PurpurWorldConfig { +@@ -357,6 +357,7 @@ public class PurpurWorldConfig { public boolean playerFixStuckPortal = false; public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; @@ -29,7 +29,7 @@ index 9c925dbee68ae33ae98436a5bb70d7fc5b55fe23..23a95b87cf7b92bbb2b34975e49d1d0d private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -376,6 +377,7 @@ public class PurpurWorldConfig { +@@ -377,6 +378,7 @@ public class PurpurWorldConfig { playerFixStuckPortal = getBoolean("gameplay-mechanics.player.fix-stuck-in-portal", playerFixStuckPortal); creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); diff --git a/patches/server/0153-Add-config-for-villager-trading.patch b/patches/server/0153-Add-config-for-villager-trading.patch index 6a5a3a62c..6d02dd11c 100644 --- a/patches/server/0153-Add-config-for-villager-trading.patch +++ b/patches/server/0153-Add-config-for-villager-trading.patch @@ -31,10 +31,10 @@ index 6dd8856816bebb2766203589048cc68b3f5c8f5c..8d6930868a42b9fc98d7672bff433ec5 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 6a82355509fdb04acc920b21c0c76328999e48e8..717c7edb6629935eaa9193ddd4af9186e4451f9d 100644 +index f36e00c716532b0ab12565ca0076c94b7d73e5b3..f398ddb46d2ebc99d0ae4235fd9c7a85271d850d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2087,6 +2087,7 @@ public class PurpurWorldConfig { +@@ -2088,6 +2088,7 @@ public class PurpurWorldConfig { public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 6a82355509fdb04acc920b21c0c76328999e48e8..717c7edb6629935eaa9193ddd4af9186 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2107,6 +2108,7 @@ public class PurpurWorldConfig { +@@ -2108,6 +2109,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 6a82355509fdb04acc920b21c0c76328999e48e8..717c7edb6629935eaa9193ddd4af9186 } public boolean vindicatorRidable = false; -@@ -2136,6 +2138,7 @@ public class PurpurWorldConfig { +@@ -2137,6 +2139,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index 6a82355509fdb04acc920b21c0c76328999e48e8..717c7edb6629935eaa9193ddd4af9186 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2149,6 +2152,7 @@ public class PurpurWorldConfig { +@@ -2150,6 +2153,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/0155-Drowning-Settings.patch b/patches/server/0155-Drowning-Settings.patch index 57b5aee37..36be1534c 100644 --- a/patches/server/0155-Drowning-Settings.patch +++ b/patches/server/0155-Drowning-Settings.patch @@ -40,10 +40,10 @@ index ebed5983846bb4cfde5ecb06f99b3df8f514b6f3..e11b9c477dabe9c5e00bf41739b0fe52 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f6450f2c6a2c26c13af8df4cb2b8c7c2aacda7aa..286d125efccc16314fc03bb130be8a766183a39c 100644 +index f398ddb46d2ebc99d0ae4235fd9c7a85271d850d..504c3fe629cb9cb969aac125d0bfc2b7b37838ef 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -166,6 +166,15 @@ public class PurpurWorldConfig { +@@ -167,6 +167,15 @@ public class PurpurWorldConfig { nighttimeTicks = getInt("gameplay-mechanics.daylight-cycle-ticks.nighttime", nighttimeTicks); } diff --git a/patches/server/0156-Break-individual-slabs-when-sneaking.patch b/patches/server/0156-Break-individual-slabs-when-sneaking.patch index 9cb3298b3..fb2076442 100644 --- a/patches/server/0156-Break-individual-slabs-when-sneaking.patch +++ b/patches/server/0156-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 ba95b9ecebca5974389b50d39ab39aecc73da031..654d7273fbac20f6d76dcdf5d9904f14b1241bd2 100644 +index 504c3fe629cb9cb969aac125d0bfc2b7b37838ef..1209134e0b812f2da5579ddade5075684792b62f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -589,6 +589,11 @@ public class PurpurWorldConfig { +@@ -590,6 +590,11 @@ public class PurpurWorldConfig { signRightClickEdit = getBoolean("blocks.sign.right-click-edit", signRightClickEdit); } diff --git a/patches/server/0157-Config-to-disable-hostile-mob-spawn-on-ice.patch b/patches/server/0157-Config-to-disable-hostile-mob-spawn-on-ice.patch index ab784f43b..c74760c7a 100644 --- a/patches/server/0157-Config-to-disable-hostile-mob-spawn-on-ice.patch +++ b/patches/server/0157-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 654d7273fbac20f6d76dcdf5d9904f14b1241bd2..923024e035f2b3c5fc767acc2d4c6533a44a5d6d 100644 +index 1209134e0b812f2da5579ddade5075684792b62f..6bc5244fd4bf15544db099283613d9e6bb79e702 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -552,6 +552,13 @@ public class PurpurWorldConfig { +@@ -553,6 +553,13 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0158-Config-to-show-Armor-Stand-arms-on-spawn.patch b/patches/server/0158-Config-to-show-Armor-Stand-arms-on-spawn.patch index d643b949a..d1c87e694 100644 --- a/patches/server/0158-Config-to-show-Armor-Stand-arms-on-spawn.patch +++ b/patches/server/0158-Config-to-show-Armor-Stand-arms-on-spawn.patch @@ -17,10 +17,10 @@ index 6bd31ed84049bc36a060b5e01b0599bf5f47765c..bdb0efdcac171a92a0e05557db7d099f public ArmorStand(Level world, double x, double y, double z) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 923024e035f2b3c5fc767acc2d4c6533a44a5d6d..ee8238ff6e74f72b04b011e89dd1b50c18e91c93 100644 +index 6bc5244fd4bf15544db099283613d9e6bb79e702..fb69f0d8797e37f2c934e6a148b2ec6d2eb242b1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -104,6 +104,7 @@ public class PurpurWorldConfig { +@@ -105,6 +105,7 @@ public class PurpurWorldConfig { public boolean armorstandMovement = true; public boolean armorstandWaterMovement = true; public boolean armorstandWaterFence = true; @@ -28,7 +28,7 @@ index 923024e035f2b3c5fc767acc2d4c6533a44a5d6d..ee8238ff6e74f72b04b011e89dd1b50c private void armorstandSettings() { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); armorstandSetNameVisible = getBoolean("gameplay-mechanics.armorstand.set-name-visible-when-placing-with-custom-name", armorstandSetNameVisible); -@@ -111,6 +112,7 @@ public class PurpurWorldConfig { +@@ -112,6 +113,7 @@ public class PurpurWorldConfig { armorstandMovement = getBoolean("gameplay-mechanics.armorstand.can-movement-tick", armorstandMovement); armorstandWaterMovement = getBoolean("gameplay-mechanics.armorstand.can-move-in-water", armorstandWaterMovement); armorstandWaterFence = getBoolean("gameplay-mechanics.armorstand.can-move-in-water-over-fence", armorstandWaterFence); diff --git a/patches/server/0159-Option-to-make-doors-require-redstone.patch b/patches/server/0159-Option-to-make-doors-require-redstone.patch index a297f9c59..13b78447a 100644 --- a/patches/server/0159-Option-to-make-doors-require-redstone.patch +++ b/patches/server/0159-Option-to-make-doors-require-redstone.patch @@ -67,10 +67,10 @@ index aa5289f652392515952cc10f70627ed2cdc6c398..d1d3323559f12f60ef0564e2218ca153 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ee8238ff6e74f72b04b011e89dd1b50c18e91c93..15d8b8b31c757226ae975b3b2c2407bab2a26d71 100644 +index fb69f0d8797e37f2c934e6a148b2ec6d2eb242b1..7dd52eedee594c8e728a4e722dc263f8fcffd758 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -499,6 +499,16 @@ public class PurpurWorldConfig { +@@ -500,6 +500,16 @@ public class PurpurWorldConfig { dispenserPlaceAnvils = getBoolean("blocks.dispenser.place-anvils", dispenserPlaceAnvils); } diff --git a/patches/server/0161-Configurable-sponge-absorption.patch b/patches/server/0161-Configurable-sponge-absorption.patch index 5cb7f7c8f..bbac6c3b1 100644 --- a/patches/server/0161-Configurable-sponge-absorption.patch +++ b/patches/server/0161-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 15d8b8b31c757226ae975b3b2c2407bab2a26d71..6901e211e4e2888e13f0e850af7089d9782031ca 100644 +index 7dd52eedee594c8e728a4e722dc263f8fcffd758..151a66be1dccef8891f2655c38e982821afac5be 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -618,6 +618,13 @@ public class PurpurWorldConfig { +@@ -619,6 +619,13 @@ public class PurpurWorldConfig { spawnerDeactivateByRedstone = getBoolean("blocks.spawner.deactivate-by-redstone", spawnerDeactivateByRedstone); } diff --git a/patches/server/0162-Projectile-offset-config.patch b/patches/server/0162-Projectile-offset-config.patch index 52e04878b..3695fb894 100644 --- a/patches/server/0162-Projectile-offset-config.patch +++ b/patches/server/0162-Projectile-offset-config.patch @@ -96,10 +96,10 @@ index 5beaafec0759543d3bddf99028c97d0d005be209..086f746cc632a90c67a6c30ea9197c5b entitythrowntrident.pickup = AbstractArrow.Pickup.CREATIVE_ONLY; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6901e211e4e2888e13f0e850af7089d9782031ca..8c7f9965144f5116e6e7035624eda19e6e6fe31b 100644 +index 151a66be1dccef8891f2655c38e982821afac5be..02914dd4541772bfd7d659169b703725569bff05 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -424,6 +424,23 @@ public class PurpurWorldConfig { +@@ -425,6 +425,23 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0163-Config-for-powered-rail-activation-distance.patch b/patches/server/0163-Config-for-powered-rail-activation-distance.patch index 6428b005a..e5dbbec63 100644 --- a/patches/server/0163-Config-for-powered-rail-activation-distance.patch +++ b/patches/server/0163-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 8c7f9965144f5116e6e7035624eda19e6e6fe31b..1378457d826d11e45fd1deef4666a6e25614c06a 100644 +index 02914dd4541772bfd7d659169b703725569bff05..51882af5cfc4fe431cf151b37ea4954f57b120b6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -604,6 +604,11 @@ public class PurpurWorldConfig { +@@ -605,6 +605,11 @@ public class PurpurWorldConfig { powderSnowBypassMobGriefing = getBoolean("blocks.powder_snow.bypass-mob-griefing", powderSnowBypassMobGriefing); } diff --git a/patches/server/0164-Piglin-portal-spawn-modifier.patch b/patches/server/0164-Piglin-portal-spawn-modifier.patch index 745abc4ba..fb9ef2302 100644 --- a/patches/server/0164-Piglin-portal-spawn-modifier.patch +++ b/patches/server/0164-Piglin-portal-spawn-modifier.patch @@ -31,10 +31,10 @@ index 65fa00b3d4d35a4125f8de444e77ac54e9e28551..dd9badfb2879def258bf725a5d802f7d pos = pos.below(); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1378457d826d11e45fd1deef4666a6e25614c06a..b1d95ec111e83bfac2f6a1283eb19dc7e89a42d0 100644 +index 51882af5cfc4fe431cf151b37ea4954f57b120b6..5f719e9590b83aee2c826dc6f75cf4f70f2ce2d8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1622,6 +1622,7 @@ public class PurpurWorldConfig { +@@ -1623,6 +1623,7 @@ public class PurpurWorldConfig { public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; @@ -42,7 +42,7 @@ index 1378457d826d11e45fd1deef4666a6e25614c06a..b1d95ec111e83bfac2f6a1283eb19dc7 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1634,6 +1635,7 @@ public class PurpurWorldConfig { +@@ -1635,6 +1636,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/0166-Config-for-wither-explosion-radius.patch b/patches/server/0166-Config-for-wither-explosion-radius.patch index e4ee88d80..22af6a876 100644 --- a/patches/server/0166-Config-for-wither-explosion-radius.patch +++ b/patches/server/0166-Config-for-wither-explosion-radius.patch @@ -18,10 +18,10 @@ index 1654b08f76e02e20a8ce5de618f8def82f1feeeb..7938a81fea35ef79fb1054e7b1117573 if (!event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b1d95ec111e83bfac2f6a1283eb19dc7e89a42d0..54745fe3974277adf245152df67ba9a991cfb2d6 100644 +index 5f719e9590b83aee2c826dc6f75cf4f70f2ce2d8..98f8de1af0985c49a47bb9083d1a21e2efed2598 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2256,6 +2256,7 @@ public class PurpurWorldConfig { +@@ -2257,6 +2257,7 @@ public class PurpurWorldConfig { public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; @@ -29,7 +29,7 @@ index b1d95ec111e83bfac2f6a1283eb19dc7e89a42d0..54745fe3974277adf245152df67ba9a9 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2276,6 +2277,7 @@ public class PurpurWorldConfig { +@@ -2277,6 +2278,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/0168-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch b/patches/server/0168-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch index 26cbfee60..4bffbcfad 100644 --- a/patches/server/0168-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch +++ b/patches/server/0168-Config-for-changing-the-blocks-that-turn-into-dirt-p.patch @@ -18,10 +18,10 @@ index c7195f2e12bbd6545f7bffcc2b4ba5cc3d48df20..5e730bc9c8ff94b16ac2bf8567dda8ae Runnable afterAction = null; // Paper if (blockState2 != null && level.getBlockState(blockPos.above()).isAir()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 369861d985796cfa6e193226b9c3d5704887410c..26586da7d4ec13cc19a40a36f80d8860ce8d5216 100644 +index 98f8de1af0985c49a47bb9083d1a21e2efed2598..c4e578bb502afdd46831269088127010dcbe1b33 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -446,6 +446,21 @@ public class PurpurWorldConfig { +@@ -447,6 +447,21 @@ public class PurpurWorldConfig { snowballDamage = getInt("gameplay-mechanics.projectile-damage.snowball", snowballDamage); } diff --git a/patches/server/0169-Configurable-piston-push-limit.patch b/patches/server/0169-Configurable-piston-push-limit.patch index e91fe3d0f..60b1964da 100644 --- a/patches/server/0169-Configurable-piston-push-limit.patch +++ b/patches/server/0169-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 b69022b6fa96e048bbf3aa704bcbde445378d80f..2c8aea7e0d9c2ce577e16056725be22993d8174c 100644 +index c4e578bb502afdd46831269088127010dcbe1b33..3fa0701635c5c429d8d836c47edcdb5b371dbbec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -614,6 +614,11 @@ public class PurpurWorldConfig { +@@ -615,6 +615,11 @@ public class PurpurWorldConfig { lavaSpeedNotNether = getInt("blocks.lava.speed.not-nether", lavaSpeedNotNether); } diff --git a/patches/server/0171-Configurable-mob-blindness.patch b/patches/server/0171-Configurable-mob-blindness.patch index 4231e3c4f..d7c870fa1 100644 --- a/patches/server/0171-Configurable-mob-blindness.patch +++ b/patches/server/0171-Configurable-mob-blindness.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Configurable mob blindness Ported from https://github.com/raltsmc/mobblindness diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index e0e81878bf0d397b8e28844d4b3c71e549196af4..6bca2188af3c2dadd2a3690b0ce0d8e3c2963c26 100644 +index e11b9c477dabe9c5e00bf41739b0fe52f5ef2093..a0d3c0c15380cf42049e1b27d8c73ea8e1624b89 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1011,6 +1011,17 @@ public abstract class LivingEntity extends Entity { @@ -28,10 +28,10 @@ index e0e81878bf0d397b8e28844d4b3c71e549196af4..6bca2188af3c2dadd2a3690b0ce0d8e3 return d0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2c8aea7e0d9c2ce577e16056725be22993d8174c..33842c96354a06fccec2c1dfbbb38204485ad3ac 100644 +index 3fa0701635c5c429d8d836c47edcdb5b371dbbec..65c691cae79214e03eb5d719e5d9d65c564823a9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -134,6 +134,7 @@ public class PurpurWorldConfig { +@@ -135,6 +135,7 @@ public class PurpurWorldConfig { public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; @@ -39,7 +39,7 @@ index 2c8aea7e0d9c2ce577e16056725be22993d8174c..33842c96354a06fccec2c1dfbbb38204 public double tridentLoyaltyVoidReturnHeight = 0.0D; public double voidDamageHeight = -64.0D; public double voidDamageDealt = 4.0D; -@@ -154,6 +155,7 @@ public class PurpurWorldConfig { +@@ -155,6 +156,7 @@ public class PurpurWorldConfig { persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing); tickFluids = getBoolean("gameplay-mechanics.tick-fluids", tickFluids); diff --git a/patches/server/0173-Config-for-health-to-impact-Creeper-explosion-radius.patch b/patches/server/0173-Config-for-health-to-impact-Creeper-explosion-radius.patch index 34308fa9f..fce3cb451 100644 --- a/patches/server/0173-Config-for-health-to-impact-Creeper-explosion-radius.patch +++ b/patches/server/0173-Config-for-health-to-impact-Creeper-explosion-radius.patch @@ -21,10 +21,10 @@ index 2ffa10ddd1a19aa44c088a41fdfcbd596e493791..663232752b74fea95010510d237b439d 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 33842c96354a06fccec2c1dfbbb38204485ad3ac..50bb6f8136354061bacb0d2d7523a83402cf3e5e 100644 +index 65c691cae79214e03eb5d719e5d9d65c564823a9..7f5515cdb760d928d5ece5d9577af11083846ea7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -906,6 +906,7 @@ public class PurpurWorldConfig { +@@ -907,6 +907,7 @@ public class PurpurWorldConfig { public boolean creeperBypassMobGriefing = false; public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; @@ -32,7 +32,7 @@ index 33842c96354a06fccec2c1dfbbb38204485ad3ac..50bb6f8136354061bacb0d2d7523a834 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -921,6 +922,7 @@ public class PurpurWorldConfig { +@@ -922,6 +923,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/0174-Iron-golem-calm-anger-options.patch b/patches/server/0174-Iron-golem-calm-anger-options.patch index 35d017aa9..5f5824ee8 100644 --- a/patches/server/0174-Iron-golem-calm-anger-options.patch +++ b/patches/server/0174-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 50bb6f8136354061bacb0d2d7523a83402cf3e5e..8b3914b8892a5a6f2e18962b7daa0bb3f0a40565 100644 +index 7f5515cdb760d928d5ece5d9577af11083846ea7..da819628dac32476a24a3553ea6404ca6b89a04f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1364,6 +1364,8 @@ public class PurpurWorldConfig { +@@ -1365,6 +1365,8 @@ public class PurpurWorldConfig { public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; public boolean ironGolemTakeDamageFromWater = false; @@ -38,7 +38,7 @@ index 50bb6f8136354061bacb0d2d7523a83402cf3e5e..8b3914b8892a5a6f2e18962b7daa0bb3 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1376,6 +1378,8 @@ public class PurpurWorldConfig { +@@ -1377,6 +1379,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/0175-Breedable-parrots.patch b/patches/server/0175-Breedable-parrots.patch index 35a6fc6cb..c0244e0c3 100644 --- a/patches/server/0175-Breedable-parrots.patch +++ b/patches/server/0175-Breedable-parrots.patch @@ -50,10 +50,10 @@ index 11291851f11127f6781b3c77c0d59534606eb9dd..4f4df0f5459e3f62db4b15c57a536dc2 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8b3914b8892a5a6f2e18962b7daa0bb3f0a40565..8d40f13c8dbaf67d67fdd4cb7b4b05b3535c9243 100644 +index da819628dac32476a24a3553ea6404ca6b89a04f..cd64916a3e47760b2046a34c3b9ec97d491d65a2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1534,6 +1534,7 @@ public class PurpurWorldConfig { +@@ -1535,6 +1535,7 @@ public class PurpurWorldConfig { public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; @@ -61,7 +61,7 @@ index 8b3914b8892a5a6f2e18962b7daa0bb3f0a40565..8d40f13c8dbaf67d67fdd4cb7b4b05b3 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1546,6 +1547,7 @@ public class PurpurWorldConfig { +@@ -1547,6 +1548,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/0176-Configurable-powered-rail-boost-modifier.patch b/patches/server/0176-Configurable-powered-rail-boost-modifier.patch index def648365..8335ae548 100644 --- a/patches/server/0176-Configurable-powered-rail-boost-modifier.patch +++ b/patches/server/0176-Configurable-powered-rail-boost-modifier.patch @@ -18,10 +18,10 @@ index d2d1e554b1c24df982ff28fbe118229c8e9ecd13..b16ad4d5f3cdf8e0e44f74ae481b04d3 Vec3 vec3d5 = this.getDeltaMovement(); double d21 = vec3d5.x; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8d40f13c8dbaf67d67fdd4cb7b4b05b3535c9243..062cdb68d943a11f842fc34deed06a435a37a524 100644 +index cd64916a3e47760b2046a34c3b9ec97d491d65a2..d6b680924535ff43b6a6e078efedceda45131a53 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -273,6 +273,7 @@ public class PurpurWorldConfig { +@@ -274,6 +274,7 @@ public class PurpurWorldConfig { public boolean minecartControllableFallDamage = true; public double minecartControllableBaseSpeed = 0.1D; public Map minecartControllableBlockSpeeds = new HashMap<>(); @@ -29,7 +29,7 @@ index 8d40f13c8dbaf67d67fdd4cb7b4b05b3535c9243..062cdb68d943a11f842fc34deed06a43 private void minecartSettings() { if (PurpurConfig.version < 12) { boolean oldBool = getBoolean("gameplay-mechanics.controllable-minecarts.place-anywhere", minecartPlaceAnywhere); -@@ -325,6 +326,7 @@ public class PurpurWorldConfig { +@@ -326,6 +327,7 @@ public class PurpurWorldConfig { set("gameplay-mechanics.minecart.controllable.block-speed.grass_block", 0.3D); set("gameplay-mechanics.minecart.controllable.block-speed.stone", 0.5D); } diff --git a/patches/server/0177-Add-config-change-multiplier-critical-damage-value.patch b/patches/server/0177-Add-config-change-multiplier-critical-damage-value.patch index db1faa06a..99a203c81 100644 --- a/patches/server/0177-Add-config-change-multiplier-critical-damage-value.patch +++ b/patches/server/0177-Add-config-change-multiplier-critical-damage-value.patch @@ -18,10 +18,10 @@ index f10a048d962ff80f566db11a8490e725d4484cb1..45dc5eeb3794492324bd316719524ea7 f += f1; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 062cdb68d943a11f842fc34deed06a435a37a524..4b9a7e7e97e3c4c18a1d6eb0158c17167f9ab2b3 100644 +index d6b680924535ff43b6a6e078efedceda45131a53..b9040b9e965535db3431e794fe4bb0298146ddfc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -372,6 +372,7 @@ public class PurpurWorldConfig { +@@ -373,6 +373,7 @@ public class PurpurWorldConfig { public boolean creativeOnePunch = false; public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; @@ -29,7 +29,7 @@ index 062cdb68d943a11f842fc34deed06a435a37a524..4b9a7e7e97e3c4c18a1d6eb0158c1716 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -393,6 +394,7 @@ public class PurpurWorldConfig { +@@ -394,6 +395,7 @@ public class PurpurWorldConfig { creativeOnePunch = getBoolean("gameplay-mechanics.player.one-punch-in-creative", creativeOnePunch); playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); diff --git a/patches/server/0178-Option-to-disable-dragon-egg-teleporting.patch b/patches/server/0178-Option-to-disable-dragon-egg-teleporting.patch index 929c1a023..686f64c9e 100644 --- a/patches/server/0178-Option-to-disable-dragon-egg-teleporting.patch +++ b/patches/server/0178-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 4b9a7e7e97e3c4c18a1d6eb0158c17167f9ab2b3..95d6d459a1e4ddc52db8ed8af7efc5520f7b6968 100644 +index b9040b9e965535db3431e794fe4bb0298146ddfc..17198148ca73a04f5a1fa119690b8e810c5b7707 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -547,6 +547,11 @@ public class PurpurWorldConfig { +@@ -548,6 +548,11 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0181-ShulkerBox-allow-oversized-stacks.patch b/patches/server/0181-ShulkerBox-allow-oversized-stacks.patch index aaf1b5092..c0f2b6544 100644 --- a/patches/server/0181-ShulkerBox-allow-oversized-stacks.patch +++ b/patches/server/0181-ShulkerBox-allow-oversized-stacks.patch @@ -35,10 +35,10 @@ index 0ca6d495005bded447c3f940dfd571a003301cb0..f4c47f7a7f2572dedbaee4890c98e1f3 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 95d6d459a1e4ddc52db8ed8af7efc5520f7b6968..4600ce2b30d9bffe412c9980db191572d723cc81 100644 +index 17198148ca73a04f5a1fa119690b8e810c5b7707..751f3d3e727b152278d5f9c48b062ad17f9404d0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -656,6 +656,11 @@ public class PurpurWorldConfig { +@@ -657,6 +657,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0182-Bee-can-work-when-raining-or-at-night.patch b/patches/server/0182-Bee-can-work-when-raining-or-at-night.patch index 145cc1f8e..6d023a2c5 100644 --- a/patches/server/0182-Bee-can-work-when-raining-or-at-night.patch +++ b/patches/server/0182-Bee-can-work-when-raining-or-at-night.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Bee can work when raining or at night diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java -index 693d027f7ca49b539bb3c1f8804e8c4ae352d6dc..c9aed7036c9553ea06c9f8e18a0c153e6458efc7 100644 +index f012bee87c13d4ab8973127e77ed2eef8ab72d3f..e4f5fb665c891af7ac0aa2ee08af59f60cc75495 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -410,7 +410,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -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 4600ce2b30d9bffe412c9980db191572d723cc81..ac63657e39584210cba638af15b81275ae75e7be 100644 +index 751f3d3e727b152278d5f9c48b062ad17f9404d0..07ff861240b5f76178f613986872685114d996a3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -766,6 +766,8 @@ public class PurpurWorldConfig { +@@ -767,6 +767,8 @@ public class PurpurWorldConfig { public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; public boolean beeTakeDamageFromWater = false; @@ -43,7 +43,7 @@ index 4600ce2b30d9bffe412c9980db191572d723cc81..ac63657e39584210cba638af15b81275 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -779,6 +781,8 @@ public class PurpurWorldConfig { +@@ -780,6 +782,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/0184-Config-MobEffect-by-world.patch b/patches/server/0184-Config-MobEffect-by-world.patch index 49551cec3..e3331d4a1 100644 --- a/patches/server/0184-Config-MobEffect-by-world.patch +++ b/patches/server/0184-Config-MobEffect-by-world.patch @@ -40,10 +40,10 @@ index 17ffab92f4ae2c06fa9f9249a474d4b6c9c55090..bb15cf2aa35ce8754bba56f5b312d92b ((ServerPlayer) entityhuman).connection.send(new ClientboundSetHealthPacket(((ServerPlayer) entityhuman).getBukkitEntity().getScaledHealth(), entityhuman.getFoodData().foodLevel, entityhuman.getFoodData().saturationLevel)); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ac63657e39584210cba638af15b81275ae75e7be..1b332e38389b9e39c1546d7cd4a071453674b1b5 100644 +index 07ff861240b5f76178f613986872685114d996a3..4710230baec5e13452f9c12f71de73a218c1f050 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -329,6 +329,21 @@ public class PurpurWorldConfig { +@@ -330,6 +330,21 @@ public class PurpurWorldConfig { poweredRailBoostModifier = getDouble("gameplay-mechanics.minecart.powered-rail.boost-modifier", poweredRailBoostModifier); } diff --git a/patches/server/0185-Beacon-Activation-Range-Configurable.patch b/patches/server/0185-Beacon-Activation-Range-Configurable.patch index d833bd7f2..f5cbd9e00 100644 --- a/patches/server/0185-Beacon-Activation-Range-Configurable.patch +++ b/patches/server/0185-Beacon-Activation-Range-Configurable.patch @@ -26,10 +26,10 @@ index 5f6eeb36f57bd342b18590c8f0ffb668d2bf273c..59259dd3d8d8fd02c02d7435a4443779 } else { return effectRange; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1b332e38389b9e39c1546d7cd4a071453674b1b5..15ec722356c9fc34e04760da65882213263eb938 100644 +index 4710230baec5e13452f9c12f71de73a218c1f050..2a189ce43fbcaa901041b3d8b403fe70726410f5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -519,6 +519,17 @@ public class PurpurWorldConfig { +@@ -520,6 +520,17 @@ public class PurpurWorldConfig { anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors); } diff --git a/patches/server/0186-Add-toggle-for-sand-duping-fix.patch b/patches/server/0186-Add-toggle-for-sand-duping-fix.patch index bd938c698..efa22b4e8 100644 --- a/patches/server/0186-Add-toggle-for-sand-duping-fix.patch +++ b/patches/server/0186-Add-toggle-for-sand-duping-fix.patch @@ -27,10 +27,10 @@ index ef07967b64180c54338b8fb2ba1780adec87f333..71e4178bf7d553141719c8a6cb7488d3 } // 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 15ec722356c9fc34e04760da65882213263eb938..6d6b3105e8fe2f69ef8d8b94ee22b7f3bce4416f 100644 +index 2a189ce43fbcaa901041b3d8b403fe70726410f5..3cc3460374c9b656338fdfcaa313668cc5358611 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -682,6 +682,11 @@ public class PurpurWorldConfig { +@@ -683,6 +683,11 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0187-Add-toggle-for-end-portal-safe-teleporting.patch b/patches/server/0187-Add-toggle-for-end-portal-safe-teleporting.patch index e7c5071bc..c529d65ff 100644 --- a/patches/server/0187-Add-toggle-for-end-portal-safe-teleporting.patch +++ b/patches/server/0187-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 c8832718ab8862218fb59ff883fffda24137f675..9789e3af3fe327046b70da504c6bc44d092ed6b0 100644 +index 3cc3460374c9b656338fdfcaa313668cc5358611..12609a41c9d6f23c807e509d059dba3bab295a6c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -633,6 +633,11 @@ public class PurpurWorldConfig { +@@ -634,6 +634,11 @@ public class PurpurWorldConfig { furnaceUseLavaFromUnderneath = getBoolean("blocks.furnace.use-lava-from-underneath", furnaceUseLavaFromUnderneath); } diff --git a/patches/server/0190-Burp-after-eating-food-fills-hunger-bar-completely.patch b/patches/server/0190-Burp-after-eating-food-fills-hunger-bar-completely.patch index 732a5dbe8..a18b0f409 100644 --- a/patches/server/0190-Burp-after-eating-food-fills-hunger-bar-completely.patch +++ b/patches/server/0190-Burp-after-eating-food-fills-hunger-bar-completely.patch @@ -55,10 +55,10 @@ index 2934b6de1f1fb914a532ee20184df99d1acd8e65..65421cfff05c0493f5fef1bdff03172c public void eat(Item item, ItemStack stack) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dd632b6282eeded3941a9f55d543017d573d1b99..4ae0d4bbe83fcdb92b5f628626e1a55062f88cf7 100644 +index 12609a41c9d6f23c807e509d059dba3bab295a6c..4a86e1ccb948608ad686ecc23ed78c1953298cf4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -388,6 +388,7 @@ public class PurpurWorldConfig { +@@ -389,6 +389,7 @@ public class PurpurWorldConfig { public boolean playerSleepNearMonsters = false; public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; @@ -66,7 +66,7 @@ index dd632b6282eeded3941a9f55d543017d573d1b99..4ae0d4bbe83fcdb92b5f628626e1a550 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -410,6 +411,7 @@ public class PurpurWorldConfig { +@@ -411,6 +412,7 @@ public class PurpurWorldConfig { playerSleepNearMonsters = getBoolean("gameplay-mechanics.player.sleep-ignore-nearby-mobs", playerSleepNearMonsters); playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); diff --git a/patches/server/0193-Shulker-spawn-from-bullet-options.patch b/patches/server/0193-Shulker-spawn-from-bullet-options.patch index 33e2c98cd..74d9838ff 100644 --- a/patches/server/0193-Shulker-spawn-from-bullet-options.patch +++ b/patches/server/0193-Shulker-spawn-from-bullet-options.patch @@ -61,10 +61,10 @@ index 2d3dbc228a6a7b88167a36ba739d9eb2f03472ba..7621978ab3d90d58e8b7c6807e0e0519 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4ae0d4bbe83fcdb92b5f628626e1a55062f88cf7..164755c917c23eaed21273f297c9f157ae02822e 100644 +index 4a86e1ccb948608ad686ecc23ed78c1953298cf4..b1d092b53aaeb5e6a28aa7f87c23bd04cda314bb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1910,6 +1910,11 @@ public class PurpurWorldConfig { +@@ -1911,6 +1911,11 @@ public class PurpurWorldConfig { public boolean shulkerControllable = true; public double shulkerMaxHealth = 30.0D; public boolean shulkerTakeDamageFromWater = false; @@ -76,7 +76,7 @@ index 4ae0d4bbe83fcdb92b5f628626e1a55062f88cf7..164755c917c23eaed21273f297c9f157 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1921,6 +1926,11 @@ public class PurpurWorldConfig { +@@ -1922,6 +1927,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/0194-Eating-glow-berries-adds-glow-effect.patch b/patches/server/0194-Eating-glow-berries-adds-glow-effect.patch index 52c8fc917..8b7b2386b 100644 --- a/patches/server/0194-Eating-glow-berries-adds-glow-effect.patch +++ b/patches/server/0194-Eating-glow-berries-adds-glow-effect.patch @@ -18,10 +18,10 @@ index e0a635d647113bb363df2ddc293f2495c56e5d3c..fcdd30f38bc57cc382a47d99e3c31f93 public static final Item SOUL_CAMPFIRE = registerBlock(Blocks.SOUL_CAMPFIRE, CreativeModeTab.TAB_DECORATIONS); public static final Item SHROOMLIGHT = registerBlock(Blocks.SHROOMLIGHT, CreativeModeTab.TAB_DECORATIONS); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 164755c917c23eaed21273f297c9f157ae02822e..2021192f20005e09e9d39132743648ebad90046b 100644 +index b1d092b53aaeb5e6a28aa7f87c23bd04cda314bb..ba1cdcd29aa7f1cbce02ef1d8a1d8f9e2173d5eb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -220,6 +220,7 @@ public class PurpurWorldConfig { +@@ -221,6 +221,7 @@ public class PurpurWorldConfig { public int enderPearlCooldown = 20; public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; @@ -29,7 +29,7 @@ index 164755c917c23eaed21273f297c9f157ae02822e..2021192f20005e09e9d39132743648eb private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -263,6 +264,7 @@ public class PurpurWorldConfig { +@@ -264,6 +265,7 @@ public class PurpurWorldConfig { enderPearlCooldown = getInt("gameplay-mechanics.item.ender-pearl.cooldown", enderPearlCooldown); enderPearlCooldownCreative = getInt("gameplay-mechanics.item.ender-pearl.creative-cooldown", enderPearlCooldownCreative); enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); diff --git a/patches/server/0195-Option-to-make-drowned-break-doors.patch b/patches/server/0195-Option-to-make-drowned-break-doors.patch index 57d2b6a88..2a76d22a0 100644 --- a/patches/server/0195-Option-to-make-drowned-break-doors.patch +++ b/patches/server/0195-Option-to-make-drowned-break-doors.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Option to make drowned break doors diff --git a/src/main/java/net/minecraft/world/entity/monster/Drowned.java b/src/main/java/net/minecraft/world/entity/monster/Drowned.java -index 8e7e94779f034e036110365f4200540a89910fd0..c9665576a658d0e996c788ceb12fd26ab786f9bc 100644 +index 037d77b47d0be69dfeda01f4a0d52ad72aea2c8d..6e0a575a95ac0bcbc9e3909178ea566a158dd561 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -29,6 +29,7 @@ import net.minecraft.world.entity.ai.goal.MoveToBlockGoal; @@ -34,10 +34,10 @@ index 8e7e94779f034e036110365f4200540a89910fd0..c9665576a658d0e996c788ceb12fd26a @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2021192f20005e09e9d39132743648ebad90046b..61ea20ecf453cecf437317cd3cdbd9cef8d00540 100644 +index ba1cdcd29aa7f1cbce02ef1d8a1d8f9e2173d5eb..511b1eae73c3daa61f97f9905983ace9d78cb9ef 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1044,6 +1044,7 @@ public class PurpurWorldConfig { +@@ -1045,6 +1045,7 @@ public class PurpurWorldConfig { public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; @@ -45,7 +45,7 @@ index 2021192f20005e09e9d39132743648ebad90046b..61ea20ecf453cecf437317cd3cdbd9ce private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1059,6 +1060,7 @@ public class PurpurWorldConfig { +@@ -1060,6 +1061,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/0196-Configurable-hunger-starvation-damage.patch b/patches/server/0196-Configurable-hunger-starvation-damage.patch index 597cabf72..3cf6a12bb 100644 --- a/patches/server/0196-Configurable-hunger-starvation-damage.patch +++ b/patches/server/0196-Configurable-hunger-starvation-damage.patch @@ -18,10 +18,10 @@ index 65421cfff05c0493f5fef1bdff03172c9e33f33e..63584faeec4e5013be7a377e3203ec16 this.tickTimer = 0; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 61ea20ecf453cecf437317cd3cdbd9cef8d00540..e4ba016c2f89d9e95477d06a4c875e417bbd49ed 100644 +index 511b1eae73c3daa61f97f9905983ace9d78cb9ef..d8284b22048a214bed4c6643cf9ec9445f110840 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2558,4 +2558,9 @@ public class PurpurWorldConfig { +@@ -2559,4 +2559,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/0198-Armor-click-equip-options.patch b/patches/server/0198-Armor-click-equip-options.patch index 78881f7cc..228a9397c 100644 --- a/patches/server/0198-Armor-click-equip-options.patch +++ b/patches/server/0198-Armor-click-equip-options.patch @@ -58,10 +58,10 @@ index 42f79d418ec4e2dbeac9a217d9dc144cda2ef714..250c0e31825f772d3fee7a523f150cb2 return InteractionResultHolder.fail(itemStack); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e4ba016c2f89d9e95477d06a4c875e417bbd49ed..820ff330bd75b4ec67e64a8af32a22fc5e5af667 100644 +index d8284b22048a214bed4c6643cf9ec9445f110840..3fe900ff2aa17825d331c0f0c205a566c4464b5a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -391,6 +391,8 @@ public class PurpurWorldConfig { +@@ -392,6 +392,8 @@ public class PurpurWorldConfig { public boolean playersSkipNight = true; public double playerCriticalDamageMultiplier = 1.5D; public boolean playerBurpWhenFull = false; @@ -70,7 +70,7 @@ index e4ba016c2f89d9e95477d06a4c875e417bbd49ed..820ff330bd75b4ec67e64a8af32a22fc private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -414,6 +416,8 @@ public class PurpurWorldConfig { +@@ -415,6 +417,8 @@ public class PurpurWorldConfig { playersSkipNight = getBoolean("gameplay-mechanics.player.can-skip-night", playersSkipNight); playerCriticalDamageMultiplier = getDouble("gameplay-mechanics.player.critical-damage-multiplier", playerCriticalDamageMultiplier); playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); diff --git a/patches/server/0201-Tool-actionable-options.patch b/patches/server/0201-Tool-actionable-options.patch index 1ed07d0fd..102d26751 100644 --- a/patches/server/0201-Tool-actionable-options.patch +++ b/patches/server/0201-Tool-actionable-options.patch @@ -122,10 +122,10 @@ index 180aec596110309aade13d2080f8824d152b07cb..c4aec1e5135a79837918b692e75a7b55 return InteractionResult.PASS; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 500a7eeb3532ee5c25ac5f7a14b2ff25c7a83cff..2f28c8eb9eb68bb44f245437c06388d8686e6572 100644 +index 3fe900ff2aa17825d331c0f0c205a566c4464b5a..15ce90caf29e68b0a302a6929ad398690b42135f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -522,6 +522,159 @@ public class PurpurWorldConfig { +@@ -523,6 +523,159 @@ public class PurpurWorldConfig { }); } diff --git a/patches/server/0205-option-to-disable-shulker-box-items-from-dropping-co.patch b/patches/server/0205-option-to-disable-shulker-box-items-from-dropping-co.patch index 789936746..f2066c0e5 100644 --- a/patches/server/0205-option-to-disable-shulker-box-items-from-dropping-co.patch +++ b/patches/server/0205-option-to-disable-shulker-box-items-from-dropping-co.patch @@ -19,10 +19,10 @@ index 62d6c5b7590ff4faef5d8c7a8be03155b7338480..72d94c79db5a6d0d41220b34ba6a1787 CompoundTag nbttagcompound = BlockItem.getBlockEntityData(itemstack); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b60a0cb6230bbe238679814eb1ff0b8218fc285a..4b76301a2dd2e55c7293d064c032f626cf843160 100644 +index 15ce90caf29e68b0a302a6929ad398690b42135f..acf932fb6a418b971eb9c497806d36e348634fd1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -221,6 +221,7 @@ public class PurpurWorldConfig { +@@ -222,6 +222,7 @@ public class PurpurWorldConfig { public int enderPearlCooldownCreative = 20; public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; @@ -30,7 +30,7 @@ index b60a0cb6230bbe238679814eb1ff0b8218fc285a..4b76301a2dd2e55c7293d064c032f626 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -265,6 +266,7 @@ public class PurpurWorldConfig { +@@ -266,6 +267,7 @@ public class PurpurWorldConfig { enderPearlCooldownCreative = getInt("gameplay-mechanics.item.ender-pearl.creative-cooldown", enderPearlCooldownCreative); enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration); diff --git a/patches/server/0206-Silk-touchable-budding-amethyst.patch b/patches/server/0206-Silk-touchable-budding-amethyst.patch index c1857a6f4..5230a93fb 100644 --- a/patches/server/0206-Silk-touchable-budding-amethyst.patch +++ b/patches/server/0206-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 4b76301a2dd2e55c7293d064c032f626cf843160..0aac989d5580f2a85dd4624fd1a3b2203af341fb 100644 +index acf932fb6a418b971eb9c497806d36e348634fd1..a71b83d5a63e66d645f5961f3048ab59fd6bb2cd 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -709,6 +709,11 @@ public class PurpurWorldConfig { +@@ -710,6 +710,11 @@ public class PurpurWorldConfig { } } @@ -39,7 +39,7 @@ index 4b76301a2dd2e55c7293d064c032f626cf843160..0aac989d5580f2a85dd4624fd1a3b220 public boolean chestOpenWithBlockOnTop = false; private void chestSettings() { chestOpenWithBlockOnTop = getBoolean("blocks.chest.open-with-solid-block-on-top", chestOpenWithBlockOnTop); -@@ -2723,3 +2728,4 @@ public class PurpurWorldConfig { +@@ -2724,3 +2729,4 @@ public class PurpurWorldConfig { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } } diff --git a/patches/server/0207-Big-dripleaf-tilt-delay.patch b/patches/server/0207-Big-dripleaf-tilt-delay.patch index a694095ef..42c54535b 100644 --- a/patches/server/0207-Big-dripleaf-tilt-delay.patch +++ b/patches/server/0207-Big-dripleaf-tilt-delay.patch @@ -24,10 +24,10 @@ index 63aa6b82ba21ec8e8f362b390063e4e275a979a5..81ed6e69494337f402a6d9f854fb26fa 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 0aac989d5580f2a85dd4624fd1a3b2203af341fb..dc4996d7ee6ffc2c3c7567472b9cf622e39bb5b9 100644 +index a71b83d5a63e66d645f5961f3048ab59fd6bb2cd..cf78a5164628ad14388567a19342ba642fa23dd5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -709,6 +709,22 @@ public class PurpurWorldConfig { +@@ -710,6 +710,22 @@ public class PurpurWorldConfig { } } diff --git a/patches/server/0208-Player-ridable-in-water-option.patch b/patches/server/0208-Player-ridable-in-water-option.patch index feb7c48c8..ce2739351 100644 --- a/patches/server/0208-Player-ridable-in-water-option.patch +++ b/patches/server/0208-Player-ridable-in-water-option.patch @@ -21,10 +21,10 @@ index 281b7534a3f455b57cfe36c6d844f58c2efefd16..45e634589ae1bd83de281bacbe202453 if (!this.isPassenger() && this.onGround && !this.isInWater() && !this.isInPowderSnow) { if (this.getShoulderEntityLeft().isEmpty()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index dc4996d7ee6ffc2c3c7567472b9cf622e39bb5b9..d97c25cbb32e2da125e881b180f3b32a5a6ac98f 100644 +index cf78a5164628ad14388567a19342ba642fa23dd5..8a0221f1f94f4d39a692d61b990b7bc06a24bf8e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -395,6 +395,7 @@ public class PurpurWorldConfig { +@@ -396,6 +396,7 @@ public class PurpurWorldConfig { public boolean playerBurpWhenFull = false; public boolean playerArmorSwapping = false; public boolean playerArmorSwappingCreativeMakesCopy = true; @@ -32,7 +32,7 @@ index dc4996d7ee6ffc2c3c7567472b9cf622e39bb5b9..d97c25cbb32e2da125e881b180f3b32a private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -420,6 +421,7 @@ public class PurpurWorldConfig { +@@ -421,6 +422,7 @@ public class PurpurWorldConfig { playerBurpWhenFull = getBoolean("gameplay-mechanics.player.burp-when-full", playerBurpWhenFull); playerArmorSwapping = getBoolean("gameplay-mechanics.player.armor-click-equip.allow-hot-swapping", playerArmorSwapping); playerArmorSwappingCreativeMakesCopy = getBoolean("gameplay-mechanics.player.armor-click-equip.creative-makes-copy", playerArmorSwappingCreativeMakesCopy); diff --git a/patches/server/0209-Config-to-disable-Enderman-teleport-on-projectile-hi.patch b/patches/server/0209-Config-to-disable-Enderman-teleport-on-projectile-hi.patch index 643e98304..26778a38f 100644 --- a/patches/server/0209-Config-to-disable-Enderman-teleport-on-projectile-hi.patch +++ b/patches/server/0209-Config-to-disable-Enderman-teleport-on-projectile-hi.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config to disable Enderman teleport on projectile hit diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java -index b0c4c90ab2d532a60911d53ac4764dcf49fff6c8..372400d5ce38407b577e5ee403ce39fc60b399e4 100644 +index 6c1de46576c3cb65526de48400d268695ca53024..a8367e8086fb1c075102f414a5c30ccb49be0720 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -414,7 +414,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -18,10 +18,10 @@ index b0c4c90ab2d532a60911d53ac4764dcf49fff6c8..372400d5ce38407b577e5ee403ce39fc boolean flag; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d97c25cbb32e2da125e881b180f3b32a5a6ac98f..90c70d233327615004fc22cde6b9d71660bb0a5b 100644 +index 8a0221f1f94f4d39a692d61b990b7bc06a24bf8e..56a0d27364805a71541cc2a9ccd2c6d7e1fe8804 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1303,6 +1303,7 @@ public class PurpurWorldConfig { +@@ -1304,6 +1304,7 @@ public class PurpurWorldConfig { public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; @@ -29,7 +29,7 @@ index d97c25cbb32e2da125e881b180f3b32a5a6ac98f..90c70d233327615004fc22cde6b9d716 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1325,6 +1326,7 @@ public class PurpurWorldConfig { +@@ -1326,6 +1327,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/0210-Add-compass-command.patch b/patches/server/0210-Add-compass-command.patch index 75e38982e..8fc5bdf0c 100644 --- a/patches/server/0210-Add-compass-command.patch +++ b/patches/server/0210-Add-compass-command.patch @@ -89,10 +89,10 @@ index d8de85a7b7d2b622401003c0a06f2ddc3848e8df..bd3bc984b885fe236927fb559bb05d95 hideHiddenPlayersFromEntitySelector = getBoolean("settings.command.hide-hidden-players-from-entity-selector", hideHiddenPlayersFromEntitySelector); uptimeFormat = getString("settings.command.uptime.format", uptimeFormat); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a1a348aef3060ebe9f61108721a5a8338b58d1c2..30aa0a04da9db4841daeddead8776322968f22a9 100644 +index 56a0d27364805a71541cc2a9ccd2c6d7e1fe8804..3b1f31ee2c49da4a8006fb4f9f1676ac24cb764c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -222,6 +222,7 @@ public class PurpurWorldConfig { +@@ -223,6 +223,7 @@ public class PurpurWorldConfig { public float enderPearlEndermiteChance = 0.05F; public int glowBerriesEatGlowDuration = 0; public boolean shulkerBoxItemDropContentsWhenDestroyed = true; @@ -100,7 +100,7 @@ index a1a348aef3060ebe9f61108721a5a8338b58d1c2..30aa0a04da9db4841daeddead8776322 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -267,6 +268,7 @@ public class PurpurWorldConfig { +@@ -268,6 +269,7 @@ public class PurpurWorldConfig { enderPearlEndermiteChance = (float) getDouble("gameplay-mechanics.item.ender-pearl.endermite-spawn-chance", enderPearlEndermiteChance); glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration); shulkerBoxItemDropContentsWhenDestroyed = getBoolean("gameplay-mechanics.item.shulker_box.drop-contents-when-destroyed", shulkerBoxItemDropContentsWhenDestroyed); diff --git a/patches/server/0211-Config-to-prevent-horses-from-standing-with-riders.patch b/patches/server/0211-Config-to-prevent-horses-from-standing-with-riders.patch index 795d5a8c6..e6da8bf72 100644 --- a/patches/server/0211-Config-to-prevent-horses-from-standing-with-riders.patch +++ b/patches/server/0211-Config-to-prevent-horses-from-standing-with-riders.patch @@ -20,10 +20,10 @@ index a1ffa88c3796df2973a2fc0aeafda5f78208bf85..7466c437b2e996f16a08aaefc5c2b7cb } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 64340213b2122ddc2e39eeac628b69d6f87c7a8f..fd79206a0db36bb398fc30bc1dc218aee8c68391 100644 +index 3b1f31ee2c49da4a8006fb4f9f1676ac24cb764c..3a5567f440f72fcdaf1b26ea5deff6c4a5a1c738 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1533,6 +1533,7 @@ public class PurpurWorldConfig { +@@ -1534,6 +1534,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; @@ -31,7 +31,7 @@ index 64340213b2122ddc2e39eeac628b69d6f87c7a8f..fd79206a0db36bb398fc30bc1dc218ae private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1550,6 +1551,7 @@ public class PurpurWorldConfig { +@@ -1551,6 +1552,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); diff --git a/patches/server/0212-Toggle-for-kinetic-damage.patch b/patches/server/0212-Toggle-for-kinetic-damage.patch index 6ca614f5c..d2e2c9f74 100644 --- a/patches/server/0212-Toggle-for-kinetic-damage.patch +++ b/patches/server/0212-Toggle-for-kinetic-damage.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Toggle for kinetic damage diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index efb1cd7b9af8d84fd91d4e355b8092b2eb90ee58..8df2ec98158e8c1ffb42b7443497cde7ecff1812 100644 +index 142f25da0d758821ce192cea9c65921324c27ef8..89a0878d77548d1e0e414903b04d5868c0b8c0b1 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2882,6 +2882,7 @@ public abstract class LivingEntity extends Entity { @@ -17,10 +17,10 @@ index efb1cd7b9af8d84fd91d4e355b8092b2eb90ee58..8df2ec98158e8c1ffb42b7443497cde7 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ac618974764b423cbce9dde865724117d1e9d7e4..fa34d335c8593e584f702acd9eae27948c1db48c 100644 +index 3a5567f440f72fcdaf1b26ea5deff6c4a5a1c738..d31d9feaa24263f0592041d42c8b7783904cf07f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -184,12 +184,14 @@ public class PurpurWorldConfig { +@@ -185,12 +185,14 @@ public class PurpurWorldConfig { public boolean elytraIgnoreUnbreaking = false; public int elytraDamagePerFireworkBoost = 0; public int elytraDamagePerTridentBoost = 0; diff --git a/patches/server/0213-Add-Option-for-disable-observer-clocks.patch b/patches/server/0213-Add-Option-for-disable-observer-clocks.patch index de172a597..907d1eb58 100644 --- a/patches/server/0213-Add-Option-for-disable-observer-clocks.patch +++ b/patches/server/0213-Add-Option-for-disable-observer-clocks.patch @@ -18,10 +18,10 @@ index 7b45d6b9a005036ca5051d089a7be792eb87012f..8806c97ecc6bdd8a64c2d82bb2f58f46 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1bf60fd08b6b3cae8989fd0e29c68f09fea1304b..fb813690e2e8e0cd98a01fdaff2ce755d94d60d0 100644 +index d31d9feaa24263f0592041d42c8b7783904cf07f..58ee16f4344be8f907c1e697f08f3ee7e7f16ec8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -367,6 +367,11 @@ public class PurpurWorldConfig { +@@ -368,6 +368,11 @@ public class PurpurWorldConfig { villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); } diff --git a/patches/server/0214-Customizeable-Zombie-Villager-curing-times.patch b/patches/server/0214-Customizeable-Zombie-Villager-curing-times.patch index a9786895b..2f18b9c21 100644 --- a/patches/server/0214-Customizeable-Zombie-Villager-curing-times.patch +++ b/patches/server/0214-Customizeable-Zombie-Villager-curing-times.patch @@ -18,10 +18,10 @@ index 51fe59657b5b4608fc1528086c8692030d243a7a..f0f4542949de4927f15c75d067eb7d21 return InteractionResult.SUCCESS; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fb813690e2e8e0cd98a01fdaff2ce755d94d60d0..676fd7d6163c793e468af998f87eee5d86b419a5 100644 +index 58ee16f4344be8f907c1e697f08f3ee7e7f16ec8..0c1d2dfbb909c2d890d8f5e84bcfcdd63096432d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2709,6 +2709,8 @@ public class PurpurWorldConfig { +@@ -2710,6 +2710,8 @@ public class PurpurWorldConfig { public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; public boolean zombieVillagerTakeDamageFromWater = false; @@ -30,7 +30,7 @@ index fb813690e2e8e0cd98a01fdaff2ce755d94d60d0..676fd7d6163c793e468af998f87eee5d private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2724,6 +2726,8 @@ public class PurpurWorldConfig { +@@ -2725,6 +2727,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/0215-Option-for-sponges-to-work-on-lava.patch b/patches/server/0215-Option-for-sponges-to-work-on-lava.patch index 224950dc0..afe06b146 100644 --- a/patches/server/0215-Option-for-sponges-to-work-on-lava.patch +++ b/patches/server/0215-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 676fd7d6163c793e468af998f87eee5d86b419a5..c2d73249ec7cb74a318d2c33159ad6aeb713bfed 100644 +index 0c1d2dfbb909c2d890d8f5e84bcfcdd63096432d..4a71ef25c59416f6f494a318935a5531311bb6a1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -909,9 +909,11 @@ public class PurpurWorldConfig { +@@ -910,9 +910,11 @@ public class PurpurWorldConfig { public int spongeAbsorptionArea = 64; public int spongeAbsorptionRadius = 6; diff --git a/patches/server/0216-Toggle-for-Wither-s-spawn-sound.patch b/patches/server/0216-Toggle-for-Wither-s-spawn-sound.patch index 2f6d4f74b..184bf5db7 100644 --- a/patches/server/0216-Toggle-for-Wither-s-spawn-sound.patch +++ b/patches/server/0216-Toggle-for-Wither-s-spawn-sound.patch @@ -18,10 +18,10 @@ index bf608c0bad8f1cd99f27b610c0d6dfa4d638374d..3f0b62c733c62b8d1a9fc6494d787c98 // 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 d7c5764ac50f313c691667bd8beb6f7067da67d0..0c21e0ca6da3819d41f55fe4b2f1539efb5eaec1 100644 +index 4a71ef25c59416f6f494a318935a5531311bb6a1..aff12279877c8786f9fa3a047c853df9359d88b7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2554,6 +2554,7 @@ public class PurpurWorldConfig { +@@ -2555,6 +2555,7 @@ public class PurpurWorldConfig { public boolean witherTakeDamageFromWater = false; public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; @@ -29,7 +29,7 @@ index d7c5764ac50f313c691667bd8beb6f7067da67d0..0c21e0ca6da3819d41f55fe4b2f1539e private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2575,6 +2576,7 @@ public class PurpurWorldConfig { +@@ -2576,6 +2577,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/0217-Cactus-breaks-from-solid-neighbors-config.patch b/patches/server/0217-Cactus-breaks-from-solid-neighbors-config.patch index 931e4b32b..140be38c2 100644 --- a/patches/server/0217-Cactus-breaks-from-solid-neighbors-config.patch +++ b/patches/server/0217-Cactus-breaks-from-solid-neighbors-config.patch @@ -18,10 +18,10 @@ index 0fbabb84ef13e68b12212d9bfeb885c78893c116..56fa0e377b20ed063e47358be9e6bba8 return false; } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 504487696324b53cebdb10e635c9f7aae733c028..5326ffafa9ef7568f01840cb14c7c13d7965175c 100644 +index aff12279877c8786f9fa3a047c853df9359d88b7..285f29c9f1a2f8b145b9151b86d79283671f7df8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -741,6 +741,11 @@ public class PurpurWorldConfig { +@@ -742,6 +742,11 @@ public class PurpurWorldConfig { buddingAmethystSilkTouch = getBoolean("blocks.budding_amethyst.silk-touch", buddingAmethystSilkTouch); } diff --git a/patches/server/0218-Config-to-remove-curse-of-binding-with-weakness.patch b/patches/server/0218-Config-to-remove-curse-of-binding-with-weakness.patch index 94fb9c377..f5d1b162b 100644 --- a/patches/server/0218-Config-to-remove-curse-of-binding-with-weakness.patch +++ b/patches/server/0218-Config-to-remove-curse-of-binding-with-weakness.patch @@ -26,10 +26,10 @@ index 12643d60f4bfa8e07901aa0a556a1a245b0a7fb4..96a4a9f9b673a07630493290f5d5315e @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5326ffafa9ef7568f01840cb14c7c13d7965175c..25ac97095cf7099f78426c56d48864299d33e96c 100644 +index 285f29c9f1a2f8b145b9151b86d79283671f7df8..771c770c1bf73276abb3dac42941295e641b7f2b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -405,6 +405,7 @@ public class PurpurWorldConfig { +@@ -406,6 +406,7 @@ public class PurpurWorldConfig { public boolean playerArmorSwapping = false; public boolean playerArmorSwappingCreativeMakesCopy = true; public boolean playerRidableInWater = false; @@ -37,7 +37,7 @@ index 5326ffafa9ef7568f01840cb14c7c13d7965175c..25ac97095cf7099f78426c56d4886429 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -431,6 +432,7 @@ public class PurpurWorldConfig { +@@ -432,6 +433,7 @@ public class PurpurWorldConfig { playerArmorSwapping = getBoolean("gameplay-mechanics.player.armor-click-equip.allow-hot-swapping", playerArmorSwapping); playerArmorSwappingCreativeMakesCopy = getBoolean("gameplay-mechanics.player.armor-click-equip.creative-makes-copy", playerArmorSwappingCreativeMakesCopy); playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); diff --git a/patches/server/0219-Conduit-behavior-configuration.patch b/patches/server/0219-Conduit-behavior-configuration.patch index 42136b62e..1a53745a0 100644 --- a/patches/server/0219-Conduit-behavior-configuration.patch +++ b/patches/server/0219-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 dec852113a8f359a3e37b42916df46957edcd98a..1489a5d5985271665aa55720b0ffdc3e94636f48 100644 +index 771c770c1bf73276abb3dac42941295e641b7f2b..f7acadac07695e4f1a4631d4fec5c8b84bf32b6a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2773,5 +2773,28 @@ public class PurpurWorldConfig { +@@ -2774,5 +2774,28 @@ public class PurpurWorldConfig { private void hungerSettings() { hungerStarvationDamage = (float) getDouble("hunger.starvation-damage", hungerStarvationDamage); } diff --git a/patches/server/0220-Cauldron-fill-chances.patch b/patches/server/0220-Cauldron-fill-chances.patch index f2f0456d8..9d552cc2c 100644 --- a/patches/server/0220-Cauldron-fill-chances.patch +++ b/patches/server/0220-Cauldron-fill-chances.patch @@ -18,7 +18,7 @@ index 46846ac9981e447fc6886aecf82563378a4f5548..9122485755ce8aa6e6f4773a5fb1315c @Override diff --git a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java -index ef15adf66ea994d15a7d2718dd3d22cd07c31f98..dd87e3efdeafb211c1e44f8dc3348830ed7e22ad 100644 +index ce4265a9cf01db335a6a88b91ae5e6ff4518ef92..f889729b3bbbe1c82fa8bc7e1ab1f7b0727f85b0 100644 --- a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java @@ -188,7 +188,7 @@ public class PointedDripstoneBlock extends Block implements Fallable, SimpleWate @@ -47,10 +47,10 @@ index ef15adf66ea994d15a7d2718dd3d22cd07c31f98..dd87e3efdeafb211c1e44f8dc3348830 if (dripChance < f1) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 48ad9e06f7f035dce6c294647bfeb9a579b37a5b..c63cca8e91bbfc8633a886df2d6f198f947bb3e1 100644 +index f7acadac07695e4f1a4631d4fec5c8b84bf32b6a..4053f1658ee55ecfdc2a3c30a3aaf928e52f2cb0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2796,5 +2796,16 @@ public class PurpurWorldConfig { +@@ -2797,5 +2797,16 @@ public class PurpurWorldConfig { }); conduitBlocks = conduitBlockList.toArray(Block[]::new); } diff --git a/patches/server/0221-Config-to-allow-mobs-to-pathfind-over-rails.patch b/patches/server/0221-Config-to-allow-mobs-to-pathfind-over-rails.patch index a5056a736..ba1a63d1f 100644 --- a/patches/server/0221-Config-to-allow-mobs-to-pathfind-over-rails.patch +++ b/patches/server/0221-Config-to-allow-mobs-to-pathfind-over-rails.patch @@ -18,10 +18,10 @@ index ede91a2fbe67480d2b6bcdeb776f87da0b69bdae..444bec169c0cd5fe1a23f1d14fae1a10 if (node != null && (node.type == BlockPathTypes.OPEN || node.type == BlockPathTypes.WALKABLE) && this.mob.getBbWidth() < 1.0F) { double g = (double)(x - direction.getStepX()) + 0.5D; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c63cca8e91bbfc8633a886df2d6f198f947bb3e1..1312bcb035794c7143e24c9e1a06081af85cd91d 100644 +index 4053f1658ee55ecfdc2a3c30a3aaf928e52f2cb0..672b4dcf5fbded33638d23749ab4feaf251d1dc3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -140,6 +140,7 @@ public class PurpurWorldConfig { +@@ -141,6 +141,7 @@ public class PurpurWorldConfig { public double voidDamageDealt = 4.0D; public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; @@ -29,7 +29,7 @@ index c63cca8e91bbfc8633a886df2d6f198f947bb3e1..1312bcb035794c7143e24c9e1a06081a private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -161,6 +162,7 @@ public class PurpurWorldConfig { +@@ -162,6 +163,7 @@ public class PurpurWorldConfig { voidDamageDealt = getDouble("gameplay-mechanics.void-damage-dealt", voidDamageDealt); raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); diff --git a/patches/server/0222-Shulker-change-color-with-dye.patch b/patches/server/0222-Shulker-change-color-with-dye.patch index 134ee248b..ba591cec5 100644 --- a/patches/server/0222-Shulker-change-color-with-dye.patch +++ b/patches/server/0222-Shulker-change-color-with-dye.patch @@ -47,10 +47,10 @@ index ada070d8e1a2d328c02455eb9e5ad056046bcd0a..691b59f784e34b061ea156a3236c09f2 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 1312bcb035794c7143e24c9e1a06081af85cd91d..55733b718b077d90802e2bdace3dbcab76a166f2 100644 +index 672b4dcf5fbded33638d23749ab4feaf251d1dc3..82318edeecb92a59514942aa346019f79e290115 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2125,6 +2125,7 @@ public class PurpurWorldConfig { +@@ -2126,6 +2126,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 1312bcb035794c7143e24c9e1a06081af85cd91d..55733b718b077d90802e2bdace3dbcab private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2141,6 +2142,7 @@ public class PurpurWorldConfig { +@@ -2142,6 +2143,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/0225-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch b/patches/server/0225-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch index 49423b57c..53c9c3450 100644 --- a/patches/server/0225-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch +++ b/patches/server/0225-Option-for-if-rain-and-thunder-should-stop-on-sleep.patch @@ -25,10 +25,10 @@ index 66ab18b0654b1408fae1a5948290d44dd888b4b4..0c23de7ed20ac3be4a2462a246b5f746 // CraftBukkit start // If we stop due to everyone sleeping we should reset the weather duration to some other random value. diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c30d9c42b9d973976c40be5ddf1c529c6e565eb3..115f026e425a71eaebaf20c491b61503a590f6f6 100644 +index 82318edeecb92a59514942aa346019f79e290115..18fd455f1317f613db213f19d5aac768eda8b8cf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -141,6 +141,8 @@ public class PurpurWorldConfig { +@@ -142,6 +142,8 @@ public class PurpurWorldConfig { public int raidCooldownSeconds = 0; public int animalBreedingCooldownSeconds = 0; public boolean mobsIgnoreRails = false; @@ -37,7 +37,7 @@ index c30d9c42b9d973976c40be5ddf1c529c6e565eb3..115f026e425a71eaebaf20c491b61503 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -163,6 +165,8 @@ public class PurpurWorldConfig { +@@ -164,6 +166,8 @@ public class PurpurWorldConfig { raidCooldownSeconds = getInt("gameplay-mechanics.raid-cooldown-seconds", raidCooldownSeconds); animalBreedingCooldownSeconds = getInt("gameplay-mechanics.animal-breeding-cooldown-seconds", animalBreedingCooldownSeconds); mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails); diff --git a/patches/server/0226-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch b/patches/server/0226-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch index d4dbb360e..5064ae1be 100644 --- a/patches/server/0226-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch +++ b/patches/server/0226-Chance-for-azalea-blocks-to-grow-into-trees-naturall.patch @@ -45,10 +45,10 @@ index bcc1ce196c1dbf60cf6ae73d95766dc41ed22012..ad0ee0d333ffd862fe74ac3a097c51d5 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 0ec0db28bf3fa246a5f57c8b36fd8a43e8a72cba..edb1390ae7f23d88ee8606dc93349488c694aa25 100644 +index 18fd455f1317f613db213f19d5aac768eda8b8cf..33bc5617b560e4f673e938450dbe8b057309cad8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -701,6 +701,11 @@ public class PurpurWorldConfig { +@@ -702,6 +702,11 @@ public class PurpurWorldConfig { anvilAllowColors = getBoolean("blocks.anvil.allow-colors", anvilAllowColors); } @@ -60,7 +60,7 @@ index 0ec0db28bf3fa246a5f57c8b36fd8a43e8a72cba..edb1390ae7f23d88ee8606dc93349488 public int beaconLevelOne = 20; public int beaconLevelTwo = 30; public int beaconLevelThree = 40; -@@ -830,6 +835,11 @@ public class PurpurWorldConfig { +@@ -831,6 +836,11 @@ public class PurpurWorldConfig { farmlandTramplingFeatherFalling = getBoolean("blocks.farmland.feather-fall-distance-affects-trampling", farmlandTramplingFeatherFalling); } diff --git a/patches/server/0227-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0227-Shift-right-click-to-use-exp-for-mending.patch index 0de59080a..fa8b2db4b 100644 --- a/patches/server/0227-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0227-Shift-right-click-to-use-exp-for-mending.patch @@ -36,7 +36,7 @@ index 28463bca77d62ad9175a55cffc92110ffa16fadc..bd77301ef6cde21e1ee1966d2ffa4186 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 0010a80db783d1b33af7751d0c2d85a97df85add..ae664ac204f47916da38c6ce70bf8531bb6cb704 100644 +index 9e08659c31269ff1d1cd44e98bbb773cf469d6f7..bb491a77e2a7eb137f196747e09130e905abfb84 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2095,6 +2095,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @@ -48,10 +48,10 @@ index 0010a80db783d1b33af7751d0c2d85a97df85add..ae664ac204f47916da38c6ce70bf8531 cancelled = event.useItemInHand() == Event.Result.DENY; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index edb1390ae7f23d88ee8606dc93349488c694aa25..e78b282022a72ff52ea941d661e1978b6eedc887 100644 +index 33bc5617b560e4f673e938450dbe8b057309cad8..82a4f0aab63f2a2aca525aedb5998eda0a78cb6e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -412,6 +412,7 @@ public class PurpurWorldConfig { +@@ -413,6 +413,7 @@ public class PurpurWorldConfig { public boolean playerArmorSwappingCreativeMakesCopy = true; public boolean playerRidableInWater = false; public boolean playerRemoveBindingWithWeakness = false; @@ -59,7 +59,7 @@ index edb1390ae7f23d88ee8606dc93349488c694aa25..e78b282022a72ff52ea941d661e1978b private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -439,6 +440,7 @@ public class PurpurWorldConfig { +@@ -440,6 +441,7 @@ public class PurpurWorldConfig { playerArmorSwappingCreativeMakesCopy = getBoolean("gameplay-mechanics.player.armor-click-equip.creative-makes-copy", playerArmorSwappingCreativeMakesCopy); playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness); diff --git a/patches/server/0228-Dolphins-naturally-aggressive-to-players-chance.patch b/patches/server/0228-Dolphins-naturally-aggressive-to-players-chance.patch index b47d6cfce..1b224c8aa 100644 --- a/patches/server/0228-Dolphins-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0228-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 e78b282022a72ff52ea941d661e1978b6eedc887..3bef36c72bd69b2751ca317223fbf8a50e7bc92a 100644 +index 82a4f0aab63f2a2aca525aedb5998eda0a78cb6e..ea6ae178e5cbbad4e23c5d9c0a2c7bfeebfc0ba1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1209,6 +1209,7 @@ public class PurpurWorldConfig { +@@ -1210,6 +1210,7 @@ public class PurpurWorldConfig { public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; @@ -58,7 +58,7 @@ index e78b282022a72ff52ea941d661e1978b6eedc887..3bef36c72bd69b2751ca317223fbf8a5 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1223,6 +1224,7 @@ public class PurpurWorldConfig { +@@ -1224,6 +1225,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/0229-Cows-naturally-aggressive-to-players-chance.patch b/patches/server/0229-Cows-naturally-aggressive-to-players-chance.patch index bf9b5baee..de622bd1f 100644 --- a/patches/server/0229-Cows-naturally-aggressive-to-players-chance.patch +++ b/patches/server/0229-Cows-naturally-aggressive-to-players-chance.patch @@ -59,10 +59,10 @@ index 00eec3f51e62858e7b85b3340e76bf66bfd4370f..b5002526f20fb8ae52783a6ba95ccd2d @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3bef36c72bd69b2751ca317223fbf8a50e7bc92a..b56bbca2961887ff993ac03d37cc0ec13f91f62d 100644 +index ea6ae178e5cbbad4e23c5d9c0a2c7bfeebfc0ba1..2c79f11fa01b07ba1d0a721011a6bfa8b68a4e8c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1158,7 +1158,14 @@ public class PurpurWorldConfig { +@@ -1159,7 +1159,14 @@ public class PurpurWorldConfig { public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; public boolean cowTakeDamageFromWater = false; @@ -77,7 +77,7 @@ index 3bef36c72bd69b2751ca317223fbf8a50e7bc92a..b56bbca2961887ff993ac03d37cc0ec1 cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); cowControllable = getBoolean("mobs.cow.controllable", cowControllable); -@@ -1171,6 +1178,8 @@ public class PurpurWorldConfig { +@@ -1172,6 +1179,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/0230-Option-for-beds-to-explode-on-villager-sleep.patch b/patches/server/0230-Option-for-beds-to-explode-on-villager-sleep.patch index 539c422a9..2620ba271 100644 --- a/patches/server/0230-Option-for-beds-to-explode-on-villager-sleep.patch +++ b/patches/server/0230-Option-for-beds-to-explode-on-villager-sleep.patch @@ -22,10 +22,10 @@ index 89435b0742064d77c7cc8bb871949acc9852f2c0..f04778287545e9619ee0359f1e51151d 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 b56bbca2961887ff993ac03d37cc0ec13f91f62d..60b98696a8ea2fceb539a6dd0f8c16c811bb8ffa 100644 +index 2c79f11fa01b07ba1d0a721011a6bfa8b68a4e8c..54aa7755d419402c1132fcecea603a7e052a27a6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -720,11 +720,13 @@ public class PurpurWorldConfig { +@@ -721,11 +721,13 @@ public class PurpurWorldConfig { } public boolean bedExplode = true; diff --git a/patches/server/0231-Halloween-options-and-optimizations.patch b/patches/server/0231-Halloween-options-and-optimizations.patch index ea74b251a..c09217b7c 100644 --- a/patches/server/0231-Halloween-options-and-optimizations.patch +++ b/patches/server/0231-Halloween-options-and-optimizations.patch @@ -43,7 +43,7 @@ index 4505b61f10c3aad3d0ab144cea5ef6efc6ad7357..e542407894f58fb8c0339a7a6d2e7b2c this.armorDropChances[EquipmentSlot.HEAD.getIndex()] = 0.0F; } diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index 0748babe61be5e5082132af6c4a3bc82612b70b3..5b7a6fa9692933ceb40c36e2c684a98d2ba51d57 100644 +index da2f736bd162a1e2e39473a963ef20bcbb31aa2a..38014afb40ac5781f6724a942d593aee1f060ad8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -586,11 +586,7 @@ public class Zombie extends Monster { @@ -60,10 +60,10 @@ index 0748babe61be5e5082132af6c4a3bc82612b70b3..5b7a6fa9692933ceb40c36e2c684a98d 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 60b98696a8ea2fceb539a6dd0f8c16c811bb8ffa..ac4a397db476ef49d3be0131eaa2a1e9c2012224 100644 +index 54aa7755d419402c1132fcecea603a7e052a27a6..16fa9195c135627a9b406743440f20ec1fc909bc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1551,6 +1551,13 @@ public class PurpurWorldConfig { +@@ -1552,6 +1552,13 @@ public class PurpurWorldConfig { guardianTakeDamageFromWater = getBoolean("mobs.guardian.takes-damage-from-water", guardianTakeDamageFromWater); } diff --git a/patches/server/0234-Campfire-option-for-lit-when-placed.patch b/patches/server/0234-Campfire-option-for-lit-when-placed.patch index d4bb7ce5d..a0adc16c7 100644 --- a/patches/server/0234-Campfire-option-for-lit-when-placed.patch +++ b/patches/server/0234-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 ac4a397db476ef49d3be0131eaa2a1e9c2012224..907962842a93c771fbc2d5f712839da068940632 100644 +index 16fa9195c135627a9b406743440f20ec1fc909bc..8010b5d5f9eeffbdbada0cf6b1ea496e4f57b6f4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -763,6 +763,11 @@ public class PurpurWorldConfig { +@@ -764,6 +764,11 @@ public class PurpurWorldConfig { cactusBreaksFromSolidNeighbors = getBoolean("blocks.cactus.breaks-from-solid-neighbors", cactusBreaksFromSolidNeighbors); } diff --git a/patches/server/0235-options-to-extinguish-fire-blocks-with-snowballs.patch b/patches/server/0235-options-to-extinguish-fire-blocks-with-snowballs.patch index 39e617eb2..bcfa86361 100644 --- a/patches/server/0235-options-to-extinguish-fire-blocks-with-snowballs.patch +++ b/patches/server/0235-options-to-extinguish-fire-blocks-with-snowballs.patch @@ -46,10 +46,10 @@ index 74f798baafc53cd7dd1d4f58bc9a3581ba4f21da..c7c10c89871a3ee6d21da4bb19407a68 protected void onHit(HitResult hitResult) { super.onHit(hitResult); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 907962842a93c771fbc2d5f712839da068940632..9066c71e5cfb228b3e4491880c58b8860538e231 100644 +index 8010b5d5f9eeffbdbada0cf6b1ea496e4f57b6f4..4e1db316b779456c7b1cc5ce614c8fb6e84183a6 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -231,6 +231,9 @@ public class PurpurWorldConfig { +@@ -232,6 +232,9 @@ public class PurpurWorldConfig { public int glowBerriesEatGlowDuration = 0; public boolean shulkerBoxItemDropContentsWhenDestroyed = true; public boolean compassItemShowsBossBar = false; @@ -59,7 +59,7 @@ index 907962842a93c771fbc2d5f712839da068940632..9066c71e5cfb228b3e4491880c58b886 private void itemSettings() { itemImmuneToCactus.clear(); getList("gameplay-mechanics.item.immune.cactus", new ArrayList<>()).forEach(key -> { -@@ -277,6 +280,9 @@ public class PurpurWorldConfig { +@@ -278,6 +281,9 @@ public class PurpurWorldConfig { glowBerriesEatGlowDuration = getInt("gameplay-mechanics.item.glow_berries.eat-glow-duration", glowBerriesEatGlowDuration); shulkerBoxItemDropContentsWhenDestroyed = getBoolean("gameplay-mechanics.item.shulker_box.drop-contents-when-destroyed", shulkerBoxItemDropContentsWhenDestroyed); compassItemShowsBossBar = getBoolean("gameplay-mechanics.item.compass.holding-shows-bossbar", compassItemShowsBossBar); diff --git a/patches/server/0236-Add-option-to-disable-zombie-villagers-cure.patch b/patches/server/0236-Add-option-to-disable-zombie-villagers-cure.patch index 58d518c9f..e6c87795e 100644 --- a/patches/server/0236-Add-option-to-disable-zombie-villagers-cure.patch +++ b/patches/server/0236-Add-option-to-disable-zombie-villagers-cure.patch @@ -18,10 +18,10 @@ index f0f4542949de4927f15c75d067eb7d213599aa85..780f7d8a44acea8987736544c1991fec itemstack.shrink(1); } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9066c71e5cfb228b3e4491880c58b8860538e231..ec1b9bfa21f0c4b8abd7ba6a8d91776117f02ff4 100644 +index 4e1db316b779456c7b1cc5ce614c8fb6e84183a6..d3c760b223503a2d1ac1a58df43dac656877f273 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2773,6 +2773,7 @@ public class PurpurWorldConfig { +@@ -2774,6 +2774,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerTakeDamageFromWater = false; public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; @@ -29,7 +29,7 @@ index 9066c71e5cfb228b3e4491880c58b8860538e231..ec1b9bfa21f0c4b8abd7ba6a8d917761 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2790,6 +2791,7 @@ public class PurpurWorldConfig { +@@ -2791,6 +2792,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/0237-Persistent-BlockEntity-Lore-and-DisplayName.patch b/patches/server/0237-Persistent-BlockEntity-Lore-and-DisplayName.patch index d0ff8b1d8..9a1448882 100644 --- a/patches/server/0237-Persistent-BlockEntity-Lore-and-DisplayName.patch +++ b/patches/server/0237-Persistent-BlockEntity-Lore-and-DisplayName.patch @@ -195,10 +195,10 @@ index b96d57b0bcf21508f8e03e96b7553eb486fdf212..d3de829a4ab5f5a127fb026a8cb4ef4e + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ec1b9bfa21f0c4b8abd7ba6a8d91776117f02ff4..a20317cddd421c29fa3c713024466e4b07fa9e23 100644 +index d3c760b223503a2d1ac1a58df43dac656877f273..a69a3ea4f97d80c90916524290b22b71415da81b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -132,6 +132,7 @@ public class PurpurWorldConfig { +@@ -133,6 +133,7 @@ public class PurpurWorldConfig { public boolean milkCuresBadOmen = true; public boolean noteBlockIgnoreAbove = false; public boolean persistentDroppableEntityDisplayNames = false; @@ -206,7 +206,7 @@ index ec1b9bfa21f0c4b8abd7ba6a8d91776117f02ff4..a20317cddd421c29fa3c713024466e4b public boolean projectilesBypassMobGriefing = false; public boolean tickFluids = true; public double mobsBlindnessMultiplier = 1; -@@ -155,6 +156,7 @@ public class PurpurWorldConfig { +@@ -156,6 +157,7 @@ public class PurpurWorldConfig { imposeTeleportRestrictionsOnGateways = getBoolean("gameplay-mechanics.impose-teleport-restrictions-on-gateways", imposeTeleportRestrictionsOnGateways); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); diff --git a/patches/server/0238-Signs-allow-color-codes.patch b/patches/server/0238-Signs-allow-color-codes.patch index 548968524..69c4a84b9 100644 --- a/patches/server/0238-Signs-allow-color-codes.patch +++ b/patches/server/0238-Signs-allow-color-codes.patch @@ -70,10 +70,10 @@ index def4fdd2c7e4f925fa128692a744e5d10ae0203a..73382580cc23cbc868a6003e74826a55 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 f01a70c5efb62022f86fba47c5baf432f728daf2..407cdadb54eee58a415504c2219829054b40204a 100644 +index a69a3ea4f97d80c90916524290b22b71415da81b..90b295d75b858dd48026ede68a0e9c49311f6e46 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -933,8 +933,10 @@ public class PurpurWorldConfig { +@@ -934,8 +934,10 @@ public class PurpurWorldConfig { } public boolean signRightClickEdit = false; diff --git a/patches/server/0240-Mobs-always-drop-experience.patch b/patches/server/0240-Mobs-always-drop-experience.patch index bd46275ff..f8ff41bd0 100644 --- a/patches/server/0240-Mobs-always-drop-experience.patch +++ b/patches/server/0240-Mobs-always-drop-experience.patch @@ -1157,10 +1157,10 @@ index 8d6930868a42b9fc98d7672bff433ec50d36999e..53bebecd30fee7613af73901b3aa9961 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b13bc4c63 100644 +index 90b295d75b858dd48026ede68a0e9c49311f6e46..09185f0c00a1090b6a3b4b165487b9b0c52bf9a2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -999,12 +999,14 @@ public class PurpurWorldConfig { +@@ -1000,12 +1000,14 @@ public class PurpurWorldConfig { public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; public boolean axolotlTakeDamageFromWater = false; @@ -1175,7 +1175,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean batRidable = false; -@@ -1020,6 +1022,7 @@ public class PurpurWorldConfig { +@@ -1021,6 +1023,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1183,7 +1183,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1032,6 +1035,7 @@ public class PurpurWorldConfig { +@@ -1033,6 +1036,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean beeRidable = false; -@@ -1043,6 +1047,7 @@ public class PurpurWorldConfig { +@@ -1044,6 +1048,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = false; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1199,7 +1199,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1058,6 +1063,7 @@ public class PurpurWorldConfig { +@@ -1059,6 +1064,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean blazeRidable = false; -@@ -1066,6 +1072,7 @@ public class PurpurWorldConfig { +@@ -1067,6 +1073,7 @@ public class PurpurWorldConfig { public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; public boolean blazeTakeDamageFromWater = true; @@ -1215,7 +1215,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1078,6 +1085,7 @@ public class PurpurWorldConfig { +@@ -1079,6 +1086,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean catRidable = false; -@@ -1090,6 +1098,7 @@ public class PurpurWorldConfig { +@@ -1091,6 +1099,7 @@ public class PurpurWorldConfig { public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; public boolean catTakeDamageFromWater = false; @@ -1231,7 +1231,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1110,6 +1119,7 @@ public class PurpurWorldConfig { +@@ -1111,6 +1120,7 @@ public class PurpurWorldConfig { catDefaultCollarColor = DyeColor.RED; } catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1239,7 +1239,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean caveSpiderRidable = false; -@@ -1117,6 +1127,7 @@ public class PurpurWorldConfig { +@@ -1118,6 +1128,7 @@ public class PurpurWorldConfig { public boolean caveSpiderControllable = true; public double caveSpiderMaxHealth = 12.0D; public boolean caveSpiderTakeDamageFromWater = false; @@ -1247,7 +1247,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1128,6 +1139,7 @@ public class PurpurWorldConfig { +@@ -1129,6 +1140,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean chickenRidable = false; -@@ -1137,6 +1149,7 @@ public class PurpurWorldConfig { +@@ -1138,6 +1150,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1263,7 +1263,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1150,12 +1163,14 @@ public class PurpurWorldConfig { +@@ -1151,12 +1164,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -1166,6 +1181,7 @@ public class PurpurWorldConfig { +@@ -1167,6 +1182,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean cowRidable = false; -@@ -1177,6 +1193,7 @@ public class PurpurWorldConfig { +@@ -1178,6 +1194,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1294,7 +1294,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1197,6 +1214,7 @@ public class PurpurWorldConfig { +@@ -1198,6 +1215,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean creeperRidable = false; -@@ -1209,6 +1227,7 @@ public class PurpurWorldConfig { +@@ -1210,6 +1228,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1310,7 +1310,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1225,6 +1244,7 @@ public class PurpurWorldConfig { +@@ -1226,6 +1245,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean dolphinRidable = false; -@@ -1236,6 +1256,7 @@ public class PurpurWorldConfig { +@@ -1237,6 +1257,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1326,7 +1326,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1251,6 +1272,7 @@ public class PurpurWorldConfig { +@@ -1252,6 +1273,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean donkeyRidableInWater = false; -@@ -1262,6 +1284,7 @@ public class PurpurWorldConfig { +@@ -1263,6 +1285,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1342,7 +1342,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1279,6 +1302,7 @@ public class PurpurWorldConfig { +@@ -1280,6 +1303,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean drownedRidable = false; -@@ -1291,6 +1315,7 @@ public class PurpurWorldConfig { +@@ -1292,6 +1316,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1358,7 +1358,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1307,12 +1332,14 @@ public class PurpurWorldConfig { +@@ -1308,12 +1333,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -1323,6 +1350,7 @@ public class PurpurWorldConfig { +@@ -1324,6 +1351,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean enderDragonRidable = false; -@@ -1368,6 +1396,7 @@ public class PurpurWorldConfig { +@@ -1369,6 +1397,7 @@ public class PurpurWorldConfig { public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1389,7 +1389,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1391,6 +1420,7 @@ public class PurpurWorldConfig { +@@ -1392,6 +1421,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean endermiteRidable = false; -@@ -1398,6 +1428,7 @@ public class PurpurWorldConfig { +@@ -1399,6 +1429,7 @@ public class PurpurWorldConfig { public boolean endermiteControllable = true; public double endermiteMaxHealth = 8.0D; public boolean endermiteTakeDamageFromWater = false; @@ -1405,7 +1405,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1409,6 +1440,7 @@ public class PurpurWorldConfig { +@@ -1410,6 +1441,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean evokerRidable = false; -@@ -1417,6 +1449,7 @@ public class PurpurWorldConfig { +@@ -1418,6 +1450,7 @@ public class PurpurWorldConfig { public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1421,7 +1421,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1429,6 +1462,7 @@ public class PurpurWorldConfig { +@@ -1430,6 +1463,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean foxRidable = false; -@@ -1439,6 +1473,7 @@ public class PurpurWorldConfig { +@@ -1440,6 +1474,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1437,7 +1437,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1453,6 +1488,7 @@ public class PurpurWorldConfig { +@@ -1454,6 +1489,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean frogRidable = false; -@@ -1474,6 +1510,7 @@ public class PurpurWorldConfig { +@@ -1475,6 +1511,7 @@ public class PurpurWorldConfig { public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; public boolean ghastTakeDamageFromWater = false; @@ -1453,7 +1453,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1486,6 +1523,7 @@ public class PurpurWorldConfig { +@@ -1487,6 +1524,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean giantRidable = false; -@@ -1499,6 +1537,7 @@ public class PurpurWorldConfig { +@@ -1500,6 +1538,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1469,7 +1469,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1520,6 +1559,7 @@ public class PurpurWorldConfig { +@@ -1521,6 +1560,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean glowSquidRidable = false; -@@ -1527,12 +1567,14 @@ public class PurpurWorldConfig { +@@ -1528,12 +1568,14 @@ public class PurpurWorldConfig { public double glowSquidMaxHealth = 10.0D; public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; @@ -1492,7 +1492,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean goatRidable = false; -@@ -1541,6 +1583,7 @@ public class PurpurWorldConfig { +@@ -1542,6 +1584,7 @@ public class PurpurWorldConfig { public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1500,7 +1500,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void goatSettings() { goatRidable = getBoolean("mobs.goat.ridable", goatRidable); goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater); -@@ -1548,12 +1591,14 @@ public class PurpurWorldConfig { +@@ -1549,12 +1592,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1564,6 +1609,7 @@ public class PurpurWorldConfig { +@@ -1565,6 +1610,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean forceHalloweenSeason = false; -@@ -1579,6 +1625,7 @@ public class PurpurWorldConfig { +@@ -1580,6 +1626,7 @@ public class PurpurWorldConfig { public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1531,7 +1531,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1591,6 +1638,7 @@ public class PurpurWorldConfig { +@@ -1592,6 +1639,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean horseRidableInWater = false; -@@ -1603,6 +1651,7 @@ public class PurpurWorldConfig { +@@ -1604,6 +1652,7 @@ public class PurpurWorldConfig { public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; public boolean horseStandWithRider = true; @@ -1547,7 +1547,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1621,6 +1670,7 @@ public class PurpurWorldConfig { +@@ -1622,6 +1671,7 @@ public class PurpurWorldConfig { horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider); @@ -1555,7 +1555,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean huskRidable = false; -@@ -1632,6 +1682,7 @@ public class PurpurWorldConfig { +@@ -1633,6 +1683,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1563,7 +1563,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1647,6 +1698,7 @@ public class PurpurWorldConfig { +@@ -1648,6 +1699,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean illusionerRidable = false; -@@ -1656,6 +1708,7 @@ public class PurpurWorldConfig { +@@ -1657,6 +1709,7 @@ public class PurpurWorldConfig { public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1579,7 +1579,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1673,6 +1726,7 @@ public class PurpurWorldConfig { +@@ -1674,6 +1727,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean ironGolemRidable = false; -@@ -1683,6 +1737,7 @@ public class PurpurWorldConfig { +@@ -1684,6 +1738,7 @@ public class PurpurWorldConfig { public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; public boolean ironGolemHealCalm = false; @@ -1595,7 +1595,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1697,6 +1752,7 @@ public class PurpurWorldConfig { +@@ -1698,6 +1753,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean llamaRidable = false; -@@ -1711,6 +1767,7 @@ public class PurpurWorldConfig { +@@ -1712,6 +1768,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1611,7 +1611,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1731,6 +1788,7 @@ public class PurpurWorldConfig { +@@ -1732,6 +1789,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean magmaCubeRidable = false; -@@ -1741,6 +1799,7 @@ public class PurpurWorldConfig { +@@ -1742,6 +1800,7 @@ public class PurpurWorldConfig { public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1755,6 +1814,7 @@ public class PurpurWorldConfig { +@@ -1756,6 +1815,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean mooshroomRidable = false; -@@ -1763,6 +1823,7 @@ public class PurpurWorldConfig { +@@ -1764,6 +1824,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1775,6 +1836,7 @@ public class PurpurWorldConfig { +@@ -1776,6 +1837,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean muleRidableInWater = false; -@@ -1786,6 +1848,7 @@ public class PurpurWorldConfig { +@@ -1787,6 +1849,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1803,6 +1866,7 @@ public class PurpurWorldConfig { +@@ -1804,6 +1867,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean ocelotRidable = false; -@@ -1811,6 +1875,7 @@ public class PurpurWorldConfig { +@@ -1812,6 +1876,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1823,6 +1888,7 @@ public class PurpurWorldConfig { +@@ -1824,6 +1889,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean pandaRidable = false; -@@ -1831,6 +1897,7 @@ public class PurpurWorldConfig { +@@ -1832,6 +1898,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1843,6 +1910,7 @@ public class PurpurWorldConfig { +@@ -1844,6 +1911,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean parrotRidable = false; -@@ -1852,6 +1920,7 @@ public class PurpurWorldConfig { +@@ -1853,6 +1921,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1865,6 +1934,7 @@ public class PurpurWorldConfig { +@@ -1866,6 +1935,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean phantomRidable = false; -@@ -1898,6 +1968,7 @@ public class PurpurWorldConfig { +@@ -1899,6 +1969,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1939,6 +2010,7 @@ public class PurpurWorldConfig { +@@ -1940,6 +2011,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean pigRidable = false; -@@ -1948,6 +2020,7 @@ public class PurpurWorldConfig { +@@ -1949,6 +2021,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1961,6 +2034,7 @@ public class PurpurWorldConfig { +@@ -1962,6 +2035,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean piglinRidable = false; -@@ -1970,6 +2044,7 @@ public class PurpurWorldConfig { +@@ -1971,6 +2045,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1983,6 +2058,7 @@ public class PurpurWorldConfig { +@@ -1984,6 +2059,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean piglinBruteRidable = false; -@@ -1990,6 +2066,7 @@ public class PurpurWorldConfig { +@@ -1991,6 +2067,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2001,6 +2078,7 @@ public class PurpurWorldConfig { +@@ -2002,6 +2079,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean pillagerRidable = false; -@@ -2009,6 +2087,7 @@ public class PurpurWorldConfig { +@@ -2010,6 +2088,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2021,6 +2100,7 @@ public class PurpurWorldConfig { +@@ -2022,6 +2101,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean polarBearRidable = false; -@@ -2031,6 +2111,7 @@ public class PurpurWorldConfig { +@@ -2032,6 +2112,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2046,12 +2127,14 @@ public class PurpurWorldConfig { +@@ -2047,12 +2128,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2062,6 +2145,7 @@ public class PurpurWorldConfig { +@@ -2063,6 +2146,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean rabbitRidable = false; -@@ -2073,6 +2157,7 @@ public class PurpurWorldConfig { +@@ -2074,6 +2158,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2088,6 +2173,7 @@ public class PurpurWorldConfig { +@@ -2089,6 +2174,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean ravagerRidable = false; -@@ -2097,6 +2183,7 @@ public class PurpurWorldConfig { +@@ -2098,6 +2184,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2126,12 +2213,14 @@ public class PurpurWorldConfig { +@@ -2127,12 +2214,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2142,6 +2231,7 @@ public class PurpurWorldConfig { +@@ -2143,6 +2232,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean sheepRidable = false; -@@ -2151,6 +2241,7 @@ public class PurpurWorldConfig { +@@ -2152,6 +2242,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2164,6 +2255,7 @@ public class PurpurWorldConfig { +@@ -2165,6 +2256,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean shulkerRidable = false; -@@ -2177,6 +2269,7 @@ public class PurpurWorldConfig { +@@ -2178,6 +2270,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2194,6 +2287,7 @@ public class PurpurWorldConfig { +@@ -2195,6 +2288,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean silverfishRidable = false; -@@ -2202,6 +2296,7 @@ public class PurpurWorldConfig { +@@ -2203,6 +2297,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2214,6 +2309,7 @@ public class PurpurWorldConfig { +@@ -2215,6 +2310,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean skeletonRidable = false; -@@ -2221,6 +2317,7 @@ public class PurpurWorldConfig { +@@ -2222,6 +2318,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2232,6 +2329,7 @@ public class PurpurWorldConfig { +@@ -2233,6 +2330,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean skeletonHorseRidableInWater = true; -@@ -2243,6 +2341,7 @@ public class PurpurWorldConfig { +@@ -2244,6 +2342,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -2259,6 +2358,7 @@ public class PurpurWorldConfig { +@@ -2260,6 +2359,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean slimeRidable = false; -@@ -2269,6 +2369,7 @@ public class PurpurWorldConfig { +@@ -2270,6 +2370,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2283,6 +2384,7 @@ public class PurpurWorldConfig { +@@ -2284,6 +2385,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean snowGolemRidable = false; -@@ -2298,6 +2400,7 @@ public class PurpurWorldConfig { +@@ -2299,6 +2401,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2317,6 +2420,7 @@ public class PurpurWorldConfig { +@@ -2318,6 +2421,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean squidRidable = false; -@@ -2326,6 +2430,7 @@ public class PurpurWorldConfig { +@@ -2327,6 +2431,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2339,6 +2444,7 @@ public class PurpurWorldConfig { +@@ -2340,6 +2445,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean spiderRidable = false; -@@ -2346,6 +2452,7 @@ public class PurpurWorldConfig { +@@ -2347,6 +2453,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2357,6 +2464,7 @@ public class PurpurWorldConfig { +@@ -2358,6 +2465,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean strayRidable = false; -@@ -2364,6 +2472,7 @@ public class PurpurWorldConfig { +@@ -2365,6 +2473,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2375,6 +2484,7 @@ public class PurpurWorldConfig { +@@ -2376,6 +2485,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean striderRidable = false; -@@ -2384,6 +2494,7 @@ public class PurpurWorldConfig { +@@ -2385,6 +2495,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2397,6 +2508,7 @@ public class PurpurWorldConfig { +@@ -2398,6 +2509,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean tadpoleRidable = false; -@@ -2419,6 +2531,7 @@ public class PurpurWorldConfig { +@@ -2420,6 +2532,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2438,12 +2551,14 @@ public class PurpurWorldConfig { +@@ -2439,12 +2552,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2454,6 +2569,7 @@ public class PurpurWorldConfig { +@@ -2455,6 +2570,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean turtleRidable = false; -@@ -2462,6 +2578,7 @@ public class PurpurWorldConfig { +@@ -2463,6 +2579,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2474,6 +2591,7 @@ public class PurpurWorldConfig { +@@ -2475,6 +2592,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean vexRidable = false; -@@ -2482,6 +2600,7 @@ public class PurpurWorldConfig { +@@ -2483,6 +2601,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2494,6 +2613,7 @@ public class PurpurWorldConfig { +@@ -2495,6 +2614,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean villagerRidable = false; -@@ -2511,6 +2631,7 @@ public class PurpurWorldConfig { +@@ -2512,6 +2632,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2532,6 +2653,7 @@ public class PurpurWorldConfig { +@@ -2533,6 +2654,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean vindicatorRidable = false; -@@ -2540,6 +2662,7 @@ public class PurpurWorldConfig { +@@ -2541,6 +2663,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2552,6 +2675,7 @@ public class PurpurWorldConfig { +@@ -2553,6 +2676,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean wanderingTraderRidable = false; -@@ -2562,6 +2686,7 @@ public class PurpurWorldConfig { +@@ -2563,6 +2687,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2576,6 +2701,7 @@ public class PurpurWorldConfig { +@@ -2577,6 +2702,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean wardenRidable = false; -@@ -2592,6 +2718,7 @@ public class PurpurWorldConfig { +@@ -2593,6 +2719,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2603,6 +2730,7 @@ public class PurpurWorldConfig { +@@ -2604,6 +2731,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean witherRidable = false; -@@ -2617,6 +2745,7 @@ public class PurpurWorldConfig { +@@ -2618,6 +2746,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2639,6 +2768,7 @@ public class PurpurWorldConfig { +@@ -2640,6 +2769,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean witherSkeletonRidable = false; -@@ -2646,6 +2776,7 @@ public class PurpurWorldConfig { +@@ -2647,6 +2777,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2657,6 +2788,7 @@ public class PurpurWorldConfig { +@@ -2658,6 +2789,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean wolfRidable = false; -@@ -2668,6 +2800,7 @@ public class PurpurWorldConfig { +@@ -2669,6 +2801,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2687,6 +2820,7 @@ public class PurpurWorldConfig { +@@ -2688,6 +2821,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean zoglinRidable = false; -@@ -2694,6 +2828,7 @@ public class PurpurWorldConfig { +@@ -2695,6 +2829,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2705,6 +2840,7 @@ public class PurpurWorldConfig { +@@ -2706,6 +2841,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean zombieRidable = false; -@@ -2718,6 +2854,7 @@ public class PurpurWorldConfig { +@@ -2719,6 +2855,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2735,6 +2872,7 @@ public class PurpurWorldConfig { +@@ -2736,6 +2873,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean zombieHorseRidableInWater = false; -@@ -2747,6 +2885,7 @@ public class PurpurWorldConfig { +@@ -2748,6 +2886,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2764,6 +2903,7 @@ public class PurpurWorldConfig { +@@ -2765,6 +2904,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean zombieVillagerRidable = false; -@@ -2778,6 +2918,7 @@ public class PurpurWorldConfig { +@@ -2779,6 +2919,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2796,6 +2937,7 @@ public class PurpurWorldConfig { +@@ -2797,6 +2938,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 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b } public boolean zombifiedPiglinRidable = false; -@@ -2808,6 +2950,7 @@ public class PurpurWorldConfig { +@@ -2809,6 +2951,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index 407cdadb54eee58a415504c2219829054b40204a..5fe9895e019facfa353f5013ce7c0f2b private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2824,6 +2967,7 @@ public class PurpurWorldConfig { +@@ -2825,6 +2968,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/0243-Option-to-prevent-spiders-from-climbing-world-border.patch b/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch index b445f5aa4..4ee4f2ec7 100644 --- a/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch +++ b/patches/server/0243-Option-to-prevent-spiders-from-climbing-world-border.patch @@ -39,10 +39,10 @@ index bdd4fc3072f7a5ea504ba35f6a08ae971e83b69f..b9ac8cefefe1f47548166330b7c889df } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5fe9895e019facfa353f5013ce7c0f2b13bc4c63..e270d7703996444bf21fd0a74c26d759401addcc 100644 +index 09185f0c00a1090b6a3b4b165487b9b0c52bf9a2..7a4500958100469a2bef2a38ce3ac4474906093a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2453,6 +2453,7 @@ public class PurpurWorldConfig { +@@ -2454,6 +2454,7 @@ public class PurpurWorldConfig { public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; public boolean spiderAlwaysDropExp = false; @@ -50,7 +50,7 @@ index 5fe9895e019facfa353f5013ce7c0f2b13bc4c63..e270d7703996444bf21fd0a74c26d759 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2465,6 +2466,7 @@ public class PurpurWorldConfig { +@@ -2466,6 +2467,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/0244-Ability-for-hoe-to-replant-crops-and-nether-warts.patch b/patches/server/0244-Ability-for-hoe-to-replant-crops-and-nether-warts.patch index 6c42f46df..bebfb28e1 100644 --- a/patches/server/0244-Ability-for-hoe-to-replant-crops-and-nether-warts.patch +++ b/patches/server/0244-Ability-for-hoe-to-replant-crops-and-nether-warts.patch @@ -74,10 +74,10 @@ index d1d10a7a62c7372634e22d6df8fc7d085d051237..e6a37649900f55d7178f7cd876b71c5d + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 452bb5070347251a3e53fef82872b8c5bd990d03..c8fd074ab4c176c6cc722143879f912edc1880cb 100644 +index 7a4500958100469a2bef2a38ce3ac4474906093a..af713f15614f16afea6ef5a0774c43d17518c321 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -557,6 +557,8 @@ public class PurpurWorldConfig { +@@ -558,6 +558,8 @@ public class PurpurWorldConfig { public Map axeWaxables = new HashMap<>(); public Map axeWeatherables = new HashMap<>(); public Map hoeTillables = new HashMap<>(); @@ -86,7 +86,7 @@ index 452bb5070347251a3e53fef82872b8c5bd990d03..c8fd074ab4c176c6cc722143879f912e private void toolSettings() { axeStrippables.clear(); axeWaxables.clear(); -@@ -704,6 +706,8 @@ public class PurpurWorldConfig { +@@ -705,6 +707,8 @@ public class PurpurWorldConfig { }); hoeTillables.put(block, new Tillable(condition, into, drops)); }); diff --git a/patches/server/0245-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0245-Shearing-jeb-produces-random-color-wool.patch index cfe2329d2..91e786abb 100644 --- a/patches/server/0245-Shearing-jeb-produces-random-color-wool.patch +++ b/patches/server/0245-Shearing-jeb-produces-random-color-wool.patch @@ -18,10 +18,10 @@ index 63aeab7204ac954b2908207dc6e743d17aa27f2e..aa6f6e252f6f2933825b97bf1b9679fe if (entityitem != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index baff83502b1a576eea7cdec8571259d1d1a1d60a..99d96064ca64075031b70fb78c770d9f8f3607fb 100644 +index af713f15614f16afea6ef5a0774c43d17518c321..7716a07d86fc5fbcde7b4d671ac3b0161be01bf4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2246,6 +2246,7 @@ public class PurpurWorldConfig { +@@ -2247,6 +2247,7 @@ public class PurpurWorldConfig { public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; public boolean sheepAlwaysDropExp = false; @@ -29,7 +29,7 @@ index baff83502b1a576eea7cdec8571259d1d1a1d60a..99d96064ca64075031b70fb78c770d9f private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2260,6 +2261,7 @@ public class PurpurWorldConfig { +@@ -2261,6 +2262,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/0246-Turtle-eggs-random-tick-crack-chance.patch b/patches/server/0246-Turtle-eggs-random-tick-crack-chance.patch index 60c066b9b..f75e5fd2b 100644 --- a/patches/server/0246-Turtle-eggs-random-tick-crack-chance.patch +++ b/patches/server/0246-Turtle-eggs-random-tick-crack-chance.patch @@ -32,10 +32,10 @@ index 4907e0acb7d01b7f57b75579e58ce743e3e000bb..5e6df1d6cbaecb986d1b8d382fe673a2 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 99d96064ca64075031b70fb78c770d9f8f3607fb..24ac9a497f690fadf26e4b20560d35ec0e79d886 100644 +index 7716a07d86fc5fbcde7b4d671ac3b0161be01bf4..de0652cec9f8a6b1f4bec03f9f8ce41ff45a3a23 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -966,11 +966,13 @@ public class PurpurWorldConfig { +@@ -967,11 +967,13 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromItems = true; public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; diff --git a/patches/server/0247-Mob-head-visibility-percent.patch b/patches/server/0247-Mob-head-visibility-percent.patch index fb31b4812..abf4668eb 100644 --- a/patches/server/0247-Mob-head-visibility-percent.patch +++ b/patches/server/0247-Mob-head-visibility-percent.patch @@ -29,10 +29,10 @@ index 89a0878d77548d1e0e414903b04d5868c0b8c0b1..f04ce887e314110a136b4bff91d55d2e // 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 24ac9a497f690fadf26e4b20560d35ec0e79d886..bb7e4e505b8389a8be4973ab6abce793d2ba1b1c 100644 +index de0652cec9f8a6b1f4bec03f9f8ce41ff45a3a23..0be973281d0b81736208f8a4dac1e93f5241ae0f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1234,6 +1234,7 @@ public class PurpurWorldConfig { +@@ -1235,6 +1235,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -40,7 +40,7 @@ index 24ac9a497f690fadf26e4b20560d35ec0e79d886..bb7e4e505b8389a8be4973ab6abce793 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1251,6 +1252,7 @@ public class PurpurWorldConfig { +@@ -1252,6 +1253,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); @@ -48,7 +48,7 @@ index 24ac9a497f690fadf26e4b20560d35ec0e79d886..bb7e4e505b8389a8be4973ab6abce793 } public boolean dolphinRidable = false; -@@ -2326,6 +2328,7 @@ public class PurpurWorldConfig { +@@ -2327,6 +2329,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -56,7 +56,7 @@ index 24ac9a497f690fadf26e4b20560d35ec0e79d886..bb7e4e505b8389a8be4973ab6abce793 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2338,6 +2341,7 @@ public class PurpurWorldConfig { +@@ -2339,6 +2342,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); @@ -64,7 +64,7 @@ index 24ac9a497f690fadf26e4b20560d35ec0e79d886..bb7e4e505b8389a8be4973ab6abce793 } public boolean skeletonHorseRidableInWater = true; -@@ -2865,6 +2869,7 @@ public class PurpurWorldConfig { +@@ -2866,6 +2870,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -72,7 +72,7 @@ index 24ac9a497f690fadf26e4b20560d35ec0e79d886..bb7e4e505b8389a8be4973ab6abce793 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2883,6 +2888,7 @@ public class PurpurWorldConfig { +@@ -2884,6 +2889,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/0250-Stop-bees-from-dying-after-stinging.patch b/patches/server/0250-Stop-bees-from-dying-after-stinging.patch index 76288739e..d9e4ac206 100644 --- a/patches/server/0250-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0250-Stop-bees-from-dying-after-stinging.patch @@ -17,10 +17,10 @@ index f2410b90b892a0c9684bc1fb675c0cd35518ca19..353e3aae979181547e5efc9c944ea1c6 ++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 bb7e4e505b8389a8be4973ab6abce793d2ba1b1c..f8109b5d045aaedb3f3b6b1c99d0e88802b5b692 100644 +index 0be973281d0b81736208f8a4dac1e93f5241ae0f..d65b2e173458bfa43e8b320d9623c64f3eef1615 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 { +@@ -1055,6 +1055,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index bb7e4e505b8389a8be4973ab6abce793d2ba1b1c..f8109b5d045aaedb3f3b6b1c99d0e888 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1070,6 +1071,7 @@ public class PurpurWorldConfig { +@@ -1071,6 +1072,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/0252-Configurable-farmland-trample-height.patch b/patches/server/0252-Configurable-farmland-trample-height.patch index 38ed0c071..591964465 100644 --- a/patches/server/0252-Configurable-farmland-trample-height.patch +++ b/patches/server/0252-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 f8109b5d045aaedb3f3b6b1c99d0e88802b5b692..40b6ffc27ceb9cb253f2141505e3f2827e9e2833 100644 +index d65b2e173458bfa43e8b320d9623c64f3eef1615..746faa9d17f1f99ea97eafb22850b02ae81795ad 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -847,6 +847,7 @@ public class PurpurWorldConfig { +@@ -848,6 +848,7 @@ public class PurpurWorldConfig { public boolean farmlandTramplingDisabled = false; public boolean farmlandTramplingOnlyPlayers = false; public boolean farmlandTramplingFeatherFalling = false; @@ -46,7 +46,7 @@ index f8109b5d045aaedb3f3b6b1c99d0e88802b5b692..40b6ffc27ceb9cb253f2141505e3f282 private void farmlandSettings() { farmlandBypassMobGriefing = getBoolean("blocks.farmland.bypass-mob-griefing", farmlandBypassMobGriefing); farmlandGetsMoistFromBelow = getBoolean("blocks.farmland.gets-moist-from-below", farmlandGetsMoistFromBelow); -@@ -854,6 +855,7 @@ public class PurpurWorldConfig { +@@ -855,6 +856,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/0253-Configurable-player-pickup-exp-delay.patch b/patches/server/0253-Configurable-player-pickup-exp-delay.patch index 50e1b258a..db0173116 100644 --- a/patches/server/0253-Configurable-player-pickup-exp-delay.patch +++ b/patches/server/0253-Configurable-player-pickup-exp-delay.patch @@ -37,10 +37,10 @@ index 45e634589ae1bd83de281bacbe2024531d0351fb..64ca2c92c4908bbb0272d1c22870af68 } else if (!entity.isRemoved()) { this.touch(entity); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6944b5fb1f4d01866212012b3c9d8b126e85bf25..98c12d6cdabad4c37d535238c8df47509d5afa25 100644 +index 746faa9d17f1f99ea97eafb22850b02ae81795ad..789eb302e6206666f62bfb49b5f2dbce1b49b1e7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -421,6 +421,7 @@ public class PurpurWorldConfig { +@@ -422,6 +422,7 @@ public class PurpurWorldConfig { public boolean playerRidableInWater = false; public boolean playerRemoveBindingWithWeakness = false; public int shiftRightClickRepairsMendingPoints = 0; @@ -48,7 +48,7 @@ index 6944b5fb1f4d01866212012b3c9d8b126e85bf25..98c12d6cdabad4c37d535238c8df4750 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -449,6 +450,7 @@ public class PurpurWorldConfig { +@@ -450,6 +451,7 @@ public class PurpurWorldConfig { playerRidableInWater = getBoolean("gameplay-mechanics.player.ridable-in-water", playerRidableInWater); playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness); shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints); diff --git a/patches/server/0254-Allow-void-trading.patch b/patches/server/0254-Allow-void-trading.patch index 01c9f41f8..fcfb2f695 100644 --- a/patches/server/0254-Allow-void-trading.patch +++ b/patches/server/0254-Allow-void-trading.patch @@ -18,10 +18,10 @@ index 0c23de7ed20ac3be4a2462a246b5f746706226c6..682a29b24b986c832ce5c6f708fc78c0 } // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e75aad31e260d576bf77d9c293f24aa703b91bc2..968ff32bbab40446c05525f2b4fa3a76e5883a0c 100644 +index 789eb302e6206666f62bfb49b5f2dbce1b49b1e7..262e341a262d22664ef18a9032ab47cf00083d2e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -422,6 +422,7 @@ public class PurpurWorldConfig { +@@ -423,6 +423,7 @@ public class PurpurWorldConfig { public boolean playerRemoveBindingWithWeakness = false; public int shiftRightClickRepairsMendingPoints = 0; public int playerExpPickupDelay = 2; @@ -29,7 +29,7 @@ index e75aad31e260d576bf77d9c293f24aa703b91bc2..968ff32bbab40446c05525f2b4fa3a76 private void playerSettings() { if (PurpurConfig.version < 19) { boolean oldVal = getBoolean("gameplay-mechanics.player.idle-timeout.mods-target", idleTimeoutTargetPlayer); -@@ -451,6 +452,7 @@ public class PurpurWorldConfig { +@@ -452,6 +453,7 @@ public class PurpurWorldConfig { playerRemoveBindingWithWeakness = getBoolean("gameplay-mechanics.player.curse-of-binding.remove-with-weakness", playerRemoveBindingWithWeakness); shiftRightClickRepairsMendingPoints = getInt("gameplay-mechanics.player.shift-right-click-repairs-mending-points", shiftRightClickRepairsMendingPoints); playerExpPickupDelay = getInt("gameplay-mechanics.player.exp-pickup-delay-ticks", playerExpPickupDelay); diff --git a/patches/server/0256-Configurable-phantom-size.patch b/patches/server/0256-Configurable-phantom-size.patch index bf5982383..bf440d401 100644 --- a/patches/server/0256-Configurable-phantom-size.patch +++ b/patches/server/0256-Configurable-phantom-size.patch @@ -22,10 +22,10 @@ index 1afe38e0d83040f4f5702ac3a14ac1e7963b9e5e..08ef919c5e7edfa8f565ecef8f57b549 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ca8e402f8b103bba91ebca99e7b22c8f5b5ed1a9..8a5032807426caabfd46001d6b7f572d4713a896 100644 +index 262e341a262d22664ef18a9032ab47cf00083d2e..adc1875d9e09ad561b71d1c86fc3ac85a77492e1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1985,6 +1985,8 @@ public class PurpurWorldConfig { +@@ -1986,6 +1986,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index ca8e402f8b103bba91ebca99e7b22c8f5b5ed1a9..8a5032807426caabfd46001d6b7f572d private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2027,6 +2029,13 @@ public class PurpurWorldConfig { +@@ -2028,6 +2030,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/0259-Configurable-minimum-demand-for-trades.patch b/patches/server/0259-Configurable-minimum-demand-for-trades.patch index f2760c34b..529f7e9c1 100644 --- a/patches/server/0259-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0259-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 8a5032807426caabfd46001d6b7f572d4713a896..8fedc9a56ec59ab5f3fab6bbe9951a8dec2136f7 100644 +index adc1875d9e09ad561b71d1c86fc3ac85a77492e1..abb66dbcbb02953b01ad468b936170f887185a27 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2663,6 +2663,7 @@ public class PurpurWorldConfig { +@@ -2664,6 +2664,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 8a5032807426caabfd46001d6b7f572d4713a896..8fedc9a56ec59ab5f3fab6bbe9951a8d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2685,6 +2686,7 @@ public class PurpurWorldConfig { +@@ -2686,6 +2687,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/0260-Lobotomize-stuck-villagers.patch b/patches/server/0260-Lobotomize-stuck-villagers.patch index 5a3a0e214..06e379a46 100644 --- a/patches/server/0260-Lobotomize-stuck-villagers.patch +++ b/patches/server/0260-Lobotomize-stuck-villagers.patch @@ -111,10 +111,10 @@ index f0b910df1ee471b4d72d97c6197ab14f2854976e..6ce32a52d621a0c2629568ea07e445f5 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8fedc9a56ec59ab5f3fab6bbe9951a8dec2136f7..f9c12924531dfb06d3ef83e27ae2f08b56961847 100644 +index abb66dbcbb02953b01ad468b936170f887185a27..1ed73814c1d21e175d4f3195e3ea85b5994f1ea2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2664,6 +2664,8 @@ public class PurpurWorldConfig { +@@ -2665,6 +2665,8 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -123,7 +123,7 @@ index 8fedc9a56ec59ab5f3fab6bbe9951a8dec2136f7..f9c12924531dfb06d3ef83e27ae2f08b private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2687,6 +2689,17 @@ public class PurpurWorldConfig { +@@ -2688,6 +2690,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/0261-Option-for-villager-display-trade-item.patch b/patches/server/0261-Option-for-villager-display-trade-item.patch index 714cbcb87..2df92c508 100644 --- a/patches/server/0261-Option-for-villager-display-trade-item.patch +++ b/patches/server/0261-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 385f3df7044e3f03f17c3ec7484b268004a3def9..90ba6a3abf62e4b272fada96b554ca31 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f9c12924531dfb06d3ef83e27ae2f08b56961847..649672e611e4f611b6e4dfab5b29512cc1ea7fa6 100644 +index 1ed73814c1d21e175d4f3195e3ea85b5994f1ea2..12669f27505ae513e78880f986116bdafbf67d27 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2666,6 +2666,7 @@ public class PurpurWorldConfig { +@@ -2667,6 +2667,7 @@ public class PurpurWorldConfig { public int villagerMinimumDemand = 0; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; @@ -28,7 +28,7 @@ index f9c12924531dfb06d3ef83e27ae2f08b56961847..649672e611e4f611b6e4dfab5b29512c private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2700,6 +2701,7 @@ public class PurpurWorldConfig { +@@ -2701,6 +2702,7 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); diff --git a/patches/server/0263-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch b/patches/server/0263-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch index 678979b99..ff02b91c1 100644 --- a/patches/server/0263-MC-238526-Fix-spawner-not-spawning-water-animals-cor.patch +++ b/patches/server/0263-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 649672e611e4f611b6e4dfab5b29512cc1ea7fa6..6164eaf88e7ad804c595f4b842923b3951a35130 100644 +index 12669f27505ae513e78880f986116bdafbf67d27..8e99c1cdb378f18d790098bc628d67d0ea0ebd02 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -955,8 +955,10 @@ public class PurpurWorldConfig { +@@ -956,8 +956,10 @@ public class PurpurWorldConfig { } public boolean spawnerDeactivateByRedstone = false; diff --git a/patches/server/0264-Config-for-mob-last-hurt-by-player-time.patch b/patches/server/0264-Config-for-mob-last-hurt-by-player-time.patch index 7a97bd0fb..998ce544f 100644 --- a/patches/server/0264-Config-for-mob-last-hurt-by-player-time.patch +++ b/patches/server/0264-Config-for-mob-last-hurt-by-player-time.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Config for mob last hurt by player time diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 7a014d6f6aab9af7356c454570d92d1b83f27f91..b37d3f293cf73730626f0a7da84058f42f071181 100644 +index f04ce887e314110a136b4bff91d55d2ef35366b4..b391e04a1de88f465e609cbcd77ba97e3d851fb3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1441,13 +1441,13 @@ public abstract class LivingEntity extends Entity { @@ -25,7 +25,7 @@ index 7a014d6f6aab9af7356c454570d92d1b83f27f91..b37d3f293cf73730626f0a7da84058f4 if (entityliving != null && entityliving.getType() == EntityType.PLAYER) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index cf90fc5490070b58d7988dacaeae326c56defc7c..5711535e40e3174049deb39b72c760a225a0fd2f 100644 +index 8a7c027a77122045aeebbdc20d00824ffe25526f..37bcc72ce132f7901460f25d700dba1bac6c210f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -427,7 +427,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -38,10 +38,10 @@ index cf90fc5490070b58d7988dacaeae326c56defc7c..5711535e40e3174049deb39b72c760a2 // Paper end diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 102bf2f18de4f3d11d6620c8666bb5c3385133d2..be7a45715bb999b1c7b8a00d00bb1322240ccc6e 100644 +index 8e99c1cdb378f18d790098bc628d67d0ea0ebd02..ca6eedfce3e5206c0d98fba4d5555889a4b20efe 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -144,6 +144,7 @@ public class PurpurWorldConfig { +@@ -145,6 +145,7 @@ public class PurpurWorldConfig { public boolean mobsIgnoreRails = false; public boolean rainStopsAfterSleep = true; public boolean thunderStopsAfterSleep = true; @@ -49,7 +49,7 @@ index 102bf2f18de4f3d11d6620c8666bb5c3385133d2..be7a45715bb999b1c7b8a00d00bb1322 private void miscGameplayMechanicsSettings() { useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending); alwaysTameInCreative = getBoolean("gameplay-mechanics.always-tame-in-creative", alwaysTameInCreative); -@@ -169,6 +170,7 @@ public class PurpurWorldConfig { +@@ -170,6 +171,7 @@ public class PurpurWorldConfig { mobsIgnoreRails = getBoolean("gameplay-mechanics.mobs-ignore-rails", mobsIgnoreRails); rainStopsAfterSleep = getBoolean("gameplay-mechanics.rain-stops-after-sleep", rainStopsAfterSleep); thunderStopsAfterSleep = getBoolean("gameplay-mechanics.thunder-stops-after-sleep", thunderStopsAfterSleep); diff --git a/patches/server/0265-Anvil-repair-damage-options.patch b/patches/server/0265-Anvil-repair-damage-options.patch index 3207d926f..257f4d8d3 100644 --- a/patches/server/0265-Anvil-repair-damage-options.patch +++ b/patches/server/0265-Anvil-repair-damage-options.patch @@ -64,10 +64,10 @@ index 1b23352a9deae37f9c947fef1b1f8a2875507cfa..ad5aad3682926e2e8965bb87ad8d5381 return InteractionResult.SUCCESS; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7d08e462f20a5f8f0263d3786b35219c618e259a..bd7295f82c963b95b32e9115bc9f4b380852f001 100644 +index ca6eedfce3e5206c0d98fba4d5555889a4b20efe..9f908b0bf7f8ecc81359410d78df2c62fcef1400 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -717,8 +717,12 @@ public class PurpurWorldConfig { +@@ -718,8 +718,12 @@ public class PurpurWorldConfig { } public boolean anvilAllowColors = false; diff --git a/patches/server/0267-Option-to-disable-turtle-egg-trampling-with-feather-.patch b/patches/server/0267-Option-to-disable-turtle-egg-trampling-with-feather-.patch index 5c376457a..4db345f3f 100644 --- a/patches/server/0267-Option-to-disable-turtle-egg-trampling-with-feather-.patch +++ b/patches/server/0267-Option-to-disable-turtle-egg-trampling-with-feather-.patch @@ -20,10 +20,10 @@ index 5e6df1d6cbaecb986d1b8d382fe673a2cbb76115..6151226a88a9ca44955821521641e788 // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 62ca4bf71d0bb4da7d1e02340bd6178187fafcd1..8627d0a762fc483d6452f922dcf76b1d89736664 100644 +index 9f908b0bf7f8ecc81359410d78df2c62fcef1400..78f72206306abc87562d4221bfe2852f46fb5c44 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -981,12 +981,14 @@ public class PurpurWorldConfig { +@@ -982,12 +982,14 @@ public class PurpurWorldConfig { public boolean turtleEggsBreakFromMinecarts = true; public boolean turtleEggsBypassMobGriefing = false; public int turtleEggsRandomTickCrackChance = 500; diff --git a/patches/server/0269-Config-to-prevent-horses-from-standing-when-hurt.patch b/patches/server/0269-Config-to-prevent-horses-from-standing-when-hurt.patch index 8b3889dee..b062982ec 100644 --- a/patches/server/0269-Config-to-prevent-horses-from-standing-when-hurt.patch +++ b/patches/server/0269-Config-to-prevent-horses-from-standing-when-hurt.patch @@ -21,10 +21,10 @@ index 7466c437b2e996f16a08aaefc5c2b7cba216a14c..205ce2bd91a98a0c67d3c5dd640eb88c } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8627d0a762fc483d6452f922dcf76b1d89736664..20c13ac8e3001e7dde0b33ec5292f4bffc54cf24 100644 +index 78f72206306abc87562d4221bfe2852f46fb5c44..a568910fd892383a1f779e47416da66883d7f9bb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1677,6 +1677,7 @@ public class PurpurWorldConfig { +@@ -1678,6 +1678,7 @@ public class PurpurWorldConfig { public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; public boolean horseStandWithRider = true; @@ -32,7 +32,7 @@ index 8627d0a762fc483d6452f922dcf76b1d89736664..20c13ac8e3001e7dde0b33ec5292f4bf public boolean horseAlwaysDropExp = false; private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); -@@ -1696,6 +1697,7 @@ public class PurpurWorldConfig { +@@ -1697,6 +1698,7 @@ public class PurpurWorldConfig { horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); horseStandWithRider = getBoolean("mobs.horse.stand-with-rider", horseStandWithRider); diff --git a/patches/server/0271-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0271-Implement-configurable-search-radius-for-villagers-t.patch index 6ba5cc53f..b39a1a127 100644 --- a/patches/server/0271-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0271-Implement-configurable-search-radius-for-villagers-t.patch @@ -18,10 +18,10 @@ index ace39b0585c67b2764d75ff9e64d132347157a51..20668d53625ec88ba3eb2a655ad3f6bc 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 20c13ac8e3001e7dde0b33ec5292f4bffc54cf24..0790f610a00ce78fb03910eaa0d30dac5abc7ecd 100644 +index a568910fd892383a1f779e47416da66883d7f9bb..45d022c879111930bf13521659351580283bb6d9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2679,6 +2679,8 @@ public class PurpurWorldConfig { +@@ -2680,6 +2680,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index 20c13ac8e3001e7dde0b33ec5292f4bffc54cf24..0790f610a00ce78fb03910eaa0d30dac private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2714,6 +2716,8 @@ public class PurpurWorldConfig { +@@ -2715,6 +2717,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/0272-Stonecutter-damage.patch b/patches/server/0272-Stonecutter-damage.patch index c291f78ac..13b8c313e 100644 --- a/patches/server/0272-Stonecutter-damage.patch +++ b/patches/server/0272-Stonecutter-damage.patch @@ -95,10 +95,10 @@ index 46b6a8d0e833f6e92076752f7af8f8dc597292bf..a682e1852ec6ae82e15ed62ae19172e4 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 0790f610a00ce78fb03910eaa0d30dac5abc7ecd..059c76b596619ee8465538c984c9db05e618e15b 100644 +index 45d022c879111930bf13521659351580283bb6d9..ab049201286e1d23c5105d5ea271479a0392bf8a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -976,6 +976,11 @@ public class PurpurWorldConfig { +@@ -977,6 +977,11 @@ public class PurpurWorldConfig { spongeAbsorbsLava = getBoolean("blocks.sponge.absorbs-lava", spongeAbsorbsLava); } diff --git a/patches/server/0273-Configurable-damage-settings-for-magma-blocks.patch b/patches/server/0273-Configurable-damage-settings-for-magma-blocks.patch index c21bdaf33..091856652 100644 --- a/patches/server/0273-Configurable-damage-settings-for-magma-blocks.patch +++ b/patches/server/0273-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 059c76b596619ee8465538c984c9db05e618e15b..8e832cb130e80ab6ed444e22d34aa1bd87cb1eef 100644 +index ab049201286e1d23c5105d5ea271479a0392bf8a..71462ad26d80b85a1bc3eb911868aa793a12ed94 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -912,6 +912,13 @@ public class PurpurWorldConfig { +@@ -913,6 +913,13 @@ public class PurpurWorldConfig { pistonBlockPushLimit = getInt("blocks.piston.block-push-limit", pistonBlockPushLimit); } diff --git a/patches/server/0274-Add-config-for-snow-on-blue-ice.patch b/patches/server/0274-Add-config-for-snow-on-blue-ice.patch index da9f71a68..433e64f56 100644 --- a/patches/server/0274-Add-config-for-snow-on-blue-ice.patch +++ b/patches/server/0274-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 8e832cb130e80ab6ed444e22d34aa1bd87cb1eef..35282087bc8a492ac0142cf1ff66b81626c998ee 100644 +index 71462ad26d80b85a1bc3eb911868aa793a12ed94..3f217be05e4e6b9a05a198e87a2395a4d3662779 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -891,9 +891,11 @@ public class PurpurWorldConfig { +@@ -892,9 +892,11 @@ public class PurpurWorldConfig { public boolean mobsSpawnOnPackedIce = true; public boolean mobsSpawnOnBlueIce = true; diff --git a/patches/server/0276-Skeletons-eat-wither-roses.patch b/patches/server/0276-Skeletons-eat-wither-roses.patch index 9d2d84143..b9536a0a2 100644 --- a/patches/server/0276-Skeletons-eat-wither-roses.patch +++ b/patches/server/0276-Skeletons-eat-wither-roses.patch @@ -94,10 +94,10 @@ index 51c548cd84bd83624fbff3f853a8050dc1e71ecd..a5ab36fdd0751cb3b96525d53bbaec33 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 35282087bc8a492ac0142cf1ff66b81626c998ee..a207a5420b0ab6e1fbdff1c2c6ac58cfc0f47edb 100644 +index 3f217be05e4e6b9a05a198e87a2395a4d3662779..4adda9fe137b4e419eec3423f5861f242e46e2fb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2372,6 +2372,7 @@ public class PurpurWorldConfig { +@@ -2373,6 +2373,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index 35282087bc8a492ac0142cf1ff66b81626c998ee..a207a5420b0ab6e1fbdff1c2c6ac58cf private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2385,6 +2386,7 @@ public class PurpurWorldConfig { +@@ -2386,6 +2387,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/0277-Enchantment-Table-Persists-Lapis.patch b/patches/server/0277-Enchantment-Table-Persists-Lapis.patch index 2bafd3957..838fc29f1 100644 --- a/patches/server/0277-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0277-Enchantment-Table-Persists-Lapis.patch @@ -146,10 +146,10 @@ index 2341a5a249d455628165fc6ba508fc6d70c3dbfb..4ccb8a7dc4201a7cffa59e4195765001 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a207a5420b0ab6e1fbdff1c2c6ac58cfc0f47edb..bbe803fd901c8642ac49696a0ba10f98662865c6 100644 +index 4adda9fe137b4e419eec3423f5861f242e46e2fb..3c05d5a38b5833238d974a95a8e92158d8fb5a0d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1393,6 +1393,11 @@ public class PurpurWorldConfig { +@@ -1394,6 +1394,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } diff --git a/patches/server/0280-Config-for-sculk-shrieker-can_summon-state.patch b/patches/server/0280-Config-for-sculk-shrieker-can_summon-state.patch index 58046c453..9c1fbc926 100644 --- a/patches/server/0280-Config-for-sculk-shrieker-can_summon-state.patch +++ b/patches/server/0280-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 bbe803fd901c8642ac49696a0ba10f98662865c6..7cd470919e4ecc25190d03161f1943b499951864 100644 +index 3c05d5a38b5833238d974a95a8e92158d8fb5a0d..01884d6fe013faa361cf79f1dd27ac9808d00d20 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -952,6 +952,11 @@ public class PurpurWorldConfig { +@@ -953,6 +953,11 @@ public class PurpurWorldConfig { fixSandDuping = getBoolean("blocks.sand.fix-duping", fixSandDuping); } diff --git a/patches/server/0281-Config-to-not-let-coral-die.patch b/patches/server/0281-Config-to-not-let-coral-die.patch index 665704f19..e95f626d0 100644 --- a/patches/server/0281-Config-to-not-let-coral-die.patch +++ b/patches/server/0281-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 7cd470919e4ecc25190d03161f1943b499951864..6f108e0a7d35c35ff5b0842534c62a277e0aae36 100644 +index 01884d6fe013faa361cf79f1dd27ac9808d00d20..9c9f0ae1a8b21dedcbaf46af8e605f62ff00731e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -800,6 +800,11 @@ public class PurpurWorldConfig { +@@ -801,6 +801,11 @@ public class PurpurWorldConfig { composterBulkProcess = getBoolean("blocks.composter.sneak-to-bulk-process", composterBulkProcess); } diff --git a/patches/server/0283-Add-toggle-for-RNG-manipulation.patch b/patches/server/0283-Add-toggle-for-RNG-manipulation.patch index ecc812c57..485448fcd 100644 --- a/patches/server/0283-Add-toggle-for-RNG-manipulation.patch +++ b/patches/server/0283-Add-toggle-for-RNG-manipulation.patch @@ -33,10 +33,10 @@ index 21f5304e01e0844f1bbf3e1b2f9d50c01f8bf8fd..8afdb5d4fecbb45bad2ed801fc0e526d } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a753df2337dcd5a27c5dae26e93a5a8e5db5e575..f6316a9658241beab425ea51a5dfcc32d578d5ac 100644 +index 9c9f0ae1a8b21dedcbaf46af8e605f62ff00731e..b36da7cf4267ea537a2fad0bc4c87a456e311a3b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -206,9 +206,11 @@ public class PurpurWorldConfig { +@@ -207,9 +207,11 @@ public class PurpurWorldConfig { public int entityLifeSpan = 0; public float entityLeftHandedChance = 0.05f; diff --git a/patches/server/0294-mob-spawning-option-to-ignore-creative-players.patch b/patches/server/0294-mob-spawning-option-to-ignore-creative-players.patch index e98997406..c1806c09b 100644 --- a/patches/server/0294-mob-spawning-option-to-ignore-creative-players.patch +++ b/patches/server/0294-mob-spawning-option-to-ignore-creative-players.patch @@ -18,10 +18,10 @@ index 4a8998a98987985e259b0a2a29ee7c94c1f3a4b1..17a93a11a3b69128defc392816858d95 if (entityhuman != null) { double d2 = entityhuman.distanceToSqr(d0, (double) i, d1); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2a3ae8ba73a547d02e7a635321e4534de7daafdc..45eebbc1993b53b4d01317c6089b619f026d53ed 100644 +index b36da7cf4267ea537a2fad0bc4c87a456e311a3b..9548cd7a28d7d7a1b8ad82e05e4fbe48607ceb31 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -375,6 +375,7 @@ public class PurpurWorldConfig { +@@ -376,6 +376,7 @@ public class PurpurWorldConfig { public boolean phantomSpawning; public boolean villagerTraderSpawning; public boolean villageSiegeSpawning; @@ -29,7 +29,7 @@ index 2a3ae8ba73a547d02e7a635321e4534de7daafdc..45eebbc1993b53b4d01317c6089b619f private void mobSpawnerSettings() { // values of "default" or null will default to true only if the world environment is normal (aka overworld) Predicate predicate = (bool) -> (bool != null && bool) || (bool == null && environment == World.Environment.NORMAL); -@@ -383,6 +384,7 @@ public class PurpurWorldConfig { +@@ -384,6 +385,7 @@ public class PurpurWorldConfig { phantomSpawning = getBoolean("gameplay-mechanics.mob-spawning.phantoms", predicate); villagerTraderSpawning = getBoolean("gameplay-mechanics.mob-spawning.wandering-traders", predicate); villageSiegeSpawning = getBoolean("gameplay-mechanics.mob-spawning.village-sieges", predicate); diff --git a/patches/server/0296-Add-skeleton-bow-accuracy-option.patch b/patches/server/0296-Add-skeleton-bow-accuracy-option.patch index 1235c91a6..714202b1c 100644 --- a/patches/server/0296-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0296-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 b382227dd6ab8bdfefabcb2f154b2644b51521fa..76187e610e5bd4506d7c6f15d711a2e10f2c7b6e 100644 +index 9548cd7a28d7d7a1b8ad82e05e4fbe48607ceb31..ac9abf47a0acb7181d42f0838c48c78e0a91745c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2392,6 +2392,8 @@ public class PurpurWorldConfig { +@@ -2393,6 +2393,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index b382227dd6ab8bdfefabcb2f154b2644b51521fa..76187e610e5bd4506d7c6f15d711a2e1 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2406,6 +2408,18 @@ public class PurpurWorldConfig { +@@ -2407,6 +2409,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/0298-Allay-respect-item-NBT.patch b/patches/server/0298-Allay-respect-item-NBT.patch index ec241afce..672e33478 100644 --- a/patches/server/0298-Allay-respect-item-NBT.patch +++ b/patches/server/0298-Allay-respect-item-NBT.patch @@ -52,10 +52,10 @@ index c233533fdacb4f5e635267b5fc9fe21bc8b3c51a..4e77bb2be5a35bc6b002e2eae4af4193 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 76187e610e5bd4506d7c6f15d711a2e10f2c7b6e..14e25acc82c51afe491584aef2cd95d2480213ed 100644 +index ac9abf47a0acb7181d42f0838c48c78e0a91745c..cdde362f933a385495ab429b92fa5d1516424ce3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1038,10 +1038,13 @@ public class PurpurWorldConfig { +@@ -1039,10 +1039,13 @@ public class PurpurWorldConfig { public boolean allayRidable = false; public boolean allayRidableInWater = false; public boolean allayControllable = true; diff --git a/patches/server/0303-Implement-squid-colors-for-rainglow-fabric-mod.patch b/patches/server/0303-Implement-squid-colors-for-rainglow-fabric-mod.patch new file mode 100644 index 000000000..431331f5b --- /dev/null +++ b/patches/server/0303-Implement-squid-colors-for-rainglow-fabric-mod.patch @@ -0,0 +1,128 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Sat, 1 Oct 2022 16:01:07 -0500 +Subject: [PATCH] Implement squid colors for rainglow fabric mod + + +diff --git a/src/main/java/net/minecraft/world/entity/GlowSquid.java b/src/main/java/net/minecraft/world/entity/GlowSquid.java +index b7abcaa32341c292f9f884fa6319fd65596e1b37..5d6cddc221887be20ef75d688817dfe527e73362 100644 +--- a/src/main/java/net/minecraft/world/entity/GlowSquid.java ++++ b/src/main/java/net/minecraft/world/entity/GlowSquid.java +@@ -18,6 +18,7 @@ import net.minecraft.world.level.block.Blocks; + + public class GlowSquid extends Squid { + private static final EntityDataAccessor DATA_DARK_TICKS_REMAINING = SynchedEntityData.defineId(GlowSquid.class, EntityDataSerializers.INT); ++ private static final net.minecraft.network.syncher.EntityDataAccessor SQUID_COLOR = net.minecraft.network.syncher.SynchedEntityData.defineId(GlowSquid.class, net.minecraft.network.syncher.EntityDataSerializers.STRING); // Purpur + + public GlowSquid(EntityType type, Level world) { + super(type, world); +@@ -69,6 +70,7 @@ public class GlowSquid extends Squid { + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(DATA_DARK_TICKS_REMAINING, 0); ++ this.entityData.define(SQUID_COLOR, this.level.purpurConfig.glowSquidColorMode.getRandom(this.random).toString()); // Purpur + } + + @Override +@@ -95,12 +97,14 @@ public class GlowSquid extends Squid { + public void addAdditionalSaveData(CompoundTag nbt) { + super.addAdditionalSaveData(nbt); + nbt.putInt("DarkTicksRemaining", this.getDarkTicksRemaining()); ++ nbt.putString("Colour", this.entityData.get(SQUID_COLOR)); // Purpur - key must match rainglow + } + + @Override + public void readAdditionalSaveData(CompoundTag nbt) { + super.readAdditionalSaveData(nbt); + this.setDarkTicks(nbt.getInt("DarkTicksRemaining")); ++ if (nbt.contains("Colour")) this.entityData.set(SQUID_COLOR, nbt.getString("Colour")); // Purpur - key must match rainglow + } + + @Override +diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +index cdde362f933a385495ab429b92fa5d1516424ce3..df0668c1f35c1acca1de7f81c8afaa06c2e21082 100644 +--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java ++++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +@@ -1631,6 +1631,7 @@ public class PurpurWorldConfig { + public boolean glowSquidsCanFly = false; + public boolean glowSquidTakeDamageFromWater = false; + public boolean glowSquidAlwaysDropExp = false; ++ public GlowSquidColor.Mode glowSquidColorMode = GlowSquidColor.Mode.RAINBOW; + private void glowSquidSettings() { + glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable); + glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable); +@@ -1638,6 +1639,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); ++ glowSquidColorMode = GlowSquidColor.Mode.get(getString("mobs.glow_squid.rainglow-mode", glowSquidColorMode.toString())); + } + + public boolean goatRidable = false; +diff --git a/src/main/java/org/purpurmc/purpur/entity/GlowSquidColor.java b/src/main/java/org/purpurmc/purpur/entity/GlowSquidColor.java +new file mode 100644 +index 0000000000000000000000000000000000000000..c90256f4c16ffdb2d8e767e837ea36ac7a6613be +--- /dev/null ++++ b/src/main/java/org/purpurmc/purpur/entity/GlowSquidColor.java +@@ -0,0 +1,61 @@ ++package org.purpurmc.purpur.entity; ++ ++import net.minecraft.util.RandomSource; ++ ++import java.util.ArrayList; ++import java.util.Arrays; ++import java.util.HashMap; ++import java.util.List; ++import java.util.Locale; ++import java.util.Map; ++ ++public enum GlowSquidColor { ++ BLUE, RED, GREEN, PINK, YELLOW, ORANGE, INDIGO, PURPLE, WHITE, GRAY, BLACK; ++ ++ @Override ++ public String toString() { ++ return this.name().toLowerCase(Locale.ROOT); ++ } ++ ++ public enum Mode { ++ RAINBOW(RED, ORANGE, YELLOW, GREEN, BLUE, INDIGO, PURPLE), ++ ALL_COLORS(BLUE, RED, GREEN, PINK, YELLOW, ORANGE, INDIGO, PURPLE, WHITE, GRAY, BLACK), ++ TRANS_PRIDE(BLUE, WHITE, PINK), ++ LESBIAN_PRIDE(RED, ORANGE, WHITE, PINK, PURPLE), ++ BI_PRIDE(BLUE, PINK, PURPLE), ++ GAY_PRIDE(BLUE, GREEN, WHITE), ++ PAN_PRIDE(PINK, YELLOW, BLUE), ++ ACE_PRIDE(BLACK, GRAY, WHITE, PURPLE), ++ ARO_PRIDE(BLACK, GRAY, WHITE, GREEN), ++ ENBY_PRIDE(YELLOW, WHITE, BLACK, PURPLE), ++ GENDERFLUID(PURPLE, WHITE, BLACK, PINK, BLUE), ++ MONOCHROME(BLACK, GRAY, WHITE), ++ VANILLA(BLUE); ++ ++ private static final Map BY_NAME = new HashMap<>(); ++ ++ static { ++ Arrays.stream(values()).forEach(mode -> BY_NAME.put(mode.name(), mode)); ++ } ++ ++ private final List colors = new ArrayList<>(); ++ ++ Mode(GlowSquidColor... colors) { ++ this.colors.addAll(Arrays.stream(colors).toList()); ++ } ++ ++ public static Mode get(String string) { ++ Mode mode = BY_NAME.get(string.toUpperCase(Locale.ROOT)); ++ return mode == null ? RAINBOW : mode; ++ } ++ ++ public GlowSquidColor getRandom(RandomSource random) { ++ return this.colors.get(random.nextInt(this.colors.size())); ++ } ++ ++ @Override ++ public String toString() { ++ return this.name().toLowerCase(Locale.ROOT); ++ } ++ } ++}