diff --git a/TODO.md b/TODO.md index d0f42a4ce..4aef02ae3 100644 --- a/TODO.md +++ b/TODO.md @@ -1,6 +1,6 @@ - [x] make Sniffer ridable - [x] give Sniffer entity attributes config -- [ ] fix ridables around water +- [x] fix ridables around water - [ ] test player ridable underwater - [ ] OPTIONAL: custom damage type instead of magic for scissors & stone cutter patch - [x] flip the boolean in the "display names from item forms of entities to entities" patch to keep feature parity with vanilla @@ -16,4 +16,6 @@ - [ ] re-implement options for zombie horse ### once above is complete: -- [ ] make announcement about flipped defaults ("persistent-droppable-entity-display-names", "set-name-visible-when-placing-with-custom-name") +- [ ] make announcement about changes + - flipped defaults ("persistent-droppable-entity-display-names", "set-name-visible-when-placing-with-custom-name") + - must disable `ridable-settings.use-dismounts-underwater-tag` for `RidableInWater` options to work, updated default values to reflect `DismountsUnderwaterTag`. \ No newline at end of file diff --git a/patches/server/0006-Ridables.patch b/patches/server/0006-Ridables.patch index 652b00b96..72f79d46e 100644 --- a/patches/server/0006-Ridables.patch +++ b/patches/server/0006-Ridables.patch @@ -538,7 +538,7 @@ index 7df56705a4a0de2dc4ff7ab133fc26612c219162..60d21d6171b9af20a4c6fcc0d564a31a } diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index f5efdf59617d43de18a2267351fa784c0be3ae83..24733d2b967cc9d332ad8c3b8beb0c141e18ee77 100644 +index f5efdf59617d43de18a2267351fa784c0be3ae83..a48d40e4242f35c6830286739172459635be3e43 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -18,6 +18,7 @@ import net.minecraft.world.entity.EntityDimensions; @@ -571,7 +571,7 @@ index f5efdf59617d43de18a2267351fa784c0be3ae83..24733d2b967cc9d332ad8c3b8beb0c14 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.batRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.batRidableInWater; + } + + @Override @@ -690,7 +690,7 @@ index 1f85f34c1e50f34fb270d2fac7d307c82a550bfa..324f52edd95b5f9a498e46def8c14435 double d = this.wantedX - this.fish.getX(); double e = this.wantedY - this.fish.getY(); 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 c33e5c51839c8e6ec04c1b302127d2bf0f48664c..605707839ca61c24d4a30e7a219875be09512ade 100644 +index c33e5c51839c8e6ec04c1b302127d2bf0f48664c..9881c77aca7a0b25d1dda9c5a89c367df516743f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -43,6 +43,7 @@ import net.minecraft.world.entity.EntityType; @@ -746,7 +746,7 @@ index c33e5c51839c8e6ec04c1b302127d2bf0f48664c..605707839ca61c24d4a30e7a219875be + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.beeRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.beeRidableInWater; + } + + @Override @@ -812,7 +812,7 @@ index c33e5c51839c8e6ec04c1b302127d2bf0f48664c..605707839ca61c24d4a30e7a219875be } 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 72b30a5cdeb8a43702d9ab5f198311929761fad1..516186c322114d835141ce6440df7c0232272b72 100644 +index 72b30a5cdeb8a43702d9ab5f198311929761fad1..a708cacf755ce82042452558bef3140361b945c2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -97,6 +97,31 @@ public class Cat extends TamableAnimal implements VariantHolder { @@ -827,7 +827,7 @@ index 72b30a5cdeb8a43702d9ab5f198311929761fad1..516186c322114d835141ce6440df7c02 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.catRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.catRidableInWater; + } + + @Override @@ -872,7 +872,7 @@ index 72b30a5cdeb8a43702d9ab5f198311929761fad1..516186c322114d835141ce6440df7c02 Item item = itemstack.getItem(); diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java -index b4dc621cb1be7cb4bf1cb31f921d4e9f6cffef88..526a7104ef44a7ccb24b9afada7cb602f8a8b7a9 100644 +index b4dc621cb1be7cb4bf1cb31f921d4e9f6cffef88..a2c72f9c90aa95d50ee9fb0e278171a6a0cee2a5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java +++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java @@ -54,9 +54,27 @@ public class Chicken extends Animal { @@ -887,7 +887,7 @@ index b4dc621cb1be7cb4bf1cb31f921d4e9f6cffef88..526a7104ef44a7ccb24b9afada7cb602 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.chickenRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.chickenRidableInWater; + } + + @Override @@ -927,7 +927,7 @@ index 824e5e4fe7619ae46061c3c978c9a044db8c84ab..718b064fa3fb3d1a00f786ff839c91ce public ItemStack getBucketItemStack() { return new ItemStack(Items.COD_BUCKET); diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java -index abae850f5babfd75c7547e88fb7637e9775991d3..f71ba5d1a52f7e23d23939e91049e8aa9fbd15b0 100644 +index abae850f5babfd75c7547e88fb7637e9775991d3..2424ff760fc7dd91962e070f373ebf8e21f41b7d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cow.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java @@ -41,9 +41,27 @@ public class Cow extends Animal { @@ -942,7 +942,7 @@ index abae850f5babfd75c7547e88fb7637e9775991d3..f71ba5d1a52f7e23d23939e91049e8aa + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.cowRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.cowRidableInWater; + } + + @Override @@ -1101,7 +1101,7 @@ index e93abb02744b5cd8db88e01b6ccf145498903b11..106caca10bdd8dd546b6de24594afe23 this.setAirSupply(this.getMaxAirSupply()); } else { diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 89894bc6a55bc7e456a9d49ac48f6a8192b890ae..2557e8dbc13cdb3ea64781b029a0bdf1341b4e04 100644 +index 89894bc6a55bc7e456a9d49ac48f6a8192b890ae..eb7f96f7b1583dfeb8e57a1984ed8cabeac0a2fe 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -141,6 +141,44 @@ public class Fox extends Animal implements VariantHolder { @@ -1116,7 +1116,7 @@ index 89894bc6a55bc7e456a9d49ac48f6a8192b890ae..2557e8dbc13cdb3ea64781b029a0bdf1 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.foxRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.foxRidableInWater; + } + + @Override @@ -1206,7 +1206,7 @@ index 89894bc6a55bc7e456a9d49ac48f6a8192b890ae..2557e8dbc13cdb3ea64781b029a0bdf1 } diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java -index 4fbbd74cda7e4f2c623db46c2c94d9697ca5df05..b78ef3626fe62d79e9edbf3279cb2cc773a6be32 100644 +index 4fbbd74cda7e4f2c623db46c2c94d9697ca5df05..44db31b9f93970a65735eab4850dc799e6bdf002 100644 --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java @@ -69,8 +69,27 @@ public class IronGolem extends AbstractGolem implements NeutralMob { @@ -1221,7 +1221,7 @@ index 4fbbd74cda7e4f2c623db46c2c94d9697ca5df05..b78ef3626fe62d79e9edbf3279cb2cc7 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.ironGolemRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.ironGolemRidableInWater; + } + + @Override @@ -1262,7 +1262,7 @@ index 4fbbd74cda7e4f2c623db46c2c94d9697ca5df05..b78ef3626fe62d79e9edbf3279cb2cc7 float f1 = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F; diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java -index 68a5ee85e64802e4509ba0d184fc0ceb3cbe2d11..1e9c75d9fd41c164d8853488fdbe4ed145e0f004 100644 +index 68a5ee85e64802e4509ba0d184fc0ceb3cbe2d11..b27e7381db833f4583a32b4276caddf277f5d25c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java @@ -63,6 +63,23 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder pair = (Pair) optional.get(); diff --git a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java -index f889e86bd6355ed72b85bf322d09ac2be4fb4954..939b1e9c9eb6d364658ad5a6ade44f17443969f7 100644 +index f889e86bd6355ed72b85bf322d09ac2be4fb4954..04bb867096f6d8203ec5058f9958704f8efada71 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Ocelot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Ocelot.java @@ -68,6 +68,23 @@ public class Ocelot extends Animal { @@ -1323,7 +1323,7 @@ index f889e86bd6355ed72b85bf322d09ac2be4fb4954..939b1e9c9eb6d364658ad5a6ade44f17 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.ocelotRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.ocelotRidableInWater; + } + + @Override @@ -1351,7 +1351,7 @@ index f889e86bd6355ed72b85bf322d09ac2be4fb4954..939b1e9c9eb6d364658ad5a6ade44f17 this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, false, false, Turtle.BABY_ON_LAND_SELECTOR)); } diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 9c1e02c3a990cd0f8bba1c84c170b438278c02a7..a4a244ecc85d478faea0b1bd17809c77a8d88830 100644 +index 9c1e02c3a990cd0f8bba1c84c170b438278c02a7..5212e531d500fa7272561fea4fc62d15a077c7d6 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -108,6 +108,32 @@ public class Panda extends Animal { @@ -1366,7 +1366,7 @@ index 9c1e02c3a990cd0f8bba1c84c170b438278c02a7..a4a244ecc85d478faea0b1bd17809c77 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.pandaRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.pandaRidableInWater; + } + + @Override @@ -1452,7 +1452,7 @@ index 9c1e02c3a990cd0f8bba1c84c170b438278c02a7..a4a244ecc85d478faea0b1bd17809c77 } } diff --git a/src/main/java/net/minecraft/world/entity/animal/Parrot.java b/src/main/java/net/minecraft/world/entity/animal/Parrot.java -index e6e40770acf71b9079e8f6ac07025319dd8e2e4e..23209f27c02bdd7e7a986cca03e90f03057024f3 100644 +index e6e40770acf71b9079e8f6ac07025319dd8e2e4e..644324e05f5bc82beb911a65085a1b8dbf7259ab 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Parrot.java +++ b/src/main/java/net/minecraft/world/entity/animal/Parrot.java @@ -129,12 +129,68 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder { @@ -1696,7 +1696,7 @@ index 2e75066db6cf4903f04428b73c4e868988776920..2fe90301d15895863bd7651e7f6ce526 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.rabbitRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.rabbitRidableInWater; + } + + @Override @@ -1831,7 +1831,7 @@ index 0af79daa357f53a8871e293b57e16c099e5d3f64..cc1e6f9d0ee241f32878ed96820f17cc public int getMaxSchoolSize() { return 5; diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java -index fb3777e158065a6ce306a2a6e66bec053da2aeb4..6da1ab2aa26a1e09d20176504c2134b4cdad17b3 100644 +index fb3777e158065a6ce306a2a6e66bec053da2aeb4..99c55d6bae08d75ae19c5dc004ca577e44b589a4 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java @@ -116,10 +116,28 @@ public class Sheep extends Animal implements Shearable { @@ -1846,7 +1846,7 @@ index fb3777e158065a6ce306a2a6e66bec053da2aeb4..6da1ab2aa26a1e09d20176504c2134b4 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.sheepRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.sheepRidableInWater; + } + + @Override @@ -1864,7 +1864,7 @@ index fb3777e158065a6ce306a2a6e66bec053da2aeb4..6da1ab2aa26a1e09d20176504c2134b4 this.goalSelector.addGoal(2, new BreedGoal(this, 1.0D)); this.goalSelector.addGoal(3, new TemptGoal(this, 1.1D, Ingredient.of(Items.WHEAT), false)); diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index 5437571ce76c62e9cae841e99127867fffb39f43..e50847a88228d1b71d59339a633911911218f912 100644 +index 5437571ce76c62e9cae841e99127867fffb39f43..383302ab11d2e62cc4ca135fda9c1ebe566491e5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -54,12 +54,31 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -1879,7 +1879,7 @@ index 5437571ce76c62e9cae841e99127867fffb39f43..e50847a88228d1b71d59339a63391191 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.snowGolemRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.snowGolemRidableInWater; + } + + @Override @@ -2025,7 +2025,7 @@ index b05b560b7570e97bc234b75f26233909fcf575b3..7c90f91685845329845a8c81f87ad9f6 return "entity.minecraft.tropical_fish.predefined." + variant; } diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 81dab77f525ae667614f940c4ff5ec308a9579a2..fbfae6297769d79b87b0db63a88ce4f904d801d0 100644 +index 81dab77f525ae667614f940c4ff5ec308a9579a2..ea66c2976401752688fdf9ee44802c79ea8545a1 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -83,6 +83,23 @@ public class Turtle extends Animal { @@ -2040,7 +2040,7 @@ index 81dab77f525ae667614f940c4ff5ec308a9579a2..fbfae6297769d79b87b0db63a88ce4f9 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.turtleRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.turtleRidableInWater; + } + + @Override @@ -2107,7 +2107,7 @@ index 81dab77f525ae667614f940c4ff5ec308a9579a2..fbfae6297769d79b87b0db63a88ce4f9 this.turtle.setSpeed(Mth.lerp(0.125F, this.turtle.getSpeed(), f1)); this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0D, (double) this.turtle.getSpeed() * d1 * 0.1D, 0.0D)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 612601b2536dc522356d4dd2c2ea1192f6435f72..c35cd3d995bac317396aedff007e9bf7e132f1a0 100644 +index 612601b2536dc522356d4dd2c2ea1192f6435f72..c8a18ecd36393747a95ad9026c5a7b1d62ff727a 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -102,9 +102,32 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -2122,7 +2122,7 @@ index 612601b2536dc522356d4dd2c2ea1192f6435f72..c35cd3d995bac317396aedff007e9bf7 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.wolfRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.wolfRidableInWater; + } + + public void onMount(Player rider) { @@ -2152,7 +2152,7 @@ index 612601b2536dc522356d4dd2c2ea1192f6435f72..c35cd3d995bac317396aedff007e9bf7 this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this)); this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java -index 9b57d2b766f2de2d3fb4a3b5ef4df8d6756a1942..4e9f4bddaf9221c02e5dc127aa796a24c83ed8f7 100644 +index 9b57d2b766f2de2d3fb4a3b5ef4df8d6756a1942..3e5755764eb585c861c607c1f9fbeeeffc33cff1 100644 --- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java @@ -101,10 +101,23 @@ public class Allay extends PathfinderMob implements InventoryCarrier { @@ -2192,7 +2192,7 @@ index 9b57d2b766f2de2d3fb4a3b5ef4df8d6756a1942..4e9f4bddaf9221c02e5dc127aa796a24 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.allayRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.allayRidableInWater; + } + + @Override @@ -2273,7 +2273,7 @@ index a4e98b02175da96472474b8d7ad5975ce4d2fc43..f30aad7e722f895b8f6966f042021fc8 } 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 a65cec3c9837882df5b61de58f03d276d4db6bfc..00bac64a6417b9e34c2b441a13e80052ad66a2c1 100644 +index a65cec3c9837882df5b61de58f03d276d4db6bfc..12962698dd354dc5da325e8bb24e5fff40af9e51 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 @@ -82,16 +82,65 @@ public class Frog extends Animal implements VariantHolder { @@ -2320,7 +2320,7 @@ index a65cec3c9837882df5b61de58f03d276d4db6bfc..00bac64a6417b9e34c2b441a13e80052 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.frogRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.frogRidableInWater; + } + + @Override @@ -2353,7 +2353,7 @@ index a65cec3c9837882df5b61de58f03d276d4db6bfc..00bac64a6417b9e34c2b441a13e80052 super(entity); } diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java -index 9058f9f2e561cda9f475f33218bf7a78297de4bc..f12bd0227af77bec164f2938957c0c8100be9d03 100644 +index 9058f9f2e561cda9f475f33218bf7a78297de4bc..5551f67b4b4a32487c2f26f2c1e1e97cb21a22ee 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Tadpole.java @@ -45,13 +45,50 @@ public class Tadpole extends AbstractFish { @@ -2391,7 +2391,7 @@ index 9058f9f2e561cda9f475f33218bf7a78297de4bc..f12bd0227af77bec164f2938957c0c81 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.tadpoleRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.tadpoleRidableInWater; + } + + @Override @@ -2409,7 +2409,7 @@ index 9058f9f2e561cda9f475f33218bf7a78297de4bc..f12bd0227af77bec164f2938957c0c81 protected PathNavigation createNavigation(Level world) { return new WaterBoundPathNavigation(this, world); diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index cfa904d42734d0fb0c1ed8b18f4d8bc131027962..a9805129f0aaba5f0c2751d463019844eb3b347d 100644 +index cfa904d42734d0fb0c1ed8b18f4d8bc131027962..1cfc1ade52b79c6c5577935fe5c37a0e7a1673f0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -89,6 +89,23 @@ public class Goat extends Animal { @@ -2424,7 +2424,7 @@ index cfa904d42734d0fb0c1ed8b18f4d8bc131027962..a9805129f0aaba5f0c2751d463019844 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.goatRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.goatRidableInWater; + } + + @Override @@ -2480,7 +2480,7 @@ index 47cd69f91bbc2e2be9ec970674adc522e21593c8..2d298960afe61ed2b73ca72908849879 this.addBehaviourGoals(); } diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java -index e0dfee0e0ce091d5ae0ec740e939c2c50915c104..8f7cd5c3c786ff94fc9b890ec488a461b7edced0 100644 +index e0dfee0e0ce091d5ae0ec740e939c2c50915c104..6ed4ef1c628b77448629388bfc4a8575dd4afefd 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java @@ -15,6 +15,13 @@ public class Donkey extends AbstractChestedHorse { @@ -2490,7 +2490,7 @@ index e0dfee0e0ce091d5ae0ec740e939c2c50915c104..8f7cd5c3c786ff94fc9b890ec488a461 + // Purpur start + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.donkeyRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.donkeyRidableInWater; + } + // Purpur end + @@ -2498,7 +2498,7 @@ index e0dfee0e0ce091d5ae0ec740e939c2c50915c104..8f7cd5c3c786ff94fc9b890ec488a461 protected SoundEvent getAmbientSound() { return SoundEvents.DONKEY_AMBIENT; diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java -index 79a2b3c8df70a9a73ad44560a4a6129f91db8e16..c653a3d459fd8c1c4728cd5a0e63c6b3707792d9 100644 +index 79a2b3c8df70a9a73ad44560a4a6129f91db8e16..9d8879fc2f7afafdd42cd8ee471c698b31159209 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java @@ -40,6 +40,13 @@ public class Horse extends AbstractHorse implements VariantHolder { @@ -2508,7 +2508,7 @@ index 79a2b3c8df70a9a73ad44560a4a6129f91db8e16..c653a3d459fd8c1c4728cd5a0e63c6b3 + // Purpur start + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.horseRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.horseRidableInWater; + } + // Purpur end + @@ -2516,7 +2516,7 @@ index 79a2b3c8df70a9a73ad44560a4a6129f91db8e16..c653a3d459fd8c1c4728cd5a0e63c6b3 protected void randomizeAttributes(RandomSource random) { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt)); 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 7ae0e4b3aa8e861500ddc7b38aa671258b532fcd..0352e21d54ce58d0ef36df8e68ce74389daa3b5c 100644 +index 7ae0e4b3aa8e861500ddc7b38aa671258b532fcd..42861ddab4397187eb6a5d4a729bc58e6fc7ddeb 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 @@ -76,7 +76,51 @@ public class Llama extends AbstractChestedHorse implements VariantHolder(this, Player.class, true)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, IronGolem.class, true)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java -index 5ae34ded698e501dc5cb97b1d7028863e95742a1..9fc8bc954be035ec75fce21f4317330b64ae66a0 100644 +index 5ae34ded698e501dc5cb97b1d7028863e95742a1..4fe550dc61b64b6c16731a5bf21d4144f3e257c0 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java +++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java @@ -32,6 +32,7 @@ public class Blaze extends Monster { @@ -3129,7 +3129,7 @@ index 5ae34ded698e501dc5cb97b1d7028863e95742a1..9fc8bc954be035ec75fce21f4317330b + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.blazeRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.blazeRidableInWater; + } + + @Override @@ -3190,7 +3190,7 @@ index 5ae34ded698e501dc5cb97b1d7028863e95742a1..9fc8bc954be035ec75fce21f4317330b if (this.nextHeightOffsetChangeTick <= 0) { this.nextHeightOffsetChangeTick = 100; diff --git a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java -index d980b906d9206560741576fa4153c57212f307a0..342da1b83b5c00fb99bd7dedaccf986de0a8cad2 100644 +index d980b906d9206560741576fa4153c57212f307a0..2795153f9f27ab0017dd29dc6d90737e890d6a6e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java +++ b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java @@ -28,6 +28,23 @@ public class CaveSpider extends Spider { @@ -3205,7 +3205,7 @@ index d980b906d9206560741576fa4153c57212f307a0..342da1b83b5c00fb99bd7dedaccf986d + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.caveSpiderRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.caveSpiderRidableInWater; + } + + @Override @@ -3218,7 +3218,7 @@ index d980b906d9206560741576fa4153c57212f307a0..342da1b83b5c00fb99bd7dedaccf986d public boolean doHurtTarget(Entity target) { if (super.doHurtTarget(target)) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 29c62525241e2e03686d1bceee740d4f54f33c54..45ba62391e2732377c3b92202773ec5d32cc59c4 100644 +index 29c62525241e2e03686d1bceee740d4f54f33c54..a3b52b0aa442a2c69f8bec7004db5ea913919d30 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -59,21 +59,98 @@ public class Creeper extends Monster implements PowerableMob { @@ -3243,7 +3243,7 @@ index 29c62525241e2e03686d1bceee740d4f54f33c54..45ba62391e2732377c3b92202773ec5d + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.creeperRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.creeperRidableInWater; + } + + @Override @@ -3329,7 +3329,7 @@ index 29c62525241e2e03686d1bceee740d4f54f33c54..45ba62391e2732377c3b92202773ec5d } // Paper end 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 f00773e05654bdeb5463f448293aac99d2208813..d59a28657f3d776ae54528287dff80e88ec17db3 100644 +index f00773e05654bdeb5463f448293aac99d2208813..4d1d5a7608e20d684c1942c9c241c84cd7097d96 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -68,6 +68,23 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -3344,7 +3344,7 @@ index f00773e05654bdeb5463f448293aac99d2208813..d59a28657f3d776ae54528287dff80e8 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.drownedRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.drownedRidableInWater; + } + + @Override @@ -3417,7 +3417,7 @@ index d02286d553c600fe7e75f48e278e380d21c5b868..4fbae6e88daaabfce22bb9d6e60e02a1 return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.30000001192092896D).add(Attributes.ATTACK_DAMAGE, 8.0D).add(Attributes.MAX_HEALTH, 80.0D); } 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 418d6301f067803e2471e59ac2d52a68cbff249b..9c5b2a694ba3d29669fb6855e72090e7912e842d 100644 +index 418d6301f067803e2471e59ac2d52a68cbff249b..db5427939d62434ad2d3271e44ffad58b96f121b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -92,9 +92,27 @@ public class EnderMan extends Monster implements NeutralMob { @@ -3432,7 +3432,7 @@ index 418d6301f067803e2471e59ac2d52a68cbff249b..9c5b2a694ba3d29669fb6855e72090e7 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.endermanRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.endermanRidableInWater; + } + + @Override @@ -3474,7 +3474,7 @@ index 418d6301f067803e2471e59ac2d52a68cbff249b..9c5b2a694ba3d29669fb6855e72090e7 boolean flag = source.getDirectEntity() instanceof ThrownPotion; boolean flag1; diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java -index e8c3972b889fd6b348a5b0d18444d28faa813879..a83131974a1ce9d24003534767c330eefbac5c96 100644 +index e8c3972b889fd6b348a5b0d18444d28faa813879..4b24821b3161e448da76b6484df7bcb66cfc0acc 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java +++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java @@ -37,14 +37,33 @@ public class Endermite extends Monster { @@ -3489,7 +3489,7 @@ index e8c3972b889fd6b348a5b0d18444d28faa813879..a83131974a1ce9d24003534767c330ee + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.endermiteRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.endermiteRidableInWater; + } + + @Override @@ -3512,7 +3512,7 @@ index e8c3972b889fd6b348a5b0d18444d28faa813879..a83131974a1ce9d24003534767c330ee this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java -index 1935f1eb28724d8f03a9612a9b4ddefbbc557157..cc1f8cd24a360937ce26d39868053f26bbae198f 100644 +index 1935f1eb28724d8f03a9612a9b4ddefbbc557157..1482bddc996df22e9542e7934d99bfe29a325af0 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java @@ -48,10 +48,28 @@ public class Evoker extends SpellcasterIllager { @@ -3527,7 +3527,7 @@ index 1935f1eb28724d8f03a9612a9b4ddefbbc557157..cc1f8cd24a360937ce26d39868053f26 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.evokerRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.evokerRidableInWater; + } + + @Override @@ -3553,7 +3553,7 @@ index 1935f1eb28724d8f03a9612a9b4ddefbbc557157..cc1f8cd24a360937ce26d39868053f26 this.targetSelector.addGoal(2, (new NearestAttackableTargetGoal<>(this, Player.class, true)).setUnseenMemoryTicks(300)); this.targetSelector.addGoal(3, (new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false)).setUnseenMemoryTicks(300)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java -index bb2cb17e4e5ce142eeec18951c8948e3d6b3209c..5f6abfe412f205b13ec6ac249d97a6e7bbc87809 100644 +index bb2cb17e4e5ce142eeec18951c8948e3d6b3209c..3a3dbf3721cae13b5e5cbc98aaf74b7ecd9e2263 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java @@ -44,11 +44,47 @@ public class Ghast extends FlyingMob implements Enemy { @@ -3568,7 +3568,7 @@ index bb2cb17e4e5ce142eeec18951c8948e3d6b3209c..5f6abfe412f205b13ec6ac249d97a6e7 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.ghastRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.ghastRidableInWater; + } + + @Override @@ -3632,7 +3632,7 @@ index bb2cb17e4e5ce142eeec18951c8948e3d6b3209c..5f6abfe412f205b13ec6ac249d97a6e7 if (this.floatDuration-- <= 0) { this.floatDuration += this.ghast.getRandom().nextInt(5) + 2; diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java -index 41004c28edb748e12c4f868aa07b4672891197c1..4e21b0eb57cde5d5cea59b1971367de25a4118e0 100644 +index 41004c28edb748e12c4f868aa07b4672891197c1..6971cb46087aabcda66cd04c494a822886104b04 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Giant.java +++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java @@ -14,6 +14,29 @@ public class Giant extends Monster { @@ -3647,7 +3647,7 @@ index 41004c28edb748e12c4f868aa07b4672891197c1..4e21b0eb57cde5d5cea59b1971367de2 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.giantRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.giantRidableInWater; + } + + @Override @@ -3760,7 +3760,7 @@ index 6e0f4f15e49afb989874468b2a459178aef552f5..ba03f3e524b9ba8e8767b9e3133e9678 this.guardian.setSpeed(j); double k = Math.sin((double)(this.guardian.tickCount + this.guardian.getId()) * 0.5D) * 0.05D; diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java -index 4996347c6dde85a2dc9aa37fdf495160093fac64..22b5748f86f8f51204ce59bf9cd6282aaadae767 100644 +index 4996347c6dde85a2dc9aa37fdf495160093fac64..1e2bc8b2c90599134d513e9062a2fb81c7c046b1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Husk.java +++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java @@ -22,6 +22,23 @@ public class Husk extends Zombie { @@ -3775,7 +3775,7 @@ index 4996347c6dde85a2dc9aa37fdf495160093fac64..22b5748f86f8f51204ce59bf9cd6282a + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.huskRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.huskRidableInWater; + } + + @Override @@ -3788,7 +3788,7 @@ index 4996347c6dde85a2dc9aa37fdf495160093fac64..22b5748f86f8f51204ce59bf9cd6282a return checkMonsterSpawnRules(type, world, spawnReason, pos, random) && (spawnReason == MobSpawnType.SPAWNER || world.canSeeSky(pos)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java -index 10573602c9bc73713cbd6989762d3dbb6f6fcf8c..590313ec852cac17ab6cc27337d42ed9b30662fe 100644 +index 10573602c9bc73713cbd6989762d3dbb6f6fcf8c..91e048a14366aec2142ca36c3a8081eea6af0052 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java +++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java @@ -59,10 +59,28 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { @@ -3803,7 +3803,7 @@ index 10573602c9bc73713cbd6989762d3dbb6f6fcf8c..590313ec852cac17ab6cc27337d42ed9 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.illusionerRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.illusionerRidableInWater; + } + + @Override @@ -3829,7 +3829,7 @@ index 10573602c9bc73713cbd6989762d3dbb6f6fcf8c..590313ec852cac17ab6cc27337d42ed9 this.targetSelector.addGoal(2, (new NearestAttackableTargetGoal<>(this, Player.class, true)).setUnseenMemoryTicks(300)); this.targetSelector.addGoal(3, (new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false)).setUnseenMemoryTicks(300)); diff --git a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java -index f23d8796aec3e02a3bb23f338903f39b6ef9dcf1..106e01b931f5b04269b280bbb82a732caaba9259 100644 +index f23d8796aec3e02a3bb23f338903f39b6ef9dcf1..b51f11fe8366ba15e02083a50ee401e1f335fbb6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java +++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java @@ -25,6 +25,28 @@ public class MagmaCube extends Slime { @@ -3844,7 +3844,7 @@ index f23d8796aec3e02a3bb23f338903f39b6ef9dcf1..106e01b931f5b04269b280bbb82a732c + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.magmaCubeRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.magmaCubeRidableInWater; + } + + @Override @@ -3875,7 +3875,7 @@ index f23d8796aec3e02a3bb23f338903f39b6ef9dcf1..106e01b931f5b04269b280bbb82a732c @Override 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 97fb1d2110a51498f6419841081b500b3f190370..fd9c107bbaea0daea1882f3715956c28448580b8 100644 +index 97fb1d2110a51498f6419841081b500b3f190370..736610f5d1e180b4df68a9355adce9b8135268ff 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -60,6 +60,64 @@ public class Phantom extends FlyingMob implements Enemy { @@ -3890,7 +3890,7 @@ index 97fb1d2110a51498f6419841081b500b3f190370..fd9c107bbaea0daea1882f3715956c28 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.phantomRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.phantomRidableInWater; + } + + @Override @@ -4017,7 +4017,7 @@ index 97fb1d2110a51498f6419841081b500b3f190370..fd9c107bbaea0daea1882f3715956c28 private class PhantomBodyRotationControl extends BodyRotationControl { diff --git a/src/main/java/net/minecraft/world/entity/monster/Pillager.java b/src/main/java/net/minecraft/world/entity/monster/Pillager.java -index cec545c3baa6599d47b9cf1a4b97de8771062a22..6fc3af5989a41f3e0f18ae14453fcd8388ea940a 100644 +index cec545c3baa6599d47b9cf1a4b97de8771062a22..f2a8dffecc27ec45e3f7341cb67a2bd783400f4a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Pillager.java @@ -62,15 +62,34 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve @@ -4032,7 +4032,7 @@ index cec545c3baa6599d47b9cf1a4b97de8771062a22..6fc3af5989a41f3e0f18ae14453fcd83 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.pillagerRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.pillagerRidableInWater; + } + + @Override @@ -4056,7 +4056,7 @@ index cec545c3baa6599d47b9cf1a4b97de8771062a22..6fc3af5989a41f3e0f18ae14453fcd83 this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 9258d0f7c5c27b6d3d8f99db947169d6800d8ea9..a345d9a16831257d06f0b6ae43d2aa50a1adfc91 100644 +index 9258d0f7c5c27b6d3d8f99db947169d6800d8ea9..78bd5a76f105ff1ebf005ccb2590b4a04934ebb2 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -65,14 +65,39 @@ public class Ravager extends Raider { @@ -4071,7 +4071,7 @@ index 9258d0f7c5c27b6d3d8f99db947169d6800d8ea9..a345d9a16831257d06f0b6ae43d2aa50 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.ravagerRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.ravagerRidableInWater; + } + + @Override @@ -4109,7 +4109,7 @@ index 9258d0f7c5c27b6d3d8f99db947169d6800d8ea9..a345d9a16831257d06f0b6ae43d2aa50 this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.0D); } else { diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java -index 19657390ddb73992d7b68dc77776faa99c6f1b15..46edc9ea9b5cd352d87996937aeb076f93114907 100644 +index 19657390ddb73992d7b68dc77776faa99c6f1b15..e46bd4944801c75a197e67ef66b5e87517a68a03 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java @@ -95,12 +95,31 @@ public class Shulker extends AbstractGolem implements VariantHolder(this, Player.class, true)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java -index badde621357a567965f0ef203e402e21bed09059..c871416d5ec80a41034c14dce4e8c839b3091e3e 100644 +index badde621357a567965f0ef203e402e21bed09059..7a2e0b0e30ef1155061ecad4a517a19078b71984 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java @@ -26,6 +26,23 @@ public class Skeleton extends AbstractSkeleton { @@ -4207,7 +4207,7 @@ index badde621357a567965f0ef203e402e21bed09059..c871416d5ec80a41034c14dce4e8c839 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.skeletonRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.skeletonRidableInWater; + } + + @Override @@ -4220,7 +4220,7 @@ index badde621357a567965f0ef203e402e21bed09059..c871416d5ec80a41034c14dce4e8c839 protected void defineSynchedData() { super.defineSynchedData(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index c41c1c2712920c6b7d822cd0f37a5d8d725e4054..19e1c0bd1516732826672642e54dc0813d413f10 100644 +index c41c1c2712920c6b7d822cd0f37a5d8d725e4054..0e0f82403add7912f512a675fc1c9328d61b4ff3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java @@ -64,6 +64,7 @@ public class Slime extends Mob implements Enemy { @@ -4243,7 +4243,7 @@ index c41c1c2712920c6b7d822cd0f37a5d8d725e4054..19e1c0bd1516732826672642e54dc081 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.slimeRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.slimeRidableInWater; + } + + @Override @@ -4350,7 +4350,7 @@ index c41c1c2712920c6b7d822cd0f37a5d8d725e4054..19e1c0bd1516732826672642e54dc081 } diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java -index 0c36bb47bd7040f1544817810e1c87157cdaff96..0e8d114813da3c47021ad32c45cac23217dfbc4c 100644 +index 0c36bb47bd7040f1544817810e1c87157cdaff96..ca13dbeea191b7508abbf7a89c3cf182ce0cfa09 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -51,14 +51,33 @@ public class Spider extends Monster { @@ -4365,7 +4365,7 @@ index 0c36bb47bd7040f1544817810e1c87157cdaff96..0e8d114813da3c47021ad32c45cac232 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.spiderRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.spiderRidableInWater; + } + + @Override @@ -4388,7 +4388,7 @@ index 0c36bb47bd7040f1544817810e1c87157cdaff96..0e8d114813da3c47021ad32c45cac232 this.targetSelector.addGoal(2, new Spider.SpiderTargetGoal<>(this, Player.class)); this.targetSelector.addGoal(3, new Spider.SpiderTargetGoal<>(this, IronGolem.class)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Stray.java b/src/main/java/net/minecraft/world/entity/monster/Stray.java -index 118b636a44e4b062e812e433f603b039276337da..4c81ea7cea571d8e4afb07c2bc84d1d1a8b33f3f 100644 +index 118b636a44e4b062e812e433f603b039276337da..03a0dc6594b423191ec5c54252c37081a12a19a9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Stray.java +++ b/src/main/java/net/minecraft/world/entity/monster/Stray.java @@ -21,6 +21,23 @@ public class Stray extends AbstractSkeleton { @@ -4403,7 +4403,7 @@ index 118b636a44e4b062e812e433f603b039276337da..4c81ea7cea571d8e4afb07c2bc84d1d1 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.strayRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.strayRidableInWater; + } + + @Override @@ -4416,7 +4416,7 @@ index 118b636a44e4b062e812e433f603b039276337da..4c81ea7cea571d8e4afb07c2bc84d1d1 BlockPos blockPos = pos; diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java -index 66755efc54059dfb8625f028bf0548d188a57aa2..486111443d2557dde8c75aef6855bc749c2487de 100644 +index 66755efc54059dfb8625f028bf0548d188a57aa2..da652fdb3afbdae1a26d76a2669b57affbfecd84 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Strider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java @@ -100,6 +100,23 @@ public class Strider extends Animal implements ItemSteerable, Saddleable { @@ -4431,7 +4431,7 @@ index 66755efc54059dfb8625f028bf0548d188a57aa2..486111443d2557dde8c75aef6855bc74 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.striderRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.striderRidableInWater; + } + + @Override @@ -4461,7 +4461,7 @@ index 66755efc54059dfb8625f028bf0548d188a57aa2..486111443d2557dde8c75aef6855bc74 if (flag && !this.isSilent()) { this.level.playSound((Player) null, this.getX(), this.getY(), this.getZ(), SoundEvents.STRIDER_EAT, this.getSoundSource(), 1.0F, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F); diff --git a/src/main/java/net/minecraft/world/entity/monster/Vex.java b/src/main/java/net/minecraft/world/entity/monster/Vex.java -index bb5c2f90bef5e3c57ffde996853e122d108b2789..ee3143d24914a14ec5f15785d303aec0846727e3 100644 +index bb5c2f90bef5e3c57ffde996853e122d108b2789..38f7e1e41816721f332f548887d69c5eb98bad6a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vex.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java @@ -63,6 +63,50 @@ public class Vex extends Monster implements TraceableEntity { @@ -4476,7 +4476,7 @@ index bb5c2f90bef5e3c57ffde996853e122d108b2789..ee3143d24914a14ec5f15785d303aec0 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.vexRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.vexRidableInWater; + } + + @Override @@ -4572,7 +4572,7 @@ index bb5c2f90bef5e3c57ffde996853e122d108b2789..ee3143d24914a14ec5f15785d303aec0 Vec3 vec3d1 = Vex.this.getDeltaMovement(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index a9e75a16a7dc0ff5d4f0faa92ebc444559a39325..0f547bffc269416b5e0b74b7c448cde44a662edc 100644 +index a9e75a16a7dc0ff5d4f0faa92ebc444559a39325..78fe2cc6c866252c1d537c1e23854a0d2608fe36 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -58,14 +58,33 @@ public class Vindicator extends AbstractIllager { @@ -4587,7 +4587,7 @@ index a9e75a16a7dc0ff5d4f0faa92ebc444559a39325..0f547bffc269416b5e0b74b7c448cde4 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.vindicatorRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.vindicatorRidableInWater; + } + + @Override @@ -4610,7 +4610,7 @@ index a9e75a16a7dc0ff5d4f0faa92ebc444559a39325..0f547bffc269416b5e0b74b7c448cde4 this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, true)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java -index 096546d7a97f031060bda7545aa620d522766719..8c289269dbfe346089e4264f5fbcdf06860414cc 100644 +index 096546d7a97f031060bda7545aa620d522766719..c15a35e7ac5dac31872b5e27671ce26fe1702eef 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java @@ -57,6 +57,23 @@ public class Witch extends Raider implements RangedAttackMob { @@ -4625,7 +4625,7 @@ index 096546d7a97f031060bda7545aa620d522766719..8c289269dbfe346089e4264f5fbcdf06 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.witchRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.witchRidableInWater; + } + + @Override @@ -4651,7 +4651,7 @@ index 096546d7a97f031060bda7545aa620d522766719..8c289269dbfe346089e4264f5fbcdf06 this.targetSelector.addGoal(2, this.healRaidersGoal); this.targetSelector.addGoal(3, this.attackPlayersGoal); diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java -index 6449213d717271bcc516e393a78dfe1e5c762d68..7776a9cfdcb19a3baf82bc8d75e39a4fbea6a00b 100644 +index 6449213d717271bcc516e393a78dfe1e5c762d68..8da19fac75c283f026cb051668557c2034c40af9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java @@ -35,6 +35,23 @@ public class WitherSkeleton extends AbstractSkeleton { @@ -4666,7 +4666,7 @@ index 6449213d717271bcc516e393a78dfe1e5c762d68..7776a9cfdcb19a3baf82bc8d75e39a4f + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.witherSkeletonRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.witherSkeletonRidableInWater; + } + + @Override @@ -4679,7 +4679,7 @@ index 6449213d717271bcc516e393a78dfe1e5c762d68..7776a9cfdcb19a3baf82bc8d75e39a4f protected void registerGoals() { this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java -index 0ca82175ec91ca8b3418c0931682c972666c47f8..ce6567f6fd28777f4e10fb2e6ba16f78ac454fd9 100644 +index 0ca82175ec91ca8b3418c0931682c972666c47f8..ee1bbff9e9dfd110e33a36c652d50a7f83093cab 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java @@ -67,6 +67,23 @@ public class Zoglin extends Monster implements Enemy, HoglinBase { @@ -4694,7 +4694,7 @@ index 0ca82175ec91ca8b3418c0931682c972666c47f8..ce6567f6fd28777f4e10fb2e6ba16f78 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.zoglinRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.zoglinRidableInWater; + } + + @Override @@ -4715,7 +4715,7 @@ index 0ca82175ec91ca8b3418c0931682c972666c47f8..ce6567f6fd28777f4e10fb2e6ba16f78 this.level.getProfiler().pop(); this.updateActivity(); 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 9976205537cfe228735687f1e9c52c74ac025690..2dc41320ad62d3b88d64baea3358957ce990cb23 100644 +index 9976205537cfe228735687f1e9c52c74ac025690..aa264a5975b1373fa979104355dae899c785aaf1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -106,11 +106,30 @@ public class Zombie extends Monster { @@ -4730,7 +4730,7 @@ index 9976205537cfe228735687f1e9c52c74ac025690..2dc41320ad62d3b88d64baea3358957c + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.zombieRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.zombieRidableInWater; + } + + @Override @@ -4750,7 +4750,7 @@ index 9976205537cfe228735687f1e9c52c74ac025690..2dc41320ad62d3b88d64baea3358957c } diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 71a36cf9b976443cca9ab63cd0eb23253f638562..5e17e5bedf41e246a4e8c4d04b71d1bec4184fb9 100644 +index 71a36cf9b976443cca9ab63cd0eb23253f638562..02a97f526fb10056dcad78614ae8f6973449e9ab 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -79,6 +79,23 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -4765,7 +4765,7 @@ index 71a36cf9b976443cca9ab63cd0eb23253f638562..5e17e5bedf41e246a4e8c4d04b71d1be + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.zombieVillagerRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.zombieVillagerRidableInWater; + } + + @Override @@ -4778,7 +4778,7 @@ index 71a36cf9b976443cca9ab63cd0eb23253f638562..5e17e5bedf41e246a4e8c4d04b71d1be protected void defineSynchedData() { super.defineSynchedData(); diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index b75945807b425609394c343da56c316a769f0a29..d1d36feab3ebfc0311b29997c2b81b7d53f638f4 100644 +index b75945807b425609394c343da56c316a769f0a29..ad82c064c9e31ffc1dd96e44517187635100fc22 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java @@ -63,6 +63,23 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -4793,7 +4793,7 @@ index b75945807b425609394c343da56c316a769f0a29..d1d36feab3ebfc0311b29997c2b81b7d + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.zombifiedPiglinRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.zombifiedPiglinRidableInWater; + } + + @Override @@ -4806,7 +4806,7 @@ index b75945807b425609394c343da56c316a769f0a29..d1d36feab3ebfc0311b29997c2b81b7d public void setPersistentAngerTarget(@Nullable UUID angryAt) { this.persistentAngerTarget = angryAt; diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index 5d3b3cb3a882eb5d716f678095a65b28d0967476..cded207699b4500b1d9ea90cbde9b27c14cf8192 100644 +index 5d3b3cb3a882eb5d716f678095a65b28d0967476..b4deb7fa656aadd9c62db68bb46d3fb39f8429e5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -67,6 +67,23 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -4821,7 +4821,7 @@ index 5d3b3cb3a882eb5d716f678095a65b28d0967476..cded207699b4500b1d9ea90cbde9b27c + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.hoglinRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.hoglinRidableInWater; + } + + @Override @@ -4842,7 +4842,7 @@ index 5d3b3cb3a882eb5d716f678095a65b28d0967476..cded207699b4500b1d9ea90cbde9b27c this.level.getProfiler().pop(); HoglinAi.updateActivity(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index afa7ecfa8453da510ec5ccecb1ceeb1d9893d259..580482c976e81452720dc3fa0f86babccd8e6e2f 100644 +index afa7ecfa8453da510ec5ccecb1ceeb1d9893d259..dad688184896720099357bf91fe092da3eac8931 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -97,6 +97,23 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -4857,7 +4857,7 @@ index afa7ecfa8453da510ec5ccecb1ceeb1d9893d259..580482c976e81452720dc3fa0f86babc + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.piglinRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.piglinRidableInWater; + } + + @Override @@ -4878,7 +4878,7 @@ index afa7ecfa8453da510ec5ccecb1ceeb1d9893d259..580482c976e81452720dc3fa0f86babc this.level.getProfiler().pop(); PiglinAi.updateActivity(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java -index 769e4fbaac01a4fe3a45bd9cab5c63b61fc69f53..442d0ce3f3376d8a544b60d7832ea72630fcbca4 100644 +index 769e4fbaac01a4fe3a45bd9cab5c63b61fc69f53..ac066b2f3e369321752470722941ae26af511309 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java @@ -41,6 +41,23 @@ public class PiglinBrute extends AbstractPiglin { @@ -4893,7 +4893,7 @@ index 769e4fbaac01a4fe3a45bd9cab5c63b61fc69f53..442d0ce3f3376d8a544b60d7832ea726 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.piglinBruteRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.piglinBruteRidableInWater; + } + + @Override @@ -4914,7 +4914,7 @@ index 769e4fbaac01a4fe3a45bd9cab5c63b61fc69f53..442d0ce3f3376d8a544b60d7832ea726 this.level.getProfiler().pop(); PiglinBruteAi.updateActivity(this); diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java -index b2b63d9df3c07696f47281e9be74f1799f50b93e..a268f6a39b972f91ca04d6b0004efda4cf086e10 100644 +index b2b63d9df3c07696f47281e9be74f1799f50b93e..129bba44b8a5ada75b2f73050522975e56d9a069 100644 --- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java +++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java @@ -120,8 +120,32 @@ public class Warden extends Monster implements VibrationListener.VibrationListen @@ -4932,7 +4932,7 @@ index b2b63d9df3c07696f47281e9be74f1799f50b93e..a268f6a39b972f91ca04d6b0004efda4 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.wardenRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.wardenRidableInWater; + } + + @Override @@ -4974,7 +4974,7 @@ index b2b63d9df3c07696f47281e9be74f1799f50b93e..a268f6a39b972f91ca04d6b0004efda4 public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 6023b9eb3001e1a98ab8b970d853c4e7c7603f4d..05ec03fb3b3c84ca2d2f58ca0b70459f90760601 100644 +index 6023b9eb3001e1a98ab8b970d853c4e7c7603f4d..dcebf1f79f11b032c12199db8ca0a40396663871 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -153,6 +153,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -4989,7 +4989,7 @@ index 6023b9eb3001e1a98ab8b970d853c4e7c7603f4d..05ec03fb3b3c84ca2d2f58ca0b70459f + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.villagerRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.villagerRidableInWater; + } + + @Override @@ -5039,7 +5039,7 @@ index 6023b9eb3001e1a98ab8b970d853c4e7c7603f4d..05ec03fb3b3c84ca2d2f58ca0b70459f this.startTrading(player); } diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index c9fb50c33ac15fe72bc77167e4647f30942fdc5d..774da46962f70e73d31ea523eb5bfc286f38856d 100644 +index c9fb50c33ac15fe72bc77167e4647f30942fdc5d..89ec1e52f91c2e4cd17eeaa23cab366c9cbb8dc0 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -69,6 +69,23 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -5054,7 +5054,7 @@ index c9fb50c33ac15fe72bc77167e4647f30942fdc5d..774da46962f70e73d31ea523eb5bfc28 + + @Override + public boolean dismountsUnderwater() { -+ return !level.purpurConfig.wanderingTraderRidableInWater || super.dismountsUnderwater(); ++ return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.wanderingTraderRidableInWater; + } + + @Override @@ -5209,10 +5209,10 @@ index bd9ea8dfbd986c96000efb7dc36fc93d12a2c8b9..b0344a0baa22c4312ac9d1049b14671d + } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674b186fc79 100644 +index 2b7f1dedb3289efc7e42a138f4483f4969902801..ec168b917d60cc6d8c48620eb4dcd89b0b121aea 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -91,4 +91,715 @@ public class PurpurWorldConfig { +@@ -91,4 +91,717 @@ public class PurpurWorldConfig { final Map value = PurpurConfig.getMap("world-settings." + worldName + "." + path, null); return value.isEmpty() ? fallback : value; } @@ -5220,14 +5220,16 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + public boolean babiesAreRidable = true; + public boolean untamedTamablesAreRidable = true; + public boolean useNightVisionWhenRiding = false; ++ public boolean useDismountsUnderwaterTag = true; + private void ridableSettings() { + babiesAreRidable = getBoolean("ridable-settings.babies-are-ridable", babiesAreRidable); + untamedTamablesAreRidable = getBoolean("ridable-settings.untamed-tamables-are-ridable", untamedTamablesAreRidable); + useNightVisionWhenRiding = getBoolean("ridable-settings.use-night-vision", useNightVisionWhenRiding); ++ useDismountsUnderwaterTag = getBoolean("ridable-settings.use-dismounts-underwater-tag", useDismountsUnderwaterTag); + } + + public boolean allayRidable = false; -+ public boolean allayRidableInWater = false; ++ public boolean allayRidableInWater = true; + public boolean allayControllable = true; + private void allaySettings() { + allayRidable = getBoolean("mobs.allay.ridable", allayRidable); @@ -5243,7 +5245,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean batRidable = false; -+ public boolean batRidableInWater = false; ++ public boolean batRidableInWater = true; + public boolean batControllable = true; + public double batMaxY = 320D; + private void batSettings() { @@ -5254,7 +5256,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean beeRidable = false; -+ public boolean beeRidableInWater = false; ++ public boolean beeRidableInWater = true; + public boolean beeControllable = true; + public double beeMaxY = 320D; + private void beeSettings() { @@ -5265,7 +5267,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean blazeRidable = false; -+ public boolean blazeRidableInWater = false; ++ public boolean blazeRidableInWater = true; + public boolean blazeControllable = true; + public double blazeMaxY = 320D; + private void blazeSettings() { @@ -5276,7 +5278,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean catRidable = false; -+ public boolean catRidableInWater = false; ++ public boolean catRidableInWater = true; + public boolean catControllable = true; + private void catSettings() { + catRidable = getBoolean("mobs.cat.ridable", catRidable); @@ -5285,7 +5287,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean caveSpiderRidable = false; -+ public boolean caveSpiderRidableInWater = false; ++ public boolean caveSpiderRidableInWater = true; + public boolean caveSpiderControllable = true; + private void caveSpiderSettings() { + caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); @@ -5310,7 +5312,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean cowRidable = false; -+ public boolean cowRidableInWater = false; ++ public boolean cowRidableInWater = true; + public boolean cowControllable = true; + private void cowSettings() { + cowRidable = getBoolean("mobs.cow.ridable", cowRidable); @@ -5319,7 +5321,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean creeperRidable = false; -+ public boolean creeperRidableInWater = false; ++ public boolean creeperRidableInWater = true; + public boolean creeperControllable = true; + private void creeperSettings() { + creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); @@ -5346,7 +5348,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean drownedRidable = false; -+ public boolean drownedRidableInWater = false; ++ public boolean drownedRidableInWater = true; + public boolean drownedControllable = true; + private void drownedSettings() { + drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); @@ -5362,7 +5364,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean enderDragonRidable = false; -+ public boolean enderDragonRidableInWater = false; ++ public boolean enderDragonRidableInWater = true; + public boolean enderDragonControllable = true; + public double enderDragonMaxY = 320D; + private void enderDragonSettings() { @@ -5373,7 +5375,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean endermanRidable = false; -+ public boolean endermanRidableInWater = false; ++ public boolean endermanRidableInWater = true; + public boolean endermanControllable = true; + private void endermanSettings() { + endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); @@ -5382,7 +5384,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean endermiteRidable = false; -+ public boolean endermiteRidableInWater = false; ++ public boolean endermiteRidableInWater = true; + public boolean endermiteControllable = true; + private void endermiteSettings() { + endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); @@ -5391,7 +5393,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean evokerRidable = false; -+ public boolean evokerRidableInWater = false; ++ public boolean evokerRidableInWater = true; + public boolean evokerControllable = true; + private void evokerSettings() { + evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); @@ -5400,7 +5402,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean foxRidable = false; -+ public boolean foxRidableInWater = false; ++ public boolean foxRidableInWater = true; + public boolean foxControllable = true; + private void foxSettings() { + foxRidable = getBoolean("mobs.fox.ridable", foxRidable); @@ -5409,7 +5411,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean frogRidable = false; -+ public boolean frogRidableInWater = false; ++ public boolean frogRidableInWater = true; + public boolean frogControllable = true; + public float frogRidableJumpHeight = 0.65F; + private void frogSettings() { @@ -5420,7 +5422,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean ghastRidable = false; -+ public boolean ghastRidableInWater = false; ++ public boolean ghastRidableInWater = true; + public boolean ghastControllable = true; + public double ghastMaxY = 320D; + private void ghastSettings() { @@ -5431,7 +5433,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean giantRidable = false; -+ public boolean giantRidableInWater = false; ++ public boolean giantRidableInWater = true; + public boolean giantControllable = true; + private void giantSettings() { + giantRidable = getBoolean("mobs.giant.ridable", giantRidable); @@ -5447,7 +5449,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean goatRidable = false; -+ public boolean goatRidableInWater = false; ++ public boolean goatRidableInWater = true; + public boolean goatControllable = true; + private void goatSettings() { + goatRidable = getBoolean("mobs.goat.ridable", goatRidable); @@ -5463,7 +5465,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean hoglinRidable = false; -+ public boolean hoglinRidableInWater = false; ++ public boolean hoglinRidableInWater = true; + public boolean hoglinControllable = true; + private void hoglinSettings() { + hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); @@ -5477,7 +5479,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean huskRidable = false; -+ public boolean huskRidableInWater = false; ++ public boolean huskRidableInWater = true; + public boolean huskControllable = true; + private void huskSettings() { + huskRidable = getBoolean("mobs.husk.ridable", huskRidable); @@ -5486,7 +5488,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean illusionerRidable = false; -+ public boolean illusionerRidableInWater = false; ++ public boolean illusionerRidableInWater = true; + public boolean illusionerControllable = true; + private void illusionerSettings() { + illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); @@ -5495,7 +5497,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean ironGolemRidable = false; -+ public boolean ironGolemRidableInWater = false; ++ public boolean ironGolemRidableInWater = true; + public boolean ironGolemControllable = true; + public boolean ironGolemCanSwim = false; + private void ironGolemSettings() { @@ -5515,7 +5517,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean magmaCubeRidable = false; -+ public boolean magmaCubeRidableInWater = false; ++ public boolean magmaCubeRidableInWater = true; + public boolean magmaCubeControllable = true; + private void magmaCubeSettings() { + magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); @@ -5524,7 +5526,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean mooshroomRidable = false; -+ public boolean mooshroomRidableInWater = false; ++ public boolean mooshroomRidableInWater = true; + public boolean mooshroomControllable = true; + private void mooshroomSettings() { + mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); @@ -5538,7 +5540,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean ocelotRidable = false; -+ public boolean ocelotRidableInWater = false; ++ public boolean ocelotRidableInWater = true; + public boolean ocelotControllable = true; + private void ocelotSettings() { + ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); @@ -5547,7 +5549,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean pandaRidable = false; -+ public boolean pandaRidableInWater = false; ++ public boolean pandaRidableInWater = true; + public boolean pandaControllable = true; + private void pandaSettings() { + pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); @@ -5556,7 +5558,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean parrotRidable = false; -+ public boolean parrotRidableInWater = false; ++ public boolean parrotRidableInWater = true; + public boolean parrotControllable = true; + public double parrotMaxY = 320D; + private void parrotSettings() { @@ -5567,7 +5569,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean phantomRidable = false; -+ public boolean phantomRidableInWater = false; ++ public boolean phantomRidableInWater = true; + public boolean phantomControllable = true; + public double phantomMaxY = 320D; + public float phantomFlameDamage = 1.0F; @@ -5593,7 +5595,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean piglinRidable = false; -+ public boolean piglinRidableInWater = false; ++ public boolean piglinRidableInWater = true; + public boolean piglinControllable = true; + private void piglinSettings() { + piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); @@ -5602,7 +5604,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean piglinBruteRidable = false; -+ public boolean piglinBruteRidableInWater = false; ++ public boolean piglinBruteRidableInWater = true; + public boolean piglinBruteControllable = true; + private void piglinBruteSettings() { + piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); @@ -5611,7 +5613,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean pillagerRidable = false; -+ public boolean pillagerRidableInWater = false; ++ public boolean pillagerRidableInWater = true; + public boolean pillagerControllable = true; + private void pillagerSettings() { + pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); @@ -5620,7 +5622,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean polarBearRidable = false; -+ public boolean polarBearRidableInWater = false; ++ public boolean polarBearRidableInWater = true; + public boolean polarBearControllable = true; + private void polarBearSettings() { + polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); @@ -5636,7 +5638,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean rabbitRidable = false; -+ public boolean rabbitRidableInWater = false; ++ public boolean rabbitRidableInWater = true; + public boolean rabbitControllable = true; + private void rabbitSettings() { + rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); @@ -5661,7 +5663,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean sheepRidable = false; -+ public boolean sheepRidableInWater = false; ++ public boolean sheepRidableInWater = true; + public boolean sheepControllable = true; + private void sheepSettings() { + sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); @@ -5670,7 +5672,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean shulkerRidable = false; -+ public boolean shulkerRidableInWater = false; ++ public boolean shulkerRidableInWater = true; + public boolean shulkerControllable = true; + private void shulkerSettings() { + shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); @@ -5679,7 +5681,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean silverfishRidable = false; -+ public boolean silverfishRidableInWater = false; ++ public boolean silverfishRidableInWater = true; + public boolean silverfishControllable = true; + private void silverfishSettings() { + silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); @@ -5688,7 +5690,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean skeletonRidable = false; -+ public boolean skeletonRidableInWater = false; ++ public boolean skeletonRidableInWater = true; + public boolean skeletonControllable = true; + private void skeletonSettings() { + skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); @@ -5704,7 +5706,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean slimeRidable = false; -+ public boolean slimeRidableInWater = false; ++ public boolean slimeRidableInWater = true; + public boolean slimeControllable = true; + private void slimeSettings() { + slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); @@ -5713,7 +5715,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean snowGolemRidable = false; -+ public boolean snowGolemRidableInWater = false; ++ public boolean snowGolemRidableInWater = true; + public boolean snowGolemControllable = true; + public boolean snowGolemLeaveTrailWhenRidden = false; + private void snowGolemSettings() { @@ -5724,7 +5726,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean snifferRidable = false; -+ public boolean snifferRidableInWater = false; ++ public boolean snifferRidableInWater = true; + public boolean snifferControllable = true; + private void snifferSettings() { + snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable); @@ -5749,7 +5751,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean strayRidable = false; -+ public boolean strayRidableInWater = false; ++ public boolean strayRidableInWater = true; + public boolean strayControllable = true; + private void straySettings() { + strayRidable = getBoolean("mobs.stray.ridable", strayRidable); @@ -5767,7 +5769,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean tadpoleRidable = false; -+ public boolean tadpoleRidableInWater = false; ++ public boolean tadpoleRidableInWater = true; + public boolean tadpoleControllable = true; + private void tadpoleSettings() { + tadpoleRidable = getBoolean("mobs.tadpole.ridable", tadpoleRidable); @@ -5792,7 +5794,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean turtleRidable = false; -+ public boolean turtleRidableInWater = false; ++ public boolean turtleRidableInWater = true; + public boolean turtleControllable = true; + private void turtleSettings() { + turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); @@ -5801,7 +5803,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean vexRidable = false; -+ public boolean vexRidableInWater = false; ++ public boolean vexRidableInWater = true; + public boolean vexControllable = true; + public double vexMaxY = 320D; + private void vexSettings() { @@ -5812,7 +5814,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean villagerRidable = false; -+ public boolean villagerRidableInWater = false; ++ public boolean villagerRidableInWater = true; + public boolean villagerControllable = true; + private void villagerSettings() { + villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); @@ -5821,7 +5823,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean vindicatorRidable = false; -+ public boolean vindicatorRidableInWater = false; ++ public boolean vindicatorRidableInWater = true; + public boolean vindicatorControllable = true; + private void vindicatorSettings() { + vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); @@ -5830,7 +5832,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean wanderingTraderRidable = false; -+ public boolean wanderingTraderRidableInWater = false; ++ public boolean wanderingTraderRidableInWater = true; + public boolean wanderingTraderControllable = true; + private void wanderingTraderSettings() { + wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); @@ -5839,7 +5841,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean wardenRidable = false; -+ public boolean wardenRidableInWater = false; ++ public boolean wardenRidableInWater = true; + public boolean wardenControllable = true; + private void wardenSettings() { + wardenRidable = getBoolean("mobs.warden.ridable", wardenRidable); @@ -5848,7 +5850,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean witchRidable = false; -+ public boolean witchRidableInWater = false; ++ public boolean witchRidableInWater = true; + public boolean witchControllable = true; + private void witchSettings() { + witchRidable = getBoolean("mobs.witch.ridable", witchRidable); @@ -5857,7 +5859,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean witherRidable = false; -+ public boolean witherRidableInWater = false; ++ public boolean witherRidableInWater = true; + public boolean witherControllable = true; + public double witherMaxY = 320D; + private void witherSettings() { @@ -5868,7 +5870,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean witherSkeletonRidable = false; -+ public boolean witherSkeletonRidableInWater = false; ++ public boolean witherSkeletonRidableInWater = true; + public boolean witherSkeletonControllable = true; + private void witherSkeletonSettings() { + witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); @@ -5877,7 +5879,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean wolfRidable = false; -+ public boolean wolfRidableInWater = false; ++ public boolean wolfRidableInWater = true; + public boolean wolfControllable = true; + private void wolfSettings() { + wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); @@ -5886,7 +5888,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean zoglinRidable = false; -+ public boolean zoglinRidableInWater = false; ++ public boolean zoglinRidableInWater = true; + public boolean zoglinControllable = true; + private void zoglinSettings() { + zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); @@ -5895,7 +5897,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean zombieRidable = false; -+ public boolean zombieRidableInWater = false; ++ public boolean zombieRidableInWater = true; + public boolean zombieControllable = true; + private void zombieSettings() { + zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); @@ -5911,7 +5913,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean zombieVillagerRidable = false; -+ public boolean zombieVillagerRidableInWater = false; ++ public boolean zombieVillagerRidableInWater = true; + public boolean zombieVillagerControllable = true; + private void zombieVillagerSettings() { + zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); @@ -5920,7 +5922,7 @@ index 2b7f1dedb3289efc7e42a138f4483f4969902801..de0b2d79435f55f35f1063094ac9c674 + } + + public boolean zombifiedPiglinRidable = false; -+ public boolean zombifiedPiglinRidableInWater = false; ++ public boolean zombifiedPiglinRidableInWater = true; + public boolean zombifiedPiglinControllable = true; + private void zombifiedPiglinSettings() { + zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); diff --git a/patches/server/0007-Configurable-entity-base-attributes.patch b/patches/server/0007-Configurable-entity-base-attributes.patch index 3ce4e7ec4..1b3f8c2b8 100644 --- a/patches/server/0007-Configurable-entity-base-attributes.patch +++ b/patches/server/0007-Configurable-entity-base-attributes.patch @@ -55,7 +55,7 @@ index e8798de526e2836308eca8e5f4a4388aa7e9d3c0..1152cdb64ff72358292400d33a4a4f3c return this.brain; } diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index 24733d2b967cc9d332ad8c3b8beb0c141e18ee77..f0ba6e7971090e086fd7a70a510ae91c104f0ae9 100644 +index a48d40e4242f35c6830286739172459635be3e43..da2b0dfd8a3c033488a1e5d928c40fd66ada5091 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -93,6 +93,18 @@ public class Bat extends AmbientCreature { @@ -78,7 +78,7 @@ index 24733d2b967cc9d332ad8c3b8beb0c141e18ee77..f0ba6e7971090e086fd7a70a510ae91c @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 605707839ca61c24d4a30e7a219875be09512ade..1ff79871121944864da0b5179bba17f97c551608 100644 +index 9881c77aca7a0b25d1dda9c5a89c367df516743f..c0b85da9cce5ec75d83945ba7b4d2fc823105103 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -214,6 +214,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -94,7 +94,7 @@ index 605707839ca61c24d4a30e7a219875be09512ade..1ff79871121944864da0b5179bba17f9 @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 516186c322114d835141ce6440df7c0232272b72..61f83ec67c68dfafbdb11ed88f02d2be526ab7f9 100644 +index a708cacf755ce82042452558bef3140361b945c2..944da53f7f48e5218c12b7fd4bb443621cafc331 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -120,6 +120,11 @@ public class Cat extends TamableAnimal implements VariantHolder { @@ -110,7 +110,7 @@ index 516186c322114d835141ce6440df7c0232272b72..61f83ec67c68dfafbdb11ed88f02d2be public ResourceLocation getResourceLocation() { diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java -index 526a7104ef44a7ccb24b9afada7cb602f8a8b7a9..f28e6daa41e99f1279c79e2392a76ca6f51c1b4b 100644 +index a2c72f9c90aa95d50ee9fb0e278171a6a0cee2a5..5207a2a8c06cd413e1d62c5eec7a232dce952b8b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java +++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java @@ -69,6 +69,11 @@ public class Chicken extends Animal { @@ -142,7 +142,7 @@ index 718b064fa3fb3d1a00f786ff839c91ce88ae4f70..47b537deac66f93a66a1df007b2bb8af @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java -index f71ba5d1a52f7e23d23939e91049e8aa9fbd15b0..29720c0681b5c08e3a7ac5b07c6d83a1760297f1 100644 +index 2424ff760fc7dd91962e070f373ebf8e21f41b7d..e24173dcd6f083a3ae61edcf71bb7236d644a422 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cow.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java @@ -56,6 +56,11 @@ public class Cow extends Animal { @@ -174,7 +174,7 @@ index 106caca10bdd8dd546b6de24594afe236c8f7ce8..0accc5595461ce92259e3f819a9837aa @Nullable diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 2557e8dbc13cdb3ea64781b029a0bdf1341b4e04..7a6239897d03a0502addc42853414e6d0caa42c3 100644 +index eb7f96f7b1583dfeb8e57a1984ed8cabeac0a2fe..5de86c59bf857e6697bb768e3dd71a05739fb3d2 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -177,6 +177,11 @@ public class Fox extends Animal implements VariantHolder { @@ -190,7 +190,7 @@ index 2557e8dbc13cdb3ea64781b029a0bdf1341b4e04..7a6239897d03a0502addc42853414e6d @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java -index b78ef3626fe62d79e9edbf3279cb2cc773a6be32..5a3da8390d1b8b4e818da42578174f2016f73407 100644 +index 44db31b9f93970a65735eab4850dc799e6bdf002..ca4ef2397582245b52c73b12f80e876e03bb7e55 100644 --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java @@ -84,6 +84,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob { @@ -206,7 +206,7 @@ index b78ef3626fe62d79e9edbf3279cb2cc773a6be32..5a3da8390d1b8b4e818da42578174f20 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java -index 1e9c75d9fd41c164d8853488fdbe4ed145e0f004..a63f8764ae8f0fce4e0de5799de7da3a82ceb80d 100644 +index b27e7381db833f4583a32b4276caddf277f5d25c..b1c2663a7f42714a620d59096f26f0a965875846 100644 --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java @@ -78,6 +78,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder { @@ -363,7 +363,7 @@ index cc1e6f9d0ee241f32878ed96820f17ccb72396ba..2d525af3955a1f6dfbd21f07d813a832 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java -index 6da1ab2aa26a1e09d20176504c2134b4cdad17b3..0b9c36f130a0ccd62bbf2418896627553bc61225 100644 +index 99c55d6bae08d75ae19c5dc004ca577e44b589a4..ce2bac7cc95dca0f3d8c97ba6d7cf922d328c579 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java @@ -131,6 +131,11 @@ public class Sheep extends Animal implements Shearable { @@ -379,7 +379,7 @@ index 6da1ab2aa26a1e09d20176504c2134b4cdad17b3..0b9c36f130a0ccd62bbf241889662755 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index e50847a88228d1b71d59339a633911911218f912..6f6542f57ed942de91957edf49ef8d92b5233aa8 100644 +index 383302ab11d2e62cc4ca135fda9c1ebe566491e5..7da9fcf10e6480a71d7a3e9934bb91320cac227e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -69,6 +69,11 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -427,7 +427,7 @@ index 7c90f91685845329845a8c81f87ad9f6fdf4d973..948d86a125648300a258e08200bb90e9 public static String getPredefinedName(int variant) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index fbfae6297769d79b87b0db63a88ce4f904d801d0..31c98011ee4521acebf8d452f135e534ffafd64c 100644 +index ea66c2976401752688fdf9ee44802c79ea8545a1..67c8f06d1befaf810e3954dbda156ee29bfbc0d4 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -98,6 +98,11 @@ public class Turtle extends Animal { @@ -443,7 +443,7 @@ index fbfae6297769d79b87b0db63a88ce4f904d801d0..31c98011ee4521acebf8d452f135e534 public void setHomePos(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index c35cd3d995bac317396aedff007e9bf7e132f1a0..4713da69b3f45bfcf423726feff2800560494306 100644 +index c8a18ecd36393747a95ad9026c5a7b1d62ff727a..05792466a89bdcffe1a4241761b7c23afcc6bc88 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -122,6 +122,11 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -475,7 +475,7 @@ index f30aad7e722f895b8f6966f042021fc80f470994..eaf2e6b9865a36b7c648bd1205db922a @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index 47a9e7a036e647c05d8abebdda4cab0d69aac997..bc74bae29b8426ced84e203edb0c41065062f422 100644 +index 473b801645a62c89ed680f993761dcb64f73bc01..30ff9967aa19a9e77bdf7d32e494276b1b72ab72 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -96,6 +96,11 @@ public class Sniffer extends Animal { @@ -491,7 +491,7 @@ index 47a9e7a036e647c05d8abebdda4cab0d69aac997..bc74bae29b8426ced84e203edb0c4106 // CraftBukkit start - SPIGOT-7295: moved from constructor to appropriate location 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 d4561ddfd79e80414ce006d54b90a45345017378..09ed5144c448f7620b5c856a9fa12da07ec0cce6 100644 +index 165f3a058caf6ce5fd346b7f46969b67ea75f003..a23458734a192425ddbec9b114d8485d8e7a2bd3 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 @@ -161,6 +161,11 @@ public class EnderDragon extends Mob implements Enemy { @@ -507,7 +507,7 @@ index d4561ddfd79e80414ce006d54b90a45345017378..09ed5144c448f7620b5c856a9fa12da0 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 da20eee9d210cd13dc47dea7294043d61a78f41d..33ce9424b8b60d5673ebabe9e62ca03ac84190b8 100644 +index 1001ef99f28a4f4f29e48d6ae9e3cb1bcfa27686..a6a9628f0e467f2b38dd346d90862f19712b3016 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 @@ -224,6 +224,11 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -532,7 +532,7 @@ index da20eee9d210cd13dc47dea7294043d61a78f41d..33ce9424b8b60d5673ebabe9e62ca03a } else { diff --git a/src/main/java/net/minecraft/world/entity/monster/Blaze.java b/src/main/java/net/minecraft/world/entity/monster/Blaze.java -index 9fc8bc954be035ec75fce21f4317330b64ae66a0..ae291e741f283d2e56f55512608f5852ef266ccd 100644 +index 4fe550dc61b64b6c16731a5bf21d4144f3e257c0..60d51823442d86b3aef502bda3f6d5b18ae1aa4c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Blaze.java +++ b/src/main/java/net/minecraft/world/entity/monster/Blaze.java @@ -72,6 +72,11 @@ public class Blaze extends Monster { @@ -548,7 +548,7 @@ index 9fc8bc954be035ec75fce21f4317330b64ae66a0..ae291e741f283d2e56f55512608f5852 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java -index 342da1b83b5c00fb99bd7dedaccf986de0a8cad2..90dc6df729e72c7925ed2c3d36debb92989b2646 100644 +index 2795153f9f27ab0017dd29dc6d90737e890d6a6e..20f1a73a13e0c43ef7423ae1e50f63ed4910b0e4 100644 --- a/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java +++ b/src/main/java/net/minecraft/world/entity/monster/CaveSpider.java @@ -43,6 +43,11 @@ public class CaveSpider extends Spider { @@ -564,7 +564,7 @@ index 342da1b83b5c00fb99bd7dedaccf986de0a8cad2..90dc6df729e72c7925ed2c3d36debb92 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index 45ba62391e2732377c3b92202773ec5d32cc59c4..b128c8bf3c655464d0c279f32eb9a1968fcccc71 100644 +index a3b52b0aa442a2c69f8bec7004db5ea913919d30..50fa28f8348625be15e93800e2c071e243afd39a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -137,6 +137,11 @@ public class Creeper extends Monster implements PowerableMob { @@ -580,7 +580,7 @@ index 45ba62391e2732377c3b92202773ec5d32cc59c4..b128c8bf3c655464d0c279f32eb9a196 @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 d59a28657f3d776ae54528287dff80e88ec17db3..edfc149ef228954fe0900439c8bf25f4249b28e2 100644 +index 4d1d5a7608e20d684c1942c9c241c84cd7097d96..0139d890c22db09c4b67a1e1bcf179a6571c7cd6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Drowned.java +++ b/src/main/java/net/minecraft/world/entity/monster/Drowned.java @@ -83,6 +83,16 @@ public class Drowned extends Zombie implements RangedAttackMob { @@ -617,7 +617,7 @@ index 4fbae6e88daaabfce22bb9d6e60e02a109e5178a..84bac517860c565d26dfa31ee06fac5c 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 9c5b2a694ba3d29669fb6855e72090e7912e842d..6e93faa6debeba159664401a49ddd5ca159abf80 100644 +index db5427939d62434ad2d3271e44ffad58b96f121b..b7b2762ff6b01da9a3df0ab0add6d50efd76db8d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -107,6 +107,11 @@ public class EnderMan extends Monster implements NeutralMob { @@ -633,7 +633,7 @@ index 9c5b2a694ba3d29669fb6855e72090e7912e842d..6e93faa6debeba159664401a49ddd5ca @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Endermite.java b/src/main/java/net/minecraft/world/entity/monster/Endermite.java -index a83131974a1ce9d24003534767c330eefbac5c96..294eb415d57cf28489d8cfd3d3a9102b9bbe9e9a 100644 +index 4b24821b3161e448da76b6484df7bcb66cfc0acc..93f91c171a0c4dbb875bbfdd239f38bcd6b5b5a3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Endermite.java +++ b/src/main/java/net/minecraft/world/entity/monster/Endermite.java @@ -52,6 +52,11 @@ public class Endermite extends Monster { @@ -649,7 +649,7 @@ index a83131974a1ce9d24003534767c330eefbac5c96..294eb415d57cf28489d8cfd3d3a9102b @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java -index cc1f8cd24a360937ce26d39868053f26bbae198f..d0342c28f028a26536ef8e42302ea310a6064a18 100644 +index 1482bddc996df22e9542e7934d99bfe29a325af0..bbcbccaeb479cc61adab96da2670ca31a1fda740 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java @@ -63,6 +63,11 @@ public class Evoker extends SpellcasterIllager { @@ -665,7 +665,7 @@ index cc1f8cd24a360937ce26d39868053f26bbae198f..d0342c28f028a26536ef8e42302ea310 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Ghast.java b/src/main/java/net/minecraft/world/entity/monster/Ghast.java -index 5f6abfe412f205b13ec6ac249d97a6e7bbc87809..b21d8d069caffe9c7a6f5a856fb91d5c5b60567e 100644 +index 3a3dbf3721cae13b5e5cbc98aaf74b7ecd9e2263..6fa4c22fd5ec9d981ac36dc3bd2871aacaff3be1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ghast.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ghast.java @@ -76,6 +76,11 @@ public class Ghast extends FlyingMob implements Enemy { @@ -681,7 +681,7 @@ index 5f6abfe412f205b13ec6ac249d97a6e7bbc87809..b21d8d069caffe9c7a6f5a856fb91d5c @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java -index 4e21b0eb57cde5d5cea59b1971367de25a4118e0..a57299a152eb05d49fed58eda6aaa29c0b5f1362 100644 +index 6971cb46087aabcda66cd04c494a822886104b04..2019896dee313bcc982686fc665d1cb3e2d40503 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Giant.java +++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java @@ -35,6 +35,13 @@ public class Giant extends Monster { @@ -715,7 +715,7 @@ index ba03f3e524b9ba8e8767b9e3133e96782b5d4267..4292174f1f6c77374aecf74f1ed81929 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java -index 22b5748f86f8f51204ce59bf9cd6282aaadae767..80bb77199791a312216e8366275e5b0e1c8b14fa 100644 +index 1e2bc8b2c90599134d513e9062a2fb81c7c046b1..4dc604f2d36494bbe139b7ef4649089207dd092f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Husk.java +++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java @@ -37,6 +37,16 @@ public class Husk extends Zombie { @@ -736,7 +736,7 @@ index 22b5748f86f8f51204ce59bf9cd6282aaadae767..80bb77199791a312216e8366275e5b0e public static boolean checkHuskSpawnRules(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java -index 590313ec852cac17ab6cc27337d42ed9b30662fe..a9c0989d23a11ea9273712aa0e98bf275376abef 100644 +index 91e048a14366aec2142ca36c3a8081eea6af0052..a22756ed865dfa583029a742f3e9f9c80e1533ad 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java +++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java @@ -74,6 +74,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { @@ -754,7 +754,7 @@ index 590313ec852cac17ab6cc27337d42ed9b30662fe..a9c0989d23a11ea9273712aa0e98bf27 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java -index 106e01b931f5b04269b280bbb82a732caaba9259..9e73c3c79fcbbb17015f00cf300de3e5447c3c29 100644 +index b51f11fe8366ba15e02083a50ee401e1f335fbb6..c78bc3ca4324905d03e789c516d6a9a7226e072d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java +++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java @@ -45,6 +45,26 @@ public class MagmaCube extends Slime { @@ -785,7 +785,7 @@ index 106e01b931f5b04269b280bbb82a732caaba9259..9e73c3c79fcbbb17015f00cf300de3e5 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 fd9c107bbaea0daea1882f3715956c28448580b8..8a592993aedc72d8ffe1b1ad5e526cc292d69737 100644 +index 736610f5d1e180b4df68a9355adce9b8135268ff..e271555ac03fcbb565a7fe08efdc9a6036164e74 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -116,6 +116,21 @@ public class Phantom extends FlyingMob implements Enemy { @@ -823,7 +823,7 @@ index fd9c107bbaea0daea1882f3715956c28448580b8..8a592993aedc72d8ffe1b1ad5e526cc2 public int getPhantomSize() { diff --git a/src/main/java/net/minecraft/world/entity/monster/Pillager.java b/src/main/java/net/minecraft/world/entity/monster/Pillager.java -index 6fc3af5989a41f3e0f18ae14453fcd8388ea940a..f1eb424f1c4c15f777350603543bdf6613c97019 100644 +index f2a8dffecc27ec45e3f7341cb67a2bd783400f4a..ea1da86fef146a50a6908cbc51fab9d195693aeb 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Pillager.java @@ -77,6 +77,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve @@ -839,7 +839,7 @@ index 6fc3af5989a41f3e0f18ae14453fcd8388ea940a..f1eb424f1c4c15f777350603543bdf66 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index a345d9a16831257d06f0b6ae43d2aa50a1adfc91..2a176517488bbe0804deaf3948dcfe7eee9e9089 100644 +index 78bd5a76f105ff1ebf005ccb2590b4a04934ebb2..2d592307f42ede8a490c072da9ec796b2e356f0a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -86,6 +86,11 @@ public class Ravager extends Raider { @@ -855,7 +855,7 @@ index a345d9a16831257d06f0b6ae43d2aa50a1adfc91..2a176517488bbe0804deaf3948dcfe7e @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java -index 46edc9ea9b5cd352d87996937aeb076f93114907..8276c8cb76f36e99ec09c0cede5aeac90dfd11fb 100644 +index e46bd4944801c75a197e67ef66b5e87517a68a03..a17cb25071132d601ff42f884f2e668328c7df41 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java @@ -110,6 +110,11 @@ public class Shulker extends AbstractGolem implements VariantHolder type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java -index 486111443d2557dde8c75aef6855bc749c2487de..b512ac4b75e53c272a3c41fb5b66c84b6b0e9847 100644 +index da652fdb3afbdae1a26d76a2669b57affbfecd84..0a480333373c3f3a9504d0b4a3e00fba2e8b2e15 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Strider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java @@ -115,6 +115,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable { @@ -1005,7 +1005,7 @@ index 486111443d2557dde8c75aef6855bc749c2487de..b512ac4b75e53c272a3c41fb5b66c84b public static boolean checkStriderSpawnRules(EntityType type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Vex.java b/src/main/java/net/minecraft/world/entity/monster/Vex.java -index ee3143d24914a14ec5f15785d303aec0846727e3..cd2670bcffbf8c790d128ed312855a835cb70749 100644 +index 38f7e1e41816721f332f548887d69c5eb98bad6a..87956e99e8a309c90b522652d29458d6f437f866 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vex.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java @@ -105,6 +105,11 @@ public class Vex extends Monster implements TraceableEntity { @@ -1021,7 +1021,7 @@ index ee3143d24914a14ec5f15785d303aec0846727e3..cd2670bcffbf8c790d128ed312855a83 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index 0f547bffc269416b5e0b74b7c448cde44a662edc..32c7836fcceaeee018dd965f77ac1d2c2ab45ea0 100644 +index 78fe2cc6c866252c1d537c1e23854a0d2608fe36..0a4f7125c38d3138ec8eedec4ca72000f25ba6ac 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -73,6 +73,11 @@ public class Vindicator extends AbstractIllager { @@ -1037,7 +1037,7 @@ index 0f547bffc269416b5e0b74b7c448cde44a662edc..32c7836fcceaeee018dd965f77ac1d2c @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java -index 8c289269dbfe346089e4264f5fbcdf06860414cc..cf64f00c7a1528006d4946ad5d871cf487336745 100644 +index c15a35e7ac5dac31872b5e27671ce26fe1702eef..cbbdbf3bf316140b2591f29f0309ed17f341473e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java @@ -72,6 +72,11 @@ public class Witch extends Raider implements RangedAttackMob { @@ -1053,7 +1053,7 @@ index 8c289269dbfe346089e4264f5fbcdf06860414cc..cf64f00c7a1528006d4946ad5d871cf4 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java -index 7776a9cfdcb19a3baf82bc8d75e39a4fbea6a00b..259896608f947b1dd574192e5e4babce4bd7d7ff 100644 +index 8da19fac75c283f026cb051668557c2034c40af9..ff43c5a1f8398b2c56920ec4e0a8fa5fbd135df8 100644 --- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java @@ -50,6 +50,11 @@ public class WitherSkeleton extends AbstractSkeleton { @@ -1069,7 +1069,7 @@ index 7776a9cfdcb19a3baf82bc8d75e39a4fbea6a00b..259896608f947b1dd574192e5e4babce @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java -index ce6567f6fd28777f4e10fb2e6ba16f78ac454fd9..a0c39477f7a565307c95df7bf7616d58e6960d30 100644 +index ee1bbff9e9dfd110e33a36c652d50a7f83093cab..13010725d9e6026ac77eb69e9f302684dc50cfec 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java @@ -82,6 +82,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase { @@ -1085,7 +1085,7 @@ index ce6567f6fd28777f4e10fb2e6ba16f78ac454fd9..a0c39477f7a565307c95df7bf7616d58 @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 2dc41320ad62d3b88d64baea3358957ce990cb23..afe866e4a41a824bcfb9aa70779c52381386c472 100644 +index aa264a5975b1373fa979104355dae899c785aaf1..77712e0bb78bef24f05d9949c3ae4ee7ec2efb96 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -121,6 +121,11 @@ public class Zombie extends Monster { @@ -1110,7 +1110,7 @@ index 2dc41320ad62d3b88d64baea3358957ce990cb23..afe866e4a41a824bcfb9aa70779c5238 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 5e17e5bedf41e246a4e8c4d04b71d1bec4184fb9..d24e41ac992972d1679c279b10290c01db73a5b5 100644 +index 02a97f526fb10056dcad78614ae8f6973449e9ab..073a45cd24c92e63b349a93da91cedfa10103101 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -94,6 +94,16 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -1131,7 +1131,7 @@ index 5e17e5bedf41e246a4e8c4d04b71d1bec4184fb9..d24e41ac992972d1679c279b10290c01 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index d1d36feab3ebfc0311b29997c2b81b7d53f638f4..cdeb39d02b618b648681ca51a592b7b3508e46f5 100644 +index ad82c064c9e31ffc1dd96e44517187635100fc22..2df1aa1af12b403e9cd87d61b2ff1516f754f589 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java @@ -78,6 +78,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -1156,7 +1156,7 @@ index d1d36feab3ebfc0311b29997c2b81b7d53f638f4..cdeb39d02b618b648681ca51a592b7b3 @Nullable diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index cded207699b4500b1d9ea90cbde9b27c14cf8192..9cc42b4a1ea0d2315350e038034dfe7171668658 100644 +index b4deb7fa656aadd9c62db68bb46d3fb39f8429e5..930d74e5fd20b69baeec60dfc54da37a1290fccc 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -82,6 +82,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -1172,7 +1172,7 @@ index cded207699b4500b1d9ea90cbde9b27c14cf8192..9cc42b4a1ea0d2315350e038034dfe71 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 580482c976e81452720dc3fa0f86babccd8e6e2f..5bc02e73ffde3d0d164532b6b8ce42213dc6eadc 100644 +index dad688184896720099357bf91fe092da3eac8931..9b7e38e7a73206663a06dd180b7ef746d2237f16 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -112,6 +112,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -1188,7 +1188,7 @@ index 580482c976e81452720dc3fa0f86babccd8e6e2f..5bc02e73ffde3d0d164532b6b8ce4221 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java -index 442d0ce3f3376d8a544b60d7832ea72630fcbca4..b931880d8cda19bc042bacc98a6a5fead9d54303 100644 +index ac066b2f3e369321752470722941ae26af511309..ba460cb0f65eb98d2c0934084c51c81ef10a0b44 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java @@ -56,6 +56,11 @@ public class PiglinBrute extends AbstractPiglin { @@ -1204,7 +1204,7 @@ index 442d0ce3f3376d8a544b60d7832ea72630fcbca4..b931880d8cda19bc042bacc98a6a5fea public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 05ec03fb3b3c84ca2d2f58ca0b70459f90760601..9c3541a3506f270dd79e52103c4f83ad0df0ae94 100644 +index dcebf1f79f11b032c12199db8ca0a40396663871..f9828580075d70d804c92d6db9a944d2e436e268 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -173,6 +173,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -1220,7 +1220,7 @@ index 05ec03fb3b3c84ca2d2f58ca0b70459f90760601..9c3541a3506f270dd79e52103c4f83ad @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index 774da46962f70e73d31ea523eb5bfc286f38856d..d2324e2dbd72fcd5a8ab562bc3b6e53088647137 100644 +index 89ec1e52f91c2e4cd17eeaa23cab366c9cbb8dc0..71212ecb84bdbf838b4a5fbefbe9cfa6343542c4 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -84,6 +84,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -1236,10 +1236,10 @@ index 774da46962f70e73d31ea523eb5bfc286f38856d..d2324e2dbd72fcd5a8ab562bc3b6e530 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1c4ef7e78 100644 +index ec168b917d60cc6d8c48620eb4dcd89b0b121aea..46b6994812086405f20a4dd410c1d79621958cd5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -112,94 +112,181 @@ public class PurpurWorldConfig { +@@ -114,94 +114,181 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; @@ -1251,7 +1251,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean batRidable = false; - public boolean batRidableInWater = false; + public boolean batRidableInWater = true; public boolean batControllable = true; public double batMaxY = 320D; + public double batMaxHealth = 6.0D; @@ -1276,7 +1276,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean beeRidable = false; - public boolean beeRidableInWater = false; + public boolean beeRidableInWater = true; public boolean beeControllable = true; public double beeMaxY = 320D; + public double beeMaxHealth = 10.0D; @@ -1294,7 +1294,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean blazeRidable = false; - public boolean blazeRidableInWater = false; + public boolean blazeRidableInWater = true; public boolean blazeControllable = true; public double blazeMaxY = 320D; + public double blazeMaxHealth = 20.0D; @@ -1327,7 +1327,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean catRidable = false; - public boolean catRidableInWater = false; + public boolean catRidableInWater = true; public boolean catControllable = true; + public double catMaxHealth = 10.0D; private void catSettings() { @@ -1343,7 +1343,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean caveSpiderRidable = false; - public boolean caveSpiderRidableInWater = false; + public boolean caveSpiderRidableInWater = true; public boolean caveSpiderControllable = true; + public double caveSpiderMaxHealth = 12.0D; private void caveSpiderSettings() { @@ -1389,7 +1389,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean cowRidable = false; - public boolean cowRidableInWater = false; + public boolean cowRidableInWater = true; public boolean cowControllable = true; + public double cowMaxHealth = 10.0D; private void cowSettings() { @@ -1405,7 +1405,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean creeperRidable = false; - public boolean creeperRidableInWater = false; + public boolean creeperRidableInWater = true; public boolean creeperControllable = true; + public double creeperMaxHealth = 20.0D; private void creeperSettings() { @@ -1421,7 +1421,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean dolphinRidable = false; -@@ -207,80 +294,161 @@ public class PurpurWorldConfig { +@@ -209,80 +296,161 @@ public class PurpurWorldConfig { public int dolphinSpitCooldown = 20; public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; @@ -1465,7 +1465,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean drownedRidable = false; - public boolean drownedRidableInWater = false; + public boolean drownedRidableInWater = true; public boolean drownedControllable = true; + public double drownedMaxHealth = 20.0D; + public double drownedSpawnReinforcements = 0.1D; @@ -1497,7 +1497,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean enderDragonRidable = false; - public boolean enderDragonRidableInWater = false; + public boolean enderDragonRidableInWater = true; public boolean enderDragonControllable = true; public double enderDragonMaxY = 320D; + public double enderDragonMaxHealth = 200.0D; @@ -1519,7 +1519,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean endermanRidable = false; - public boolean endermanRidableInWater = false; + public boolean endermanRidableInWater = true; public boolean endermanControllable = true; + public double endermanMaxHealth = 40.0D; private void endermanSettings() { @@ -1535,7 +1535,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean endermiteRidable = false; - public boolean endermiteRidableInWater = false; + public boolean endermiteRidableInWater = true; public boolean endermiteControllable = true; + public double endermiteMaxHealth = 8.0D; private void endermiteSettings() { @@ -1551,7 +1551,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean evokerRidable = false; - public boolean evokerRidableInWater = false; + public boolean evokerRidableInWater = true; public boolean evokerControllable = true; + public double evokerMaxHealth = 24.0D; private void evokerSettings() { @@ -1567,7 +1567,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean foxRidable = false; - public boolean foxRidableInWater = false; + public boolean foxRidableInWater = true; public boolean foxControllable = true; + public double foxMaxHealth = 10.0D; private void foxSettings() { @@ -1583,8 +1583,8 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean frogRidable = false; -@@ -298,147 +466,316 @@ public class PurpurWorldConfig { - public boolean ghastRidableInWater = false; +@@ -300,147 +468,316 @@ public class PurpurWorldConfig { + public boolean ghastRidableInWater = true; public boolean ghastControllable = true; public double ghastMaxY = 320D; + public double ghastMaxHealth = 10.0D; @@ -1602,7 +1602,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean giantRidable = false; - public boolean giantRidableInWater = false; + public boolean giantRidableInWater = true; public boolean giantControllable = true; + public double giantMovementSpeed = 0.5D; + public double giantAttackDamage = 50.0D; @@ -1635,7 +1635,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean goatRidable = false; - public boolean goatRidableInWater = false; + public boolean goatRidableInWater = true; public boolean goatControllable = true; + public double goatMaxHealth = 10.0D; private void goatSettings() { @@ -1660,7 +1660,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean hoglinRidable = false; - public boolean hoglinRidableInWater = false; + public boolean hoglinRidableInWater = true; public boolean hoglinControllable = true; + public double hoglinMaxHealth = 40.0D; private void hoglinSettings() { @@ -1700,7 +1700,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean huskRidable = false; - public boolean huskRidableInWater = false; + public boolean huskRidableInWater = true; public boolean huskControllable = true; + public double huskMaxHealth = 20.0D; + public double huskSpawnReinforcements = 0.1D; @@ -1718,7 +1718,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean illusionerRidable = false; - public boolean illusionerRidableInWater = false; + public boolean illusionerRidableInWater = true; public boolean illusionerControllable = true; + public double illusionerMovementSpeed = 0.5D; + public double illusionerFollowRange = 18.0D; @@ -1742,7 +1742,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean ironGolemRidable = false; - public boolean ironGolemRidableInWater = false; + public boolean ironGolemRidableInWater = true; public boolean ironGolemControllable = true; public boolean ironGolemCanSwim = false; + public double ironGolemMaxHealth = 100.0D; @@ -1788,7 +1788,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean magmaCubeRidable = false; - public boolean magmaCubeRidableInWater = false; + public boolean magmaCubeRidableInWater = true; public boolean magmaCubeControllable = true; + public String magmaCubeMaxHealth = "size * size"; + public String magmaCubeAttackDamage = "size"; @@ -1810,7 +1810,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean mooshroomRidable = false; - public boolean mooshroomRidableInWater = false; + public boolean mooshroomRidableInWater = true; public boolean mooshroomControllable = true; + public double mooshroomMaxHealth = 10.0D; private void mooshroomSettings() { @@ -1850,7 +1850,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean ocelotRidable = false; - public boolean ocelotRidableInWater = false; + public boolean ocelotRidableInWater = true; public boolean ocelotControllable = true; + public double ocelotMaxHealth = 10.0D; private void ocelotSettings() { @@ -1866,7 +1866,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean pandaRidable = false; - public boolean pandaRidableInWater = false; + public boolean pandaRidableInWater = true; public boolean pandaControllable = true; + public double pandaMaxHealth = 20.0D; private void pandaSettings() { @@ -1882,7 +1882,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean parrotRidable = false; - public boolean parrotRidableInWater = false; + public boolean parrotRidableInWater = true; public boolean parrotControllable = true; public double parrotMaxY = 320D; + public double parrotMaxHealth = 6.0D; @@ -1900,7 +1900,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean phantomRidable = false; -@@ -448,6 +785,10 @@ public class PurpurWorldConfig { +@@ -450,6 +787,10 @@ public class PurpurWorldConfig { public float phantomFlameDamage = 1.0F; public int phantomFlameFireTime = 8; public boolean phantomAllowGriefing = false; @@ -1911,7 +1911,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -456,189 +797,361 @@ public class PurpurWorldConfig { +@@ -458,189 +799,361 @@ 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); @@ -1947,7 +1947,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean piglinRidable = false; - public boolean piglinRidableInWater = false; + public boolean piglinRidableInWater = true; public boolean piglinControllable = true; + public double piglinMaxHealth = 16.0D; private void piglinSettings() { @@ -1963,7 +1963,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean piglinBruteRidable = false; - public boolean piglinBruteRidableInWater = false; + public boolean piglinBruteRidableInWater = true; public boolean piglinBruteControllable = true; + public double piglinBruteMaxHealth = 50.0D; private void piglinBruteSettings() { @@ -1979,7 +1979,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean pillagerRidable = false; - public boolean pillagerRidableInWater = false; + public boolean pillagerRidableInWater = true; public boolean pillagerControllable = true; + public double pillagerMaxHealth = 24.0D; private void pillagerSettings() { @@ -1995,7 +1995,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean polarBearRidable = false; - public boolean polarBearRidableInWater = false; + public boolean polarBearRidableInWater = true; public boolean polarBearControllable = true; + public double polarBearMaxHealth = 30.0D; private void polarBearSettings() { @@ -2025,7 +2025,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean rabbitRidable = false; - public boolean rabbitRidableInWater = false; + public boolean rabbitRidableInWater = true; public boolean rabbitControllable = true; + public double rabbitMaxHealth = 3.0D; private void rabbitSettings() { @@ -2071,7 +2071,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean sheepRidable = false; - public boolean sheepRidableInWater = false; + public boolean sheepRidableInWater = true; public boolean sheepControllable = true; + public double sheepMaxHealth = 8.0D; private void sheepSettings() { @@ -2087,7 +2087,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean shulkerRidable = false; - public boolean shulkerRidableInWater = false; + public boolean shulkerRidableInWater = true; public boolean shulkerControllable = true; + public double shulkerMaxHealth = 30.0D; private void shulkerSettings() { @@ -2103,7 +2103,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean silverfishRidable = false; - public boolean silverfishRidableInWater = false; + public boolean silverfishRidableInWater = true; public boolean silverfishControllable = true; + public double silverfishMaxHealth = 8.0D; private void silverfishSettings() { @@ -2119,7 +2119,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean skeletonRidable = false; - public boolean skeletonRidableInWater = false; + public boolean skeletonRidableInWater = true; public boolean skeletonControllable = true; + public double skeletonMaxHealth = 20.0D; private void skeletonSettings() { @@ -2160,7 +2160,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean slimeRidable = false; - public boolean slimeRidableInWater = false; + public boolean slimeRidableInWater = true; public boolean slimeControllable = true; + public String slimeMaxHealth = "size * size"; + public String slimeAttackDamage = "size"; @@ -2182,7 +2182,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean snowGolemRidable = false; - public boolean snowGolemRidableInWater = false; + public boolean snowGolemRidableInWater = true; public boolean snowGolemControllable = true; public boolean snowGolemLeaveTrailWhenRidden = false; + public double snowGolemMaxHealth = 4.0D; @@ -2200,7 +2200,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean snifferRidable = false; - public boolean snifferRidableInWater = false; + public boolean snifferRidableInWater = true; public boolean snifferControllable = true; + public double snifferMaxHealth = 14.0D; private void snifferSettings() { @@ -2241,7 +2241,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean strayRidable = false; - public boolean strayRidableInWater = false; + public boolean strayRidableInWater = true; public boolean strayControllable = true; + public double strayMaxHealth = 20.0D; private void straySettings() { @@ -2273,7 +2273,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean tadpoleRidable = false; -@@ -653,64 +1166,125 @@ public class PurpurWorldConfig { +@@ -655,64 +1168,125 @@ public class PurpurWorldConfig { public boolean traderLlamaRidable = false; public boolean traderLlamaRidableInWater = false; public boolean traderLlamaControllable = true; @@ -2317,7 +2317,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean turtleRidable = false; - public boolean turtleRidableInWater = false; + public boolean turtleRidableInWater = true; public boolean turtleControllable = true; + public double turtleMaxHealth = 30.0D; private void turtleSettings() { @@ -2333,7 +2333,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean vexRidable = false; - public boolean vexRidableInWater = false; + public boolean vexRidableInWater = true; public boolean vexControllable = true; public double vexMaxY = 320D; + public double vexMaxHealth = 14.0D; @@ -2351,7 +2351,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean villagerRidable = false; - public boolean villagerRidableInWater = false; + public boolean villagerRidableInWater = true; public boolean villagerControllable = true; + public double villagerMaxHealth = 20.0D; private void villagerSettings() { @@ -2367,7 +2367,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean vindicatorRidable = false; - public boolean vindicatorRidableInWater = false; + public boolean vindicatorRidableInWater = true; public boolean vindicatorControllable = true; + public double vindicatorMaxHealth = 24.0D; private void vindicatorSettings() { @@ -2383,7 +2383,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean wanderingTraderRidable = false; - public boolean wanderingTraderRidableInWater = false; + public boolean wanderingTraderRidableInWater = true; public boolean wanderingTraderControllable = true; + public double wanderingTraderMaxHealth = 20.0D; private void wanderingTraderSettings() { @@ -2399,9 +2399,9 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean wardenRidable = false; -@@ -725,81 +1299,165 @@ public class PurpurWorldConfig { +@@ -727,81 +1301,165 @@ public class PurpurWorldConfig { public boolean witchRidable = false; - public boolean witchRidableInWater = false; + public boolean witchRidableInWater = true; public boolean witchControllable = true; + public double witchMaxHealth = 26.0D; private void witchSettings() { @@ -2417,7 +2417,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean witherRidable = false; - public boolean witherRidableInWater = false; + public boolean witherRidableInWater = true; public boolean witherControllable = true; public double witherMaxY = 320D; + public double witherMaxHealth = 300.0D; @@ -2439,7 +2439,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean witherSkeletonRidable = false; - public boolean witherSkeletonRidableInWater = false; + public boolean witherSkeletonRidableInWater = true; public boolean witherSkeletonControllable = true; + public double witherSkeletonMaxHealth = 20.0D; private void witherSkeletonSettings() { @@ -2455,7 +2455,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean wolfRidable = false; - public boolean wolfRidableInWater = false; + public boolean wolfRidableInWater = true; public boolean wolfControllable = true; + public double wolfMaxHealth = 8.0D; private void wolfSettings() { @@ -2471,7 +2471,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean zoglinRidable = false; - public boolean zoglinRidableInWater = false; + public boolean zoglinRidableInWater = true; public boolean zoglinControllable = true; + public double zoglinMaxHealth = 40.0D; private void zoglinSettings() { @@ -2487,7 +2487,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean zombieRidable = false; - public boolean zombieRidableInWater = false; + public boolean zombieRidableInWater = true; public boolean zombieControllable = true; + public double zombieMaxHealth = 20.0D; + public double zombieSpawnReinforcements = 0.1D; @@ -2530,7 +2530,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean zombieVillagerRidable = false; - public boolean zombieVillagerRidableInWater = false; + public boolean zombieVillagerRidableInWater = true; public boolean zombieVillagerControllable = true; + public double zombieVillagerMaxHealth = 20.0D; + public double zombieVillagerSpawnReinforcements = 0.1D; @@ -2548,7 +2548,7 @@ index de0b2d79435f55f35f1063094ac9c674b186fc79..550d1722c17048ea38886382062dd0e1 } public boolean zombifiedPiglinRidable = false; - public boolean zombifiedPiglinRidableInWater = false; + public boolean zombifiedPiglinRidableInWater = true; public boolean zombifiedPiglinControllable = true; + public double zombifiedPiglinMaxHealth = 20.0D; + public double zombifiedPiglinSpawnReinforcements = 0.0D; diff --git a/patches/server/0024-Giants-AI-settings.patch b/patches/server/0024-Giants-AI-settings.patch index d9bbbdc0b..673607040 100644 --- a/patches/server/0024-Giants-AI-settings.patch +++ b/patches/server/0024-Giants-AI-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Giants AI settings diff --git a/src/main/java/net/minecraft/world/entity/monster/Giant.java b/src/main/java/net/minecraft/world/entity/monster/Giant.java -index c1e5447a11b5bcdbd34e3d6538f977efd5b4692b..fcdf1b04e3dde0562b993794165c2fb649a634bf 100644 +index 2050230df7949e21f2158d2be5be885461afb66d..14b393c8b70a1aa950df9dcaef648a90469bde65 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Giant.java +++ b/src/main/java/net/minecraft/world/entity/monster/Giant.java @@ -1,13 +1,36 @@ @@ -120,10 +120,10 @@ index c1e5447a11b5bcdbd34e3d6538f977efd5b4692b..fcdf1b04e3dde0562b993794165c2fb6 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index d019d11be86bacf04a13c2db31b632ac6b6b923a..39e8c47af17dadce6e253a803954b50341dcba9c 100644 +index 1046f6de8a04c4368870596f90236fe01671173d..db811ee761ffd92a7eba4d0209894be54834387f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -549,6 +549,10 @@ public class PurpurWorldConfig { +@@ -551,6 +551,10 @@ public class PurpurWorldConfig { public double giantMovementSpeed = 0.5D; public double giantAttackDamage = 50.0D; public double giantMaxHealth = 100.0D; @@ -134,7 +134,7 @@ index d019d11be86bacf04a13c2db31b632ac6b6b923a..39e8c47af17dadce6e253a803954b503 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -565,6 +569,10 @@ public class PurpurWorldConfig { +@@ -567,6 +571,10 @@ public class PurpurWorldConfig { set("mobs.giant.attributes.max_health", oldValue); } giantMaxHealth = getDouble("mobs.giant.attributes.max_health", giantMaxHealth); diff --git a/patches/server/0025-Zombie-horse-naturally-spawn.patch b/patches/server/0025-Zombie-horse-naturally-spawn.patch index bcb3d2a63..6de3adcad 100644 --- a/patches/server/0025-Zombie-horse-naturally-spawn.patch +++ b/patches/server/0025-Zombie-horse-naturally-spawn.patch @@ -30,10 +30,10 @@ index ffde1d129c5434e7748cbdaac9109cbd3d0d29bc..057f4b71ff295cf6fed9cc5b86aa4034 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 6dd4777739ee284f251c844c7c54cb1114488e6f..47f8839902463214d9e171f676fafd7ce4e55632 100644 +index db811ee761ffd92a7eba4d0209894be54834387f..c9a38cf24041df4cdcbea59d9b1e09aa45d29e55 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1479,6 +1479,7 @@ public class PurpurWorldConfig { +@@ -1481,6 +1481,7 @@ public class PurpurWorldConfig { public double zombieHorseJumpStrengthMax = 1.0D; public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; @@ -41,7 +41,7 @@ index 6dd4777739ee284f251c844c7c54cb1114488e6f..47f8839902463214d9e171f676fafd7c private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -1494,6 +1495,7 @@ public class PurpurWorldConfig { +@@ -1496,6 +1497,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/0026-Charged-creeper-naturally-spawn.patch b/patches/server/0026-Charged-creeper-naturally-spawn.patch index fb52cb3e2..76f4e42f3 100644 --- a/patches/server/0026-Charged-creeper-naturally-spawn.patch +++ b/patches/server/0026-Charged-creeper-naturally-spawn.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Charged creeper naturally spawn diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index b128c8bf3c655464d0c279f32eb9a1968fcccc71..c368ac6f35ff4b309079b4895dcd3792f3b6b69e 100644 +index 50fa28f8348625be15e93800e2c071e243afd39a..76d796600411144b73d1e7e67f70bb032055d02a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -142,6 +142,14 @@ public class Creeper extends Monster implements PowerableMob { @@ -24,18 +24,18 @@ index b128c8bf3c655464d0c279f32eb9a1968fcccc71..c368ac6f35ff4b309079b4895dcd3792 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index fd9f7d6c52454e520411ab76142c7b93c04b6205..c466f442711ac2b8956e67f0cddca349e635a6f9 100644 +index c9a38cf24041df4cdcbea59d9b1e09aa45d29e55..f4a8e143ba35e36e6d5fb417e249feb3d4e5a7da 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -340,6 +340,7 @@ public class PurpurWorldConfig { - public boolean creeperRidableInWater = false; +@@ -342,6 +342,7 @@ public class PurpurWorldConfig { + public boolean creeperRidableInWater = true; public boolean creeperControllable = true; public double creeperMaxHealth = 20.0D; + public double creeperChargedChance = 0.0D; private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -350,6 +351,7 @@ public class PurpurWorldConfig { +@@ -352,6 +353,7 @@ public class PurpurWorldConfig { set("mobs.creeper.attributes.max_health", oldValue); } creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); diff --git a/patches/server/0027-Rabbit-naturally-spawn-toast-and-killer.patch b/patches/server/0027-Rabbit-naturally-spawn-toast-and-killer.patch index 0ee1bac16..ed5a85de6 100644 --- a/patches/server/0027-Rabbit-naturally-spawn-toast-and-killer.patch +++ b/patches/server/0027-Rabbit-naturally-spawn-toast-and-killer.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Rabbit naturally spawn toast and killer diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index 76dcd7430dbadc6b925f58b670a9eb59078b2882..92da91319f59745f43529b9ddae032a8f60f693d 100644 +index ebb85ac5b77450a1ae91c986512125814fa0907f..620cf2c9927648804155495a908df1d36d9832af 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -465,10 +465,23 @@ public class Rabbit extends Animal implements VariantHolder { @@ -33,11 +33,11 @@ index 76dcd7430dbadc6b925f58b670a9eb59078b2882..92da91319f59745f43529b9ddae032a8 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 c466f442711ac2b8956e67f0cddca349e635a6f9..15ec6db30230a6b3ce20c9d4dd2128c056a9f475 100644 +index f4a8e143ba35e36e6d5fb417e249feb3d4e5a7da..238f1a5bb2f2c826f71c11b7718cd4b64930565d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -983,6 +983,8 @@ public class PurpurWorldConfig { - public boolean rabbitRidableInWater = false; +@@ -985,6 +985,8 @@ public class PurpurWorldConfig { + public boolean rabbitRidableInWater = true; public boolean rabbitControllable = true; public double rabbitMaxHealth = 3.0D; + public double rabbitNaturalToast = 0.0D; @@ -45,7 +45,7 @@ index c466f442711ac2b8956e67f0cddca349e635a6f9..15ec6db30230a6b3ce20c9d4dd2128c0 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -993,6 +995,8 @@ public class PurpurWorldConfig { +@@ -995,6 +997,8 @@ public class PurpurWorldConfig { set("mobs.rabbit.attributes.max_health", oldValue); } rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); diff --git a/patches/server/0029-Tulips-change-fox-type.patch b/patches/server/0029-Tulips-change-fox-type.patch index 678d8ff04..c259c081b 100644 --- a/patches/server/0029-Tulips-change-fox-type.patch +++ b/patches/server/0029-Tulips-change-fox-type.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Tulips change fox type diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 7a6239897d03a0502addc42853414e6d0caa42c3..2119cdd90228f9034781b9496640b159343afbd8 100644 +index 5de86c59bf857e6697bb768e3dd71a05739fb3d2..d5f536eb87163c946815ace610ba99ad2a0b16c5 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -35,6 +35,7 @@ import net.minecraft.util.RandomSource; @@ -75,18 +75,18 @@ index 7a6239897d03a0502addc42853414e6d0caa42c3..2119cdd90228f9034781b9496640b159 // 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 15ec6db30230a6b3ce20c9d4dd2128c056a9f475..0ddb21b3f4735082206341bb7e8a7e1bbe318021 100644 +index 238f1a5bb2f2c826f71c11b7718cd4b64930565d..93bdefe8ec286f24df65f72c246673a8833d3050 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -504,6 +504,7 @@ public class PurpurWorldConfig { - public boolean foxRidableInWater = false; +@@ -506,6 +506,7 @@ public class PurpurWorldConfig { + public boolean foxRidableInWater = true; public boolean foxControllable = true; public double foxMaxHealth = 10.0D; + public boolean foxTypeChangesWithTulips = false; private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -514,6 +515,7 @@ public class PurpurWorldConfig { +@@ -516,6 +517,7 @@ public class PurpurWorldConfig { set("mobs.fox.attributes.max_health", oldValue); } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); diff --git a/patches/server/0030-Breedable-Polar-Bears.patch b/patches/server/0030-Breedable-Polar-Bears.patch index d2147ef40..c0005cfbe 100644 --- a/patches/server/0030-Breedable-Polar-Bears.patch +++ b/patches/server/0030-Breedable-Polar-Bears.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Breedable Polar Bears diff --git a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java -index e7b6e42aabe30b7804bf2d98d2b4d393621e1d7b..e439ce2c0752ee772df888ccccf9d97e45a83b1c 100644 +index 90e5114a5c1a341d0ac64d72d6306ddeb09cb728..69a0e50a4f136a3e799f8fc079bd931a83235bd0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/PolarBear.java +++ b/src/main/java/net/minecraft/world/entity/animal/PolarBear.java @@ -97,6 +97,27 @@ public class PolarBear extends Animal implements NeutralMob { @@ -59,11 +59,11 @@ index e7b6e42aabe30b7804bf2d98d2b4d393621e1d7b..e439ce2c0752ee772df888ccccf9d97e 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 0ddb21b3f4735082206341bb7e8a7e1bbe318021..8e60360c55b156bfeea4a0f87621e34ce07a2149 100644 +index 93bdefe8ec286f24df65f72c246673a8833d3050..63d0bd7b55d57b1dbdc8a319709e5d8ba2c1c8d5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -955,6 +955,8 @@ public class PurpurWorldConfig { - public boolean polarBearRidableInWater = false; +@@ -957,6 +957,8 @@ public class PurpurWorldConfig { + public boolean polarBearRidableInWater = true; public boolean polarBearControllable = true; public double polarBearMaxHealth = 30.0D; + public String polarBearBreedableItemString = ""; @@ -71,7 +71,7 @@ index 0ddb21b3f4735082206341bb7e8a7e1bbe318021..8e60360c55b156bfeea4a0f87621e34c private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -965,6 +967,9 @@ public class PurpurWorldConfig { +@@ -967,6 +969,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/0031-Chickens-can-retaliate.patch b/patches/server/0031-Chickens-can-retaliate.patch index fe2d997b7..bd2f07dbb 100644 --- a/patches/server/0031-Chickens-can-retaliate.patch +++ b/patches/server/0031-Chickens-can-retaliate.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Chickens can retaliate diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java -index f28e6daa41e99f1279c79e2392a76ca6f51c1b4b..4b66412d04a28e3ee0a6e6c5fa0f3f4bf633d2d8 100644 +index 5207a2a8c06cd413e1d62c5eec7a232dce952b8b..da281eb1355fd753dfdb69cee13661818b5d0fc8 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java +++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java @@ -73,6 +73,9 @@ public class Chicken extends Animal { @@ -51,10 +51,10 @@ index f28e6daa41e99f1279c79e2392a76ca6f51c1b4b..4b66412d04a28e3ee0a6e6c5fa0f3f4b @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8e60360c55b156bfeea4a0f87621e34ce07a2149..b2f115a84c02f33e0bf3bd4270868cff613e3f1e 100644 +index 63d0bd7b55d57b1dbdc8a319709e5d8ba2c1c8d5..47bd9c45b4a560b1fcc01eee9606afef7416f70d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -294,6 +294,7 @@ public class PurpurWorldConfig { +@@ -296,6 +296,7 @@ public class PurpurWorldConfig { public boolean chickenRidableInWater = false; public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; @@ -62,7 +62,7 @@ index 8e60360c55b156bfeea4a0f87621e34ce07a2149..b2f115a84c02f33e0bf3bd4270868cff private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -304,6 +305,7 @@ public class PurpurWorldConfig { +@@ -306,6 +307,7 @@ public class PurpurWorldConfig { set("mobs.chicken.attributes.max_health", oldValue); } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); diff --git a/patches/server/0033-Cat-spawning-options.patch b/patches/server/0033-Cat-spawning-options.patch index 8655f9345..a21df5b45 100644 --- a/patches/server/0033-Cat-spawning-options.patch +++ b/patches/server/0033-Cat-spawning-options.patch @@ -51,11 +51,11 @@ index 5f407535298a31a34cfe114dd863fd6a9b977707..29c7e33fe961020e5a0007287fe9b663 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 659306ff7e8dac205de885ebb2b3feee641c6e26..5e4e8c515d8b2c6c4530b047f4f654bb55d9808f 100644 +index 7fe6efbed2bd5f9a9d5b9a8ff5118a799cda4d11..47106d83ed3c1d4fef75cb3e77b8dc87f936bde5 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -267,6 +267,9 @@ public class PurpurWorldConfig { - public boolean catRidableInWater = false; +@@ -269,6 +269,9 @@ public class PurpurWorldConfig { + public boolean catRidableInWater = true; public boolean catControllable = true; public double catMaxHealth = 10.0D; + public int catSpawnDelay = 1200; @@ -64,7 +64,7 @@ index 659306ff7e8dac205de885ebb2b3feee641c6e26..5e4e8c515d8b2c6c4530b047f4f654bb private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -277,6 +280,9 @@ public class PurpurWorldConfig { +@@ -279,6 +282,9 @@ public class PurpurWorldConfig { set("mobs.cat.attributes.max_health", oldValue); } catMaxHealth = getDouble("mobs.cat.attributes.max_health", catMaxHealth); diff --git a/patches/server/0034-Cows-eat-mushrooms.patch b/patches/server/0034-Cows-eat-mushrooms.patch index b75363f16..be813bb21 100644 --- a/patches/server/0034-Cows-eat-mushrooms.patch +++ b/patches/server/0034-Cows-eat-mushrooms.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Cows eat mushrooms diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java -index 29720c0681b5c08e3a7ac5b07c6d83a1760297f1..757b846bb1591c36e6b4413e3a8534986a84233f 100644 +index e24173dcd6f083a3ae61edcf71bb7236d644a422..b7a0ee0e055d12e36b411859211367c9df3b9549 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cow.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java @@ -2,6 +2,7 @@ package net.minecraft.world.entity.animal; @@ -114,18 +114,18 @@ index 29720c0681b5c08e3a7ac5b07c6d83a1760297f1..757b846bb1591c36e6b4413e3a853498 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5e4e8c515d8b2c6c4530b047f4f654bb55d9808f..b3b1f1f657be2b01d497ad6feff5ed58de3af3e8 100644 +index 47106d83ed3c1d4fef75cb3e77b8dc87f936bde5..5d3e7a0a1fa5b84badd43fb9d474e3c10de35868 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 { - public boolean cowRidableInWater = false; +@@ -339,6 +339,7 @@ public class PurpurWorldConfig { + public boolean cowRidableInWater = true; public boolean cowControllable = true; public double cowMaxHealth = 10.0D; + public int cowFeedMushrooms = 0; private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -347,6 +348,7 @@ public class PurpurWorldConfig { +@@ -349,6 +350,7 @@ public class PurpurWorldConfig { set("mobs.cow.attributes.max_health", oldValue); } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); diff --git a/patches/server/0036-Pigs-give-saddle-back.patch b/patches/server/0036-Pigs-give-saddle-back.patch index 84234693d..dc4a055ad 100644 --- a/patches/server/0036-Pigs-give-saddle-back.patch +++ b/patches/server/0036-Pigs-give-saddle-back.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Pigs give saddle back diff --git a/src/main/java/net/minecraft/world/entity/animal/Pig.java b/src/main/java/net/minecraft/world/entity/animal/Pig.java -index 03844563434133a8fab4db4c597d35d4a745a12f..97e2b3a4445d195021a67567c4b0c3346095e7e8 100644 +index 17cd8463fa5b601946782174f0a0a77a93aacf4d..8734738ce69e2e776b80a4695fce3bcf33213959 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Pig.java +++ b/src/main/java/net/minecraft/world/entity/animal/Pig.java @@ -174,6 +174,17 @@ public class Pig extends Animal implements ItemSteerable, Saddleable { @@ -27,10 +27,10 @@ index 03844563434133a8fab4db4c597d35d4a745a12f..97e2b3a4445d195021a67567c4b0c334 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 b3b1f1f657be2b01d497ad6feff5ed58de3af3e8..9fcf8bdd944cf0c7a91cd3032e40d53c44fde9ce 100644 +index 5d3e7a0a1fa5b84badd43fb9d474e3c10de35868..b2851cd99429671d41264b306321552ed2caebef 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 { +@@ -908,6 +908,7 @@ public class PurpurWorldConfig { public boolean pigRidableInWater = false; public boolean pigControllable = true; public double pigMaxHealth = 10.0D; @@ -38,7 +38,7 @@ index b3b1f1f657be2b01d497ad6feff5ed58de3af3e8..9fcf8bdd944cf0c7a91cd3032e40d53c private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -916,6 +917,7 @@ public class PurpurWorldConfig { +@@ -918,6 +919,7 @@ public class PurpurWorldConfig { set("mobs.pig.attributes.max_health", oldValue); } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); diff --git a/patches/server/0037-Snowman-drop-and-put-back-pumpkin.patch b/patches/server/0037-Snowman-drop-and-put-back-pumpkin.patch index 7377e2f8c..b10cd2493 100644 --- a/patches/server/0037-Snowman-drop-and-put-back-pumpkin.patch +++ b/patches/server/0037-Snowman-drop-and-put-back-pumpkin.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Snowman drop and put back pumpkin diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index 6f6542f57ed942de91957edf49ef8d92b5233aa8..b6431dbb41163f9ef0d43e96fcf89750c5a6eef7 100644 +index 7da9fcf10e6480a71d7a3e9934bb91320cac227e..6c6e020522261ca5bbc47a59c25d3e98bf0b4007 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -191,6 +191,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -32,10 +32,10 @@ index 6f6542f57ed942de91957edf49ef8d92b5233aa8..b6431dbb41163f9ef0d43e96fcf89750 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 e82fdd52ae6fff3223d87c8a4695158dfd9740e6..5fefc46500a6bb824350c7b7aea3db20e5acfcb7 100644 +index b2851cd99429671d41264b306321552ed2caebef..4a7f80f623d30a3781c04e05aa1bcf57f47caab2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1169,6 +1169,8 @@ public class PurpurWorldConfig { +@@ -1171,6 +1171,8 @@ public class PurpurWorldConfig { public boolean snowGolemControllable = true; public boolean snowGolemLeaveTrailWhenRidden = false; public double snowGolemMaxHealth = 4.0D; @@ -44,7 +44,7 @@ index e82fdd52ae6fff3223d87c8a4695158dfd9740e6..5fefc46500a6bb824350c7b7aea3db20 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1180,6 +1182,8 @@ public class PurpurWorldConfig { +@@ -1182,6 +1184,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/0038-Ender-dragon-always-drop-full-exp.patch b/patches/server/0038-Ender-dragon-always-drop-full-exp.patch index 401c3db6f..d3bec21ad 100644 --- a/patches/server/0038-Ender-dragon-always-drop-full-exp.patch +++ b/patches/server/0038-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 09ed5144c448f7620b5c856a9fa12da07ec0cce6..1612705ba8cf58286a00b4d542541d17b901d286 100644 +index a23458734a192425ddbec9b114d8485d8e7a2bd3..178c01444b7894833265c21a50ff6805d1aa356a 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 @@ -714,7 +714,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -18,10 +18,10 @@ index 09ed5144c448f7620b5c856a9fa12da07ec0cce6..1612705ba8cf58286a00b4d542541d17 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 06f0fa854cef604fd36073734f4bbf42f3ea497e..4e33ff9bed768bbcb11a6fbdabfc2b72952b593f 100644 +index 4a7f80f623d30a3781c04e05aa1bcf57f47caab2..d0ce35d161498220eb1b0ce7ff8d0abd8a06fc35 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -450,6 +450,7 @@ public class PurpurWorldConfig { +@@ -452,6 +452,7 @@ public class PurpurWorldConfig { public boolean enderDragonControllable = true; public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; @@ -29,7 +29,7 @@ index 06f0fa854cef604fd36073734f4bbf42f3ea497e..4e33ff9bed768bbcb11a6fbdabfc2b72 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -465,6 +466,7 @@ public class PurpurWorldConfig { +@@ -467,6 +468,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/0049-Add-enderman-and-creeper-griefing-controls.patch b/patches/server/0049-Add-enderman-and-creeper-griefing-controls.patch index f24a298e6..4a325e351 100644 --- a/patches/server/0049-Add-enderman-and-creeper-griefing-controls.patch +++ b/patches/server/0049-Add-enderman-and-creeper-griefing-controls.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add enderman and creeper griefing controls diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java -index c368ac6f35ff4b309079b4895dcd3792f3b6b69e..ccdf278afc5eab5e05649d54ef30d1c27b8b9daa 100644 +index 76d796600411144b73d1e7e67f70bb032055d02a..b25d3e25a6be150739aeed99b81e99e3c995dbae 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -361,7 +361,7 @@ public class Creeper extends Monster implements PowerableMob { @@ -18,7 +18,7 @@ index c368ac6f35ff4b309079b4895dcd3792f3b6b69e..ccdf278afc5eab5e05649d54ef30d1c2 this.spawnLingeringCloud(); } else { 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 6e93faa6debeba159664401a49ddd5ca159abf80..7e67e034cf8b4459f274975567b9c25d7349abf1 100644 +index b7b2762ff6b01da9a3df0ab0add6d50efd76db8d..3e210f4113765e5e265d9b0cfbd911db6f586327 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -530,6 +530,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -38,10 +38,10 @@ index 6e93faa6debeba159664401a49ddd5ca159abf80..7e67e034cf8b4459f274975567b9c25d } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index e17d6ef06c6125e88986aa01243a6b96360c8114..5bd1546082466cac963cce61c72d2698267f3554 100644 +index 65ab2e13ac14ced0272748ff79cc249fdeef3c95..85945024793eebecaac97f76766b08c95bdd0f92 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -437,6 +437,7 @@ public class PurpurWorldConfig { +@@ -439,6 +439,7 @@ public class PurpurWorldConfig { public boolean creeperControllable = true; public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; @@ -49,7 +49,7 @@ index e17d6ef06c6125e88986aa01243a6b96360c8114..5bd1546082466cac963cce61c72d2698 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -448,6 +449,7 @@ public class PurpurWorldConfig { +@@ -450,6 +451,7 @@ public class PurpurWorldConfig { } creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); @@ -57,15 +57,15 @@ index e17d6ef06c6125e88986aa01243a6b96360c8114..5bd1546082466cac963cce61c72d2698 } public boolean dolphinRidable = false; -@@ -554,6 +556,7 @@ public class PurpurWorldConfig { - public boolean endermanRidableInWater = false; +@@ -556,6 +558,7 @@ public class PurpurWorldConfig { + public boolean endermanRidableInWater = true; public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; + public boolean endermanAllowGriefing = true; private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -564,6 +567,7 @@ public class PurpurWorldConfig { +@@ -566,6 +569,7 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max_health", oldValue); } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); diff --git a/patches/server/0050-Villagers-follow-emerald-blocks.patch b/patches/server/0050-Villagers-follow-emerald-blocks.patch index dddf90779..779e5d216 100644 --- a/patches/server/0050-Villagers-follow-emerald-blocks.patch +++ b/patches/server/0050-Villagers-follow-emerald-blocks.patch @@ -30,7 +30,7 @@ index ca96b893e22de3ae7c11d5cded51edf70bdcb6f2..d4ab27de59e9c533789f062e74ceb453 // CraftBukkit start private CraftMerchant craftMerchant; diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 9c3541a3506f270dd79e52103c4f83ad0df0ae94..3240df0e30b882b8d112e6d92187c1bda0f6973b 100644 +index f9828580075d70d804c92d6db9a944d2e436e268..e815600937d177694f7883ee963c7a34d08ea34d 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -172,6 +172,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -42,7 +42,7 @@ index 9c3541a3506f270dd79e52103c4f83ad0df0ae94..3240df0e30b882b8d112e6d92187c1bd @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index d2324e2dbd72fcd5a8ab562bc3b6e53088647137..c61e4ee036c60c6eaeabccd9785fb690520fdcf2 100644 +index 71212ecb84bdbf838b4a5fbefbe9cfa6343542c4..8bbf7dc66fb225d20fc68d858ce5ed339482b1ef 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -111,6 +111,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -54,18 +54,18 @@ index d2324e2dbd72fcd5a8ab562bc3b6e53088647137..c61e4ee036c60c6eaeabccd9785fb690 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 afccb980aa518659c733859e8175dcb998a45f58..a41aa38eb0f219309603ad5c8605dd47a3b24951 100644 +index 85945024793eebecaac97f76766b08c95bdd0f92..c95c10551e45993eb8b8402db1ce1b4a5afe9872 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1435,6 +1435,7 @@ public class PurpurWorldConfig { - public boolean villagerRidableInWater = false; +@@ -1437,6 +1437,7 @@ public class PurpurWorldConfig { + public boolean villagerRidableInWater = true; public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; + public boolean villagerFollowEmeraldBlock = false; private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1445,6 +1446,7 @@ public class PurpurWorldConfig { +@@ -1447,6 +1448,7 @@ public class PurpurWorldConfig { set("mobs.villager.attributes.max_health", oldValue); } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); @@ -73,15 +73,15 @@ index afccb980aa518659c733859e8175dcb998a45f58..a41aa38eb0f219309603ad5c8605dd47 } public boolean vindicatorRidable = false; -@@ -1467,6 +1469,7 @@ public class PurpurWorldConfig { - public boolean wanderingTraderRidableInWater = false; +@@ -1469,6 +1471,7 @@ public class PurpurWorldConfig { + public boolean wanderingTraderRidableInWater = true; public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; + public boolean wanderingTraderFollowEmeraldBlock = false; private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1477,6 +1480,7 @@ public class PurpurWorldConfig { +@@ -1479,6 +1482,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/0051-Allow-leashing-villagers.patch b/patches/server/0051-Allow-leashing-villagers.patch index 54026843e..dc0764bad 100644 --- a/patches/server/0051-Allow-leashing-villagers.patch +++ b/patches/server/0051-Allow-leashing-villagers.patch @@ -17,7 +17,7 @@ index 76d8bab7cc1bdbd1946af60a1a2ffef1c7ef4415..636b073f839393c0095f178131e54d18 // Paper start - drop leash variable org.bukkit.event.player.PlayerUnleashEntityEvent event = CraftEventFactory.callPlayerUnleashEntityEvent(this, player, hand, !player.getAbilities().instabuild); diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 3240df0e30b882b8d112e6d92187c1bda0f6973b..cb8ea90c03bcd5ad81d9478abcd556838143850e 100644 +index e815600937d177694f7883ee963c7a34d08ea34d..10e9786b03618232f67cdd88e68161f96ea97ca4 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -179,6 +179,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -33,7 +33,7 @@ index 3240df0e30b882b8d112e6d92187c1bda0f6973b..cb8ea90c03bcd5ad81d9478abcd55683 @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index c61e4ee036c60c6eaeabccd9785fb690520fdcf2..fbbeacb94aeda40e9fc5c0553ab68948de9019c4 100644 +index 8bbf7dc66fb225d20fc68d858ce5ed339482b1ef..559bad9524a00a5357973f30d54b0f1a3ed6dadb 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -89,6 +89,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -49,10 +49,10 @@ index c61e4ee036c60c6eaeabccd9785fb690520fdcf2..fbbeacb94aeda40e9fc5c0553ab68948 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a41aa38eb0f219309603ad5c8605dd47a3b24951..5f76361dcd69083d6a78be07fc722f73d9d29022 100644 +index c95c10551e45993eb8b8402db1ce1b4a5afe9872..46fa35c5defbf98e34c611a87b3733836907bb54 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1436,6 +1436,7 @@ public class PurpurWorldConfig { +@@ -1438,6 +1438,7 @@ public class PurpurWorldConfig { public boolean villagerControllable = true; public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; @@ -60,7 +60,7 @@ index a41aa38eb0f219309603ad5c8605dd47a3b24951..5f76361dcd69083d6a78be07fc722f73 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1447,6 +1448,7 @@ public class PurpurWorldConfig { +@@ -1449,6 +1450,7 @@ public class PurpurWorldConfig { } villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); @@ -68,7 +68,7 @@ index a41aa38eb0f219309603ad5c8605dd47a3b24951..5f76361dcd69083d6a78be07fc722f73 } public boolean vindicatorRidable = false; -@@ -1470,6 +1472,7 @@ public class PurpurWorldConfig { +@@ -1472,6 +1474,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderControllable = true; public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; @@ -76,7 +76,7 @@ index a41aa38eb0f219309603ad5c8605dd47a3b24951..5f76361dcd69083d6a78be07fc722f73 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1481,6 +1484,7 @@ public class PurpurWorldConfig { +@@ -1483,6 +1486,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/0066-Configurable-jockey-options.patch b/patches/server/0066-Configurable-jockey-options.patch index 2203a4238..6cc025105 100644 --- a/patches/server/0066-Configurable-jockey-options.patch +++ b/patches/server/0066-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 edfc149ef228954fe0900439c8bf25f4249b28e2..9005034e99e0398cf7b2cca528fbe55d4baa2e9d 100644 +index 0139d890c22db09c4b67a1e1bcf179a6571c7cd6..863fd15039e53405aac66d769598a38ac2586115 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 { @@ -31,7 +31,7 @@ index edfc149ef228954fe0900439c8bf25f4249b28e2..9005034e99e0398cf7b2cca528fbe55d @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java -index 80bb77199791a312216e8366275e5b0e1c8b14fa..874e3a4adf3d4e688a240f29888ee0bbaaacc9dc 100644 +index 4dc604f2d36494bbe139b7ef4649089207dd092f..58006eab96f505215053203bff6853ca784468f5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Husk.java +++ b/src/main/java/net/minecraft/world/entity/monster/Husk.java @@ -47,6 +47,21 @@ public class Husk extends Zombie { @@ -57,7 +57,7 @@ index 80bb77199791a312216e8366275e5b0e1c8b14fa..874e3a4adf3d4e688a240f29888ee0bb public static boolean checkHuskSpawnRules(EntityType type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { 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 afe866e4a41a824bcfb9aa70779c52381386c472..4a38fec232e2a087f8ef3f7a0c8fff17ddd714d0 100644 +index 77712e0bb78bef24f05d9949c3ae4ee7ec2efb96..fb41431f25081c8ca0cf03dc5128f78f589e4e26 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -126,6 +126,18 @@ public class Zombie extends Monster { @@ -115,7 +115,7 @@ index afe866e4a41a824bcfb9aa70779c52381386c472..4a38fec232e2a087f8ef3f7a0c8fff17 } } diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index d24e41ac992972d1679c279b10290c01db73a5b5..0f12e4ac6eab349418328a80a2b02fa27ce3f39b 100644 +index 073a45cd24c92e63b349a93da91cedfa10103101..9754f1d53cc5b2ea982531e0240c4fb41e4f1d35 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -104,6 +104,21 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -141,7 +141,7 @@ index d24e41ac992972d1679c279b10290c01db73a5b5..0f12e4ac6eab349418328a80a2b02fa2 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index cdeb39d02b618b648681ca51a592b7b3508e46f5..b5b4cb3fefd769f5d8ec5b60b4b41ffb023d19c5 100644 +index 2df1aa1af12b403e9cd87d61b2ff1516f754f589..f2c690c92dd2bf55f986f629ed79b76fbdfa32a4 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java @@ -83,6 +83,21 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -167,10 +167,10 @@ index cdeb39d02b618b648681ca51a592b7b3508e46f5..b5b4cb3fefd769f5d8ec5b60b4b41ffb @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28cc991bd9b 100644 +index 2802191b8582840532e0774369082bca487a081d..c362dbe806269a04765babafa0866b774ed396a1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -588,6 +588,9 @@ public class PurpurWorldConfig { +@@ -590,6 +590,9 @@ public class PurpurWorldConfig { public boolean drownedControllable = true; public double drownedMaxHealth = 20.0D; public double drownedSpawnReinforcements = 0.1D; @@ -180,7 +180,7 @@ index 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28c private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -599,6 +602,9 @@ public class PurpurWorldConfig { +@@ -601,6 +604,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 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28c } public boolean elderGuardianRidable = false; -@@ -847,6 +853,9 @@ public class PurpurWorldConfig { +@@ -849,6 +855,9 @@ public class PurpurWorldConfig { public boolean huskControllable = true; public double huskMaxHealth = 20.0D; public double huskSpawnReinforcements = 0.1D; @@ -200,7 +200,7 @@ index 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28c private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -858,6 +867,9 @@ public class PurpurWorldConfig { +@@ -860,6 +869,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 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28c } public boolean illusionerRidable = false; -@@ -1674,6 +1686,9 @@ public class PurpurWorldConfig { +@@ -1676,6 +1688,9 @@ public class PurpurWorldConfig { public boolean zombieControllable = true; public double zombieMaxHealth = 20.0D; public double zombieSpawnReinforcements = 0.1D; @@ -220,7 +220,7 @@ index 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28c private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1685,6 +1700,9 @@ public class PurpurWorldConfig { +@@ -1687,6 +1702,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 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28c } public boolean zombieHorseRidableInWater = false; -@@ -1719,6 +1737,9 @@ public class PurpurWorldConfig { +@@ -1721,6 +1739,9 @@ public class PurpurWorldConfig { public boolean zombieVillagerControllable = true; public double zombieVillagerMaxHealth = 20.0D; public double zombieVillagerSpawnReinforcements = 0.1D; @@ -240,7 +240,7 @@ index 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28c private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -1730,6 +1751,9 @@ public class PurpurWorldConfig { +@@ -1732,6 +1753,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 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28c } public boolean zombifiedPiglinRidable = false; -@@ -1737,6 +1761,9 @@ public class PurpurWorldConfig { +@@ -1739,6 +1763,9 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinControllable = true; public double zombifiedPiglinMaxHealth = 20.0D; public double zombifiedPiglinSpawnReinforcements = 0.0D; @@ -260,7 +260,7 @@ index 71415037419ed8351477670c879cf1dee9e74ac0..0b0ba101d66004606061bdfe1304b28c private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -1748,5 +1775,8 @@ public class PurpurWorldConfig { +@@ -1750,5 +1777,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/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch b/patches/server/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch index a44c13098..51b0a3429 100644 --- a/patches/server/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch +++ b/patches/server/0067-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch @@ -73,7 +73,7 @@ index 64f17b4a22454b59968787089253eaba0a04c1f2..b373f9e4b5a2604bcbccd36cd3de961f @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 8a592993aedc72d8ffe1b1ad5e526cc292d69737..89c24d35c03f41a1928db352e42ed07a910a8a36 100644 +index e271555ac03fcbb565a7fe08efdc9a6036164e74..fd02dfb905c71fa10e0830cf0a02d4b63b81f23f 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 8a592993aedc72d8ffe1b1ad5e526cc292d69737..89c24d35c03f41a1928db352e42ed07a 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 8d0c535b30bf61f56f5f62c851fdc627f25a9be6..ae0942b76923d34ac80885d6fe6e0a2ee7932a84 100644 +index c362dbe806269a04765babafa0866b774ed396a1..988e7255df7f32dff84f1d2abc2ec642095e3d58 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1065,6 +1065,9 @@ public class PurpurWorldConfig { +@@ -1067,6 +1067,9 @@ public class PurpurWorldConfig { public String phantomAttackDamage = "6 + size"; public Map phantomMaxHealthCache = new HashMap<>(); public Map phantomAttackDamageCache = new HashMap<>(); @@ -271,7 +271,7 @@ index 8d0c535b30bf61f56f5f62c851fdc627f25a9be6..ae0942b76923d34ac80885d6fe6e0a2e private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1086,6 +1089,9 @@ public class PurpurWorldConfig { +@@ -1088,6 +1091,9 @@ public class PurpurWorldConfig { phantomAttackDamage = getString("mobs.phantom.attributes.attack_damage", phantomAttackDamage); phantomMaxHealthCache.clear(); phantomAttackDamageCache.clear(); diff --git a/patches/server/0068-Add-phantom-spawning-options.patch b/patches/server/0068-Add-phantom-spawning-options.patch index 7e947f41b..12d671b48 100644 --- a/patches/server/0068-Add-phantom-spawning-options.patch +++ b/patches/server/0068-Add-phantom-spawning-options.patch @@ -40,10 +40,10 @@ index e8ae4449696d73c8c9b8b27d4d2e20db933a72cc..f55c50f6637a4f930b15565d6ac82bb4 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 ae0942b76923d34ac80885d6fe6e0a2ee7932a84..76818776d647dea7cdad6ff532dac696b8258c06 100644 +index 988e7255df7f32dff84f1d2abc2ec642095e3d58..cf0842e65e1360d6860f4b519631a71a91c40145 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1068,6 +1068,12 @@ public class PurpurWorldConfig { +@@ -1070,6 +1070,12 @@ public class PurpurWorldConfig { public double phantomAttackedByCrystalRadius = 0.0D; public float phantomAttackedByCrystalDamage = 1.0F; public double phantomOrbitCrystalRadius = 0.0D; @@ -56,7 +56,7 @@ index ae0942b76923d34ac80885d6fe6e0a2ee7932a84..76818776d647dea7cdad6ff532dac696 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1092,6 +1098,12 @@ public class PurpurWorldConfig { +@@ -1094,6 +1100,12 @@ public class PurpurWorldConfig { phantomAttackedByCrystalRadius = getDouble("mobs.phantom.attacked-by-crystal-range", phantomAttackedByCrystalRadius); phantomAttackedByCrystalDamage = (float) getDouble("mobs.phantom.attacked-by-crystal-damage", phantomAttackedByCrystalDamage); phantomOrbitCrystalRadius = getDouble("mobs.phantom.orbit-crystal-radius", phantomOrbitCrystalRadius); diff --git a/patches/server/0075-Squid-EAR-immunity.patch b/patches/server/0075-Squid-EAR-immunity.patch index 2ba7f10d4..dc5a60e8a 100644 --- a/patches/server/0075-Squid-EAR-immunity.patch +++ b/patches/server/0075-Squid-EAR-immunity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Squid EAR immunity diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a6d807ac6c9486bddac5a15bdb345aa6d660c3d9..027d52ced384f3add57432bbdf5321ce7ea3cf22 100644 +index 2cbab8dc920fff0d1573072b791f39debd61a710..6b2a2b898d8a4b75f7c9d1ec7112e4f748413e95 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1453,6 +1453,7 @@ public class PurpurWorldConfig { +@@ -1455,6 +1455,7 @@ public class PurpurWorldConfig { public boolean squidRidable = false; public boolean squidControllable = true; public double squidMaxHealth = 10.0D; @@ -16,7 +16,7 @@ index a6d807ac6c9486bddac5a15bdb345aa6d660c3d9..027d52ced384f3add57432bbdf5321ce private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1462,6 +1463,7 @@ public class PurpurWorldConfig { +@@ -1464,6 +1465,7 @@ public class PurpurWorldConfig { set("mobs.squid.attributes.max_health", oldValue); } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); diff --git a/patches/server/0076-Phantoms-burn-in-light.patch b/patches/server/0076-Phantoms-burn-in-light.patch index e45429c1f..0fb936ebe 100644 --- a/patches/server/0076-Phantoms-burn-in-light.patch +++ b/patches/server/0076-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 89c24d35c03f41a1928db352e42ed07a910a8a36..2d211ce0221c1fd7f1aeb8381d0746860739fe5a 100644 +index fd02dfb905c71fa10e0830cf0a02d4b63b81f23f..b601c542e28bc0a588e56aa37c243fe92145547e 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 89c24d35c03f41a1928db352e42ed07a910a8a36..2d211ce0221c1fd7f1aeb8381d074686 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 3ddbfdfe9422f7c1f87f9a26d35ad11507b93573..9c4a016d9567e0e6737e60d7518a23537ef87bd7 100644 +index 6b2a2b898d8a4b75f7c9d1ec7112e4f748413e95..99866d1ddf31dd231c2b097716e4f1d7300e0680 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1123,6 +1123,9 @@ public class PurpurWorldConfig { +@@ -1125,6 +1125,9 @@ public class PurpurWorldConfig { public double phantomSpawnLocalDifficultyChance = 3.0D; public int phantomSpawnMinPerAttempt = 1; public int phantomSpawnMaxPerAttempt = -1; @@ -66,7 +66,7 @@ index 3ddbfdfe9422f7c1f87f9a26d35ad11507b93573..9c4a016d9567e0e6737e60d7518a2353 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1153,6 +1156,9 @@ public class PurpurWorldConfig { +@@ -1155,6 +1158,9 @@ public class PurpurWorldConfig { phantomSpawnLocalDifficultyChance = getDouble("mobs.phantom.spawn.local-difficulty-chance", phantomSpawnLocalDifficultyChance); phantomSpawnMinPerAttempt = getInt("mobs.phantom.spawn.per-attempt.min", phantomSpawnMinPerAttempt); phantomSpawnMaxPerAttempt = getInt("mobs.phantom.spawn.per-attempt.max", phantomSpawnMaxPerAttempt); diff --git a/patches/server/0077-Configurable-villager-breeding.patch b/patches/server/0077-Configurable-villager-breeding.patch index 644317266..5ae7dd23f 100644 --- a/patches/server/0077-Configurable-villager-breeding.patch +++ b/patches/server/0077-Configurable-villager-breeding.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable villager breeding diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index cb8ea90c03bcd5ad81d9478abcd556838143850e..ab3497bd22beffaf7a66bdd502b9e1bfc6478881 100644 +index 10e9786b03618232f67cdd88e68161f96ea97ca4..a6d6faf9fed28a97de763e2bd0af38fa9656517e 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -775,7 +775,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -18,10 +18,10 @@ index cb8ea90c03bcd5ad81d9478abcd556838143850e..ab3497bd22beffaf7a66bdd502b9e1bf private boolean hungry() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b9a70e8da46923d5efc31dfac54d2fe58acb4f82..f5c1434946d54deb6a5924146f0c0003e1cd3176 100644 +index 99866d1ddf31dd231c2b097716e4f1d7300e0680..992b4fd09aeb6ef23310b1351b8dec38e4527c8d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1611,6 +1611,7 @@ public class PurpurWorldConfig { +@@ -1613,6 +1613,7 @@ public class PurpurWorldConfig { public double villagerMaxHealth = 20.0D; public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; @@ -29,7 +29,7 @@ index b9a70e8da46923d5efc31dfac54d2fe58acb4f82..f5c1434946d54deb6a5924146f0c0003 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1623,6 +1624,7 @@ public class PurpurWorldConfig { +@@ -1625,6 +1626,7 @@ public class PurpurWorldConfig { villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth); villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); diff --git a/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch b/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch index b9490a8a5..e8cf232b0 100644 --- a/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch +++ b/patches/server/0080-Add-vindicator-johnny-spawn-chance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add vindicator johnny spawn chance diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index 32c7836fcceaeee018dd965f77ac1d2c2ab45ea0..5e732fd80cd0ac814e56c741717e333500fcc334 100644 +index 0a4f7125c38d3138ec8eedec4ca72000f25ba6ac..29039b35c60c7c6370c6593a53b8aa2a3db0a368 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -154,6 +154,12 @@ public class Vindicator extends AbstractIllager { @@ -22,18 +22,18 @@ index 32c7836fcceaeee018dd965f77ac1d2c2ab45ea0..5e732fd80cd0ac814e56c741717e3335 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a8111222cdcb7697ce761b4ed5b9e62922e7459b..d1fa483763b3f96e2274ebb74cbeec03ee0ca3af 100644 +index e683f958f1d2afca87b7e337d04151b7aba35efb..5fd70f3cb91fa4f965f829a354155f5d075f485f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1638,6 +1638,7 @@ public class PurpurWorldConfig { - public boolean vindicatorRidableInWater = false; +@@ -1640,6 +1640,7 @@ public class PurpurWorldConfig { + public boolean vindicatorRidableInWater = true; public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; + public double vindicatorJohnnySpawnChance = 0D; private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1648,6 +1649,7 @@ public class PurpurWorldConfig { +@@ -1650,6 +1651,7 @@ public class PurpurWorldConfig { set("mobs.vindicator.attributes.max_health", oldValue); } vindicatorMaxHealth = getDouble("mobs.vindicator.attributes.max_health", vindicatorMaxHealth); diff --git a/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch b/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch index 67848f94f..d3c2dee01 100644 --- a/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch +++ b/patches/server/0084-Add-option-to-disable-dolphin-treasure-searching.patch @@ -17,10 +17,10 @@ index 0accc5595461ce92259e3f819a9837aabd442d77..3b65375703732966d0fcbbb68ba0805e } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8be6041d428f229f250ec4ed3de23d436371e8b9..4b72a70baa59c4411900a0f152d144318e8636fa 100644 +index c336b4df270b324e6ef8a897c8cafcfd7d0c9c7d..d21b1d357cb9a9fd008b86d3c067cc8649ffbdec 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -610,6 +610,7 @@ public class PurpurWorldConfig { +@@ -612,6 +612,7 @@ public class PurpurWorldConfig { public float dolphinSpitSpeed = 1.0F; public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; @@ -28,7 +28,7 @@ index 8be6041d428f229f250ec4ed3de23d436371e8b9..4b72a70baa59c4411900a0f152d14431 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -622,6 +623,7 @@ public class PurpurWorldConfig { +@@ -624,6 +625,7 @@ public class PurpurWorldConfig { set("mobs.dolphin.attributes.max_health", oldValue); } dolphinMaxHealth = getDouble("mobs.dolphin.attributes.max_health", dolphinMaxHealth); diff --git a/patches/server/0086-Stop-squids-floating-on-top-of-water.patch b/patches/server/0086-Stop-squids-floating-on-top-of-water.patch index bfc23902c..ed678163f 100644 --- a/patches/server/0086-Stop-squids-floating-on-top-of-water.patch +++ b/patches/server/0086-Stop-squids-floating-on-top-of-water.patch @@ -54,10 +54,10 @@ index ffc76354ead6937daf366c3d87bcb51d3e4c47f5..5b98d42b5d6bc07265fbb017e51a6281 + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index b8411a9bd9ce0cab81173411a850108f7192d27d..a5897f8a95808c40235d587f9a8e063bcd08e388 100644 +index d21b1d357cb9a9fd008b86d3c067cc8649ffbdec..404300394bf9e4e7ff43cae3c39e8898382e5ac0 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1478,6 +1478,7 @@ public class PurpurWorldConfig { +@@ -1480,6 +1480,7 @@ public class PurpurWorldConfig { public boolean squidControllable = true; public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; @@ -65,7 +65,7 @@ index b8411a9bd9ce0cab81173411a850108f7192d27d..a5897f8a95808c40235d587f9a8e063b private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1488,6 +1489,7 @@ public class PurpurWorldConfig { +@@ -1490,6 +1491,7 @@ public class PurpurWorldConfig { } squidMaxHealth = getDouble("mobs.squid.attributes.max_health", squidMaxHealth); squidImmuneToEAR = getBoolean("mobs.squid.immune-to-EAR", squidImmuneToEAR); diff --git a/patches/server/0090-Customizable-wither-health-and-healing.patch b/patches/server/0090-Customizable-wither-health-and-healing.patch index a5b166315..9f62911af 100644 --- a/patches/server/0090-Customizable-wither-health-and-healing.patch +++ b/patches/server/0090-Customizable-wither-health-and-healing.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Customizable wither health and healing Adds the ability to customize the health of the wither, as well as the amount that it heals, and how often. diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 52cf58145788da4cb0ec447d1cf485f86141d1d8..631349e333fcc8285b7f23dec86275d0f0bee0ca 100644 +index 864ebffb6c903acb9de5594029838b927eea4318..b22d0af2267581467af9a4d0e8104146b3da9b71 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 @@ -529,8 +529,10 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -23,10 +23,10 @@ index 52cf58145788da4cb0ec447d1cf485f86141d1d8..631349e333fcc8285b7f23dec86275d0 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 d13c4040ce81d701fe9c26f9cc00d661d631b991..6fc696e6260691c93facfebb6fc8db25ff72d102 100644 +index c68801aa022a59155d37bb8a930a5cbef4b91dfa..146dfeddb9572eb017e137656c849dcd15162db8 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1717,6 +1717,8 @@ public class PurpurWorldConfig { +@@ -1719,6 +1719,8 @@ public class PurpurWorldConfig { public boolean witherControllable = true; public double witherMaxY = 320D; public double witherMaxHealth = 300.0D; @@ -35,7 +35,7 @@ index d13c4040ce81d701fe9c26f9cc00d661d631b991..6fc696e6260691c93facfebb6fc8db25 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1732,6 +1734,8 @@ public class PurpurWorldConfig { +@@ -1734,6 +1736,8 @@ public class PurpurWorldConfig { set("mobs.wither.attributes.max_health", oldValue); } witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); diff --git a/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch b/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch index ccd1b9887..3d976364e 100644 --- a/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch +++ b/patches/server/0094-Add-option-to-disable-zombie-aggressiveness-towards-.patch @@ -21,7 +21,7 @@ index a08c00b8c0488d18be5e182f7892e5ab71d12247..338f693d098b6ab507c30f6411c9a952 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 9005034e99e0398cf7b2cca528fbe55d4baa2e9d..25b71ea8f18946a5de60eee5a075309033312a5c 100644 +index 863fd15039e53405aac66d769598a38ac2586115..794c2fb3400e08c2dda24d29024dad7686a378fa 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 9005034e99e0398cf7b2cca528fbe55d4baa2e9d..25b71ea8f18946a5de60eee5a0753090 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 4a38fec232e2a087f8ef3f7a0c8fff17ddd714d0..0d4abed58cd14f7804e61c6e6a62891c71fb9f0a 100644 +index fb41431f25081c8ca0cf03dc5128f78f589e4e26..ebeeb8c31d05a0ad2e291599a0b6ebe179b8cf82 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -156,7 +156,19 @@ public class Zombie extends Monster { @@ -71,10 +71,10 @@ index 4a38fec232e2a087f8ef3f7a0c8fff17ddd714d0..0d4abed58cd14f7804e61c6e6a62891c 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 14f4c4ff339da8db6f43f14250047f77656d1d8d..f05ca6fab4e3622f9f96fdb24d27095fc5fc8bf2 100644 +index 8b7da9f1e1c073b1cf93aa403aadf0b42da9a1e6..9c0b696ed17ea75831419c9e1102215b2e60ff34 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1850,6 +1850,7 @@ public class PurpurWorldConfig { +@@ -1852,6 +1852,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyOnlyBaby = true; public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; @@ -82,7 +82,7 @@ index 14f4c4ff339da8db6f43f14250047f77656d1d8d..f05ca6fab4e3622f9f96fdb24d27095f private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -1864,6 +1865,7 @@ public class PurpurWorldConfig { +@@ -1866,6 +1867,7 @@ public class PurpurWorldConfig { zombieJockeyOnlyBaby = getBoolean("mobs.zombie.jockey.only-babies", zombieJockeyOnlyBaby); zombieJockeyChance = getDouble("mobs.zombie.jockey.chance", zombieJockeyChance); zombieJockeyTryExistingChickens = getBoolean("mobs.zombie.jockey.try-existing-chickens", zombieJockeyTryExistingChickens); diff --git a/patches/server/0096-Flying-squids-Oh-my.patch b/patches/server/0096-Flying-squids-Oh-my.patch index b7cad08bb..21df497e0 100644 --- a/patches/server/0096-Flying-squids-Oh-my.patch +++ b/patches/server/0096-Flying-squids-Oh-my.patch @@ -58,10 +58,10 @@ index de1bf4aea2661763948aba01d93e7685f3ef73cb..c396874d24ae535b4c07649e303e60b7 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 f05ca6fab4e3622f9f96fdb24d27095fc5fc8bf2..b2649b3960f48b09028327d30b374de94bf6cbf6 100644 +index 9c0b696ed17ea75831419c9e1102215b2e60ff34..e279df79e3ce5a12205c45c611e252bfaa6ffbdb 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -902,10 +902,12 @@ public class PurpurWorldConfig { +@@ -904,10 +904,12 @@ public class PurpurWorldConfig { public boolean glowSquidRidable = false; public boolean glowSquidControllable = true; public double glowSquidMaxHealth = 10.0D; @@ -74,7 +74,7 @@ index f05ca6fab4e3622f9f96fdb24d27095fc5fc8bf2..b2649b3960f48b09028327d30b374de9 } public boolean goatRidable = false; -@@ -1537,6 +1539,7 @@ public class PurpurWorldConfig { +@@ -1539,6 +1541,7 @@ public class PurpurWorldConfig { public double squidMaxHealth = 10.0D; public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; @@ -82,7 +82,7 @@ index f05ca6fab4e3622f9f96fdb24d27095fc5fc8bf2..b2649b3960f48b09028327d30b374de9 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1548,6 +1551,7 @@ public class PurpurWorldConfig { +@@ -1550,6 +1553,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/0104-Make-entity-breeding-times-configurable.patch b/patches/server/0104-Make-entity-breeding-times-configurable.patch index 7afe870b8..8894aa521 100644 --- a/patches/server/0104-Make-entity-breeding-times-configurable.patch +++ b/patches/server/0104-Make-entity-breeding-times-configurable.patch @@ -47,7 +47,7 @@ index f185215b826c4b50a819c8454089cb8ccdb0ed3a..2ac88f06ebb79e515cd9934ac1e3e2c8 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 1ff79871121944864da0b5179bba17f97c551608..609fc99fb2f6120af1220ca9dda9ed05686c1448 100644 +index c0b85da9cce5ec75d83945ba7b4d2fc823105103..980bab802ce49384fc836187fa69e178a04a3ea2 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 1ff79871121944864da0b5179bba17f97c551608..609fc99fb2f6120af1220ca9dda9ed05 @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 61f83ec67c68dfafbdb11ed88f02d2be526ab7f9..7b3faddc9731ef34708f4caed51c48868159d4c6 100644 +index 944da53f7f48e5218c12b7fd4bb443621cafc331..bc9c39e90f0a41f9bec6f93db921d2157183698c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -125,6 +125,11 @@ public class Cat extends TamableAnimal implements VariantHolder { @@ -79,7 +79,7 @@ index 61f83ec67c68dfafbdb11ed88f02d2be526ab7f9..7b3faddc9731ef34708f4caed51c4886 public ResourceLocation getResourceLocation() { diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java -index 4b66412d04a28e3ee0a6e6c5fa0f3f4bf633d2d8..68c90c92409e79011aff84f655b391ba113804a2 100644 +index da281eb1355fd753dfdb69cee13661818b5d0fc8..12faecfb4ffdd2c248c4a36134ed38f96b6d4069 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java +++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java @@ -77,6 +77,11 @@ public class Chicken extends Animal { @@ -95,7 +95,7 @@ index 4b66412d04a28e3ee0a6e6c5fa0f3f4bf633d2d8..68c90c92409e79011aff84f655b391ba @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java -index 757b846bb1591c36e6b4413e3a8534986a84233f..6974e10842c66906a2ee70add8b7f046f312301c 100644 +index b7a0ee0e055d12e36b411859211367c9df3b9549..7776aa8db4b8782fea1ac57b82b98687548aab93 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cow.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java @@ -63,6 +63,11 @@ public class Cow extends Animal { @@ -111,7 +111,7 @@ index 757b846bb1591c36e6b4413e3a8534986a84233f..6974e10842c66906a2ee70add8b7f046 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index 2119cdd90228f9034781b9496640b159343afbd8..bbd14bd8f2da3457fe9520be50b43e05e57998f3 100644 +index d5f536eb87163c946815ace610ba99ad2a0b16c5..920b70b5c534ee83f5acb26890f3cfdf220fd887 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -184,6 +184,11 @@ public class Fox extends Animal implements VariantHolder { @@ -140,7 +140,7 @@ index 2119cdd90228f9034781b9496640b159343afbd8..bbd14bd8f2da3457fe9520be50b43e05 this.partner.resetLove(); worldserver.addFreshEntityWithPassengers(entityfox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java -index 51c032e06bbf64e688778053056acef042c5b4b8..1b4d9c39bae147442d6bf9f742f9233c80c44363 100644 +index 12b715086a347b82726327358ac71c72a4fca8b0..7e3f730aac201dd5302c1d3a1b98e06c214f0740 100644 --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java @@ -83,6 +83,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder { @@ -252,7 +252,7 @@ index 92da91319f59745f43529b9ddae032a8f60f693d..f564460d4d66fc8cdb163759e6fd8a81 // CraftBukkit start - code from constructor diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java -index 0b9c36f130a0ccd62bbf2418896627553bc61225..70e8ee40ec545b9be7f55f64f251864b03bacaac 100644 +index ce2bac7cc95dca0f3d8c97ba6d7cf922d328c579..0969acaee0708a6fbb52c1cbee05ebb58b1408dd 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java @@ -136,6 +136,11 @@ public class Sheep extends Animal implements Shearable { @@ -268,7 +268,7 @@ index 0b9c36f130a0ccd62bbf2418896627553bc61225..70e8ee40ec545b9be7f55f64f251864b @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 31c98011ee4521acebf8d452f135e534ffafd64c..7ee3c81f95907886c4036fb5ab9c16aebea38a85 100644 +index 67c8f06d1befaf810e3954dbda156ee29bfbc0d4..303a2c74574d9ef456866ff30b98b9d103562658 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -103,6 +103,11 @@ public class Turtle extends Animal { @@ -284,7 +284,7 @@ index 31c98011ee4521acebf8d452f135e534ffafd64c..7ee3c81f95907886c4036fb5ab9c16ae public void setHomePos(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 4713da69b3f45bfcf423726feff2800560494306..8e5b38aaba602ef8bd2ee615569fa25fd979531b 100644 +index 05792466a89bdcffe1a4241761b7c23afcc6bc88..6ddcf37ce8dbc6a57cabd43b04be6baba496a904 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -127,6 +127,11 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -334,7 +334,7 @@ index 05c7680569346bb863b896bcc9515f3e7cfb8114..bda7a0e29e40386c57766c224ffb8938 public void addAdditionalSaveData(CompoundTag nbt) { super.addAdditionalSaveData(nbt); diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java -index 00bac64a6417b9e34c2b441a13e80052ad66a2c1..61c604a05eedb1928bdac8c8544b0cad074f29ee 100644 +index 12962698dd354dc5da325e8bb24e5fff40af9e51..4807eb6487c3a394ee4eb88d7f68b09eb76f4a54 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 @@ -139,6 +139,10 @@ public class Frog extends Animal implements VariantHolder { @@ -349,7 +349,7 @@ index 00bac64a6417b9e34c2b441a13e80052ad66a2c1..61c604a05eedb1928bdac8c8544b0cad @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index a9805129f0aaba5f0c2751d463019844eb3b347d..b627fee1cb19f476f45921f1fae7624b27ff7280 100644 +index 1cfc1ade52b79c6c5577935fe5c37a0e7a1673f0..b2c025184b9d8d272fab720a5930c030312d6e03 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -104,6 +104,11 @@ public class Goat extends Animal { @@ -365,12 +365,12 @@ index a9805129f0aaba5f0c2751d463019844eb3b347d..b627fee1cb19f476f45921f1fae7624b @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java -index 8f7cd5c3c786ff94fc9b890ec488a461b7edced0..efe381ff8d43295bcaf0d4fb7ff75f2bf46391eb 100644 +index 6ed4ef1c628b77448629388bfc4a8575dd4afefd..0a5313546858a235c071f15d91edc4f161f6a351 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java @@ -20,6 +20,11 @@ public class Donkey extends AbstractChestedHorse { public boolean dismountsUnderwater() { - return !level.purpurConfig.donkeyRidableInWater || super.dismountsUnderwater(); + return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.donkeyRidableInWater; } + + @Override @@ -381,12 +381,12 @@ index 8f7cd5c3c786ff94fc9b890ec488a461b7edced0..efe381ff8d43295bcaf0d4fb7ff75f2b @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java -index c653a3d459fd8c1c4728cd5a0e63c6b3707792d9..2dbcebf7c370d4f5a51b5a23e67306c6c1ab83ba 100644 +index 9d8879fc2f7afafdd42cd8ee471c698b31159209..dc8ebffdd6e64dd11d1e254ea1860f287f40aa50 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java @@ -45,6 +45,11 @@ public class Horse extends AbstractHorse implements VariantHolder { public boolean dismountsUnderwater() { - return !level.purpurConfig.horseRidableInWater || super.dismountsUnderwater(); + return level.purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level.purpurConfig.horseRidableInWater; } + + @Override @@ -397,7 +397,7 @@ index c653a3d459fd8c1c4728cd5a0e63c6b3707792d9..2dbcebf7c370d4f5a51b5a23e67306c6 @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 8adca393017dcc2e44a7379b971cd2a4704bc570..4165c7d54d00e356767dc56be86f5bff6aa8e8bb 100644 +index 766285d0a62cf5314c99eba8c81ac29f171a2b0a..2f585de77bb8ad5431a48710d341dff0321b124d 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 @@ -121,6 +121,11 @@ public class Llama extends AbstractChestedHorse implements VariantHolder type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index 9cc42b4a1ea0d2315350e038034dfe7171668658..8e837ce3069ca05bcc93ea93f94c79342ea9eb3c 100644 +index 930d74e5fd20b69baeec60dfc54da37a1290fccc..2161df2ebee7dc00c924bfbc56377d68906b1f18 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -87,6 +87,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -525,10 +525,10 @@ index 9cc42b4a1ea0d2315350e038034dfe7171668658..8e837ce3069ca05bcc93ea93f94c7934 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb73c4c37b5 100644 +index 94e2fe3e094b2519d4a12ff653e5041b4f93b94c..901fc6601b9e0cb25e9641de9e14755b12c6297d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -510,10 +510,12 @@ public class PurpurWorldConfig { +@@ -512,10 +512,12 @@ public class PurpurWorldConfig { public boolean axolotlRidable = false; public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; @@ -541,7 +541,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean batRidable = false; -@@ -546,6 +548,7 @@ public class PurpurWorldConfig { +@@ -548,6 +550,7 @@ public class PurpurWorldConfig { public boolean beeControllable = true; public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; @@ -549,7 +549,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -557,6 +560,7 @@ public class PurpurWorldConfig { +@@ -559,6 +562,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); @@ -557,7 +557,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean blazeRidable = false; -@@ -577,6 +581,7 @@ public class PurpurWorldConfig { +@@ -579,6 +583,7 @@ public class PurpurWorldConfig { blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); } @@ -565,7 +565,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 public double camelMaxHealthMin = 32.0D; public double camelMaxHealthMax = 32.0D; public double camelJumpStrengthMin = 0.42D; -@@ -590,6 +595,7 @@ public class PurpurWorldConfig { +@@ -592,6 +597,7 @@ public class PurpurWorldConfig { camelJumpStrengthMax = getDouble("mobs.camel.attributes.jump_strength.max", camelJumpStrengthMax); camelMovementSpeedMin = getDouble("mobs.camel.attributes.movement_speed.min", camelMovementSpeedMin); camelMovementSpeedMax = getDouble("mobs.camel.attributes.movement_speed.max", camelMovementSpeedMax); @@ -573,7 +573,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean catRidable = false; -@@ -599,6 +605,7 @@ public class PurpurWorldConfig { +@@ -601,6 +607,7 @@ public class PurpurWorldConfig { public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; @@ -581,7 +581,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -612,6 +619,7 @@ public class PurpurWorldConfig { +@@ -614,6 +621,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); @@ -589,7 +589,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean caveSpiderRidable = false; -@@ -635,6 +643,7 @@ public class PurpurWorldConfig { +@@ -637,6 +645,7 @@ public class PurpurWorldConfig { public boolean chickenControllable = true; public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; @@ -597,7 +597,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -646,6 +655,7 @@ public class PurpurWorldConfig { +@@ -648,6 +657,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); @@ -605,7 +605,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean codRidable = false; -@@ -667,6 +677,7 @@ public class PurpurWorldConfig { +@@ -669,6 +679,7 @@ public class PurpurWorldConfig { public boolean cowControllable = true; public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; @@ -613,7 +613,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -678,6 +689,7 @@ public class PurpurWorldConfig { +@@ -680,6 +691,7 @@ public class PurpurWorldConfig { } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); @@ -621,7 +621,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean creeperRidable = false; -@@ -729,6 +741,7 @@ public class PurpurWorldConfig { +@@ -731,6 +743,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; @@ -629,7 +629,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -744,6 +757,7 @@ public class PurpurWorldConfig { +@@ -746,6 +759,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); @@ -637,7 +637,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean drownedRidable = false; -@@ -863,6 +877,7 @@ public class PurpurWorldConfig { +@@ -865,6 +879,7 @@ public class PurpurWorldConfig { public boolean foxControllable = true; public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; @@ -645,7 +645,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -874,17 +889,20 @@ public class PurpurWorldConfig { +@@ -876,17 +891,20 @@ public class PurpurWorldConfig { } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); @@ -653,7 +653,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean frogRidable = false; - public boolean frogRidableInWater = false; + public boolean frogRidableInWater = true; public boolean frogControllable = true; public float frogRidableJumpHeight = 0.65F; + public int frogBreedingTicks = 6000; @@ -666,8 +666,8 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean ghastRidable = false; -@@ -952,11 +970,13 @@ public class PurpurWorldConfig { - public boolean goatRidableInWater = false; +@@ -954,11 +972,13 @@ public class PurpurWorldConfig { + public boolean goatRidableInWater = true; public boolean goatControllable = true; public double goatMaxHealth = 10.0D; + public int goatBreedingTicks = 6000; @@ -680,15 +680,15 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean guardianRidable = false; -@@ -977,6 +997,7 @@ public class PurpurWorldConfig { - public boolean hoglinRidableInWater = false; +@@ -979,6 +999,7 @@ public class PurpurWorldConfig { + public boolean hoglinRidableInWater = true; public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; + public int hoglinBreedingTicks = 6000; private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -987,6 +1008,7 @@ public class PurpurWorldConfig { +@@ -989,6 +1010,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); @@ -696,7 +696,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean horseRidableInWater = false; -@@ -996,6 +1018,7 @@ public class PurpurWorldConfig { +@@ -998,6 +1020,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; @@ -704,7 +704,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1011,6 +1034,7 @@ public class PurpurWorldConfig { +@@ -1013,6 +1036,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); @@ -712,7 +712,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean huskRidable = false; -@@ -1088,6 +1112,7 @@ public class PurpurWorldConfig { +@@ -1090,6 +1114,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; @@ -720,7 +720,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1105,6 +1130,7 @@ public class PurpurWorldConfig { +@@ -1107,6 +1132,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); @@ -728,15 +728,15 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean magmaCubeRidable = false; -@@ -1133,6 +1159,7 @@ public class PurpurWorldConfig { - public boolean mooshroomRidableInWater = false; +@@ -1135,6 +1161,7 @@ public class PurpurWorldConfig { + public boolean mooshroomRidableInWater = true; public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; + public int mooshroomBreedingTicks = 6000; private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1143,6 +1170,7 @@ public class PurpurWorldConfig { +@@ -1145,6 +1172,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); @@ -744,7 +744,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean muleRidableInWater = false; -@@ -1152,6 +1180,7 @@ public class PurpurWorldConfig { +@@ -1154,6 +1182,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; @@ -752,7 +752,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1167,12 +1196,14 @@ public class PurpurWorldConfig { +@@ -1169,12 +1198,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); @@ -760,14 +760,14 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean ocelotRidable = false; - public boolean ocelotRidableInWater = false; + public boolean ocelotRidableInWater = true; public boolean ocelotControllable = true; public double ocelotMaxHealth = 10.0D; + public int ocelotBreedingTicks = 6000; private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1183,12 +1214,14 @@ public class PurpurWorldConfig { +@@ -1185,12 +1216,14 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); @@ -775,14 +775,14 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean pandaRidable = false; - public boolean pandaRidableInWater = false; + public boolean pandaRidableInWater = true; public boolean pandaControllable = true; public double pandaMaxHealth = 20.0D; + public int pandaBreedingTicks = 6000; private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1199,6 +1232,7 @@ public class PurpurWorldConfig { +@@ -1201,6 +1234,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); @@ -790,7 +790,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean parrotRidable = false; -@@ -1282,6 +1316,7 @@ public class PurpurWorldConfig { +@@ -1284,6 +1318,7 @@ public class PurpurWorldConfig { public boolean pigControllable = true; public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; @@ -798,7 +798,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1293,6 +1328,7 @@ public class PurpurWorldConfig { +@@ -1295,6 +1330,7 @@ public class PurpurWorldConfig { } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); @@ -806,7 +806,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean piglinRidable = false; -@@ -1349,6 +1385,7 @@ public class PurpurWorldConfig { +@@ -1351,6 +1387,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; @@ -814,7 +814,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1362,6 +1399,7 @@ public class PurpurWorldConfig { +@@ -1364,6 +1401,7 @@ public class PurpurWorldConfig { polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString); Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; @@ -822,7 +822,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean pufferfishRidable = false; -@@ -1384,6 +1422,7 @@ public class PurpurWorldConfig { +@@ -1386,6 +1424,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; @@ -830,7 +830,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1396,6 +1435,7 @@ public class PurpurWorldConfig { +@@ -1398,6 +1437,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); @@ -838,15 +838,15 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean ravagerRidable = false; -@@ -1432,6 +1472,7 @@ public class PurpurWorldConfig { - public boolean sheepRidableInWater = false; +@@ -1434,6 +1474,7 @@ public class PurpurWorldConfig { + public boolean sheepRidableInWater = true; public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; + public int sheepBreedingTicks = 6000; private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1442,6 +1483,7 @@ public class PurpurWorldConfig { +@@ -1444,6 +1485,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); @@ -854,8 +854,8 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean shulkerRidable = false; -@@ -1565,11 +1607,13 @@ public class PurpurWorldConfig { - public boolean snifferRidableInWater = false; +@@ -1567,11 +1609,13 @@ public class PurpurWorldConfig { + public boolean snifferRidableInWater = true; public boolean snifferControllable = true; public double snifferMaxHealth = 14.0D; + public int snifferBreedingTicks = 6000; @@ -868,7 +868,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean squidRidable = false; -@@ -1628,6 +1672,7 @@ public class PurpurWorldConfig { +@@ -1630,6 +1674,7 @@ public class PurpurWorldConfig { public boolean striderRidableInWater = false; public boolean striderControllable = true; public double striderMaxHealth = 20.0D; @@ -876,7 +876,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1638,6 +1683,7 @@ public class PurpurWorldConfig { +@@ -1640,6 +1685,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); @@ -884,7 +884,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean tadpoleRidable = false; -@@ -1658,6 +1704,7 @@ public class PurpurWorldConfig { +@@ -1660,6 +1706,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; @@ -892,7 +892,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1675,6 +1722,7 @@ public class PurpurWorldConfig { +@@ -1677,6 +1724,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); @@ -900,15 +900,15 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean tropicalFishRidable = false; -@@ -1695,6 +1743,7 @@ public class PurpurWorldConfig { - public boolean turtleRidableInWater = false; +@@ -1697,6 +1745,7 @@ public class PurpurWorldConfig { + public boolean turtleRidableInWater = true; public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; + public int turtleBreedingTicks = 6000; private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1705,6 +1754,7 @@ public class PurpurWorldConfig { +@@ -1707,6 +1756,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); @@ -916,7 +916,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean vexRidable = false; -@@ -1732,6 +1782,7 @@ public class PurpurWorldConfig { +@@ -1734,6 +1784,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; @@ -924,7 +924,7 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1745,6 +1796,7 @@ public class PurpurWorldConfig { +@@ -1747,6 +1798,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); @@ -932,15 +932,15 @@ index de9435f336643a0654796b2545210829569ec01f..b74313333e8bd1b0302f6c13e7effbb7 } public boolean vindicatorRidable = false; -@@ -1856,6 +1908,7 @@ public class PurpurWorldConfig { - public boolean wolfRidableInWater = false; +@@ -1858,6 +1910,7 @@ public class PurpurWorldConfig { + public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; + public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -1866,6 +1919,7 @@ public class PurpurWorldConfig { +@@ -1868,6 +1921,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch b/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch index 47a3fb0fd..233116c25 100644 --- a/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch +++ b/patches/server/0107-Add-config-for-allowing-Endermen-to-despawn-even-whi.patch @@ -8,7 +8,7 @@ This should help to reduce the amount of dirt, gravel, grass, and etc. that Endermen like to randomly place all over the world. 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 9f78f0e28aff1c9b77520140d3c24b0c8d9b196d..7dd726eea053c8c5fc5e40972128f0f3f91039be 100644 +index cb746b678639e09559d6913c989a6ef27a739ff7..565ac4434fdf61bfde7636af9a10ba9a072b8160 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -484,7 +484,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -21,10 +21,10 @@ index 9f78f0e28aff1c9b77520140d3c24b0c8d9b196d..7dd726eea053c8c5fc5e40972128f0f3 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 a4222bab7b624077c76e918f730f1a953eb629a1..1f45018079de15231473041166ee6f9fcd940f9a 100644 +index a0f05155f761941de87710d5c7846b878eb86ec7..8410a3c5f13b94b096d1d544690abe684595df9b 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -833,6 +833,7 @@ public class PurpurWorldConfig { +@@ -835,6 +835,7 @@ public class PurpurWorldConfig { public boolean endermanControllable = true; public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; @@ -32,7 +32,7 @@ index a4222bab7b624077c76e918f730f1a953eb629a1..1f45018079de15231473041166ee6f9f private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -844,6 +845,7 @@ public class PurpurWorldConfig { +@@ -846,6 +847,7 @@ public class PurpurWorldConfig { } endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); diff --git a/patches/server/0111-Snow-Golem-rate-of-fire-config.patch b/patches/server/0111-Snow-Golem-rate-of-fire-config.patch index 03404223e..8e7a27018 100644 --- a/patches/server/0111-Snow-Golem-rate-of-fire-config.patch +++ b/patches/server/0111-Snow-Golem-rate-of-fire-config.patch @@ -10,7 +10,7 @@ If min-shoot-interval-ticks and max-shoot-interval-ticks are both set to 0, snow golems won't shoot any snowballs. diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index b6431dbb41163f9ef0d43e96fcf89750c5a6eef7..5ae7f8dcb39cdf9bfc760f47a6745b819b6596b2 100644 +index 6c6e020522261ca5bbc47a59c25d3e98bf0b4007..30abf3ee1b9d3aef9291076a1f0bf865c54beadd 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -79,7 +79,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -23,10 +23,10 @@ index b6431dbb41163f9ef0d43e96fcf89750c5a6eef7..5ae7f8dcb39cdf9bfc760f47a6745b81 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 0b22b19a53758affe761fe81a10bdc252261c8a9..092e7417d5a3edb13ca673fc0d44f86327fd443f 100644 +index a79b5fcfdee45cca589a13c470b9fc83a750980c..96385e4294a990c75d059416f66a6243db103d52 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1605,6 +1605,10 @@ public class PurpurWorldConfig { +@@ -1607,6 +1607,10 @@ public class PurpurWorldConfig { public double snowGolemMaxHealth = 4.0D; public boolean snowGolemDropsPumpkin = true; public boolean snowGolemPutPumpkinBack = false; @@ -37,7 +37,7 @@ index 0b22b19a53758affe761fe81a10bdc252261c8a9..092e7417d5a3edb13ca673fc0d44f863 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1618,6 +1622,10 @@ public class PurpurWorldConfig { +@@ -1620,6 +1624,10 @@ public class PurpurWorldConfig { snowGolemMaxHealth = getDouble("mobs.snow_golem.attributes.max_health", snowGolemMaxHealth); snowGolemDropsPumpkin = getBoolean("mobs.snow_golem.drop-pumpkin-when-sheared", snowGolemDropsPumpkin); snowGolemPutPumpkinBack = getBoolean("mobs.snow_golem.pumpkin-can-be-added-back", snowGolemPutPumpkinBack); diff --git a/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch b/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch index 99df78a86..aacfb75ae 100644 --- a/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch +++ b/patches/server/0113-Option-for-Villager-Clerics-to-farm-Nether-Wart.patch @@ -143,7 +143,7 @@ index cb1d91f9fe98f21c2afbe3894dfd9bca3bdd3ba6..d2703432af207c74ea8d298a784329c3 brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list); } else { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index ab3497bd22beffaf7a66bdd502b9e1bfc6478881..c5651a1c4ece3bf911401533e41be7c92455d5dc 100644 +index a6d6faf9fed28a97de763e2bd0af38fa9656517e..4f7b37030454aa2fba5d04c4a629576a78cb5592 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -220,7 +220,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -181,10 +181,10 @@ index ac70c2c03241e73943bd517a8c69dd05e0873634..0318663a824d2a9515f867a075d148c3 public static final VillagerProfession FISHERMAN = register("fisherman", PoiTypes.FISHERMAN, SoundEvents.VILLAGER_WORK_FISHERMAN); public static final VillagerProfession FLETCHER = register("fletcher", PoiTypes.FLETCHER, SoundEvents.VILLAGER_WORK_FLETCHER); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 8f1fff3af6bc648823e27d795d254e33b6dd977f..5fa70176984d1bb7c84572bf40b6f338261c7745 100644 +index 96385e4294a990c75d059416f66a6243db103d52..bb40cbe7be6fa07f8e4e44eed3f3b485b7eea5f1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1808,6 +1808,8 @@ public class PurpurWorldConfig { +@@ -1810,6 +1810,8 @@ public class PurpurWorldConfig { public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; public int villagerBreedingTicks = 6000; @@ -193,7 +193,7 @@ index 8f1fff3af6bc648823e27d795d254e33b6dd977f..5fa70176984d1bb7c84572bf40b6f338 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1822,6 +1824,8 @@ public class PurpurWorldConfig { +@@ -1824,6 +1826,8 @@ public class PurpurWorldConfig { villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); diff --git a/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch b/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch index 11c5d2da9..07c2931f6 100644 --- a/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch +++ b/patches/server/0114-Toggle-for-Zombified-Piglin-death-always-counting-as.patch @@ -13,7 +13,7 @@ to the Piglin being angry, even though the player never hit them. This patch adds a toggle to disable this behavior. diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index b5b4cb3fefd769f5d8ec5b60b4b41ffb023d19c5..65d035647f7caf23647ec00beb20a4a27d1a9a55 100644 +index f2c690c92dd2bf55f986f629ed79b76fbdfa32a4..6e8f0c9df06e2930084a6d58213f6edfb36ec444 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java @@ -152,7 +152,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -35,10 +35,10 @@ index b5b4cb3fefd769f5d8ec5b60b4b41ffb023d19c5..65d035647f7caf23647ec00beb20a4a2 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 5fa70176984d1bb7c84572bf40b6f338261c7745..267b35d0f2ae6bca527787c276bf50600f28a589 100644 +index bb40cbe7be6fa07f8e4e44eed3f3b485b7eea5f1..8e6a803eaba8a3fb2ed2c37266cb5ea12a212a7f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2052,6 +2052,7 @@ public class PurpurWorldConfig { +@@ -2054,6 +2054,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyOnlyBaby = true; public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; @@ -46,7 +46,7 @@ index 5fa70176984d1bb7c84572bf40b6f338261c7745..267b35d0f2ae6bca527787c276bf5060 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2066,5 +2067,6 @@ public class PurpurWorldConfig { +@@ -2068,5 +2069,6 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyOnlyBaby = getBoolean("mobs.zombified_piglin.jockey.only-babies", zombifiedPiglinJockeyOnlyBaby); zombifiedPiglinJockeyChance = getDouble("mobs.zombified_piglin.jockey.chance", zombifiedPiglinJockeyChance); zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); diff --git a/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch b/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch index 5f4fc49e2..63fb54850 100644 --- a/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch +++ b/patches/server/0115-Configurable-chance-for-wolves-to-spawn-rabid.patch @@ -7,7 +7,7 @@ Configurable chance to spawn a wolf that is rabid. Rabid wolves attack all players, mobs, and animals. diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 8e5b38aaba602ef8bd2ee615569fa25fd979531b..a38cea2dead98ffb1a555df7a494d2e12ab504f5 100644 +index 6ddcf37ce8dbc6a57cabd43b04be6baba496a904..079d41636f1420a8755442843f1843e397cdbbf9 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -10,6 +10,7 @@ import net.minecraft.network.syncher.EntityDataAccessor; @@ -222,11 +222,11 @@ 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 267b35d0f2ae6bca527787c276bf50600f28a589..db8cae3ff986b41984341d7407741edcdfecb558 100644 +index 8e6a803eaba8a3fb2ed2c37266cb5ea12a212a7f..8ce6573ab423c955d38ad0ab764d307e5144e8c7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1937,6 +1937,8 @@ public class PurpurWorldConfig { - public boolean wolfRidableInWater = false; +@@ -1939,6 +1939,8 @@ public class PurpurWorldConfig { + public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; + public boolean wolfMilkCuresRabies = true; @@ -234,7 +234,7 @@ index 267b35d0f2ae6bca527787c276bf50600f28a589..db8cae3ff986b41984341d7407741edc public int wolfBreedingTicks = 6000; private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); -@@ -1948,6 +1950,8 @@ public class PurpurWorldConfig { +@@ -1950,6 +1952,8 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0116-Configurable-default-collar-color.patch b/patches/server/0116-Configurable-default-collar-color.patch index f2e112513..e858b3063 100644 --- a/patches/server/0116-Configurable-default-collar-color.patch +++ b/patches/server/0116-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 7b3faddc9731ef34708f4caed51c48868159d4c6..dc79deffd450d676a0950c726c505501b0204817 100644 +index bc9c39e90f0a41f9bec6f93db921d2157183698c..8e6abeab0a7d7007d0deef3b1dea77aee66681fa 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -345,6 +345,14 @@ public class Cat extends TamableAnimal implements VariantHolder { @@ -26,7 +26,7 @@ index 7b3faddc9731ef34708f4caed51c48868159d4c6..dc79deffd450d676a0950c726c505501 @Override public Cat getBreedOffspring(ServerLevel world, AgeableMob entity) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index a38cea2dead98ffb1a555df7a494d2e12ab504f5..06f2225743e27c7f1f0eb15ee6beedc57c8a3b4f 100644 +index 079d41636f1420a8755442843f1843e397cdbbf9..214d5d27f8c4f352839c1a45a083c329f41164bd 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -201,6 +201,12 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -43,10 +43,10 @@ index a38cea2dead98ffb1a555df7a494d2e12ab504f5..06f2225743e27c7f1f0eb15ee6beedc5 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index db8cae3ff986b41984341d7407741edcdfecb558..e364d1b0ea6be04ec2ff624c36e13f14e7e1ac45 100644 +index 8ce6573ab423c955d38ad0ab764d307e5144e8c7..ec1662fcc6a22f670644a82d16ea5200a2f07205 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -621,6 +621,7 @@ public class PurpurWorldConfig { +@@ -623,6 +623,7 @@ public class PurpurWorldConfig { public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; @@ -54,7 +54,7 @@ index db8cae3ff986b41984341d7407741edcdfecb558..e364d1b0ea6be04ec2ff624c36e13f14 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -635,6 +636,11 @@ public class PurpurWorldConfig { +@@ -637,6 +638,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,15 +66,15 @@ index db8cae3ff986b41984341d7407741edcdfecb558..e364d1b0ea6be04ec2ff624c36e13f14 } public boolean caveSpiderRidable = false; -@@ -1937,6 +1943,7 @@ public class PurpurWorldConfig { - public boolean wolfRidableInWater = false; +@@ -1939,6 +1945,7 @@ public class PurpurWorldConfig { + public boolean wolfRidableInWater = true; public boolean wolfControllable = true; public double wolfMaxHealth = 8.0D; + public DyeColor wolfDefaultCollarColor = DyeColor.RED; public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; -@@ -1950,6 +1957,11 @@ public class PurpurWorldConfig { +@@ -1952,6 +1959,11 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); diff --git a/patches/server/0117-Phantom-flames-on-swoop.patch b/patches/server/0117-Phantom-flames-on-swoop.patch index a22fd9030..7bdd51184 100644 --- a/patches/server/0117-Phantom-flames-on-swoop.patch +++ b/patches/server/0117-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 2d211ce0221c1fd7f1aeb8381d0746860739fe5a..e9906ea55845b579e4941a34ac9705432895d2dc 100644 +index b601c542e28bc0a588e56aa37c243fe92145547e..ed5c75d390babced3dc062428176e968da878d8f 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 2d211ce0221c1fd7f1aeb8381d0746860739fe5a..e9906ea55845b579e4941a34ac970543 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 056d74886fc50508de302c75f32e5d541f142a3f..cf7d2109cc659004cd826e350a41bbf5c7a67682 100644 +index ec1662fcc6a22f670644a82d16ea5200a2f07205..39a31ab49d6b8eeac6df8fb86faee4bde1f519f7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1299,6 +1299,7 @@ public class PurpurWorldConfig { +@@ -1301,6 +1301,7 @@ public class PurpurWorldConfig { public int phantomBurnInLight = 0; public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; @@ -28,7 +28,7 @@ index 056d74886fc50508de302c75f32e5d541f142a3f..cf7d2109cc659004cd826e350a41bbf5 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1332,6 +1333,7 @@ public class PurpurWorldConfig { +@@ -1334,6 +1335,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/0120-Striders-give-saddle-back.patch b/patches/server/0120-Striders-give-saddle-back.patch index 65de69715..ed5fd2999 100644 --- a/patches/server/0120-Striders-give-saddle-back.patch +++ b/patches/server/0120-Striders-give-saddle-back.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Striders give saddle back diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java -index fbc2e3f0b73608a999619469cd701692cb1cb788..7d10e81669177d0df5c6eba79a2aac46122daea6 100644 +index 1be6dc3608b839b0ed7d2fcd968991ce5bbeb89b..270135cb5a5f50b39683f74da84045ea75045030 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Strider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java @@ -486,6 +486,19 @@ public class Strider extends Animal implements ItemSteerable, Saddleable { @@ -29,10 +29,10 @@ index fbc2e3f0b73608a999619469cd701692cb1cb788..7d10e81669177d0df5c6eba79a2aac46 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 9160e593d71ec5a6eea9646a50dfd465f3cf0ed8..cee38f830945231e567a9400d227f06b6aa80790 100644 +index 6d5571112fb8e13291121cd0942230996be58224..4f2416691bea7b53166d7d8448f57019147e1629 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1711,6 +1711,7 @@ public class PurpurWorldConfig { +@@ -1713,6 +1713,7 @@ public class PurpurWorldConfig { public boolean striderControllable = true; public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; @@ -40,7 +40,7 @@ index 9160e593d71ec5a6eea9646a50dfd465f3cf0ed8..cee38f830945231e567a9400d227f06b private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1722,6 +1723,7 @@ public class PurpurWorldConfig { +@@ -1724,6 +1725,7 @@ public class PurpurWorldConfig { } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); diff --git a/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch index 938c58396..8e8df8721 100644 --- a/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch +++ b/patches/server/0124-Add-mobGriefing-bypass-to-everything-affected.patch @@ -92,7 +92,7 @@ index d3e91faee8805e88d850740fb5de9e5c8288c48b..fe526ebf395ff9813b94284fc3f01423 } else if (this.nextStartTick > 0) { --this.nextStartTick; diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index bbd14bd8f2da3457fe9520be50b43e05e57998f3..d63b31653504ee69532c3304782a5d55248c2581 100644 +index 920b70b5c534ee83f5acb26890f3cfdf220fd887..6642f93ae5a8843a8e560594008c8643ef693878 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -1377,7 +1377,7 @@ public class Fox extends Animal implements VariantHolder { @@ -105,7 +105,7 @@ index bbd14bd8f2da3457fe9520be50b43e05e57998f3..d63b31653504ee69532c3304782a5d55 if (iblockdata.is(Blocks.SWEET_BERRY_BUSH)) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java -index f564460d4d66fc8cdb163759e6fd8a81ac619661..146847aeda3f886f8a3fad14cf23b0846f3f7418 100644 +index aca51a77f02670809a6da5e7c384d9bbfcee2506..8aa108cdcbe3772e7dd140e0e9af77a1db163739 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -630,7 +630,7 @@ public class Rabbit extends Animal implements VariantHolder { @@ -118,7 +118,7 @@ index f564460d4d66fc8cdb163759e6fd8a81ac619661..146847aeda3f886f8a3fad14cf23b084 } diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index 5ae7f8dcb39cdf9bfc760f47a6745b819b6596b2..7da3aa9b77dfecd06ca6d604ee285cad800f2f9b 100644 +index 30abf3ee1b9d3aef9291076a1f0bf865c54beadd..806abdd159ff5c696f16d799902f02bcc3cd252f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -127,7 +127,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -131,7 +131,7 @@ index 5ae7f8dcb39cdf9bfc760f47a6745b819b6596b2..7da3aa9b77dfecd06ca6d604ee285cad } 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 1612705ba8cf58286a00b4d542541d17b901d286..20a59f077b2694e7b46efe9c006589d8d1e13324 100644 +index 178c01444b7894833265c21a50ff6805d1aa356a..a07d1b6a45ef14cc4f121efe11869fc2da44a969 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 @@ -579,7 +579,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -144,7 +144,7 @@ index 1612705ba8cf58286a00b4d542541d17b901d286..20a59f077b2694e7b46efe9c006589d8 // flag1 = this.level.removeBlock(blockposition, false) || flag1; flag1 = true; diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 631349e333fcc8285b7f23dec86275d0f0bee0ca..f3d16ebbc36c2b97d14d2401f829fc7cd4664634 100644 +index b22d0af2267581467af9a4d0e8104146b3da9b71..334ffb3553e1b87b538ac42155942049587639a0 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 @@ -496,7 +496,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -157,7 +157,7 @@ index 631349e333fcc8285b7f23dec86275d0f0bee0ca..f3d16ebbc36c2b97d14d2401f829fc7c j = Mth.floor(this.getX()); int i1 = Mth.floor(this.getZ()); 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 411b82fd1da4643c4405961e4af3e1aa20e7eb55..ce746c26a5cb7da7defac46ef333abb96beab8a9 100644 +index 565ac4434fdf61bfde7636af9a10ba9a072b8160..e0680147eacde7f06fe7d836fa45cdd8e70fbf88 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -532,7 +532,15 @@ public class EnderMan extends Monster implements NeutralMob { @@ -195,7 +195,7 @@ index 411b82fd1da4643c4405961e4af3e1aa20e7eb55..ce746c26a5cb7da7defac46ef333abb9 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Evoker.java b/src/main/java/net/minecraft/world/entity/monster/Evoker.java -index d0342c28f028a26536ef8e42302ea310a6064a18..fe6065c7321c0d3e6eb047d6f9a6d382b8ab5be9 100644 +index bbcbccaeb479cc61adab96da2670ca31a1fda740..b05bf61183379e1d6aadee4de0796eb43175c47c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Evoker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Evoker.java @@ -341,7 +341,7 @@ public class Evoker extends SpellcasterIllager { @@ -208,7 +208,7 @@ index d0342c28f028a26536ef8e42302ea310a6064a18..fe6065c7321c0d3e6eb047d6f9a6d382 } else { List list = Evoker.this.level.getNearbyEntities(Sheep.class, this.wololoTargeting, Evoker.this, Evoker.this.getBoundingBox().inflate(16.0D, 4.0D, 16.0D)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 2a176517488bbe0804deaf3948dcfe7eee9e9089..af2eddeb3d4c4dcb1f6862b5aefd26c0964fef63 100644 +index 2d592307f42ede8a490c072da9ec796b2e356f0a..9c8ebbec20438401265d8049b33132f490e3c1ea 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -190,7 +190,7 @@ public class Ravager extends Raider { @@ -221,7 +221,7 @@ index 2a176517488bbe0804deaf3948dcfe7eee9e9089..af2eddeb3d4c4dcb1f6862b5aefd26c0 AABB axisalignedbb = this.getBoundingBox().inflate(0.2D); Iterator iterator = BlockPos.betweenClosed(Mth.floor(axisalignedbb.minX), Mth.floor(axisalignedbb.minY), Mth.floor(axisalignedbb.minZ), Mth.floor(axisalignedbb.maxX), Mth.floor(axisalignedbb.maxY), Mth.floor(axisalignedbb.maxZ)).iterator(); diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index 8efc8d6e05da041efb61776ac0b5363f31f8bb4f..297733b3fdd354f0e837922c8c97f56a4bbf1830 100644 +index 77204ec0e18807dd46cadb515b07a919b1bee16b..a676bb029fc4575028ce6833e608e3169d2fc358 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java @@ -208,7 +208,7 @@ public class Silverfish extends Monster { @@ -243,7 +243,7 @@ index 8efc8d6e05da041efb61776ac0b5363f31f8bb4f..297733b3fdd354f0e837922c8c97f56a BlockPos blockposition = BlockPos.containing(this.mob.getX(), this.mob.getY() + 0.5D, this.mob.getZ()).relative(this.selectedDirection); BlockState iblockdata = this.mob.level.getBlockState(blockposition); diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 5bc02e73ffde3d0d164532b6b8ce42213dc6eadc..8d7a65f452018ca0d7f58661aea251ebf96906d6 100644 +index 9b7e38e7a73206663a06dd180b7ef746d2237f16..4f2332b3255912bede00d27f3d2348cf1314be9c 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -431,7 +431,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -374,7 +374,7 @@ index 1942649e868fc985a488034c411a6721595ecc67..7495e0e8beedad59fff24ebf189b58b3 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010a921b75a 100644 +index 2224f6ef1b011c52597a769a3c0d7ae2dfb11b35..e83b296e24d561080b679193ebe7e32d9ad08688 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 { @@ -438,7 +438,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public int waterInfiniteRequiredSources = 2; -@@ -737,6 +752,7 @@ public class PurpurWorldConfig { +@@ -739,6 +754,7 @@ public class PurpurWorldConfig { public double creeperMaxHealth = 20.0D; public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; @@ -446,7 +446,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -749,6 +765,7 @@ public class PurpurWorldConfig { +@@ -751,6 +767,7 @@ public class PurpurWorldConfig { creeperMaxHealth = getDouble("mobs.creeper.attributes.max_health", creeperMaxHealth); creeperChargedChance = getDouble("mobs.creeper.naturally-charged-chance", creeperChargedChance); creeperAllowGriefing = getBoolean("mobs.creeper.allow-griefing", creeperAllowGriefing); @@ -454,7 +454,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean dolphinRidable = false; -@@ -843,6 +860,7 @@ public class PurpurWorldConfig { +@@ -845,6 +862,7 @@ public class PurpurWorldConfig { public double enderDragonMaxY = 320D; public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; @@ -462,7 +462,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -859,6 +877,7 @@ public class PurpurWorldConfig { +@@ -861,6 +879,7 @@ public class PurpurWorldConfig { } enderDragonMaxHealth = getDouble("mobs.ender_dragon.attributes.max_health", enderDragonMaxHealth); enderDragonAlwaysDropsFullExp = getBoolean("mobs.ender_dragon.always-drop-full-exp", enderDragonAlwaysDropsFullExp); @@ -470,7 +470,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean endermanRidable = false; -@@ -867,6 +886,7 @@ public class PurpurWorldConfig { +@@ -869,6 +888,7 @@ public class PurpurWorldConfig { public double endermanMaxHealth = 40.0D; public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; @@ -478,7 +478,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -879,6 +899,7 @@ public class PurpurWorldConfig { +@@ -881,6 +901,7 @@ public class PurpurWorldConfig { endermanMaxHealth = getDouble("mobs.enderman.attributes.max_health", endermanMaxHealth); endermanAllowGriefing = getBoolean("mobs.enderman.allow-griefing", endermanAllowGriefing); endermanDespawnEvenWithBlock = getBoolean("mobs.enderman.can-despawn-with-held-block", endermanDespawnEvenWithBlock); @@ -486,15 +486,15 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean endermiteRidable = false; -@@ -901,6 +922,7 @@ public class PurpurWorldConfig { - public boolean evokerRidableInWater = false; +@@ -903,6 +924,7 @@ public class PurpurWorldConfig { + public boolean evokerRidableInWater = true; public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; + public boolean evokerBypassMobGriefing = false; private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -911,6 +933,7 @@ public class PurpurWorldConfig { +@@ -913,6 +935,7 @@ public class PurpurWorldConfig { set("mobs.evoker.attributes.max_health", oldValue); } evokerMaxHealth = getDouble("mobs.evoker.attributes.max_health", evokerMaxHealth); @@ -502,7 +502,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean foxRidable = false; -@@ -919,6 +942,7 @@ public class PurpurWorldConfig { +@@ -921,6 +944,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; @@ -510,7 +510,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -931,6 +955,7 @@ public class PurpurWorldConfig { +@@ -933,6 +957,7 @@ public class PurpurWorldConfig { foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); @@ -518,15 +518,15 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean frogRidable = false; -@@ -1378,6 +1403,7 @@ public class PurpurWorldConfig { - public boolean piglinRidableInWater = false; +@@ -1380,6 +1405,7 @@ public class PurpurWorldConfig { + public boolean piglinRidableInWater = true; public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; + public boolean piglinBypassMobGriefing = false; private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1388,6 +1414,7 @@ public class PurpurWorldConfig { +@@ -1390,6 +1416,7 @@ public class PurpurWorldConfig { set("mobs.piglin.attributes.max_health", oldValue); } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); @@ -534,15 +534,15 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean piglinBruteRidable = false; -@@ -1410,6 +1437,7 @@ public class PurpurWorldConfig { - public boolean pillagerRidableInWater = false; +@@ -1412,6 +1439,7 @@ public class PurpurWorldConfig { + public boolean pillagerRidableInWater = true; public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; + public boolean pillagerBypassMobGriefing = false; private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1420,6 +1448,7 @@ public class PurpurWorldConfig { +@@ -1422,6 +1450,7 @@ public class PurpurWorldConfig { set("mobs.pillager.attributes.max_health", oldValue); } pillagerMaxHealth = getDouble("mobs.pillager.attributes.max_health", pillagerMaxHealth); @@ -550,7 +550,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean polarBearRidable = false; -@@ -1466,6 +1495,7 @@ public class PurpurWorldConfig { +@@ -1468,6 +1497,7 @@ public class PurpurWorldConfig { public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; @@ -558,7 +558,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1479,12 +1509,14 @@ public class PurpurWorldConfig { +@@ -1481,12 +1511,14 @@ public class PurpurWorldConfig { rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); @@ -573,7 +573,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1495,6 +1527,7 @@ public class PurpurWorldConfig { +@@ -1497,6 +1529,7 @@ public class PurpurWorldConfig { set("mobs.ravager.attributes.max_health", oldValue); } ravagerMaxHealth = getDouble("mobs.ravager.attributes.max_health", ravagerMaxHealth); @@ -581,7 +581,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean salmonRidable = false; -@@ -1516,6 +1549,7 @@ public class PurpurWorldConfig { +@@ -1518,6 +1551,7 @@ public class PurpurWorldConfig { public boolean sheepControllable = true; public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; @@ -589,7 +589,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1527,6 +1561,7 @@ public class PurpurWorldConfig { +@@ -1529,6 +1563,7 @@ public class PurpurWorldConfig { } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); @@ -597,15 +597,15 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean shulkerRidable = false; -@@ -1549,6 +1584,7 @@ public class PurpurWorldConfig { - public boolean silverfishRidableInWater = false; +@@ -1551,6 +1586,7 @@ public class PurpurWorldConfig { + public boolean silverfishRidableInWater = true; public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; + public boolean silverfishBypassMobGriefing = false; private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1559,6 +1595,7 @@ public class PurpurWorldConfig { +@@ -1561,6 +1597,7 @@ public class PurpurWorldConfig { set("mobs.silverfish.attributes.max_health", oldValue); } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); @@ -613,7 +613,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean skeletonRidable = false; -@@ -1635,6 +1672,7 @@ public class PurpurWorldConfig { +@@ -1637,6 +1674,7 @@ public class PurpurWorldConfig { public int snowGolemSnowBallMax = 20; public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; @@ -621,7 +621,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1652,6 +1690,7 @@ public class PurpurWorldConfig { +@@ -1654,6 +1692,7 @@ public class PurpurWorldConfig { snowGolemSnowBallMax = getInt("mobs.snow_golem.max-shoot-interval-ticks", snowGolemSnowBallMax); snowGolemSnowBallModifier = (float) getDouble("mobs.snow_golem.snow-ball-modifier", snowGolemSnowBallModifier); snowGolemAttackDistance = getDouble("mobs.snow_golem.attack-distance", snowGolemAttackDistance); @@ -629,7 +629,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean snifferRidable = false; -@@ -1838,6 +1877,7 @@ public class PurpurWorldConfig { +@@ -1840,6 +1879,7 @@ public class PurpurWorldConfig { public int villagerBreedingTicks = 6000; public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; @@ -637,7 +637,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1854,6 +1894,7 @@ public class PurpurWorldConfig { +@@ -1856,6 +1896,7 @@ public class PurpurWorldConfig { villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); villagerClericsFarmWarts = getBoolean("mobs.villager.clerics-farm-warts", villagerClericsFarmWarts); villagerClericFarmersThrowWarts = getBoolean("mobs.villager.cleric-wart-farmers-throw-warts-at-villagers", villagerClericFarmersThrowWarts); @@ -645,7 +645,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean vindicatorRidable = false; -@@ -1926,6 +1967,7 @@ public class PurpurWorldConfig { +@@ -1928,6 +1969,7 @@ public class PurpurWorldConfig { public double witherMaxHealth = 300.0D; public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; @@ -653,7 +653,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -1943,6 +1985,7 @@ public class PurpurWorldConfig { +@@ -1945,6 +1987,7 @@ public class PurpurWorldConfig { witherMaxHealth = getDouble("mobs.wither.attributes.max_health", witherMaxHealth); witherHealthRegenAmount = (float) getDouble("mobs.wither.health-regen-amount", witherHealthRegenAmount); witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); @@ -661,7 +661,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 } public boolean witherSkeletonRidable = false; -@@ -2014,6 +2057,7 @@ public class PurpurWorldConfig { +@@ -2016,6 +2059,7 @@ public class PurpurWorldConfig { public double zombieJockeyChance = 0.05D; public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; @@ -669,7 +669,7 @@ index 71d4ba7f97b9898dca7efb55a81833b43a9624ee..8c21f611c515a18fae777d86e96f9010 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2029,6 +2073,7 @@ public class PurpurWorldConfig { +@@ -2031,6 +2075,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/0130-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch index 96f6f729f..452af26a6 100644 --- a/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0130-Toggle-for-water-sensitive-mob-damage.patch @@ -21,7 +21,7 @@ index b0581379619a1ac510b1973512f70db0e961a1f3..7d5b34f69c3ceed3c350ae641eef87cc @Override diff --git a/src/main/java/net/minecraft/world/entity/ambient/Bat.java b/src/main/java/net/minecraft/world/entity/ambient/Bat.java -index f0ba6e7971090e086fd7a70a510ae91c104f0ae9..fa9ed6d5ae13ddd14ef8677ca9ad30398a2333f4 100644 +index da2b0dfd8a3c033488a1e5d928c40fd66ada5091..991e0eadbce4b949698c1ddde61080715f888805 100644 --- a/src/main/java/net/minecraft/world/entity/ambient/Bat.java +++ b/src/main/java/net/minecraft/world/entity/ambient/Bat.java @@ -105,6 +105,11 @@ public class Bat extends AmbientCreature { @@ -37,7 +37,7 @@ index f0ba6e7971090e086fd7a70a510ae91c104f0ae9..fa9ed6d5ae13ddd14ef8677ca9ad3039 @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 609fc99fb2f6120af1220ca9dda9ed05686c1448..f379f4c45c5aaf8aa8d166148cdc07517c84649a 100644 +index 980bab802ce49384fc836187fa69e178a04a3ea2..89a70432ae1713c2c5c6fff2957f2fd4917fdc70 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 609fc99fb2f6120af1220ca9dda9ed05686c1448..f379f4c45c5aaf8aa8d166148cdc0751 @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 dc79deffd450d676a0950c726c505501b0204817..c1ec34249d07a22708905c593ffd61593935d7ef 100644 +index 8e6abeab0a7d7007d0deef3b1dea77aee66681fa..e2cee31edc80059a4c4faf531554b4eedd2a0303 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -130,6 +130,11 @@ public class Cat extends TamableAnimal implements VariantHolder { @@ -78,7 +78,7 @@ index dc79deffd450d676a0950c726c505501b0204817..c1ec34249d07a22708905c593ffd6159 public ResourceLocation getResourceLocation() { diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java -index 68c90c92409e79011aff84f655b391ba113804a2..ea35213552ed5b799d3b7aef225383f030fcb07a 100644 +index 12faecfb4ffdd2c248c4a36134ed38f96b6d4069..28e4c0c18dba0fc510886c9ed014cdb7c8579d2b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java +++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java @@ -82,6 +82,11 @@ public class Chicken extends Animal { @@ -110,7 +110,7 @@ index 47b537deac66f93a66a1df007b2bb8afac0ed079..abd24e7434712e806a14dc0e708a76aa @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java -index 6974e10842c66906a2ee70add8b7f046f312301c..ece8f5c4277d6b42fd19df64bfa624f96f1390ca 100644 +index 7776aa8db4b8782fea1ac57b82b98687548aab93..d1966126950d086649c1e3c7cd140669c36d7e76 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cow.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java @@ -68,6 +68,11 @@ public class Cow extends Animal { @@ -142,7 +142,7 @@ index 3b65375703732966d0fcbbb68ba0805edd26bfd8..f8d3a5d2dc254501c7e4405444ed4439 @Nullable diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index d63b31653504ee69532c3304782a5d55248c2581..bf3166a50930044cc329142670a2f1e77f144e4b 100644 +index 6642f93ae5a8843a8e560594008c8643ef693878..87bdea86f8cbcdb91bbff0937a6a40ac06d03aab 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -189,6 +189,11 @@ public class Fox extends Animal implements VariantHolder { @@ -158,7 +158,7 @@ index d63b31653504ee69532c3304782a5d55248c2581..bf3166a50930044cc329142670a2f1e7 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java -index 5a3da8390d1b8b4e818da42578174f2016f73407..f25f7db029c0c21f31693349ef567dddeace3db1 100644 +index ca4ef2397582245b52c73b12f80e876e03bb7e55..a123c02dfa554f58897b44f8d01f5f56b5a2d5b7 100644 --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java @@ -89,6 +89,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob { @@ -174,7 +174,7 @@ index 5a3da8390d1b8b4e818da42578174f2016f73407..f25f7db029c0c21f31693349ef567ddd @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java -index 1b4d9c39bae147442d6bf9f742f9233c80c44363..7bafba53b6c4947a37c02a1f616b8fe74ce4d99b 100644 +index 7e3f730aac201dd5302c1d3a1b98e06c214f0740..dc56d475c052ef6176fadb7c5a165a5dfac0946c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java @@ -88,6 +88,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder { @@ -318,7 +318,7 @@ index 2d525af3955a1f6dfbd21f07d813a832fd7f6c76..cea2f9b5760d82f244950e27ca6f4bae @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java -index 70e8ee40ec545b9be7f55f64f251864b03bacaac..14c59e94040a5bcf07e7a134c4a1a0f4453d386a 100644 +index 0969acaee0708a6fbb52c1cbee05ebb58b1408dd..76aabb33516cbe2d562e6ef1beec5d0eb13e7756 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java @@ -141,6 +141,11 @@ public class Sheep extends Animal implements Shearable { @@ -334,7 +334,7 @@ index 70e8ee40ec545b9be7f55f64f251864b03bacaac..14c59e94040a5bcf07e7a134c4a1a0f4 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index 7da3aa9b77dfecd06ca6d604ee285cad800f2f9b..707db30bfa6acc0543abb08ee1a646670849d46f 100644 +index 806abdd159ff5c696f16d799902f02bcc3cd252f..f0b9c2e06b836b9c3fe53cade4f0922fe2083083 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -116,7 +116,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -379,7 +379,7 @@ index 948d86a125648300a258e08200bb90e9ba8eaf59..ce5fd177521780176708fd0b97f1d57c public static String getPredefinedName(int variant) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index 7ee3c81f95907886c4036fb5ab9c16aebea38a85..edcc61a3c2318e5d86486615d36d9eae7327796f 100644 +index 303a2c74574d9ef456866ff30b98b9d103562658..73ab521052724cb97ba96b9777b6b2cb69ae0d5e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -108,6 +108,11 @@ public class Turtle extends Animal { @@ -395,7 +395,7 @@ index 7ee3c81f95907886c4036fb5ab9c16aebea38a85..edcc61a3c2318e5d86486615d36d9eae public void setHomePos(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 06f2225743e27c7f1f0eb15ee6beedc57c8a3b4f..a2500bde559cd191bff6811802ff12980c7be418 100644 +index 214d5d27f8c4f352839c1a45a083c329f41164bd..9b2422f9fb0d046ba2246167f9350ed6828f6265 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -207,6 +207,11 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -427,7 +427,7 @@ index 1af75e173958c192b8f53b7e17e75d980cbbbcbc..5e705c84e5deeb3b3bdede80bf2acd9a @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index b627fee1cb19f476f45921f1fae7624b27ff7280..e47d4b920737cca51fa4003e79030258685d7e1a 100644 +index b2c025184b9d8d272fab720a5930c030312d6e03..f49d3f6ce2407cec4a855f68cec798cdeff30d35 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -109,6 +109,11 @@ public class Goat extends Animal { @@ -443,7 +443,7 @@ index b627fee1cb19f476f45921f1fae7624b27ff7280..e47d4b920737cca51fa4003e79030258 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java -index efe381ff8d43295bcaf0d4fb7ff75f2bf46391eb..1b2838de60399e83fe6de91b368bfc5d9aa7a805 100644 +index 0a5313546858a235c071f15d91edc4f161f6a351..bef26b0fcebb14a944a13ff4472bf7d86b63dfa1 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java @@ -25,6 +25,11 @@ public class Donkey extends AbstractChestedHorse { @@ -459,7 +459,7 @@ index efe381ff8d43295bcaf0d4fb7ff75f2bf46391eb..1b2838de60399e83fe6de91b368bfc5d @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java -index 2dbcebf7c370d4f5a51b5a23e67306c6c1ab83ba..02c090a15271a2d597278d01c850d842b4e7a9fd 100644 +index dc8ebffdd6e64dd11d1e254ea1860f287f40aa50..a72d0836c34961266dc9d39afb7986e4c2b2532c 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java @@ -50,6 +50,11 @@ public class Horse extends AbstractHorse implements VariantHolder { @@ -475,7 +475,7 @@ index 2dbcebf7c370d4f5a51b5a23e67306c6c1ab83ba..02c090a15271a2d597278d01c850d842 @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 4165c7d54d00e356767dc56be86f5bff6aa8e8bb..185749df0c7c08f625145a29810ffed6042550bb 100644 +index 2f585de77bb8ad5431a48710d341dff0321b124d..68796219152f05352f99ffb35a00640d391563af 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 @@ -126,6 +126,11 @@ public class Llama extends AbstractChestedHorse implements VariantHolder type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java -index a9c0989d23a11ea9273712aa0e98bf275376abef..2e6029afa8c045a99fb18ee1b7ffdb56b23dd6be 100644 +index a22756ed865dfa583029a742f3e9f9c80e1533ad..88fd378b6b8bb92b793f1cf84b63faed6e02894b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java +++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java @@ -81,6 +81,11 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { @@ -807,7 +807,7 @@ index a9c0989d23a11ea9273712aa0e98bf275376abef..2e6029afa8c045a99fb18ee1b7ffdb56 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java -index 9e73c3c79fcbbb17015f00cf300de3e5447c3c29..a53fe8bf4994ce146985930515c720673df45fe7 100644 +index c78bc3ca4324905d03e789c516d6a9a7226e072d..7f2406a3174c3961705a4ea838541e3163352a4d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java +++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java @@ -65,6 +65,11 @@ public class MagmaCube extends Slime { @@ -823,7 +823,7 @@ index 9e73c3c79fcbbb17015f00cf300de3e5447c3c29..a53fe8bf4994ce146985930515c72067 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 e9906ea55845b579e4941a34ac9705432895d2dc..a0bce86414db70d068544f74e551b9157646a162 100644 +index ed5c75d390babced3dc062428176e968da878d8f..7d8441d433a9c3e5456e7e96c503cdbbf53959c6 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 { @@ -839,7 +839,7 @@ index e9906ea55845b579e4941a34ac9705432895d2dc..a0bce86414db70d068544f74e551b915 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Pillager.java b/src/main/java/net/minecraft/world/entity/monster/Pillager.java -index f1eb424f1c4c15f777350603543bdf6613c97019..c260dfafd7579f1a15ca712ac43ad8752e5147d3 100644 +index ea1da86fef146a50a6908cbc51fab9d195693aeb..be9038318a072008046119852256e0e593950652 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Pillager.java @@ -82,6 +82,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve @@ -855,7 +855,7 @@ index f1eb424f1c4c15f777350603543bdf6613c97019..c260dfafd7579f1a15ca712ac43ad875 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index af2eddeb3d4c4dcb1f6862b5aefd26c0964fef63..1c28e0f5b96114b2886fcf670ce5ce23526868f3 100644 +index 9c8ebbec20438401265d8049b33132f490e3c1ea..d67171c3b7d53a91ac9761385646cf9b7b474362 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -91,6 +91,11 @@ public class Ravager extends Raider { @@ -871,7 +871,7 @@ index af2eddeb3d4c4dcb1f6862b5aefd26c0964fef63..1c28e0f5b96114b2886fcf670ce5ce23 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java -index 8276c8cb76f36e99ec09c0cede5aeac90dfd11fb..cd0e0d15868bcefef28d801dbd2aa41ac982baac 100644 +index a17cb25071132d601ff42f884f2e668328c7df41..7fb3fe195d4f267735fadb740debc4ec72cb3c31 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java @@ -115,6 +115,11 @@ public class Shulker extends AbstractGolem implements VariantHolder type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java -index 7d10e81669177d0df5c6eba79a2aac46122daea6..97a94ee517021e07df3a4d69f8ae854cd993f784 100644 +index 270135cb5a5f50b39683f74da84045ea75045030..1282974c939a5e5d64240ca2e1621967826b7ab5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Strider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java @@ -94,7 +94,7 @@ public class Strider extends Animal implements ItemSteerable, Saddleable { @@ -989,7 +989,7 @@ index 7d10e81669177d0df5c6eba79a2aac46122daea6..97a94ee517021e07df3a4d69f8ae854c @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Vex.java b/src/main/java/net/minecraft/world/entity/monster/Vex.java -index cd2670bcffbf8c790d128ed312855a835cb70749..73773dc5eb0d21746ea31459b659767e88eedd72 100644 +index 87956e99e8a309c90b522652d29458d6f437f866..3c6618dc24b39b1913b39c2fce5f8cad47cb278a 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vex.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java @@ -110,6 +110,11 @@ public class Vex extends Monster implements TraceableEntity { @@ -1005,7 +1005,7 @@ index cd2670bcffbf8c790d128ed312855a835cb70749..73773dc5eb0d21746ea31459b659767e @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index 5e732fd80cd0ac814e56c741717e333500fcc334..2d2d01187d3fc6a17b3e98b5e5ab018d3af88af1 100644 +index 29039b35c60c7c6370c6593a53b8aa2a3db0a368..7887a05bdf913d54e6d5dae32a222cbd83702fcc 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -78,6 +78,11 @@ public class Vindicator extends AbstractIllager { @@ -1021,7 +1021,7 @@ index 5e732fd80cd0ac814e56c741717e333500fcc334..2d2d01187d3fc6a17b3e98b5e5ab018d @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java -index cf64f00c7a1528006d4946ad5d871cf487336745..2269d316c826f0dbe18ad9968c8fc04335db13fc 100644 +index cbbdbf3bf316140b2591f29f0309ed17f341473e..9a54977f2262c6c451a9450c235ef653889189ce 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java @@ -77,6 +77,11 @@ public class Witch extends Raider implements RangedAttackMob { @@ -1037,7 +1037,7 @@ index cf64f00c7a1528006d4946ad5d871cf487336745..2269d316c826f0dbe18ad9968c8fc043 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java -index 259896608f947b1dd574192e5e4babce4bd7d7ff..09dab86cb43ebc66423c0a8b65ea6a8c28604b87 100644 +index ff43c5a1f8398b2c56920ec4e0a8fa5fbd135df8..21f62b3b058e0f87c9efc67eef6d6632b6a4f8ad 100644 --- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java @@ -55,6 +55,11 @@ public class WitherSkeleton extends AbstractSkeleton { @@ -1053,7 +1053,7 @@ index 259896608f947b1dd574192e5e4babce4bd7d7ff..09dab86cb43ebc66423c0a8b65ea6a8c @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java -index a0c39477f7a565307c95df7bf7616d58e6960d30..3715ff68d6c134d6f1cdf4a3e04db8a069bbf3b8 100644 +index 13010725d9e6026ac77eb69e9f302684dc50cfec..ce0111bea1074dec55031ce83f2f0cfceb3117c1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java @@ -87,6 +87,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase { @@ -1069,7 +1069,7 @@ index a0c39477f7a565307c95df7bf7616d58e6960d30..3715ff68d6c134d6f1cdf4a3e04db8a0 @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 0d4abed58cd14f7804e61c6e6a62891c71fb9f0a..390a31286e17173ec8f1e40b69b09bcdd6012f7d 100644 +index ebeeb8c31d05a0ad2e291599a0b6ebe179b8cf82..5cf17a81d8c2a784bbd406dc3725ebbbbdf4a045 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -138,6 +138,11 @@ public class Zombie extends Monster { @@ -1085,7 +1085,7 @@ index 0d4abed58cd14f7804e61c6e6a62891c71fb9f0a..390a31286e17173ec8f1e40b69b09bcd @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index 0f12e4ac6eab349418328a80a2b02fa27ce3f39b..1084adce8dc55b19ed9d90c0c5ad6675fff0afc5 100644 +index 9754f1d53cc5b2ea982531e0240c4fb41e4f1d35..6e1caf05b5577fec82354b4c59e3f86b3c1c1dbc 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -119,6 +119,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -1101,7 +1101,7 @@ index 0f12e4ac6eab349418328a80a2b02fa27ce3f39b..1084adce8dc55b19ed9d90c0c5ad6675 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index 65d035647f7caf23647ec00beb20a4a27d1a9a55..426dbf4f78ce6d731313a45380fd23cdeb91efb1 100644 +index 6e8f0c9df06e2930084a6d58213f6edfb36ec444..381238699f534ddc029e349d62cc11409995e6b3 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java @@ -98,6 +98,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -1117,7 +1117,7 @@ index 65d035647f7caf23647ec00beb20a4a27d1a9a55..426dbf4f78ce6d731313a45380fd23cd @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index 8e837ce3069ca05bcc93ea93f94c79342ea9eb3c..48d25e6015b9419a4f6d0f81877af2dcc9d91023 100644 +index 2161df2ebee7dc00c924bfbc56377d68906b1f18..5fcfc83444e123806d0e01e7936be8c2aa1bd169 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -92,6 +92,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -1133,7 +1133,7 @@ index 8e837ce3069ca05bcc93ea93f94c79342ea9eb3c..48d25e6015b9419a4f6d0f81877af2dc @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index 8d7a65f452018ca0d7f58661aea251ebf96906d6..b6d10dd654d2890464802faf0752816b4ac35e1c 100644 +index 4f2332b3255912bede00d27f3d2348cf1314be9c..7857c96bab4f5d190eb29c2068f27381c16be310 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -117,6 +117,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -1149,7 +1149,7 @@ index 8d7a65f452018ca0d7f58661aea251ebf96906d6..b6d10dd654d2890464802faf0752816b @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java -index b931880d8cda19bc042bacc98a6a5fead9d54303..fd8f5ef1842eaa8676893fcd53f550ab5ccb3b93 100644 +index ba460cb0f65eb98d2c0934084c51c81ef10a0b44..3b4cc6bc55482ae703e73d585916c179f5b7b540 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java @@ -61,6 +61,11 @@ public class PiglinBrute extends AbstractPiglin { @@ -1165,7 +1165,7 @@ index b931880d8cda19bc042bacc98a6a5fead9d54303..fd8f5ef1842eaa8676893fcd53f550ab public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index c5651a1c4ece3bf911401533e41be7c92455d5dc..937105ae414c0ef809b79300a1a932053d1c1a14 100644 +index 4f7b37030454aa2fba5d04c4a629576a78cb5592..ac4e80bd4239da220db8ed5d2ce6cf2935403ce9 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -184,6 +184,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -1181,7 +1181,7 @@ index c5651a1c4ece3bf911401533e41be7c92455d5dc..937105ae414c0ef809b79300a1a93205 @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index fbbeacb94aeda40e9fc5c0553ab68948de9019c4..64c8890a54a10abd454a62671fbabfcf9720b7c0 100644 +index 559bad9524a00a5357973f30d54b0f1a3ed6dadb..4e321a9f08c8798cee04789a7356893dd2a660c3 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -94,6 +94,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -1197,10 +1197,10 @@ index fbbeacb94aeda40e9fc5c0553ab68948de9019c4..64c8890a54a10abd454a62671fbabfcf @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b8609798fcba5b8 100644 +index a329762e693829a7d80390163f6d8b960cc825d9..31939ae8142fb6b795c4da362cd6ce24045db8f3 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -577,11 +577,13 @@ public class PurpurWorldConfig { +@@ -579,11 +579,13 @@ public class PurpurWorldConfig { public boolean axolotlControllable = true; public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; @@ -1214,7 +1214,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean batRidable = false; -@@ -596,6 +598,7 @@ public class PurpurWorldConfig { +@@ -598,6 +600,7 @@ public class PurpurWorldConfig { public double batArmor = 0.0D; public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; @@ -1222,7 +1222,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -607,6 +610,7 @@ public class PurpurWorldConfig { +@@ -609,6 +612,7 @@ public class PurpurWorldConfig { set("mobs.bat.attributes.max_health", oldValue); } batMaxHealth = getDouble("mobs.bat.attributes.max_health", batMaxHealth); @@ -1230,7 +1230,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean beeRidable = false; -@@ -615,6 +619,7 @@ public class PurpurWorldConfig { +@@ -617,6 +621,7 @@ public class PurpurWorldConfig { public double beeMaxY = 320D; public double beeMaxHealth = 10.0D; public int beeBreedingTicks = 6000; @@ -1238,7 +1238,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -627,6 +632,7 @@ public class PurpurWorldConfig { +@@ -629,6 +634,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean blazeRidable = false; -@@ -634,6 +640,7 @@ public class PurpurWorldConfig { +@@ -636,6 +642,7 @@ public class PurpurWorldConfig { public boolean blazeControllable = true; public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; @@ -1254,7 +1254,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -645,6 +652,7 @@ public class PurpurWorldConfig { +@@ -647,6 +654,7 @@ public class PurpurWorldConfig { set("mobs.blaze.attributes.max_health", oldValue); } blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); @@ -1262,7 +1262,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public int camelBreedingTicks = 6000; -@@ -673,6 +681,7 @@ public class PurpurWorldConfig { +@@ -675,6 +683,7 @@ public class PurpurWorldConfig { public int catSpawnVillageScanRange = 48; public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; @@ -1270,7 +1270,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -692,12 +701,14 @@ public class PurpurWorldConfig { +@@ -694,12 +703,14 @@ public class PurpurWorldConfig { } catch (IllegalArgumentException ignore) { catDefaultCollarColor = DyeColor.RED; } @@ -1278,14 +1278,14 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean caveSpiderRidable = false; - public boolean caveSpiderRidableInWater = false; + public boolean caveSpiderRidableInWater = true; public boolean caveSpiderControllable = true; public double caveSpiderMaxHealth = 12.0D; + public boolean caveSpiderTakeDamageFromWater = false; private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -708,6 +719,7 @@ public class PurpurWorldConfig { +@@ -710,6 +721,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean chickenRidable = false; -@@ -716,6 +728,7 @@ public class PurpurWorldConfig { +@@ -718,6 +730,7 @@ public class PurpurWorldConfig { public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; @@ -1301,7 +1301,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -728,11 +741,13 @@ public class PurpurWorldConfig { +@@ -730,11 +743,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -742,6 +757,7 @@ public class PurpurWorldConfig { +@@ -744,6 +759,7 @@ public class PurpurWorldConfig { set("mobs.cod.attributes.max_health", oldValue); } codMaxHealth = getDouble("mobs.cod.attributes.max_health", codMaxHealth); @@ -1323,7 +1323,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean cowRidable = false; -@@ -750,6 +766,7 @@ public class PurpurWorldConfig { +@@ -752,6 +768,7 @@ public class PurpurWorldConfig { public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; public int cowBreedingTicks = 6000; @@ -1331,7 +1331,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void cowSettings() { cowRidable = getBoolean("mobs.cow.ridable", cowRidable); cowRidableInWater = getBoolean("mobs.cow.ridable-in-water", cowRidableInWater); -@@ -762,6 +779,7 @@ public class PurpurWorldConfig { +@@ -764,6 +781,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean creeperRidable = false; -@@ -771,6 +789,7 @@ public class PurpurWorldConfig { +@@ -773,6 +791,7 @@ public class PurpurWorldConfig { public double creeperChargedChance = 0.0D; public boolean creeperAllowGriefing = true; public boolean creeperBypassMobGriefing = false; @@ -1347,7 +1347,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -784,6 +803,7 @@ public class PurpurWorldConfig { +@@ -786,6 +805,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean dolphinRidable = false; -@@ -793,6 +813,7 @@ public class PurpurWorldConfig { +@@ -795,6 +815,7 @@ public class PurpurWorldConfig { public float dolphinSpitDamage = 2.0F; public double dolphinMaxHealth = 10.0D; public boolean dolphinDisableTreasureSearching = false; @@ -1363,7 +1363,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -806,6 +827,7 @@ public class PurpurWorldConfig { +@@ -808,6 +829,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean donkeyRidableInWater = false; -@@ -816,6 +838,7 @@ public class PurpurWorldConfig { +@@ -818,6 +840,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; @@ -1379,7 +1379,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -832,6 +855,7 @@ public class PurpurWorldConfig { +@@ -834,6 +857,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean drownedRidable = false; -@@ -842,6 +866,7 @@ public class PurpurWorldConfig { +@@ -844,6 +868,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyOnlyBaby = true; public double drownedJockeyChance = 0.05D; public boolean drownedJockeyTryExistingChickens = true; @@ -1395,7 +1395,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -856,11 +881,13 @@ public class PurpurWorldConfig { +@@ -858,11 +883,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -870,6 +897,7 @@ public class PurpurWorldConfig { +@@ -872,6 +899,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean enderDragonRidable = false; -@@ -879,6 +907,7 @@ public class PurpurWorldConfig { +@@ -881,6 +909,7 @@ public class PurpurWorldConfig { public double enderDragonMaxHealth = 200.0D; public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; @@ -1425,7 +1425,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -896,6 +925,7 @@ public class PurpurWorldConfig { +@@ -898,6 +927,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean endermanRidable = false; -@@ -905,6 +935,7 @@ public class PurpurWorldConfig { +@@ -907,6 +937,7 @@ public class PurpurWorldConfig { public boolean endermanAllowGriefing = true; public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; @@ -1441,7 +1441,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -918,12 +949,14 @@ public class PurpurWorldConfig { +@@ -920,12 +951,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); @@ -1449,14 +1449,14 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean endermiteRidable = false; - public boolean endermiteRidableInWater = false; + public boolean endermiteRidableInWater = true; public boolean endermiteControllable = true; public double endermiteMaxHealth = 8.0D; + public boolean endermiteTakeDamageFromWater = false; private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -934,6 +967,7 @@ public class PurpurWorldConfig { +@@ -936,6 +969,7 @@ public class PurpurWorldConfig { set("mobs.endermite.attributes.max_health", oldValue); } endermiteMaxHealth = getDouble("mobs.endermite.attributes.max_health", endermiteMaxHealth); @@ -1464,7 +1464,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean evokerRidable = false; -@@ -941,6 +975,7 @@ public class PurpurWorldConfig { +@@ -943,6 +977,7 @@ public class PurpurWorldConfig { public boolean evokerControllable = true; public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; @@ -1472,7 +1472,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -952,6 +987,7 @@ public class PurpurWorldConfig { +@@ -954,6 +989,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean foxRidable = false; -@@ -961,6 +997,7 @@ public class PurpurWorldConfig { +@@ -963,6 +999,7 @@ public class PurpurWorldConfig { public boolean foxTypeChangesWithTulips = false; public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; @@ -1488,7 +1488,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -974,6 +1011,7 @@ public class PurpurWorldConfig { +@@ -976,6 +1013,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean frogRidable = false; -@@ -994,6 +1032,7 @@ public class PurpurWorldConfig { +@@ -996,6 +1034,7 @@ public class PurpurWorldConfig { public boolean ghastControllable = true; public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; @@ -1504,7 +1504,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1005,6 +1044,7 @@ public class PurpurWorldConfig { +@@ -1007,6 +1046,7 @@ public class PurpurWorldConfig { set("mobs.ghast.attributes.max_health", oldValue); } ghastMaxHealth = getDouble("mobs.ghast.attributes.max_health", ghastMaxHealth); @@ -1512,7 +1512,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean giantRidable = false; -@@ -1017,6 +1057,7 @@ public class PurpurWorldConfig { +@@ -1019,6 +1059,7 @@ public class PurpurWorldConfig { public float giantJumpHeight = 1.0F; public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; @@ -1520,7 +1520,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1037,17 +1078,20 @@ public class PurpurWorldConfig { +@@ -1039,17 +1080,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean goatRidable = false; -@@ -1055,17 +1099,20 @@ public class PurpurWorldConfig { +@@ -1057,17 +1101,20 @@ public class PurpurWorldConfig { public boolean goatControllable = true; public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; @@ -1562,7 +1562,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1075,6 +1122,7 @@ public class PurpurWorldConfig { +@@ -1077,6 +1124,7 @@ public class PurpurWorldConfig { set("mobs.guardian.attributes.max_health", oldValue); } guardianMaxHealth = getDouble("mobs.guardian.attributes.max_health", guardianMaxHealth); @@ -1570,7 +1570,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean hoglinRidable = false; -@@ -1082,6 +1130,7 @@ public class PurpurWorldConfig { +@@ -1084,6 +1132,7 @@ public class PurpurWorldConfig { public boolean hoglinControllable = true; public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; @@ -1578,7 +1578,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1093,6 +1142,7 @@ public class PurpurWorldConfig { +@@ -1095,6 +1144,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean horseRidableInWater = false; -@@ -1103,6 +1153,7 @@ public class PurpurWorldConfig { +@@ -1105,6 +1155,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; @@ -1594,7 +1594,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1119,6 +1170,7 @@ public class PurpurWorldConfig { +@@ -1121,6 +1172,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean huskRidable = false; -@@ -1129,6 +1181,7 @@ public class PurpurWorldConfig { +@@ -1131,6 +1183,7 @@ public class PurpurWorldConfig { public boolean huskJockeyOnlyBaby = true; public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; @@ -1610,7 +1610,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1143,6 +1196,7 @@ public class PurpurWorldConfig { +@@ -1145,6 +1198,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean illusionerRidable = false; -@@ -1151,6 +1205,7 @@ public class PurpurWorldConfig { +@@ -1153,6 +1207,7 @@ public class PurpurWorldConfig { public double illusionerMovementSpeed = 0.5D; public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; @@ -1626,7 +1626,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1167,6 +1222,7 @@ public class PurpurWorldConfig { +@@ -1169,6 +1224,7 @@ public class PurpurWorldConfig { set("mobs.illusioner.attributes.max_health", oldValue); } illusionerMaxHealth = getDouble("mobs.illusioner.attributes.max_health", illusionerMaxHealth); @@ -1634,7 +1634,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean ironGolemRidable = false; -@@ -1174,6 +1230,7 @@ public class PurpurWorldConfig { +@@ -1176,6 +1232,7 @@ public class PurpurWorldConfig { public boolean ironGolemControllable = true; public boolean ironGolemCanSwim = false; public double ironGolemMaxHealth = 100.0D; @@ -1642,7 +1642,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1185,6 +1242,7 @@ public class PurpurWorldConfig { +@@ -1187,6 +1244,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean llamaRidable = false; -@@ -1197,6 +1255,7 @@ public class PurpurWorldConfig { +@@ -1199,6 +1257,7 @@ public class PurpurWorldConfig { public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; public int llamaBreedingTicks = 6000; @@ -1658,7 +1658,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1215,6 +1274,7 @@ public class PurpurWorldConfig { +@@ -1217,6 +1276,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean magmaCubeRidable = false; -@@ -1224,6 +1284,7 @@ public class PurpurWorldConfig { +@@ -1226,6 +1286,7 @@ public class PurpurWorldConfig { public String magmaCubeAttackDamage = "size"; public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); @@ -1674,7 +1674,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1237,6 +1298,7 @@ public class PurpurWorldConfig { +@@ -1239,6 +1300,7 @@ public class PurpurWorldConfig { magmaCubeAttackDamage = getString("mobs.magma_cube.attributes.attack_damage", magmaCubeAttackDamage); magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); @@ -1682,7 +1682,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean mooshroomRidable = false; -@@ -1244,6 +1306,7 @@ public class PurpurWorldConfig { +@@ -1246,6 +1308,7 @@ public class PurpurWorldConfig { public boolean mooshroomControllable = true; public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; @@ -1690,7 +1690,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1255,6 +1318,7 @@ public class PurpurWorldConfig { +@@ -1257,6 +1320,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean muleRidableInWater = false; -@@ -1265,6 +1329,7 @@ public class PurpurWorldConfig { +@@ -1267,6 +1331,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; @@ -1706,7 +1706,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1281,6 +1346,7 @@ public class PurpurWorldConfig { +@@ -1283,6 +1348,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean ocelotRidable = false; -@@ -1288,6 +1354,7 @@ public class PurpurWorldConfig { +@@ -1290,6 +1356,7 @@ public class PurpurWorldConfig { public boolean ocelotControllable = true; public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; @@ -1722,7 +1722,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1299,6 +1366,7 @@ public class PurpurWorldConfig { +@@ -1301,6 +1368,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean pandaRidable = false; -@@ -1306,6 +1374,7 @@ public class PurpurWorldConfig { +@@ -1308,6 +1376,7 @@ public class PurpurWorldConfig { public boolean pandaControllable = true; public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; @@ -1738,7 +1738,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1317,6 +1386,7 @@ public class PurpurWorldConfig { +@@ -1319,6 +1388,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean parrotRidable = false; -@@ -1324,6 +1394,7 @@ public class PurpurWorldConfig { +@@ -1326,6 +1396,7 @@ public class PurpurWorldConfig { public boolean parrotControllable = true; public double parrotMaxY = 320D; public double parrotMaxHealth = 6.0D; @@ -1754,7 +1754,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1335,6 +1406,7 @@ public class PurpurWorldConfig { +@@ -1337,6 +1408,7 @@ public class PurpurWorldConfig { set("mobs.parrot.attributes.max_health", oldValue); } parrotMaxHealth = getDouble("mobs.parrot.attributes.max_health", parrotMaxHealth); @@ -1762,7 +1762,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean phantomRidable = false; -@@ -1361,6 +1433,7 @@ public class PurpurWorldConfig { +@@ -1363,6 +1435,7 @@ public class PurpurWorldConfig { public boolean phantomIgnorePlayersWithTorch = false; public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; @@ -1770,7 +1770,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1395,6 +1468,7 @@ public class PurpurWorldConfig { +@@ -1397,6 +1470,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean pigRidable = false; -@@ -1403,6 +1477,7 @@ public class PurpurWorldConfig { +@@ -1405,6 +1479,7 @@ public class PurpurWorldConfig { public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; @@ -1786,7 +1786,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1415,6 +1490,7 @@ public class PurpurWorldConfig { +@@ -1417,6 +1492,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean piglinRidable = false; -@@ -1422,6 +1498,7 @@ public class PurpurWorldConfig { +@@ -1424,6 +1500,7 @@ public class PurpurWorldConfig { public boolean piglinControllable = true; public double piglinMaxHealth = 16.0D; public boolean piglinBypassMobGriefing = false; @@ -1802,7 +1802,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -1433,12 +1510,14 @@ public class PurpurWorldConfig { +@@ -1435,12 +1512,14 @@ public class PurpurWorldConfig { } piglinMaxHealth = getDouble("mobs.piglin.attributes.max_health", piglinMaxHealth); piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing); @@ -1810,14 +1810,14 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean piglinBruteRidable = false; - public boolean piglinBruteRidableInWater = false; + public boolean piglinBruteRidableInWater = true; public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; + public boolean piglinBruteTakeDamageFromWater = false; private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -1449,6 +1528,7 @@ public class PurpurWorldConfig { +@@ -1451,6 +1530,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean pillagerRidable = false; -@@ -1456,6 +1536,7 @@ public class PurpurWorldConfig { +@@ -1458,6 +1538,7 @@ public class PurpurWorldConfig { public boolean pillagerControllable = true; public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; @@ -1833,7 +1833,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -1467,6 +1548,7 @@ public class PurpurWorldConfig { +@@ -1469,6 +1550,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean polarBearRidable = false; -@@ -1476,6 +1558,7 @@ public class PurpurWorldConfig { +@@ -1478,6 +1560,7 @@ public class PurpurWorldConfig { public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; @@ -1849,7 +1849,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -1490,11 +1573,13 @@ public class PurpurWorldConfig { +@@ -1492,11 +1575,13 @@ public class PurpurWorldConfig { Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); @@ -1863,7 +1863,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -1504,6 +1589,7 @@ public class PurpurWorldConfig { +@@ -1506,6 +1591,7 @@ public class PurpurWorldConfig { set("mobs.pufferfish.attributes.max_health", oldValue); } pufferfishMaxHealth = getDouble("mobs.pufferfish.attributes.max_health", pufferfishMaxHealth); @@ -1871,7 +1871,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean rabbitRidable = false; -@@ -1514,6 +1600,7 @@ public class PurpurWorldConfig { +@@ -1516,6 +1602,7 @@ public class PurpurWorldConfig { public double rabbitNaturalKiller = 0.0D; public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; @@ -1879,7 +1879,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -1528,6 +1615,7 @@ public class PurpurWorldConfig { +@@ -1530,6 +1617,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean ravagerRidable = false; -@@ -1535,6 +1623,7 @@ public class PurpurWorldConfig { +@@ -1537,6 +1625,7 @@ public class PurpurWorldConfig { public boolean ravagerControllable = true; public double ravagerMaxHealth = 100.0D; public boolean ravagerBypassMobGriefing = false; @@ -1895,7 +1895,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -1546,11 +1635,13 @@ public class PurpurWorldConfig { +@@ -1548,11 +1637,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -1560,6 +1651,7 @@ public class PurpurWorldConfig { +@@ -1562,6 +1653,7 @@ public class PurpurWorldConfig { set("mobs.salmon.attributes.max_health", oldValue); } salmonMaxHealth = getDouble("mobs.salmon.attributes.max_health", salmonMaxHealth); @@ -1917,7 +1917,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean sheepRidable = false; -@@ -1568,6 +1660,7 @@ public class PurpurWorldConfig { +@@ -1570,6 +1662,7 @@ public class PurpurWorldConfig { public double sheepMaxHealth = 8.0D; public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; @@ -1925,7 +1925,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -1580,12 +1673,14 @@ public class PurpurWorldConfig { +@@ -1582,12 +1675,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); @@ -1933,14 +1933,14 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean shulkerRidable = false; - public boolean shulkerRidableInWater = false; + public boolean shulkerRidableInWater = true; public boolean shulkerControllable = true; public double shulkerMaxHealth = 30.0D; + public boolean shulkerTakeDamageFromWater = false; private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -1596,6 +1691,7 @@ public class PurpurWorldConfig { +@@ -1598,6 +1693,7 @@ public class PurpurWorldConfig { set("mobs.shulker.attributes.max_health", oldValue); } shulkerMaxHealth = getDouble("mobs.shulker.attributes.max_health", shulkerMaxHealth); @@ -1948,7 +1948,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean silverfishRidable = false; -@@ -1603,6 +1699,7 @@ public class PurpurWorldConfig { +@@ -1605,6 +1701,7 @@ public class PurpurWorldConfig { public boolean silverfishControllable = true; public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; @@ -1956,7 +1956,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -1614,12 +1711,14 @@ public class PurpurWorldConfig { +@@ -1616,12 +1713,14 @@ public class PurpurWorldConfig { } silverfishMaxHealth = getDouble("mobs.silverfish.attributes.max_health", silverfishMaxHealth); silverfishBypassMobGriefing = getBoolean("mobs.silverfish.bypass-mob-griefing", silverfishBypassMobGriefing); @@ -1964,14 +1964,14 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean skeletonRidable = false; - public boolean skeletonRidableInWater = false; + public boolean skeletonRidableInWater = true; public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; + public boolean skeletonTakeDamageFromWater = false; private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -1630,6 +1729,7 @@ public class PurpurWorldConfig { +@@ -1632,6 +1731,7 @@ public class PurpurWorldConfig { set("mobs.skeleton.attributes.max_health", oldValue); } skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); @@ -1979,7 +1979,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean skeletonHorseRidableInWater = true; -@@ -1640,6 +1740,7 @@ public class PurpurWorldConfig { +@@ -1642,6 +1742,7 @@ public class PurpurWorldConfig { public double skeletonHorseJumpStrengthMax = 1.0D; public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; @@ -1987,7 +1987,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -1655,6 +1756,7 @@ public class PurpurWorldConfig { +@@ -1657,6 +1758,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean slimeRidable = false; -@@ -1664,6 +1766,7 @@ public class PurpurWorldConfig { +@@ -1666,6 +1768,7 @@ public class PurpurWorldConfig { public String slimeAttackDamage = "size"; public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); @@ -2003,7 +2003,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -1677,6 +1780,7 @@ public class PurpurWorldConfig { +@@ -1679,6 +1782,7 @@ public class PurpurWorldConfig { slimeAttackDamage = getString("mobs.slime.attributes.attack_damage", slimeAttackDamage); slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); @@ -2011,7 +2011,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean snowGolemRidable = false; -@@ -1691,6 +1795,7 @@ public class PurpurWorldConfig { +@@ -1693,6 +1797,7 @@ public class PurpurWorldConfig { public float snowGolemSnowBallModifier = 10.0F; public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; @@ -2019,7 +2019,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -1709,6 +1814,7 @@ public class PurpurWorldConfig { +@@ -1711,6 +1816,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean snifferRidable = false; -@@ -1730,6 +1836,7 @@ public class PurpurWorldConfig { +@@ -1732,6 +1838,7 @@ public class PurpurWorldConfig { public boolean squidImmuneToEAR = true; public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; @@ -2035,7 +2035,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -1742,12 +1849,14 @@ public class PurpurWorldConfig { +@@ -1744,12 +1851,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -1758,12 +1867,14 @@ public class PurpurWorldConfig { +@@ -1760,12 +1869,14 @@ public class PurpurWorldConfig { set("mobs.spider.attributes.max_health", oldValue); } spiderMaxHealth = getDouble("mobs.spider.attributes.max_health", spiderMaxHealth); @@ -2058,14 +2058,14 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean strayRidable = false; - public boolean strayRidableInWater = false; + public boolean strayRidableInWater = true; public boolean strayControllable = true; public double strayMaxHealth = 20.0D; + public boolean strayTakeDamageFromWater = false; private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -1774,6 +1885,7 @@ public class PurpurWorldConfig { +@@ -1776,6 +1887,7 @@ public class PurpurWorldConfig { set("mobs.stray.attributes.max_health", oldValue); } strayMaxHealth = getDouble("mobs.stray.attributes.max_health", strayMaxHealth); @@ -2073,7 +2073,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean striderRidable = false; -@@ -1782,6 +1894,7 @@ public class PurpurWorldConfig { +@@ -1784,6 +1896,7 @@ public class PurpurWorldConfig { public double striderMaxHealth = 20.0D; public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; @@ -2081,7 +2081,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -1794,6 +1907,7 @@ public class PurpurWorldConfig { +@@ -1796,6 +1909,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean tadpoleRidable = false; -@@ -1815,6 +1929,7 @@ public class PurpurWorldConfig { +@@ -1817,6 +1931,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; @@ -2097,7 +2097,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -1833,11 +1948,13 @@ public class PurpurWorldConfig { +@@ -1835,11 +1950,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -1847,6 +1964,7 @@ public class PurpurWorldConfig { +@@ -1849,6 +1966,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean turtleRidable = false; -@@ -1854,6 +1972,7 @@ public class PurpurWorldConfig { +@@ -1856,6 +1974,7 @@ public class PurpurWorldConfig { public boolean turtleControllable = true; public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; @@ -2127,7 +2127,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -1865,6 +1984,7 @@ public class PurpurWorldConfig { +@@ -1867,6 +1986,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean vexRidable = false; -@@ -1872,6 +1992,7 @@ public class PurpurWorldConfig { +@@ -1874,6 +1994,7 @@ public class PurpurWorldConfig { public boolean vexControllable = true; public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; @@ -2143,7 +2143,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -1883,6 +2004,7 @@ public class PurpurWorldConfig { +@@ -1885,6 +2006,7 @@ public class PurpurWorldConfig { set("mobs.vex.attributes.max_health", oldValue); } vexMaxHealth = getDouble("mobs.vex.attributes.max_health", vexMaxHealth); @@ -2151,7 +2151,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean villagerRidable = false; -@@ -1896,6 +2018,7 @@ public class PurpurWorldConfig { +@@ -1898,6 +2020,7 @@ public class PurpurWorldConfig { public boolean villagerClericsFarmWarts = false; public boolean villagerClericFarmersThrowWarts = true; public boolean villagerBypassMobGriefing = false; @@ -2159,7 +2159,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -1913,6 +2036,7 @@ public class PurpurWorldConfig { +@@ -1915,6 +2038,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean vindicatorRidable = false; -@@ -1920,6 +2044,7 @@ public class PurpurWorldConfig { +@@ -1922,6 +2046,7 @@ public class PurpurWorldConfig { public boolean vindicatorControllable = true; public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; @@ -2175,7 +2175,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -1931,6 +2056,7 @@ public class PurpurWorldConfig { +@@ -1933,6 +2058,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean wanderingTraderRidable = false; -@@ -1939,6 +2065,7 @@ public class PurpurWorldConfig { +@@ -1941,6 +2067,7 @@ public class PurpurWorldConfig { public double wanderingTraderMaxHealth = 20.0D; public boolean wanderingTraderFollowEmeraldBlock = false; public boolean wanderingTraderCanBeLeashed = false; @@ -2191,7 +2191,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -1951,6 +2078,7 @@ public class PurpurWorldConfig { +@@ -1953,6 +2080,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,15 +2199,15 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean wardenRidable = false; -@@ -1966,6 +2094,7 @@ public class PurpurWorldConfig { - public boolean witchRidableInWater = false; +@@ -1968,6 +2096,7 @@ public class PurpurWorldConfig { + public boolean witchRidableInWater = true; public boolean witchControllable = true; public double witchMaxHealth = 26.0D; + public boolean witchTakeDamageFromWater = false; private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -1976,6 +2105,7 @@ public class PurpurWorldConfig { +@@ -1978,6 +2107,7 @@ public class PurpurWorldConfig { set("mobs.witch.attributes.max_health", oldValue); } witchMaxHealth = getDouble("mobs.witch.attributes.max_health", witchMaxHealth); @@ -2215,7 +2215,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean witherRidable = false; -@@ -1986,6 +2116,7 @@ public class PurpurWorldConfig { +@@ -1988,6 +2118,7 @@ public class PurpurWorldConfig { public float witherHealthRegenAmount = 1.0f; public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; @@ -2223,7 +2223,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2004,12 +2135,14 @@ public class PurpurWorldConfig { +@@ -2006,12 +2137,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); @@ -2231,14 +2231,14 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean witherSkeletonRidable = false; - public boolean witherSkeletonRidableInWater = false; + public boolean witherSkeletonRidableInWater = true; public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; + public boolean witherSkeletonTakeDamageFromWater = false; private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2020,6 +2153,7 @@ public class PurpurWorldConfig { +@@ -2022,6 +2155,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean wolfRidable = false; -@@ -2030,6 +2164,7 @@ public class PurpurWorldConfig { +@@ -2032,6 +2166,7 @@ public class PurpurWorldConfig { public boolean wolfMilkCuresRabies = true; public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; @@ -2254,7 +2254,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2048,12 +2183,14 @@ public class PurpurWorldConfig { +@@ -2050,12 +2185,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); @@ -2262,14 +2262,14 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean zoglinRidable = false; - public boolean zoglinRidableInWater = false; + public boolean zoglinRidableInWater = true; public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; + public boolean zoglinTakeDamageFromWater = false; private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2064,6 +2201,7 @@ public class PurpurWorldConfig { +@@ -2066,6 +2203,7 @@ public class PurpurWorldConfig { set("mobs.zoglin.attributes.max_health", oldValue); } zoglinMaxHealth = getDouble("mobs.zoglin.attributes.max_health", zoglinMaxHealth); @@ -2277,7 +2277,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean zombieRidable = false; -@@ -2076,6 +2214,7 @@ public class PurpurWorldConfig { +@@ -2078,6 +2216,7 @@ public class PurpurWorldConfig { public boolean zombieJockeyTryExistingChickens = true; public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; @@ -2285,7 +2285,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2092,6 +2231,7 @@ public class PurpurWorldConfig { +@@ -2094,6 +2233,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean zombieHorseRidableInWater = false; -@@ -2103,6 +2243,7 @@ public class PurpurWorldConfig { +@@ -2105,6 +2245,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMin = 0.2D; public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; @@ -2301,7 +2301,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2119,6 +2260,7 @@ public class PurpurWorldConfig { +@@ -2121,6 +2262,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean zombieVillagerRidable = false; -@@ -2129,6 +2271,7 @@ public class PurpurWorldConfig { +@@ -2131,6 +2273,7 @@ public class PurpurWorldConfig { public boolean zombieVillagerJockeyOnlyBaby = true; public double zombieVillagerJockeyChance = 0.05D; public boolean zombieVillagerJockeyTryExistingChickens = true; @@ -2317,7 +2317,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2143,6 +2286,7 @@ public class PurpurWorldConfig { +@@ -2145,6 +2288,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 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 } public boolean zombifiedPiglinRidable = false; -@@ -2154,6 +2298,7 @@ public class PurpurWorldConfig { +@@ -2156,6 +2300,7 @@ public class PurpurWorldConfig { public double zombifiedPiglinJockeyChance = 0.05D; public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; @@ -2333,7 +2333,7 @@ index 3a55cbbaae5740749e8f7763bf6caaef357170ed..762aa1100c9ee748d04e69a60b860979 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2169,5 +2314,6 @@ public class PurpurWorldConfig { +@@ -2171,5 +2316,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/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch b/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch index 946c7bcac..8c0772bfa 100644 --- a/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch +++ b/patches/server/0133-Configs-for-if-Wither-Ender-Dragon-can-ride-vehicles.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configs for if Wither/Ender Dragon can ride vehicles 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 7ec5da61a57e38146840c6b387104ed6716c24d4..c5346f06175846aecbf30f9bea28be3b0fdb6397 100644 +index 2484498eb7d3ebcf1c9f9c9db54ea12baac0e642..790160cfcb113e046379c2fe5af32667faf3be8c 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 @@ -1154,6 +1154,7 @@ public class EnderDragon extends Mob implements Enemy { @@ -17,7 +17,7 @@ index 7ec5da61a57e38146840c6b387104ed6716c24d4..c5346f06175846aecbf30f9bea28be3b } 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 0c329f66d0a26b881ddddf4c555850f6ce0481bc..2a4dce1a5ffa3902a50044b14e6c02b3781138bd 100644 +index cad1246e6a8dbf92f367d0714306a428697bf1c1..c38c92a9967a50515f6d185d116578b6fc065f5e 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 @@ -742,6 +742,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -29,10 +29,10 @@ index 0c329f66d0a26b881ddddf4c555850f6ce0481bc..2a4dce1a5ffa3902a50044b14e6c02b3 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 131b344fac984d9653e76e9a66826d8c2c3a670f..98eab7de6ce8dc52012a2b909ac613e520414d7e 100644 +index d319ef7fefc979f265a8ad6c277e81649d489e4d..e3d6108c58e4a6447eca536764cdf20507603ebf 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -947,6 +947,7 @@ public class PurpurWorldConfig { +@@ -949,6 +949,7 @@ public class PurpurWorldConfig { public boolean enderDragonAlwaysDropsFullExp = false; public boolean enderDragonBypassMobGriefing = false; public boolean enderDragonTakeDamageFromWater = false; @@ -40,7 +40,7 @@ index 131b344fac984d9653e76e9a66826d8c2c3a670f..98eab7de6ce8dc52012a2b909ac613e5 private void enderDragonSettings() { enderDragonRidable = getBoolean("mobs.ender_dragon.ridable", enderDragonRidable); enderDragonRidableInWater = getBoolean("mobs.ender_dragon.ridable-in-water", enderDragonRidableInWater); -@@ -965,6 +966,7 @@ public class PurpurWorldConfig { +@@ -967,6 +968,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 131b344fac984d9653e76e9a66826d8c2c3a670f..98eab7de6ce8dc52012a2b909ac613e5 } public boolean endermanRidable = false; -@@ -2156,6 +2158,7 @@ public class PurpurWorldConfig { +@@ -2158,6 +2160,7 @@ public class PurpurWorldConfig { public int witherHealthRegenDelay = 20; public boolean witherBypassMobGriefing = false; public boolean witherTakeDamageFromWater = false; @@ -56,7 +56,7 @@ index 131b344fac984d9653e76e9a66826d8c2c3a670f..98eab7de6ce8dc52012a2b909ac613e5 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2175,6 +2178,7 @@ public class PurpurWorldConfig { +@@ -2177,6 +2180,7 @@ public class PurpurWorldConfig { witherHealthRegenDelay = getInt("mobs.wither.health-regen-delay", witherHealthRegenDelay); witherBypassMobGriefing = getBoolean("mobs.wither.bypass-mob-griefing", witherBypassMobGriefing); witherTakeDamageFromWater = getBoolean("mobs.wither.takes-damage-from-water", witherTakeDamageFromWater); diff --git a/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch b/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch index ed4413844..a8ee519b2 100644 --- a/patches/server/0139-Config-Enderman-aggressiveness-towards-Endermites.patch +++ b/patches/server/0139-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 e7308cf659fba62669753ea53e52f40fb96976b1..c702f4b6534d0bf2e9d763bedbf58bf2a3190b5d 100644 +index ffa8c28e34d3919feefd779b5d5b99286be96ba7..bc7d48744d3a8fbda8e2e4eb45972e0fcd64c82b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -128,7 +128,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -18,10 +18,10 @@ index e7308cf659fba62669753ea53e52f40fb96976b1..c702f4b6534d0bf2e9d763bedbf58bf2 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c4c5b70736f0a38e5d1b4a14640e64512a26a3ce..4f098761f1f7b753ab8d9f96458a5f344e93aa42 100644 +index b7cf07d2abde017915d5204ab2f90ff6145e88c8..240e3a2a1f3ee697a20c2ed7586a5e4ffa205a50 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -997,6 +997,8 @@ public class PurpurWorldConfig { +@@ -999,6 +999,8 @@ public class PurpurWorldConfig { public boolean endermanDespawnEvenWithBlock = false; public boolean endermanBypassMobGriefing = false; public boolean endermanTakeDamageFromWater = true; @@ -30,7 +30,7 @@ index c4c5b70736f0a38e5d1b4a14640e64512a26a3ce..4f098761f1f7b753ab8d9f96458a5f34 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1006,11 +1008,17 @@ public class PurpurWorldConfig { +@@ -1008,11 +1010,17 @@ public class PurpurWorldConfig { set("mobs.enderman.attributes.max-health", null); set("mobs.enderman.attributes.max_health", oldValue); } diff --git a/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch b/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch index e83da6fb5..de6e754dc 100644 --- a/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch +++ b/patches/server/0140-Config-to-ignore-Dragon-Head-wearers-and-stare-aggro.patch @@ -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 c702f4b6534d0bf2e9d763bedbf58bf2a3190b5d..60720f0bad840d35c9d0f1fc327f6069b348a41a 100644 +index bc7d48744d3a8fbda8e2e4eb45972e0fcd64c82b..c2be4a81551b2271364c984c91e7f4b146e63b2d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -265,7 +265,7 @@ public class EnderMan extends Monster implements NeutralMob { @@ -20,10 +20,10 @@ index c702f4b6534d0bf2e9d763bedbf58bf2a3190b5d..60720f0bad840d35c9d0f1fc327f6069 } 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 4f098761f1f7b753ab8d9f96458a5f344e93aa42..5668ee41a5f904169b6bcf24bf73ec0227876510 100644 +index 240e3a2a1f3ee697a20c2ed7586a5e4ffa205a50..b1cd3e79a47097f9c66bbab2af144278fe60f1e7 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -999,6 +999,8 @@ public class PurpurWorldConfig { +@@ -1001,6 +1001,8 @@ public class PurpurWorldConfig { public boolean endermanTakeDamageFromWater = true; public boolean endermanAggroEndermites = true; public boolean endermanAggroEndermitesOnlyIfPlayerSpawned = false; @@ -32,7 +32,7 @@ index 4f098761f1f7b753ab8d9f96458a5f344e93aa42..5668ee41a5f904169b6bcf24bf73ec02 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1019,6 +1021,8 @@ public class PurpurWorldConfig { +@@ -1021,6 +1023,8 @@ public class PurpurWorldConfig { endermanTakeDamageFromWater = getBoolean("mobs.enderman.takes-damage-from-water", endermanTakeDamageFromWater); endermanAggroEndermites = getBoolean("mobs.enderman.aggressive-towards-endermites", endermanAggroEndermites); endermanAggroEndermitesOnlyIfPlayerSpawned = getBoolean("mobs.enderman.aggressive-towards-endermites-only-spawned-by-player-thrown-ender-pearls", endermanAggroEndermitesOnlyIfPlayerSpawned); diff --git a/patches/server/0142-Config-to-disable-Llama-caravans.patch b/patches/server/0142-Config-to-disable-Llama-caravans.patch index b964a3c87..b2baab892 100644 --- a/patches/server/0142-Config-to-disable-Llama-caravans.patch +++ b/patches/server/0142-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 185749df0c7c08f625145a29810ffed6042550bb..3f3e6633a3de2ceb5a082777a24ff0451bd27976 100644 +index 68796219152f05352f99ffb35a00640d391563af..b0984897033f5c1b4b202bc2299484a643f7bc19 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 @@ -525,7 +525,7 @@ public class Llama extends AbstractChestedHorse implements VariantHolder { @@ -69,7 +69,7 @@ index 029b94287acc5b79662aabe8c9783ac823abd7d1..e4a29dd80b85401be54a9be70be26cd7 public ResourceLocation getResourceLocation() { diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java -index ea35213552ed5b799d3b7aef225383f030fcb07a..215aa4aa0693b897e8c51d5c8ecb2dfb71342da0 100644 +index 28e4c0c18dba0fc510886c9ed014cdb7c8579d2b..c5e81244331d76535028f8296d10939933010d09 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java +++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java @@ -87,6 +87,11 @@ public class Chicken extends Animal { @@ -101,7 +101,7 @@ index abd24e7434712e806a14dc0e708a76aa03ba258f..2a45b487e5305e7c40cc8de4ddbb142a @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java -index 17c94ffb73b6bc2fbf7b700934a0eb01e117756a..fa29b8b22d49f094e3a2d37961238505efb94ded 100644 +index f6dc68ddea67e9573d2420c8f852b0920a64b1a3..54d9213d9de26a14a5ca770440d098bf0438373e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cow.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java @@ -81,6 +81,11 @@ public class Cow extends Animal { @@ -133,7 +133,7 @@ index c038a23c4e19c5bf160792cf599acc8f66a7d571..a077edbe97ce89e11a26fe3ebeb0bdd9 @Nullable diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java -index bf3166a50930044cc329142670a2f1e77f144e4b..75faaa40cb88d12091113a930011ecf8d345272a 100644 +index 87bdea86f8cbcdb91bbff0937a6a40ac06d03aab..f0eb5e0c01923f884b1c7c48e8d67ed5cd429854 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -194,6 +194,11 @@ public class Fox extends Animal implements VariantHolder { @@ -149,7 +149,7 @@ index bf3166a50930044cc329142670a2f1e77f144e4b..75faaa40cb88d12091113a930011ecf8 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java -index 42c2f0794ff72cf5c9bbff5acd0f9b255d787cb1..da27165083142d2d529f12f8da64341450567cc6 100644 +index ee6f351d9a1ca8f3ed4c3c0f414093025c5c8cb1..b5f445750a5ccbe7658396bdcc9648dc41f39ced 100644 --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java @@ -104,6 +104,11 @@ public class IronGolem extends AbstractGolem implements NeutralMob { @@ -165,7 +165,7 @@ index 42c2f0794ff72cf5c9bbff5acd0f9b255d787cb1..da27165083142d2d529f12f8da643414 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java -index 7bafba53b6c4947a37c02a1f616b8fe74ce4d99b..ce77010be2fa34e1e9272a3c202ca6167500a09b 100644 +index dc56d475c052ef6176fadb7c5a165a5dfac0946c..55d0abd9344de528dffda7598045cc44861fc66d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java @@ -93,6 +93,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder { @@ -309,7 +309,7 @@ index cea2f9b5760d82f244950e27ca6f4baed78ec01c..e0da8d1974f88e1426034620f78a29f9 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java -index 14c59e94040a5bcf07e7a134c4a1a0f4453d386a..507526b0961f0f22f6ac67d60bb1de039d1ccf10 100644 +index 76aabb33516cbe2d562e6ef1beec5d0eb13e7756..ecde7e3f3bbc511d152153082671ca67e0d960ba 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java @@ -146,6 +146,11 @@ public class Sheep extends Animal implements Shearable { @@ -325,7 +325,7 @@ index 14c59e94040a5bcf07e7a134c4a1a0f4453d386a..507526b0961f0f22f6ac67d60bb1de03 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java -index f9accd0794e8ae078db6b676e9e4fa96c75b6d7e..39acce573f6c9885f52155eab9af263fde537d01 100644 +index 659bded9afe97a73f1408b80769691a602c16174..69bb4f84dd539600576aa691d750fc371dd9b9bb 100644 --- a/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/SnowGolem.java @@ -84,6 +84,11 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM @@ -373,7 +373,7 @@ index ce5fd177521780176708fd0b97f1d57cbd5cb1e4..e4b4bf5ef228c0460fdab966d4c9b5c4 public static String getPredefinedName(int variant) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java -index edcc61a3c2318e5d86486615d36d9eae7327796f..870ee6916548621764e3d8b3aa22e71d117bc11d 100644 +index 73ab521052724cb97ba96b9777b6b2cb69ae0d5e..52eff7a4d3a34a566bc3bc03e6643c494c757156 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -113,6 +113,11 @@ public class Turtle extends Animal { @@ -389,7 +389,7 @@ index edcc61a3c2318e5d86486615d36d9eae7327796f..870ee6916548621764e3d8b3aa22e71d public void setHomePos(BlockPos pos) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java -index 5cf066e8a4b1b0b3b68f734dfbfb97ef3f98d205..014f1913a0c358fe51fded46e81ac3549dba92cf 100644 +index e2109e66a8ab205d7c33adeca58844184b45d1d1..e0ca657b0aea52ab6a91c256c1bfad1e5028f6e0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -212,6 +212,11 @@ public class Wolf extends TamableAnimal implements NeutralMob { @@ -421,7 +421,7 @@ index 5e705c84e5deeb3b3bdede80bf2acd9a252e3972..d61d9a7e7fa4d360dc740fdcb31efd02 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java -index e47d4b920737cca51fa4003e79030258685d7e1a..f61843b76ad0dd50ed0ccaaf5f83a0c63e460343 100644 +index f49d3f6ce2407cec4a855f68cec798cdeff30d35..d46aab019e5a064af5e3fea3154499b58c4bfda0 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -114,6 +114,11 @@ public class Goat extends Animal { @@ -437,7 +437,7 @@ index e47d4b920737cca51fa4003e79030258685d7e1a..f61843b76ad0dd50ed0ccaaf5f83a0c6 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java -index 1b2838de60399e83fe6de91b368bfc5d9aa7a805..8c856583daa8c7c9821adb8195218c06266fda3e 100644 +index bef26b0fcebb14a944a13ff4472bf7d86b63dfa1..4d9e961e06e188d03ee3fa100a7133046339d438 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java @@ -30,6 +30,11 @@ public class Donkey extends AbstractChestedHorse { @@ -453,7 +453,7 @@ index 1b2838de60399e83fe6de91b368bfc5d9aa7a805..8c856583daa8c7c9821adb8195218c06 @Override diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java -index 02c090a15271a2d597278d01c850d842b4e7a9fd..d7ac9a61e341af66eccde3cb425e7054620c19fc 100644 +index a72d0836c34961266dc9d39afb7986e4c2b2532c..2686107fd3be37d7011e9925ebb91a12af6db98f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java @@ -55,6 +55,11 @@ public class Horse extends AbstractHorse implements VariantHolder { @@ -469,7 +469,7 @@ index 02c090a15271a2d597278d01c850d842b4e7a9fd..d7ac9a61e341af66eccde3cb425e7054 @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 3f3e6633a3de2ceb5a082777a24ff0451bd27976..80cdace3ac83dd7186d417e83408f684a13512ae 100644 +index b0984897033f5c1b4b202bc2299484a643f7bc19..160071ec8d2dcd75d2283604a31175250ac6b6d5 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 VariantHolder type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java -index 2e6029afa8c045a99fb18ee1b7ffdb56b23dd6be..d8e3937731cd85c10a12cc4b509f58736e4874cf 100644 +index 88fd378b6b8bb92b793f1cf84b63faed6e02894b..63577d941dbd21cf93bc6f88bb50922618b6b5d5 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Illusioner.java +++ b/src/main/java/net/minecraft/world/entity/monster/Illusioner.java @@ -86,6 +86,11 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob { @@ -773,7 +773,7 @@ index 2e6029afa8c045a99fb18ee1b7ffdb56b23dd6be..d8e3937731cd85c10a12cc4b509f5873 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java -index a53fe8bf4994ce146985930515c720673df45fe7..c7e1afa12fbf43a42b429cf7f935c81e28403678 100644 +index 7f2406a3174c3961705a4ea838541e3163352a4d..11af95207f5aff52427dc216fb9929b0f536f411 100644 --- a/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java +++ b/src/main/java/net/minecraft/world/entity/monster/MagmaCube.java @@ -70,6 +70,11 @@ public class MagmaCube extends Slime { @@ -789,7 +789,7 @@ index a53fe8bf4994ce146985930515c720673df45fe7..c7e1afa12fbf43a42b429cf7f935c81e 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 9ffc6f0e687bbad8521a5cfd1964ad0dfba1c01d..87ebdf7f5126365d112b1ea91b8202a036637f09 100644 +index ac94212c2c844f3d426b16a7f3b4a44707389916..b4e13b4e02c37f5ff93164f01604e7e56580be72 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -157,6 +157,11 @@ public class Phantom extends FlyingMob implements Enemy { @@ -805,7 +805,7 @@ index 9ffc6f0e687bbad8521a5cfd1964ad0dfba1c01d..87ebdf7f5126365d112b1ea91b8202a0 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Pillager.java b/src/main/java/net/minecraft/world/entity/monster/Pillager.java -index c260dfafd7579f1a15ca712ac43ad8752e5147d3..34a36bafc46b7ceba0890bf250ed73a69b433553 100644 +index be9038318a072008046119852256e0e593950652..06a96eb0ef40462932892c611f308eb31411d099 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Pillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Pillager.java @@ -87,6 +87,11 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve @@ -821,7 +821,7 @@ index c260dfafd7579f1a15ca712ac43ad8752e5147d3..34a36bafc46b7ceba0890bf250ed73a6 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index ee24dd327182387f6547532963972846acfb4da3..377888447aefefe360813e11129b2d1d0633b298 100644 +index 6798e9b616a3357ce68728395cb43344b9e16889..0099595a5daa9c0ca9e3fd35933038c1c8ecf009 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -96,6 +96,11 @@ public class Ravager extends Raider { @@ -837,7 +837,7 @@ index ee24dd327182387f6547532963972846acfb4da3..377888447aefefe360813e11129b2d1d @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Shulker.java b/src/main/java/net/minecraft/world/entity/monster/Shulker.java -index 9ac0caba4dcddc59850ac0ef5260347858f0cd4b..681b31226b2b85c382cfa4c3a61ef313aab83a36 100644 +index ec90f23f64ce4fefa0960ae9ddf72b771a76ca9d..07c78a6c4804f48c948e40819e55654683789bd4 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Shulker.java +++ b/src/main/java/net/minecraft/world/entity/monster/Shulker.java @@ -137,6 +137,11 @@ public class Shulker extends AbstractGolem implements VariantHolder type, ServerLevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Strider.java b/src/main/java/net/minecraft/world/entity/monster/Strider.java -index 97a94ee517021e07df3a4d69f8ae854cd993f784..99f52bc11a155626f76843f0c3dd1d36416b00ba 100644 +index 1282974c939a5e5d64240ca2e1621967826b7ab5..0b5d3837536d526c25ba1e12be142bb476d03519 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Strider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Strider.java @@ -125,6 +125,11 @@ public class Strider extends Animal implements ItemSteerable, Saddleable { @@ -949,7 +949,7 @@ index 97a94ee517021e07df3a4d69f8ae854cd993f784..99f52bc11a155626f76843f0c3dd1d36 public static boolean checkStriderSpawnRules(EntityType type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { diff --git a/src/main/java/net/minecraft/world/entity/monster/Vex.java b/src/main/java/net/minecraft/world/entity/monster/Vex.java -index 73773dc5eb0d21746ea31459b659767e88eedd72..58ea42cce4b3dfc207ae42e0448d958fd478a14a 100644 +index 3c6618dc24b39b1913b39c2fce5f8cad47cb278a..4c4c4d52e2be963024106783b4d28713f125e2e6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vex.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vex.java @@ -115,6 +115,11 @@ public class Vex extends Monster implements TraceableEntity { @@ -965,7 +965,7 @@ index 73773dc5eb0d21746ea31459b659767e88eedd72..58ea42cce4b3dfc207ae42e0448d958f @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java -index 2d2d01187d3fc6a17b3e98b5e5ab018d3af88af1..3b5c97b372c99f30e7a6606ed953d61bd600a444 100644 +index 7887a05bdf913d54e6d5dae32a222cbd83702fcc..1a333dce35a13b88cb0afdea192585e0bae38442 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Vindicator.java +++ b/src/main/java/net/minecraft/world/entity/monster/Vindicator.java @@ -83,6 +83,11 @@ public class Vindicator extends AbstractIllager { @@ -981,7 +981,7 @@ index 2d2d01187d3fc6a17b3e98b5e5ab018d3af88af1..3b5c97b372c99f30e7a6606ed953d61b @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Witch.java b/src/main/java/net/minecraft/world/entity/monster/Witch.java -index 2269d316c826f0dbe18ad9968c8fc04335db13fc..01f164f417d861f30507f2048e0df12475a39380 100644 +index 9a54977f2262c6c451a9450c235ef653889189ce..dcf8cdb8343706b55df206fed70fe3a8373e27a6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Witch.java +++ b/src/main/java/net/minecraft/world/entity/monster/Witch.java @@ -82,6 +82,11 @@ public class Witch extends Raider implements RangedAttackMob { @@ -997,7 +997,7 @@ index 2269d316c826f0dbe18ad9968c8fc04335db13fc..01f164f417d861f30507f2048e0df124 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java -index 09dab86cb43ebc66423c0a8b65ea6a8c28604b87..189897d50e2596c7ffd6b0434557c08f31b6959d 100644 +index 21f62b3b058e0f87c9efc67eef6d6632b6a4f8ad..9016fb6da9c86ca9906f6beb2f6927cede50c804 100644 --- a/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/WitherSkeleton.java @@ -60,6 +60,11 @@ public class WitherSkeleton extends AbstractSkeleton { @@ -1013,7 +1013,7 @@ index 09dab86cb43ebc66423c0a8b65ea6a8c28604b87..189897d50e2596c7ffd6b0434557c08f @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java -index 3715ff68d6c134d6f1cdf4a3e04db8a069bbf3b8..af31d334485139ef06bc534484a69f720ed1b5cf 100644 +index ce0111bea1074dec55031ce83f2f0cfceb3117c1..d7b76ae05754e0ccbddb4bfd5f545b9e0ca6c3a1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zoglin.java @@ -92,6 +92,11 @@ public class Zoglin extends Monster implements Enemy, HoglinBase { @@ -1029,7 +1029,7 @@ index 3715ff68d6c134d6f1cdf4a3e04db8a069bbf3b8..af31d334485139ef06bc534484a69f72 @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 074cbcf451f0f524510b4ab0273fceedfba143e3..f0214bdfca5ccc7bed147bf1642efcdcbce4fcaf 100644 +index d2ab6c240bc45f1c19ade78a7c0509306a31b1bd..36d37e544e342e1bc584374580dbb5c883523204 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -144,6 +144,11 @@ public class Zombie extends Monster { @@ -1045,7 +1045,7 @@ index 074cbcf451f0f524510b4ab0273fceedfba143e3..f0214bdfca5ccc7bed147bf1642efcdc @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java -index ce644b92598f70872e365584844eaefaccfd52dc..433399fe43acdd8a7a199b95f8de2c02b3f69df3 100644 +index 87556ffdfb93eba9c84931b1f922b9369442ea32..0c6e8e05014125427513e96c32510125ec34ece9 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombieVillager.java @@ -124,6 +124,11 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder { @@ -1061,7 +1061,7 @@ index ce644b92598f70872e365584844eaefaccfd52dc..433399fe43acdd8a7a199b95f8de2c02 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java -index 426dbf4f78ce6d731313a45380fd23cdeb91efb1..dbbbac09ac83a4a060923a8fdc8a6dd0a19679bf 100644 +index 381238699f534ddc029e349d62cc11409995e6b3..d3bcfa017967db0a20c18c65e27c2a0471d2214e 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java @@ -103,6 +103,11 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { @@ -1077,7 +1077,7 @@ index 426dbf4f78ce6d731313a45380fd23cdeb91efb1..dbbbac09ac83a4a060923a8fdc8a6dd0 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java -index 48d25e6015b9419a4f6d0f81877af2dcc9d91023..92685decf4ed1c9f673cf607458788c2f807d626 100644 +index 5fcfc83444e123806d0e01e7936be8c2aa1bd169..3f18fb73c085af60ca289f9bd510c49b57441b97 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -97,6 +97,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { @@ -1093,7 +1093,7 @@ index 48d25e6015b9419a4f6d0f81877af2dcc9d91023..92685decf4ed1c9f673cf607458788c2 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java -index b6d10dd654d2890464802faf0752816b4ac35e1c..ff2c7610d39e50ffb548aa9a687d7973a1f17a35 100644 +index 7857c96bab4f5d190eb29c2068f27381c16be310..4dbc8678d99fd297f9d6a261532ba072a20c90e6 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/Piglin.java @@ -122,6 +122,11 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento @@ -1109,7 +1109,7 @@ index b6d10dd654d2890464802faf0752816b4ac35e1c..ff2c7610d39e50ffb548aa9a687d7973 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java -index fd8f5ef1842eaa8676893fcd53f550ab5ccb3b93..b6165a1d513bea0d441289eb0df05ea866941bb3 100644 +index 3b4cc6bc55482ae703e73d585916c179f5b7b540..85592cffdd04bdab9b2d39cf168a5c920471ba7b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java +++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinBrute.java @@ -66,6 +66,11 @@ public class PiglinBrute extends AbstractPiglin { @@ -1125,7 +1125,7 @@ index fd8f5ef1842eaa8676893fcd53f550ab5ccb3b93..b6165a1d513bea0d441289eb0df05ea8 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 4f114d7cf5e6429e74bcf3653568beb1a944b6ae..92adb537f342f3da41c91cf2c3141425e68e3cb7 100644 +index 0caf4455a3f54ea70e9d535702ae26fb7e751f47..11c89537abf00958645afb26070aea1fea5a66f2 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -189,6 +189,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -1141,7 +1141,7 @@ index 4f114d7cf5e6429e74bcf3653568beb1a944b6ae..92adb537f342f3da41c91cf2c3141425 @Override diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java -index e06f3ee85dde587f1146d4a3d70e8a2e5b9a128b..2e9dd920e5c3943cba4c53ec2a2b48eeaf3889a7 100644 +index 6af1d1b3b40d91fd3e0ac269d0e4a60a104be7b8..fef9fd3e50bba3d0fffa3d61b60f3bb8cad081e0 100644 --- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java +++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java @@ -99,6 +99,11 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill @@ -1157,10 +1157,10 @@ index e06f3ee85dde587f1146d4a3d70e8a2e5b9a128b..2e9dd920e5c3943cba4c53ec2a2b48ee @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994a8d4ee56 100644 +index 417eade17d21c6fc2f0da5bb192bcb2e1e3a778a..502ead7161022974ee10fc3e3282bd0ba63fc3ad 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1017,12 +1017,14 @@ public class PurpurWorldConfig { +@@ -1019,12 +1019,14 @@ public class PurpurWorldConfig { public double axolotlMaxHealth = 14.0D; public int axolotlBreedingTicks = 6000; public boolean axolotlTakeDamageFromWater = false; @@ -1175,7 +1175,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean batRidable = false; -@@ -1038,6 +1040,7 @@ public class PurpurWorldConfig { +@@ -1040,6 +1042,7 @@ public class PurpurWorldConfig { public double batArmorToughness = 0.0D; public double batAttackKnockback = 0.0D; public boolean batTakeDamageFromWater = false; @@ -1183,7 +1183,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void batSettings() { batRidable = getBoolean("mobs.bat.ridable", batRidable); batRidableInWater = getBoolean("mobs.bat.ridable-in-water", batRidableInWater); -@@ -1050,6 +1053,7 @@ public class PurpurWorldConfig { +@@ -1052,6 +1055,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean beeRidable = false; -@@ -1061,6 +1065,7 @@ public class PurpurWorldConfig { +@@ -1063,6 +1067,7 @@ public class PurpurWorldConfig { public boolean beeTakeDamageFromWater = false; public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; @@ -1199,7 +1199,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1076,6 +1081,7 @@ public class PurpurWorldConfig { +@@ -1078,6 +1083,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean blazeRidable = false; -@@ -1084,6 +1090,7 @@ public class PurpurWorldConfig { +@@ -1086,6 +1092,7 @@ public class PurpurWorldConfig { public double blazeMaxY = 320D; public double blazeMaxHealth = 20.0D; public boolean blazeTakeDamageFromWater = true; @@ -1215,7 +1215,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void blazeSettings() { blazeRidable = getBoolean("mobs.blaze.ridable", blazeRidable); blazeRidableInWater = getBoolean("mobs.blaze.ridable-in-water", blazeRidableInWater); -@@ -1096,6 +1103,7 @@ public class PurpurWorldConfig { +@@ -1098,6 +1105,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public int camelBreedingTicks = 6000; -@@ -1125,6 +1133,7 @@ public class PurpurWorldConfig { +@@ -1127,6 +1135,7 @@ public class PurpurWorldConfig { public int catBreedingTicks = 6000; public DyeColor catDefaultCollarColor = DyeColor.RED; public boolean catTakeDamageFromWater = false; @@ -1231,7 +1231,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void catSettings() { catRidable = getBoolean("mobs.cat.ridable", catRidable); catRidableInWater = getBoolean("mobs.cat.ridable-in-water", catRidableInWater); -@@ -1145,6 +1154,7 @@ public class PurpurWorldConfig { +@@ -1147,6 +1156,7 @@ public class PurpurWorldConfig { catDefaultCollarColor = DyeColor.RED; } catTakeDamageFromWater = getBoolean("mobs.cat.takes-damage-from-water", catTakeDamageFromWater); @@ -1239,7 +1239,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean caveSpiderRidable = false; -@@ -1152,6 +1162,7 @@ public class PurpurWorldConfig { +@@ -1154,6 +1164,7 @@ public class PurpurWorldConfig { public boolean caveSpiderControllable = true; public double caveSpiderMaxHealth = 12.0D; public boolean caveSpiderTakeDamageFromWater = false; @@ -1247,7 +1247,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void caveSpiderSettings() { caveSpiderRidable = getBoolean("mobs.cave_spider.ridable", caveSpiderRidable); caveSpiderRidableInWater = getBoolean("mobs.cave_spider.ridable-in-water", caveSpiderRidableInWater); -@@ -1163,6 +1174,7 @@ public class PurpurWorldConfig { +@@ -1165,6 +1176,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean chickenRidable = false; -@@ -1172,6 +1184,7 @@ public class PurpurWorldConfig { +@@ -1174,6 +1186,7 @@ public class PurpurWorldConfig { public boolean chickenRetaliate = false; public int chickenBreedingTicks = 6000; public boolean chickenTakeDamageFromWater = false; @@ -1263,7 +1263,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void chickenSettings() { chickenRidable = getBoolean("mobs.chicken.ridable", chickenRidable); chickenRidableInWater = getBoolean("mobs.chicken.ridable-in-water", chickenRidableInWater); -@@ -1185,12 +1198,14 @@ public class PurpurWorldConfig { +@@ -1187,12 +1200,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void codSettings() { codRidable = getBoolean("mobs.cod.ridable", codRidable); codControllable = getBoolean("mobs.cod.controllable", codControllable); -@@ -1201,6 +1216,7 @@ public class PurpurWorldConfig { +@@ -1203,6 +1218,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean cowRidable = false; -@@ -1212,6 +1228,7 @@ public class PurpurWorldConfig { +@@ -1214,6 +1230,7 @@ public class PurpurWorldConfig { public boolean cowTakeDamageFromWater = false; public double cowNaturallyAggressiveToPlayersChance = 0.0D; public double cowNaturallyAggressiveToPlayersDamage = 2.0D; @@ -1294,7 +1294,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void cowSettings() { if (PurpurConfig.version < 22) { double oldValue = getDouble("mobs.cow.naturally-aggressive-to-players-chance", cowNaturallyAggressiveToPlayersChance); -@@ -1232,6 +1249,7 @@ public class PurpurWorldConfig { +@@ -1234,6 +1251,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean creeperRidable = false; -@@ -1244,6 +1262,7 @@ public class PurpurWorldConfig { +@@ -1246,6 +1264,7 @@ public class PurpurWorldConfig { public boolean creeperTakeDamageFromWater = false; public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; @@ -1310,7 +1310,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1260,6 +1279,7 @@ public class PurpurWorldConfig { +@@ -1262,6 +1281,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean dolphinRidable = false; -@@ -1271,6 +1291,7 @@ public class PurpurWorldConfig { +@@ -1273,6 +1293,7 @@ public class PurpurWorldConfig { public boolean dolphinDisableTreasureSearching = false; public boolean dolphinTakeDamageFromWater = false; public double dolphinNaturallyAggressiveToPlayersChance = 0.0D; @@ -1326,7 +1326,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void dolphinSettings() { dolphinRidable = getBoolean("mobs.dolphin.ridable", dolphinRidable); dolphinControllable = getBoolean("mobs.dolphin.controllable", dolphinControllable); -@@ -1286,6 +1307,7 @@ public class PurpurWorldConfig { +@@ -1288,6 +1309,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean donkeyRidableInWater = false; -@@ -1297,6 +1319,7 @@ public class PurpurWorldConfig { +@@ -1299,6 +1321,7 @@ public class PurpurWorldConfig { public double donkeyMovementSpeedMax = 0.175D; public int donkeyBreedingTicks = 6000; public boolean donkeyTakeDamageFromWater = false; @@ -1342,7 +1342,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void donkeySettings() { donkeyRidableInWater = getBoolean("mobs.donkey.ridable-in-water", donkeyRidableInWater); if (PurpurConfig.version < 10) { -@@ -1314,6 +1337,7 @@ public class PurpurWorldConfig { +@@ -1316,6 +1339,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean drownedRidable = false; -@@ -1326,6 +1350,7 @@ public class PurpurWorldConfig { +@@ -1328,6 +1352,7 @@ public class PurpurWorldConfig { public boolean drownedJockeyTryExistingChickens = true; public boolean drownedTakeDamageFromWater = false; public boolean drownedBreakDoors = false; @@ -1358,7 +1358,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void drownedSettings() { drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable); drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater); -@@ -1342,12 +1367,14 @@ public class PurpurWorldConfig { +@@ -1344,12 +1369,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void elderGuardianSettings() { elderGuardianRidable = getBoolean("mobs.elder_guardian.ridable", elderGuardianRidable); elderGuardianControllable = getBoolean("mobs.elder_guardian.controllable", elderGuardianControllable); -@@ -1358,6 +1385,7 @@ public class PurpurWorldConfig { +@@ -1360,6 +1387,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean enderDragonRidable = false; -@@ -1403,6 +1431,7 @@ public class PurpurWorldConfig { +@@ -1405,6 +1433,7 @@ public class PurpurWorldConfig { public boolean endermanIgnorePlayerDragonHead = false; public boolean endermanDisableStareAggro = false; public boolean endermanIgnoreProjectiles = false; @@ -1389,7 +1389,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void endermanSettings() { endermanRidable = getBoolean("mobs.enderman.ridable", endermanRidable); endermanRidableInWater = getBoolean("mobs.enderman.ridable-in-water", endermanRidableInWater); -@@ -1426,6 +1455,7 @@ public class PurpurWorldConfig { +@@ -1428,6 +1457,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean endermiteRidable = false; -@@ -1433,6 +1463,7 @@ public class PurpurWorldConfig { +@@ -1435,6 +1465,7 @@ public class PurpurWorldConfig { public boolean endermiteControllable = true; public double endermiteMaxHealth = 8.0D; public boolean endermiteTakeDamageFromWater = false; @@ -1405,7 +1405,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void endermiteSettings() { endermiteRidable = getBoolean("mobs.endermite.ridable", endermiteRidable); endermiteRidableInWater = getBoolean("mobs.endermite.ridable-in-water", endermiteRidableInWater); -@@ -1444,6 +1475,7 @@ public class PurpurWorldConfig { +@@ -1446,6 +1477,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean evokerRidable = false; -@@ -1452,6 +1484,7 @@ public class PurpurWorldConfig { +@@ -1454,6 +1486,7 @@ public class PurpurWorldConfig { public double evokerMaxHealth = 24.0D; public boolean evokerBypassMobGriefing = false; public boolean evokerTakeDamageFromWater = false; @@ -1421,7 +1421,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void evokerSettings() { evokerRidable = getBoolean("mobs.evoker.ridable", evokerRidable); evokerRidableInWater = getBoolean("mobs.evoker.ridable-in-water", evokerRidableInWater); -@@ -1464,6 +1497,7 @@ public class PurpurWorldConfig { +@@ -1466,6 +1499,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean foxRidable = false; -@@ -1474,6 +1508,7 @@ public class PurpurWorldConfig { +@@ -1476,6 +1510,7 @@ public class PurpurWorldConfig { public int foxBreedingTicks = 6000; public boolean foxBypassMobGriefing = false; public boolean foxTakeDamageFromWater = false; @@ -1437,7 +1437,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void foxSettings() { foxRidable = getBoolean("mobs.fox.ridable", foxRidable); foxRidableInWater = getBoolean("mobs.fox.ridable-in-water", foxRidableInWater); -@@ -1488,6 +1523,7 @@ public class PurpurWorldConfig { +@@ -1490,6 +1525,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean frogRidable = false; -@@ -1509,6 +1545,7 @@ public class PurpurWorldConfig { +@@ -1511,6 +1547,7 @@ public class PurpurWorldConfig { public double ghastMaxY = 320D; public double ghastMaxHealth = 10.0D; public boolean ghastTakeDamageFromWater = false; @@ -1453,7 +1453,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void ghastSettings() { ghastRidable = getBoolean("mobs.ghast.ridable", ghastRidable); ghastRidableInWater = getBoolean("mobs.ghast.ridable-in-water", ghastRidableInWater); -@@ -1521,6 +1558,7 @@ public class PurpurWorldConfig { +@@ -1523,6 +1560,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean giantRidable = false; -@@ -1534,6 +1572,7 @@ public class PurpurWorldConfig { +@@ -1536,6 +1574,7 @@ public class PurpurWorldConfig { public boolean giantHaveAI = false; public boolean giantHaveHostileAI = false; public boolean giantTakeDamageFromWater = false; @@ -1469,7 +1469,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void giantSettings() { giantRidable = getBoolean("mobs.giant.ridable", giantRidable); giantRidableInWater = getBoolean("mobs.giant.ridable-in-water", giantRidableInWater); -@@ -1555,6 +1594,7 @@ public class PurpurWorldConfig { +@@ -1557,6 +1596,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean glowSquidRidable = false; -@@ -1562,12 +1602,14 @@ public class PurpurWorldConfig { +@@ -1564,12 +1604,14 @@ public class PurpurWorldConfig { public double glowSquidMaxHealth = 10.0D; public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; @@ -1492,7 +1492,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean goatRidable = false; -@@ -1576,6 +1618,7 @@ public class PurpurWorldConfig { +@@ -1578,6 +1620,7 @@ public class PurpurWorldConfig { public double goatMaxHealth = 10.0D; public int goatBreedingTicks = 6000; public boolean goatTakeDamageFromWater = false; @@ -1500,7 +1500,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void goatSettings() { goatRidable = getBoolean("mobs.goat.ridable", goatRidable); goatRidableInWater = getBoolean("mobs.goat.ridable-in-water", goatRidableInWater); -@@ -1583,12 +1626,14 @@ public class PurpurWorldConfig { +@@ -1585,12 +1628,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void guardianSettings() { guardianRidable = getBoolean("mobs.guardian.ridable", guardianRidable); guardianControllable = getBoolean("mobs.guardian.controllable", guardianControllable); -@@ -1599,6 +1644,7 @@ public class PurpurWorldConfig { +@@ -1601,6 +1646,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean forceHalloweenSeason = false; -@@ -1614,6 +1660,7 @@ public class PurpurWorldConfig { +@@ -1616,6 +1662,7 @@ public class PurpurWorldConfig { public double hoglinMaxHealth = 40.0D; public int hoglinBreedingTicks = 6000; public boolean hoglinTakeDamageFromWater = false; @@ -1531,7 +1531,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void hoglinSettings() { hoglinRidable = getBoolean("mobs.hoglin.ridable", hoglinRidable); hoglinRidableInWater = getBoolean("mobs.hoglin.ridable-in-water", hoglinRidableInWater); -@@ -1626,6 +1673,7 @@ public class PurpurWorldConfig { +@@ -1628,6 +1675,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean horseRidableInWater = false; -@@ -1637,6 +1685,7 @@ public class PurpurWorldConfig { +@@ -1639,6 +1687,7 @@ public class PurpurWorldConfig { public double horseMovementSpeedMax = 0.3375D; public int horseBreedingTicks = 6000; public boolean horseTakeDamageFromWater = false; @@ -1547,7 +1547,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void horseSettings() { horseRidableInWater = getBoolean("mobs.horse.ridable-in-water", horseRidableInWater); if (PurpurConfig.version < 10) { -@@ -1654,6 +1703,7 @@ public class PurpurWorldConfig { +@@ -1656,6 +1705,7 @@ public class PurpurWorldConfig { horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); horseTakeDamageFromWater = getBoolean("mobs.horse.takes-damage-from-water", horseTakeDamageFromWater); @@ -1555,7 +1555,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean huskRidable = false; -@@ -1665,6 +1715,7 @@ public class PurpurWorldConfig { +@@ -1667,6 +1717,7 @@ public class PurpurWorldConfig { public double huskJockeyChance = 0.05D; public boolean huskJockeyTryExistingChickens = true; public boolean huskTakeDamageFromWater = false; @@ -1563,7 +1563,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void huskSettings() { huskRidable = getBoolean("mobs.husk.ridable", huskRidable); huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater); -@@ -1680,6 +1731,7 @@ public class PurpurWorldConfig { +@@ -1682,6 +1733,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean illusionerRidable = false; -@@ -1689,6 +1741,7 @@ public class PurpurWorldConfig { +@@ -1691,6 +1743,7 @@ public class PurpurWorldConfig { public double illusionerFollowRange = 18.0D; public double illusionerMaxHealth = 32.0D; public boolean illusionerTakeDamageFromWater = false; @@ -1579,7 +1579,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void illusionerSettings() { illusionerRidable = getBoolean("mobs.illusioner.ridable", illusionerRidable); illusionerRidableInWater = getBoolean("mobs.illusioner.ridable-in-water", illusionerRidableInWater); -@@ -1706,6 +1759,7 @@ public class PurpurWorldConfig { +@@ -1708,6 +1761,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean ironGolemRidable = false; -@@ -1716,6 +1770,7 @@ public class PurpurWorldConfig { +@@ -1718,6 +1772,7 @@ public class PurpurWorldConfig { public boolean ironGolemTakeDamageFromWater = false; public boolean ironGolemPoppyCalm = false; public boolean ironGolemHealCalm = false; @@ -1595,7 +1595,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void ironGolemSettings() { ironGolemRidable = getBoolean("mobs.iron_golem.ridable", ironGolemRidable); ironGolemRidableInWater = getBoolean("mobs.iron_golem.ridable-in-water", ironGolemRidableInWater); -@@ -1730,6 +1785,7 @@ public class PurpurWorldConfig { +@@ -1732,6 +1787,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean llamaRidable = false; -@@ -1744,6 +1800,7 @@ public class PurpurWorldConfig { +@@ -1746,6 +1802,7 @@ public class PurpurWorldConfig { public int llamaBreedingTicks = 6000; public boolean llamaTakeDamageFromWater = false; public boolean llamaJoinCaravans = true; @@ -1611,7 +1611,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); -@@ -1764,6 +1821,7 @@ public class PurpurWorldConfig { +@@ -1766,6 +1823,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean magmaCubeRidable = false; -@@ -1774,6 +1832,7 @@ public class PurpurWorldConfig { +@@ -1776,6 +1834,7 @@ public class PurpurWorldConfig { public Map magmaCubeMaxHealthCache = new HashMap<>(); public Map magmaCubeAttackDamageCache = new HashMap<>(); public boolean magmaCubeTakeDamageFromWater = false; @@ -1627,7 +1627,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void magmaCubeSettings() { magmaCubeRidable = getBoolean("mobs.magma_cube.ridable", magmaCubeRidable); magmaCubeRidableInWater = getBoolean("mobs.magma_cube.ridable-in-water", magmaCubeRidableInWater); -@@ -1788,6 +1847,7 @@ public class PurpurWorldConfig { +@@ -1790,6 +1849,7 @@ public class PurpurWorldConfig { magmaCubeMaxHealthCache.clear(); magmaCubeAttackDamageCache.clear(); magmaCubeTakeDamageFromWater = getBoolean("mobs.magma_cube.takes-damage-from-water", magmaCubeTakeDamageFromWater); @@ -1635,7 +1635,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean mooshroomRidable = false; -@@ -1796,6 +1856,7 @@ public class PurpurWorldConfig { +@@ -1798,6 +1858,7 @@ public class PurpurWorldConfig { public double mooshroomMaxHealth = 10.0D; public int mooshroomBreedingTicks = 6000; public boolean mooshroomTakeDamageFromWater = false; @@ -1643,7 +1643,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void mooshroomSettings() { mooshroomRidable = getBoolean("mobs.mooshroom.ridable", mooshroomRidable); mooshroomRidableInWater = getBoolean("mobs.mooshroom.ridable-in-water", mooshroomRidableInWater); -@@ -1808,6 +1869,7 @@ public class PurpurWorldConfig { +@@ -1810,6 +1871,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean muleRidableInWater = false; -@@ -1819,6 +1881,7 @@ public class PurpurWorldConfig { +@@ -1821,6 +1883,7 @@ public class PurpurWorldConfig { public double muleMovementSpeedMax = 0.175D; public int muleBreedingTicks = 6000; public boolean muleTakeDamageFromWater = false; @@ -1659,7 +1659,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void muleSettings() { muleRidableInWater = getBoolean("mobs.mule.ridable-in-water", muleRidableInWater); if (PurpurConfig.version < 10) { -@@ -1836,6 +1899,7 @@ public class PurpurWorldConfig { +@@ -1838,6 +1901,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean ocelotRidable = false; -@@ -1844,6 +1908,7 @@ public class PurpurWorldConfig { +@@ -1846,6 +1910,7 @@ public class PurpurWorldConfig { public double ocelotMaxHealth = 10.0D; public int ocelotBreedingTicks = 6000; public boolean ocelotTakeDamageFromWater = false; @@ -1675,7 +1675,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void ocelotSettings() { ocelotRidable = getBoolean("mobs.ocelot.ridable", ocelotRidable); ocelotRidableInWater = getBoolean("mobs.ocelot.ridable-in-water", ocelotRidableInWater); -@@ -1856,6 +1921,7 @@ public class PurpurWorldConfig { +@@ -1858,6 +1923,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean pandaRidable = false; -@@ -1864,6 +1930,7 @@ public class PurpurWorldConfig { +@@ -1866,6 +1932,7 @@ public class PurpurWorldConfig { public double pandaMaxHealth = 20.0D; public int pandaBreedingTicks = 6000; public boolean pandaTakeDamageFromWater = false; @@ -1691,7 +1691,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void pandaSettings() { pandaRidable = getBoolean("mobs.panda.ridable", pandaRidable); pandaRidableInWater = getBoolean("mobs.panda.ridable-in-water", pandaRidableInWater); -@@ -1876,6 +1943,7 @@ public class PurpurWorldConfig { +@@ -1878,6 +1945,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean parrotRidable = false; -@@ -1885,6 +1953,7 @@ public class PurpurWorldConfig { +@@ -1887,6 +1955,7 @@ public class PurpurWorldConfig { public double parrotMaxHealth = 6.0D; public boolean parrotTakeDamageFromWater = false; public boolean parrotBreedable = false; @@ -1707,7 +1707,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void parrotSettings() { parrotRidable = getBoolean("mobs.parrot.ridable", parrotRidable); parrotRidableInWater = getBoolean("mobs.parrot.ridable-in-water", parrotRidableInWater); -@@ -1898,6 +1967,7 @@ public class PurpurWorldConfig { +@@ -1900,6 +1969,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean phantomRidable = false; -@@ -1925,6 +1995,7 @@ public class PurpurWorldConfig { +@@ -1927,6 +1997,7 @@ public class PurpurWorldConfig { public boolean phantomBurnInDaylight = true; public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; @@ -1723,7 +1723,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -1960,6 +2031,7 @@ public class PurpurWorldConfig { +@@ -1962,6 +2033,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean pigRidable = false; -@@ -1969,6 +2041,7 @@ public class PurpurWorldConfig { +@@ -1971,6 +2043,7 @@ public class PurpurWorldConfig { public boolean pigGiveSaddleBack = false; public int pigBreedingTicks = 6000; public boolean pigTakeDamageFromWater = false; @@ -1739,7 +1739,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void pigSettings() { pigRidable = getBoolean("mobs.pig.ridable", pigRidable); pigRidableInWater = getBoolean("mobs.pig.ridable-in-water", pigRidableInWater); -@@ -1982,6 +2055,7 @@ public class PurpurWorldConfig { +@@ -1984,6 +2057,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean piglinRidable = false; -@@ -1991,6 +2065,7 @@ public class PurpurWorldConfig { +@@ -1993,6 +2067,7 @@ public class PurpurWorldConfig { public boolean piglinBypassMobGriefing = false; public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; @@ -1755,7 +1755,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2004,6 +2079,7 @@ public class PurpurWorldConfig { +@@ -2006,6 +2081,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean piglinBruteRidable = false; -@@ -2011,6 +2087,7 @@ public class PurpurWorldConfig { +@@ -2013,6 +2089,7 @@ public class PurpurWorldConfig { public boolean piglinBruteControllable = true; public double piglinBruteMaxHealth = 50.0D; public boolean piglinBruteTakeDamageFromWater = false; @@ -1771,7 +1771,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void piglinBruteSettings() { piglinBruteRidable = getBoolean("mobs.piglin_brute.ridable", piglinBruteRidable); piglinBruteRidableInWater = getBoolean("mobs.piglin_brute.ridable-in-water", piglinBruteRidableInWater); -@@ -2022,6 +2099,7 @@ public class PurpurWorldConfig { +@@ -2024,6 +2101,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean pillagerRidable = false; -@@ -2030,6 +2108,7 @@ public class PurpurWorldConfig { +@@ -2032,6 +2110,7 @@ public class PurpurWorldConfig { public double pillagerMaxHealth = 24.0D; public boolean pillagerBypassMobGriefing = false; public boolean pillagerTakeDamageFromWater = false; @@ -1787,7 +1787,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void pillagerSettings() { pillagerRidable = getBoolean("mobs.pillager.ridable", pillagerRidable); pillagerRidableInWater = getBoolean("mobs.pillager.ridable-in-water", pillagerRidableInWater); -@@ -2042,6 +2121,7 @@ public class PurpurWorldConfig { +@@ -2044,6 +2123,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean polarBearRidable = false; -@@ -2052,6 +2132,7 @@ public class PurpurWorldConfig { +@@ -2054,6 +2134,7 @@ public class PurpurWorldConfig { public Item polarBearBreedableItem = null; public int polarBearBreedingTicks = 6000; public boolean polarBearTakeDamageFromWater = false; @@ -1803,7 +1803,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void polarBearSettings() { polarBearRidable = getBoolean("mobs.polar_bear.ridable", polarBearRidable); polarBearRidableInWater = getBoolean("mobs.polar_bear.ridable-in-water", polarBearRidableInWater); -@@ -2067,12 +2148,14 @@ public class PurpurWorldConfig { +@@ -2069,12 +2150,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void pufferfishSettings() { pufferfishRidable = getBoolean("mobs.pufferfish.ridable", pufferfishRidable); pufferfishControllable = getBoolean("mobs.pufferfish.controllable", pufferfishControllable); -@@ -2083,6 +2166,7 @@ public class PurpurWorldConfig { +@@ -2085,6 +2168,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean rabbitRidable = false; -@@ -2094,6 +2178,7 @@ public class PurpurWorldConfig { +@@ -2096,6 +2180,7 @@ public class PurpurWorldConfig { public int rabbitBreedingTicks = 6000; public boolean rabbitBypassMobGriefing = false; public boolean rabbitTakeDamageFromWater = false; @@ -1834,7 +1834,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void rabbitSettings() { rabbitRidable = getBoolean("mobs.rabbit.ridable", rabbitRidable); rabbitRidableInWater = getBoolean("mobs.rabbit.ridable-in-water", rabbitRidableInWater); -@@ -2109,6 +2194,7 @@ public class PurpurWorldConfig { +@@ -2111,6 +2196,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean ravagerRidable = false; -@@ -2118,6 +2204,7 @@ public class PurpurWorldConfig { +@@ -2120,6 +2206,7 @@ public class PurpurWorldConfig { public boolean ravagerBypassMobGriefing = false; public boolean ravagerTakeDamageFromWater = false; public List ravagerGriefableBlocks = new ArrayList<>(); @@ -1850,7 +1850,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void ravagerSettings() { ravagerRidable = getBoolean("mobs.ravager.ridable", ravagerRidable); ravagerRidableInWater = getBoolean("mobs.ravager.ridable-in-water", ravagerRidableInWater); -@@ -2147,12 +2234,14 @@ public class PurpurWorldConfig { +@@ -2149,12 +2236,14 @@ public class PurpurWorldConfig { ravagerGriefableBlocks.add(block); } }); @@ -1865,7 +1865,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void salmonSettings() { salmonRidable = getBoolean("mobs.salmon.ridable", salmonRidable); salmonControllable = getBoolean("mobs.salmon.controllable", salmonControllable); -@@ -2163,6 +2252,7 @@ public class PurpurWorldConfig { +@@ -2165,6 +2254,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean sheepRidable = false; -@@ -2172,6 +2262,7 @@ public class PurpurWorldConfig { +@@ -2174,6 +2264,7 @@ public class PurpurWorldConfig { public int sheepBreedingTicks = 6000; public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; @@ -1881,7 +1881,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2185,6 +2276,7 @@ public class PurpurWorldConfig { +@@ -2187,6 +2278,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean shulkerRidable = false; -@@ -2198,6 +2290,7 @@ public class PurpurWorldConfig { +@@ -2200,6 +2292,7 @@ public class PurpurWorldConfig { public String shulkerSpawnFromBulletNearbyEquation = "(nearby - 1) / 5.0"; public boolean shulkerSpawnFromBulletRandomColor = false; public boolean shulkerChangeColorWithDye = false; @@ -1897,7 +1897,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void shulkerSettings() { shulkerRidable = getBoolean("mobs.shulker.ridable", shulkerRidable); shulkerRidableInWater = getBoolean("mobs.shulker.ridable-in-water", shulkerRidableInWater); -@@ -2215,6 +2308,7 @@ public class PurpurWorldConfig { +@@ -2217,6 +2310,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean silverfishRidable = false; -@@ -2223,6 +2317,7 @@ public class PurpurWorldConfig { +@@ -2225,6 +2319,7 @@ public class PurpurWorldConfig { public double silverfishMaxHealth = 8.0D; public boolean silverfishBypassMobGriefing = false; public boolean silverfishTakeDamageFromWater = false; @@ -1913,7 +1913,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void silverfishSettings() { silverfishRidable = getBoolean("mobs.silverfish.ridable", silverfishRidable); silverfishRidableInWater = getBoolean("mobs.silverfish.ridable-in-water", silverfishRidableInWater); -@@ -2235,6 +2330,7 @@ public class PurpurWorldConfig { +@@ -2237,6 +2332,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean skeletonRidable = false; -@@ -2242,6 +2338,7 @@ public class PurpurWorldConfig { +@@ -2244,6 +2340,7 @@ public class PurpurWorldConfig { public boolean skeletonControllable = true; public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; @@ -1929,7 +1929,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2253,6 +2350,7 @@ public class PurpurWorldConfig { +@@ -2255,6 +2352,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean skeletonHorseRidableInWater = true; -@@ -2264,6 +2362,7 @@ public class PurpurWorldConfig { +@@ -2266,6 +2364,7 @@ public class PurpurWorldConfig { public double skeletonHorseMovementSpeedMin = 0.2D; public double skeletonHorseMovementSpeedMax = 0.2D; public boolean skeletonHorseTakeDamageFromWater = false; @@ -1945,7 +1945,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void skeletonHorseSettings() { skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater); skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim); -@@ -2280,6 +2379,7 @@ public class PurpurWorldConfig { +@@ -2282,6 +2381,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean slimeRidable = false; -@@ -2290,6 +2390,7 @@ public class PurpurWorldConfig { +@@ -2292,6 +2392,7 @@ public class PurpurWorldConfig { public Map slimeMaxHealthCache = new HashMap<>(); public Map slimeAttackDamageCache = new HashMap<>(); public boolean slimeTakeDamageFromWater = false; @@ -1961,7 +1961,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void slimeSettings() { slimeRidable = getBoolean("mobs.slime.ridable", slimeRidable); slimeRidableInWater = getBoolean("mobs.slime.ridable-in-water", slimeRidableInWater); -@@ -2304,6 +2405,7 @@ public class PurpurWorldConfig { +@@ -2306,6 +2407,7 @@ public class PurpurWorldConfig { slimeMaxHealthCache.clear(); slimeAttackDamageCache.clear(); slimeTakeDamageFromWater = getBoolean("mobs.slime.takes-damage-from-water", slimeTakeDamageFromWater); @@ -1969,7 +1969,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean snowGolemRidable = false; -@@ -2319,6 +2421,7 @@ public class PurpurWorldConfig { +@@ -2321,6 +2423,7 @@ public class PurpurWorldConfig { public double snowGolemAttackDistance = 1.25D; public boolean snowGolemBypassMobGriefing = false; public boolean snowGolemTakeDamageFromWater = true; @@ -1977,7 +1977,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void snowGolemSettings() { snowGolemRidable = getBoolean("mobs.snow_golem.ridable", snowGolemRidable); snowGolemRidableInWater = getBoolean("mobs.snow_golem.ridable-in-water", snowGolemRidableInWater); -@@ -2338,6 +2441,7 @@ public class PurpurWorldConfig { +@@ -2340,6 +2443,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean snifferRidable = false; -@@ -2360,6 +2464,7 @@ public class PurpurWorldConfig { +@@ -2362,6 +2466,7 @@ public class PurpurWorldConfig { public double squidOffsetWaterCheck = 0.0D; public boolean squidsCanFly = false; public boolean squidTakeDamageFromWater = false; @@ -1993,7 +1993,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void squidSettings() { squidRidable = getBoolean("mobs.squid.ridable", squidRidable); squidControllable = getBoolean("mobs.squid.controllable", squidControllable); -@@ -2373,6 +2478,7 @@ public class PurpurWorldConfig { +@@ -2375,6 +2480,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean spiderRidable = false; -@@ -2380,6 +2486,7 @@ public class PurpurWorldConfig { +@@ -2382,6 +2488,7 @@ public class PurpurWorldConfig { public boolean spiderControllable = true; public double spiderMaxHealth = 16.0D; public boolean spiderTakeDamageFromWater = false; @@ -2009,7 +2009,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void spiderSettings() { spiderRidable = getBoolean("mobs.spider.ridable", spiderRidable); spiderRidableInWater = getBoolean("mobs.spider.ridable-in-water", spiderRidableInWater); -@@ -2391,6 +2498,7 @@ public class PurpurWorldConfig { +@@ -2393,6 +2500,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean strayRidable = false; -@@ -2398,6 +2506,7 @@ public class PurpurWorldConfig { +@@ -2400,6 +2508,7 @@ public class PurpurWorldConfig { public boolean strayControllable = true; public double strayMaxHealth = 20.0D; public boolean strayTakeDamageFromWater = false; @@ -2025,7 +2025,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void straySettings() { strayRidable = getBoolean("mobs.stray.ridable", strayRidable); strayRidableInWater = getBoolean("mobs.stray.ridable-in-water", strayRidableInWater); -@@ -2409,6 +2518,7 @@ public class PurpurWorldConfig { +@@ -2411,6 +2520,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean striderRidable = false; -@@ -2418,6 +2528,7 @@ public class PurpurWorldConfig { +@@ -2420,6 +2530,7 @@ public class PurpurWorldConfig { public int striderBreedingTicks = 6000; public boolean striderGiveSaddleBack = false; public boolean striderTakeDamageFromWater = true; @@ -2041,7 +2041,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void striderSettings() { striderRidable = getBoolean("mobs.strider.ridable", striderRidable); striderRidableInWater = getBoolean("mobs.strider.ridable-in-water", striderRidableInWater); -@@ -2431,6 +2542,7 @@ public class PurpurWorldConfig { +@@ -2433,6 +2544,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean tadpoleRidable = false; -@@ -2453,6 +2565,7 @@ public class PurpurWorldConfig { +@@ -2455,6 +2567,7 @@ public class PurpurWorldConfig { public double traderLlamaMovementSpeedMax = 0.175D; public int traderLlamaBreedingTicks = 6000; public boolean traderLlamaTakeDamageFromWater = false; @@ -2057,7 +2057,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void traderLlamaSettings() { traderLlamaRidable = getBoolean("mobs.trader_llama.ridable", traderLlamaRidable); traderLlamaRidableInWater = getBoolean("mobs.trader_llama.ridable-in-water", traderLlamaRidableInWater); -@@ -2472,12 +2585,14 @@ public class PurpurWorldConfig { +@@ -2474,12 +2587,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void tropicalFishSettings() { tropicalFishRidable = getBoolean("mobs.tropical_fish.ridable", tropicalFishRidable); tropicalFishControllable = getBoolean("mobs.tropical_fish.controllable", tropicalFishControllable); -@@ -2488,6 +2603,7 @@ public class PurpurWorldConfig { +@@ -2490,6 +2605,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean turtleRidable = false; -@@ -2496,6 +2612,7 @@ public class PurpurWorldConfig { +@@ -2498,6 +2614,7 @@ public class PurpurWorldConfig { public double turtleMaxHealth = 30.0D; public int turtleBreedingTicks = 6000; public boolean turtleTakeDamageFromWater = false; @@ -2088,7 +2088,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void turtleSettings() { turtleRidable = getBoolean("mobs.turtle.ridable", turtleRidable); turtleRidableInWater = getBoolean("mobs.turtle.ridable-in-water", turtleRidableInWater); -@@ -2508,6 +2625,7 @@ public class PurpurWorldConfig { +@@ -2510,6 +2627,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean vexRidable = false; -@@ -2516,6 +2634,7 @@ public class PurpurWorldConfig { +@@ -2518,6 +2636,7 @@ public class PurpurWorldConfig { public double vexMaxY = 320D; public double vexMaxHealth = 14.0D; public boolean vexTakeDamageFromWater = false; @@ -2104,7 +2104,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void vexSettings() { vexRidable = getBoolean("mobs.vex.ridable", vexRidable); vexRidableInWater = getBoolean("mobs.vex.ridable-in-water", vexRidableInWater); -@@ -2528,6 +2647,7 @@ public class PurpurWorldConfig { +@@ -2530,6 +2649,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean villagerRidable = false; -@@ -2543,6 +2663,7 @@ public class PurpurWorldConfig { +@@ -2545,6 +2665,7 @@ public class PurpurWorldConfig { public boolean villagerBypassMobGriefing = false; public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; @@ -2120,7 +2120,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2562,6 +2683,7 @@ public class PurpurWorldConfig { +@@ -2564,6 +2685,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean vindicatorRidable = false; -@@ -2570,6 +2692,7 @@ public class PurpurWorldConfig { +@@ -2572,6 +2694,7 @@ public class PurpurWorldConfig { public double vindicatorMaxHealth = 24.0D; public double vindicatorJohnnySpawnChance = 0D; public boolean vindicatorTakeDamageFromWater = false; @@ -2136,7 +2136,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void vindicatorSettings() { vindicatorRidable = getBoolean("mobs.vindicator.ridable", vindicatorRidable); vindicatorRidableInWater = getBoolean("mobs.vindicator.ridable-in-water", vindicatorRidableInWater); -@@ -2582,6 +2705,7 @@ public class PurpurWorldConfig { +@@ -2584,6 +2707,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean wanderingTraderRidable = false; -@@ -2592,6 +2716,7 @@ public class PurpurWorldConfig { +@@ -2594,6 +2718,7 @@ public class PurpurWorldConfig { public boolean wanderingTraderCanBeLeashed = false; public boolean wanderingTraderTakeDamageFromWater = false; public boolean wanderingTraderAllowTrading = true; @@ -2152,7 +2152,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void wanderingTraderSettings() { wanderingTraderRidable = getBoolean("mobs.wandering_trader.ridable", wanderingTraderRidable); wanderingTraderRidableInWater = getBoolean("mobs.wandering_trader.ridable-in-water", wanderingTraderRidableInWater); -@@ -2606,6 +2731,7 @@ public class PurpurWorldConfig { +@@ -2608,6 +2733,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean wardenRidable = false; -@@ -2622,6 +2748,7 @@ public class PurpurWorldConfig { +@@ -2624,6 +2750,7 @@ public class PurpurWorldConfig { public boolean witchControllable = true; public double witchMaxHealth = 26.0D; public boolean witchTakeDamageFromWater = false; @@ -2168,7 +2168,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void witchSettings() { witchRidable = getBoolean("mobs.witch.ridable", witchRidable); witchRidableInWater = getBoolean("mobs.witch.ridable-in-water", witchRidableInWater); -@@ -2633,6 +2760,7 @@ public class PurpurWorldConfig { +@@ -2635,6 +2762,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean witherRidable = false; -@@ -2647,6 +2775,7 @@ public class PurpurWorldConfig { +@@ -2649,6 +2777,7 @@ public class PurpurWorldConfig { public boolean witherCanRideVehicles = false; public float witherExplosionRadius = 1.0F; public boolean witherPlaySpawnSound = true; @@ -2184,7 +2184,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void witherSettings() { witherRidable = getBoolean("mobs.wither.ridable", witherRidable); witherRidableInWater = getBoolean("mobs.wither.ridable-in-water", witherRidableInWater); -@@ -2669,6 +2798,7 @@ public class PurpurWorldConfig { +@@ -2671,6 +2800,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean witherSkeletonRidable = false; -@@ -2676,6 +2806,7 @@ public class PurpurWorldConfig { +@@ -2678,6 +2808,7 @@ public class PurpurWorldConfig { public boolean witherSkeletonControllable = true; public double witherSkeletonMaxHealth = 20.0D; public boolean witherSkeletonTakeDamageFromWater = false; @@ -2200,7 +2200,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void witherSkeletonSettings() { witherSkeletonRidable = getBoolean("mobs.wither_skeleton.ridable", witherSkeletonRidable); witherSkeletonRidableInWater = getBoolean("mobs.wither_skeleton.ridable-in-water", witherSkeletonRidableInWater); -@@ -2687,6 +2818,7 @@ public class PurpurWorldConfig { +@@ -2689,6 +2820,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean wolfRidable = false; -@@ -2698,6 +2830,7 @@ public class PurpurWorldConfig { +@@ -2700,6 +2832,7 @@ public class PurpurWorldConfig { public double wolfNaturalRabid = 0.0D; public int wolfBreedingTicks = 6000; public boolean wolfTakeDamageFromWater = false; @@ -2216,7 +2216,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void wolfSettings() { wolfRidable = getBoolean("mobs.wolf.ridable", wolfRidable); wolfRidableInWater = getBoolean("mobs.wolf.ridable-in-water", wolfRidableInWater); -@@ -2717,6 +2850,7 @@ public class PurpurWorldConfig { +@@ -2719,6 +2852,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean zoglinRidable = false; -@@ -2724,6 +2858,7 @@ public class PurpurWorldConfig { +@@ -2726,6 +2860,7 @@ public class PurpurWorldConfig { public boolean zoglinControllable = true; public double zoglinMaxHealth = 40.0D; public boolean zoglinTakeDamageFromWater = false; @@ -2232,7 +2232,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void zoglinSettings() { zoglinRidable = getBoolean("mobs.zoglin.ridable", zoglinRidable); zoglinRidableInWater = getBoolean("mobs.zoglin.ridable-in-water", zoglinRidableInWater); -@@ -2735,6 +2870,7 @@ public class PurpurWorldConfig { +@@ -2737,6 +2872,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean zombieRidable = false; -@@ -2748,6 +2884,7 @@ public class PurpurWorldConfig { +@@ -2750,6 +2886,7 @@ public class PurpurWorldConfig { public boolean zombieAggressiveTowardsVillagerWhenLagging = true; public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; @@ -2248,7 +2248,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2765,6 +2902,7 @@ public class PurpurWorldConfig { +@@ -2767,6 +2904,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean zombieHorseRidableInWater = false; -@@ -2777,6 +2915,7 @@ public class PurpurWorldConfig { +@@ -2779,6 +2917,7 @@ public class PurpurWorldConfig { public double zombieHorseMovementSpeedMax = 0.2D; public double zombieHorseSpawnChance = 0.0D; public boolean zombieHorseTakeDamageFromWater = false; @@ -2264,7 +2264,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void zombieHorseSettings() { zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater); zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim); -@@ -2794,6 +2933,7 @@ public class PurpurWorldConfig { +@@ -2796,6 +2935,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean zombieVillagerRidable = false; -@@ -2808,6 +2948,7 @@ public class PurpurWorldConfig { +@@ -2810,6 +2950,7 @@ public class PurpurWorldConfig { public int zombieVillagerCuringTimeMin = 3600; public int zombieVillagerCuringTimeMax = 6000; public boolean zombieVillagerCureEnabled = true; @@ -2280,7 +2280,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void zombieVillagerSettings() { zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable); zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater); -@@ -2826,6 +2967,7 @@ public class PurpurWorldConfig { +@@ -2828,6 +2969,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 ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 } public boolean zombifiedPiglinRidable = false; -@@ -2838,6 +2980,7 @@ public class PurpurWorldConfig { +@@ -2840,6 +2982,7 @@ public class PurpurWorldConfig { public boolean zombifiedPiglinJockeyTryExistingChickens = true; public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true; public boolean zombifiedPiglinTakeDamageFromWater = false; @@ -2296,7 +2296,7 @@ index ab6266ebf59e6f00c9dc2fe7d51456f49c4caef9..222ad342a7531c0a805e36ac6419b994 private void zombifiedPiglinSettings() { zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable); zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater); -@@ -2854,6 +2997,7 @@ public class PurpurWorldConfig { +@@ -2856,6 +2999,7 @@ public class PurpurWorldConfig { zombifiedPiglinJockeyTryExistingChickens = getBoolean("mobs.zombified_piglin.jockey.try-existing-chickens", zombifiedPiglinJockeyTryExistingChickens); zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry); zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater); diff --git a/patches/server/0234-Shearing-jeb-produces-random-color-wool.patch b/patches/server/0234-Shearing-jeb-produces-random-color-wool.patch index 186ba3e3f..76b6b5049 100644 --- a/patches/server/0234-Shearing-jeb-produces-random-color-wool.patch +++ b/patches/server/0234-Shearing-jeb-produces-random-color-wool.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Shearing jeb produces random color wool diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java -index 507526b0961f0f22f6ac67d60bb1de039d1ccf10..f168b84507a821f279a3341460dbd8dce0a5569c 100644 +index ecde7e3f3bbc511d152153082671ca67e0d960ba..86ac81efb31b59c37bca9b0c53755cb6a409fb86 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java @@ -314,7 +314,7 @@ public class Sheep extends Animal implements Shearable { @@ -18,10 +18,10 @@ index 507526b0961f0f22f6ac67d60bb1de039d1ccf10..f168b84507a821f279a3341460dbd8dc if (entityitem != null) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index ee8ff3e63f7b91804a75a49ac242013c12503b62..133d2c70ee57ff59726be47982d8744a6c728970 100644 +index abaa9056864f96a92fa1d3fee6a26b71fc97b9f9..5debe4eafd4f42116669fe344310e100b5d59fcc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2267,6 +2267,7 @@ public class PurpurWorldConfig { +@@ -2269,6 +2269,7 @@ public class PurpurWorldConfig { public boolean sheepBypassMobGriefing = false; public boolean sheepTakeDamageFromWater = false; public boolean sheepAlwaysDropExp = false; @@ -29,7 +29,7 @@ index ee8ff3e63f7b91804a75a49ac242013c12503b62..133d2c70ee57ff59726be47982d8744a private void sheepSettings() { sheepRidable = getBoolean("mobs.sheep.ridable", sheepRidable); sheepRidableInWater = getBoolean("mobs.sheep.ridable-in-water", sheepRidableInWater); -@@ -2281,6 +2282,7 @@ public class PurpurWorldConfig { +@@ -2283,6 +2284,7 @@ public class PurpurWorldConfig { sheepBypassMobGriefing = getBoolean("mobs.sheep.bypass-mob-griefing", sheepBypassMobGriefing); sheepTakeDamageFromWater = getBoolean("mobs.sheep.takes-damage-from-water", sheepTakeDamageFromWater); sheepAlwaysDropExp = getBoolean("mobs.sheep.always-drop-exp", sheepAlwaysDropExp); diff --git a/patches/server/0236-Mob-head-visibility-percent.patch b/patches/server/0236-Mob-head-visibility-percent.patch index e33d64fff..18e1fdd66 100644 --- a/patches/server/0236-Mob-head-visibility-percent.patch +++ b/patches/server/0236-Mob-head-visibility-percent.patch @@ -32,10 +32,10 @@ index 74ab12e61eb81c64d1ab805a737318c84b17c84a..2574641ef0c3614a856e358e712d2b2e // 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 fd5c5126e69a4ae55c15c2b28aaad7b73d8cf7c8..aab384cd322b7ba57b92b703db32849e46277fa7 100644 +index b071599f0ac964fee1dd93e31ecaaee720b979ab..6ff8cd77eaadbaa59294029e6d04523f4aa13e53 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1269,6 +1269,7 @@ public class PurpurWorldConfig { +@@ -1271,6 +1271,7 @@ public class PurpurWorldConfig { public boolean creeperExplodeWhenKilled = false; public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; @@ -43,7 +43,7 @@ index fd5c5126e69a4ae55c15c2b28aaad7b73d8cf7c8..aab384cd322b7ba57b92b703db32849e private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1286,6 +1287,7 @@ public class PurpurWorldConfig { +@@ -1288,6 +1289,7 @@ public class PurpurWorldConfig { creeperExplodeWhenKilled = getBoolean("mobs.creeper.explode-when-killed", creeperExplodeWhenKilled); creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp); @@ -51,7 +51,7 @@ index fd5c5126e69a4ae55c15c2b28aaad7b73d8cf7c8..aab384cd322b7ba57b92b703db32849e } public boolean dolphinRidable = false; -@@ -2072,6 +2074,7 @@ public class PurpurWorldConfig { +@@ -2074,6 +2076,7 @@ public class PurpurWorldConfig { public boolean piglinTakeDamageFromWater = false; public int piglinPortalSpawnModifier = 2000; public boolean piglinAlwaysDropExp = false; @@ -59,7 +59,7 @@ index fd5c5126e69a4ae55c15c2b28aaad7b73d8cf7c8..aab384cd322b7ba57b92b703db32849e private void piglinSettings() { piglinRidable = getBoolean("mobs.piglin.ridable", piglinRidable); piglinRidableInWater = getBoolean("mobs.piglin.ridable-in-water", piglinRidableInWater); -@@ -2086,6 +2089,7 @@ public class PurpurWorldConfig { +@@ -2088,6 +2091,7 @@ public class PurpurWorldConfig { piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater); piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier); piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp); @@ -67,7 +67,7 @@ index fd5c5126e69a4ae55c15c2b28aaad7b73d8cf7c8..aab384cd322b7ba57b92b703db32849e } public boolean piglinBruteRidable = false; -@@ -2347,6 +2351,7 @@ public class PurpurWorldConfig { +@@ -2349,6 +2353,7 @@ public class PurpurWorldConfig { public double skeletonMaxHealth = 20.0D; public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; @@ -75,7 +75,7 @@ index fd5c5126e69a4ae55c15c2b28aaad7b73d8cf7c8..aab384cd322b7ba57b92b703db32849e private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2359,6 +2364,7 @@ public class PurpurWorldConfig { +@@ -2361,6 +2366,7 @@ public class PurpurWorldConfig { skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth); skeletonTakeDamageFromWater = getBoolean("mobs.skeleton.takes-damage-from-water", skeletonTakeDamageFromWater); skeletonAlwaysDropExp = getBoolean("mobs.skeleton.always-drop-exp", skeletonAlwaysDropExp); @@ -83,7 +83,7 @@ index fd5c5126e69a4ae55c15c2b28aaad7b73d8cf7c8..aab384cd322b7ba57b92b703db32849e } public boolean skeletonHorseRidableInWater = true; -@@ -2893,6 +2899,7 @@ public class PurpurWorldConfig { +@@ -2895,6 +2901,7 @@ public class PurpurWorldConfig { public boolean zombieBypassMobGriefing = false; public boolean zombieTakeDamageFromWater = false; public boolean zombieAlwaysDropExp = false; @@ -91,7 +91,7 @@ index fd5c5126e69a4ae55c15c2b28aaad7b73d8cf7c8..aab384cd322b7ba57b92b703db32849e private void zombieSettings() { zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable); zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater); -@@ -2911,6 +2918,7 @@ public class PurpurWorldConfig { +@@ -2913,6 +2920,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/0239-Stop-bees-from-dying-after-stinging.patch b/patches/server/0239-Stop-bees-from-dying-after-stinging.patch index 546227a86..f2e9b1dce 100644 --- a/patches/server/0239-Stop-bees-from-dying-after-stinging.patch +++ b/patches/server/0239-Stop-bees-from-dying-after-stinging.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Stop bees from dying after stinging 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 d87b3bca72d4e4866d41053b47adb96555851b3a..0660eb12f47f02cfff9ded1cdb965acbacb0d077 100644 +index 86d49924f4fb5b38dfe7ec23a15e9bb5b2816543..e97731c58b86562827fb6b0a32a7a00e7b714cd3 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -455,6 +455,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { @@ -17,10 +17,10 @@ index d87b3bca72d4e4866d41053b47adb96555851b3a..0660eb12f47f02cfff9ded1cdb965acb ++this.timeSinceSting; if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 3635da728b6444a05a5eaf378f04ad3a6f3cb0a5..3da3083ed4603590751602c4d9baf79db8c52181 100644 +index 6ff8cd77eaadbaa59294029e6d04523f4aa13e53..61b94d9e891a53e0492e3e2743de63064050b67d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1072,6 +1072,7 @@ public class PurpurWorldConfig { +@@ -1074,6 +1074,7 @@ public class PurpurWorldConfig { public boolean beeCanWorkAtNight = false; public boolean beeCanWorkInRain = false; public boolean beeAlwaysDropExp = false; @@ -28,7 +28,7 @@ index 3635da728b6444a05a5eaf378f04ad3a6f3cb0a5..3da3083ed4603590751602c4d9baf79d private void beeSettings() { beeRidable = getBoolean("mobs.bee.ridable", beeRidable); beeRidableInWater = getBoolean("mobs.bee.ridable-in-water", beeRidableInWater); -@@ -1088,6 +1089,7 @@ public class PurpurWorldConfig { +@@ -1090,6 +1091,7 @@ public class PurpurWorldConfig { beeCanWorkAtNight = getBoolean("mobs.bee.can-work-at-night", beeCanWorkAtNight); beeCanWorkInRain = getBoolean("mobs.bee.can-work-in-rain", beeCanWorkInRain); beeAlwaysDropExp = getBoolean("mobs.bee.always-drop-exp", beeAlwaysDropExp); diff --git a/patches/server/0245-Configurable-phantom-size.patch b/patches/server/0245-Configurable-phantom-size.patch index 0fb9f2fa5..30180e330 100644 --- a/patches/server/0245-Configurable-phantom-size.patch +++ b/patches/server/0245-Configurable-phantom-size.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable phantom size 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 87ebdf7f5126365d112b1ea91b8202a036637f09..6c157dfc2f730d1a8afbc0a37f247305877d48ae 100644 +index b4e13b4e02c37f5ff93164f01604e7e56580be72..2c00a9fdd3a6ea16ee765339857cf58521c85797 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java @@ -272,7 +272,11 @@ public class Phantom extends FlyingMob implements Enemy { @@ -22,10 +22,10 @@ index 87ebdf7f5126365d112b1ea91b8202a036637f09..6c157dfc2f730d1a8afbc0a37f247305 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 14167b1123cc085bd91dc9ad2a6ad8e96676ccba..9c26165d36bf392767f4e6dfb4d1e813a75d8d30 100644 +index 0015c6ba0e4d400e309b386246418635a969a751..dc033470eec0fb84d085dbc95278ce48cd16fa30 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2012,6 +2012,8 @@ public class PurpurWorldConfig { +@@ -2014,6 +2014,8 @@ public class PurpurWorldConfig { public boolean phantomFlamesOnSwoop = false; public boolean phantomTakeDamageFromWater = false; public boolean phantomAlwaysDropExp = false; @@ -34,7 +34,7 @@ index 14167b1123cc085bd91dc9ad2a6ad8e96676ccba..9c26165d36bf392767f4e6dfb4d1e813 private void phantomSettings() { phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable); phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater); -@@ -2048,6 +2050,13 @@ public class PurpurWorldConfig { +@@ -2050,6 +2052,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/0248-Configurable-minimum-demand-for-trades.patch b/patches/server/0248-Configurable-minimum-demand-for-trades.patch index 16d75b2a4..864387e76 100644 --- a/patches/server/0248-Configurable-minimum-demand-for-trades.patch +++ b/patches/server/0248-Configurable-minimum-demand-for-trades.patch @@ -9,7 +9,7 @@ This patch adds a config option to allow the minimum demand to instead be configurable. diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 92adb537f342f3da41c91cf2c3141425e68e3cb7..598f03c777c729b13a97d328ffb4a450415b66d6 100644 +index 11c89537abf00958645afb26070aea1fea5a66f2..3e600058279f9a08511984dc92d88a78dc2cc083 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -535,7 +535,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -40,10 +40,10 @@ index fd50d1c2435b82215bc5b3fdbe5044d426bc342e..68ffea572045634f1ad67a6954d480e6 public ItemStack assemble() { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 551576e80373a16c98df67631bcd68f103dd9f7b..baa8ca905e3151addaa64418a337ae66d4e1d622 100644 +index dc033470eec0fb84d085dbc95278ce48cd16fa30..21ed4ac1f16bfc80e8e900f864c67d36b8c1fe7a 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2695,6 +2695,7 @@ public class PurpurWorldConfig { +@@ -2697,6 +2697,7 @@ public class PurpurWorldConfig { public boolean villagerTakeDamageFromWater = false; public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 551576e80373a16c98df67631bcd68f103dd9f7b..baa8ca905e3151addaa64418a337ae66 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2715,6 +2716,7 @@ public class PurpurWorldConfig { +@@ -2717,6 +2718,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/0249-Lobotomize-stuck-villagers.patch b/patches/server/0249-Lobotomize-stuck-villagers.patch index 5c0902275..b5a103525 100644 --- a/patches/server/0249-Lobotomize-stuck-villagers.patch +++ b/patches/server/0249-Lobotomize-stuck-villagers.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Lobotomize stuck villagers diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 598f03c777c729b13a97d328ffb4a450415b66d6..45579a592f519b54df5761a22f4abb0deff7feb6 100644 +index 3e600058279f9a08511984dc92d88a78dc2cc083..bb49c74d3e625968fd99977a61b7e1255e81077e 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -139,6 +139,8 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -108,10 +108,10 @@ index a1a8ac55e572156671e47317ba061855be79e5ac..ec3fb8865211bd7625103c37af7b96df + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index baa8ca905e3151addaa64418a337ae66d4e1d622..6ba943d04afef431decbdf22fc9c140da758ecb0 100644 +index 21ed4ac1f16bfc80e8e900f864c67d36b8c1fe7a..2603ac33aaba91d6717f3abeaac735efdafda6fe 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2696,6 +2696,8 @@ public class PurpurWorldConfig { +@@ -2698,6 +2698,8 @@ public class PurpurWorldConfig { public boolean villagerAllowTrading = true; public boolean villagerAlwaysDropExp = false; public int villagerMinimumDemand = 0; @@ -120,7 +120,7 @@ index baa8ca905e3151addaa64418a337ae66d4e1d622..6ba943d04afef431decbdf22fc9c140d private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2717,6 +2719,17 @@ public class PurpurWorldConfig { +@@ -2719,6 +2721,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/0250-Option-for-villager-display-trade-item.patch b/patches/server/0250-Option-for-villager-display-trade-item.patch index 4145b9bd1..1efbf1077 100644 --- a/patches/server/0250-Option-for-villager-display-trade-item.patch +++ b/patches/server/0250-Option-for-villager-display-trade-item.patch @@ -17,10 +17,10 @@ index 98373e013748817209b811d4adbb40a8787242a6..567b501f4de7556e55e2418d2f5700b4 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6ba943d04afef431decbdf22fc9c140da758ecb0..50be8afc743492d9cbb9d815ff70f1d89dfd84ef 100644 +index 2603ac33aaba91d6717f3abeaac735efdafda6fe..7ad03e4bd91efb2d9476a00bc71dda5161ff63f2 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2698,6 +2698,7 @@ public class PurpurWorldConfig { +@@ -2700,6 +2700,7 @@ public class PurpurWorldConfig { public int villagerMinimumDemand = 0; public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; @@ -28,7 +28,7 @@ index 6ba943d04afef431decbdf22fc9c140da758ecb0..50be8afc743492d9cbb9d815ff70f1d8 private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2730,6 +2731,7 @@ public class PurpurWorldConfig { +@@ -2732,6 +2733,7 @@ public class PurpurWorldConfig { } villagerLobotomizeEnabled = getBoolean("mobs.villager.lobotomize.enabled", villagerLobotomizeEnabled); villagerLobotomizeCheckInterval = getInt("mobs.villager.lobotomize.check-interval", villagerLobotomizeCheckInterval); diff --git a/patches/server/0258-Implement-configurable-search-radius-for-villagers-t.patch b/patches/server/0258-Implement-configurable-search-radius-for-villagers-t.patch index 6ee316e63..72f122d37 100644 --- a/patches/server/0258-Implement-configurable-search-radius-for-villagers-t.patch +++ b/patches/server/0258-Implement-configurable-search-radius-for-villagers-t.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 45579a592f519b54df5761a22f4abb0deff7feb6..d5fce1215d99de3393d06fdc65939920386b9318 100644 +index bb49c74d3e625968fd99977a61b7e1255e81077e..e6349547695394786a46757170aae2230cb26bd1 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java @@ -1088,6 +1088,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @@ -18,10 +18,10 @@ index 45579a592f519b54df5761a22f4abb0deff7feb6..d5fce1215d99de3393d06fdc65939920 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 e270917327520602d7dded100963d5a4d59d1f2f..7f2e969c56b1a0d6f7ab999810aa242a0db68a48 100644 +index ab17cf6c92083bf0ca0b1566b2c20288f85135a6..607106eed6cd801885fb8073f2f74b21dfc2e593 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 { +@@ -2711,6 +2711,8 @@ public class PurpurWorldConfig { public boolean villagerLobotomizeEnabled = false; public int villagerLobotomizeCheckInterval = 100; public boolean villagerDisplayTradeItem = true; @@ -30,7 +30,7 @@ index e270917327520602d7dded100963d5a4d59d1f2f..7f2e969c56b1a0d6f7ab999810aa242a private void villagerSettings() { villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable); villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater); -@@ -2742,6 +2744,8 @@ public class PurpurWorldConfig { +@@ -2744,6 +2746,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/0262-Skeletons-eat-wither-roses.patch b/patches/server/0262-Skeletons-eat-wither-roses.patch index 50253c701..88c3f09cd 100644 --- a/patches/server/0262-Skeletons-eat-wither-roses.patch +++ b/patches/server/0262-Skeletons-eat-wither-roses.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Skeletons eat wither roses diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java -index 875f1ae6a16301b48ddcf7005c601a161dee124d..35146853e991420f1c97921699d0d220a7f51dc0 100644 +index 78fc17c45e566e0844ffbebb85044b9bfe64c6db..64a5e000adbfa5de2abc32ea9182847dbf83293d 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java @@ -14,6 +14,16 @@ import net.minecraft.world.item.Items; @@ -94,10 +94,10 @@ index 875f1ae6a16301b48ddcf7005c601a161dee124d..35146853e991420f1c97921699d0d220 + // Purpur end } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9b10778c3ea1bd0228faef3ce3b90fc18fadbca8..f74d10092590eaaccce753c9ba227f909b78adb2 100644 +index 00156cc02bb7cf0e66eb1bc48c014971e284304b..e0a5254fbcb454c5cad43770d5c32d1553de9e21 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2393,6 +2393,7 @@ public class PurpurWorldConfig { +@@ -2395,6 +2395,7 @@ public class PurpurWorldConfig { public boolean skeletonTakeDamageFromWater = false; public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; @@ -105,7 +105,7 @@ index 9b10778c3ea1bd0228faef3ce3b90fc18fadbca8..f74d10092590eaaccce753c9ba227f90 private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2406,6 +2407,7 @@ public class PurpurWorldConfig { +@@ -2408,6 +2409,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/0263-Enchantment-Table-Persists-Lapis.patch b/patches/server/0263-Enchantment-Table-Persists-Lapis.patch index d41667575..bc0b02ef6 100644 --- a/patches/server/0263-Enchantment-Table-Persists-Lapis.patch +++ b/patches/server/0263-Enchantment-Table-Persists-Lapis.patch @@ -146,10 +146,10 @@ index 65e1381bb2d10bd212463feb602c60f8fdb9ade1..b7370e64fd0d50e8725d7d5afc30af2e + // Purpur } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f74d10092590eaaccce753c9ba227f909b78adb2..9d040d4dc7b0f1ff7884356d9ca1c0fab62c98cf 100644 +index e0a5254fbcb454c5cad43770d5c32d1553de9e21..555e550f82c493f44711cacf5a193e6367c0ac04 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1428,6 +1428,11 @@ public class PurpurWorldConfig { +@@ -1430,6 +1430,11 @@ public class PurpurWorldConfig { elderGuardianAlwaysDropExp = getBoolean("mobs.elder_guardian.always-drop-exp", elderGuardianAlwaysDropExp); } @@ -159,5 +159,5 @@ index f74d10092590eaaccce753c9ba227f909b78adb2..9d040d4dc7b0f1ff7884356d9ca1c0fa + } + public boolean enderDragonRidable = false; - public boolean enderDragonRidableInWater = false; + public boolean enderDragonRidableInWater = true; public boolean enderDragonControllable = true; diff --git a/patches/server/0280-Add-skeleton-bow-accuracy-option.patch b/patches/server/0280-Add-skeleton-bow-accuracy-option.patch index 9571735b9..7477f66ac 100644 --- a/patches/server/0280-Add-skeleton-bow-accuracy-option.patch +++ b/patches/server/0280-Add-skeleton-bow-accuracy-option.patch @@ -18,10 +18,10 @@ index 32a303f9ac9768daf621e3aa561cd6b31e5f5dff..9c8713ef3aeb2ff203bd0328d15d80c2 org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper if (event.isCancelled()) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 0fd388db152724327853ec5d27a306b427689b03..6fa7fd8d188685cbdde6ce737f533b0b5a97b6c2 100644 +index b5bfa490c437eae6b6b03043cd8be80aca110094..05094403e47d4050aa151c2cdd6cbb84a61f532d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -2413,6 +2413,8 @@ public class PurpurWorldConfig { +@@ -2415,6 +2415,8 @@ public class PurpurWorldConfig { public boolean skeletonAlwaysDropExp = false; public double skeletonHeadVisibilityPercent = 0.5D; public int skeletonFeedWitherRoses = 0; @@ -30,7 +30,7 @@ index 0fd388db152724327853ec5d27a306b427689b03..6fa7fd8d188685cbdde6ce737f533b0b private void skeletonSettings() { skeletonRidable = getBoolean("mobs.skeleton.ridable", skeletonRidable); skeletonRidableInWater = getBoolean("mobs.skeleton.ridable-in-water", skeletonRidableInWater); -@@ -2427,6 +2429,18 @@ public class PurpurWorldConfig { +@@ -2429,6 +2431,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/0281-Allay-respect-item-NBT.patch b/patches/server/0281-Allay-respect-item-NBT.patch index 4badedac3..fb836a292 100644 --- a/patches/server/0281-Allay-respect-item-NBT.patch +++ b/patches/server/0281-Allay-respect-item-NBT.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allay respect item NBT diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java -index afbce4fdece213e456ef4e993f07bfb448bb2dd1..6051737b8e16d0790aec73757d13d7862ad74ef4 100644 +index 10f386e7da49061a24beb7e934f3e75aefd3a5e9..0646a515b8ebcf004b372e8556451d05a02a4fc1 100644 --- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java @@ -407,9 +407,31 @@ public class Allay extends PathfinderMob implements InventoryCarrier { @@ -44,12 +44,12 @@ index afbce4fdece213e456ef4e993f07bfb448bb2dd1..6051737b8e16d0790aec73757d13d786 private boolean allayConsidersItemEqual(ItemStack stack, ItemStack stack2) { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 6fa7fd8d188685cbdde6ce737f533b0b5a97b6c2..9fcea4b1543fcd97e67b12064b91e69e846a551d 100644 +index 05094403e47d4050aa151c2cdd6cbb84a61f532d..0284a513bd3b9e8d615b7ffada5e7650343f605c 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1056,10 +1056,13 @@ public class PurpurWorldConfig { +@@ -1058,10 +1058,13 @@ public class PurpurWorldConfig { public boolean allayRidable = false; - public boolean allayRidableInWater = false; + public boolean allayRidableInWater = true; public boolean allayControllable = true; + public List allayRespectNBT = new ArrayList<>(); private void allaySettings() { diff --git a/patches/server/0286-Implement-squid-colors-for-rainglow-fabric-mod.patch b/patches/server/0286-Implement-squid-colors-for-rainglow-fabric-mod.patch index 141e49cac..e3deccff3 100644 --- a/patches/server/0286-Implement-squid-colors-for-rainglow-fabric-mod.patch +++ b/patches/server/0286-Implement-squid-colors-for-rainglow-fabric-mod.patch @@ -40,10 +40,10 @@ index c2309434b4d48a44587590623ac98dbf997b9578..6f723171fa71d74b351b5cf0cd167bb6 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 9fcea4b1543fcd97e67b12064b91e69e846a551d..c23c279209892ddd78e815828b0b0a8892959d3c 100644 +index 0284a513bd3b9e8d615b7ffada5e7650343f605c..ba76cd6207ee0e66338718d2bceb8f7bc58076ba 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1665,6 +1665,7 @@ public class PurpurWorldConfig { +@@ -1667,6 +1667,7 @@ public class PurpurWorldConfig { public boolean glowSquidsCanFly = false; public boolean glowSquidTakeDamageFromWater = false; public boolean glowSquidAlwaysDropExp = false; @@ -51,7 +51,7 @@ index 9fcea4b1543fcd97e67b12064b91e69e846a551d..c23c279209892ddd78e815828b0b0a88 private void glowSquidSettings() { glowSquidRidable = getBoolean("mobs.glow_squid.ridable", glowSquidRidable); glowSquidControllable = getBoolean("mobs.glow_squid.controllable", glowSquidControllable); -@@ -1672,6 +1673,7 @@ public class PurpurWorldConfig { +@@ -1674,6 +1675,7 @@ public class PurpurWorldConfig { glowSquidsCanFly = getBoolean("mobs.glow_squid.can-fly", glowSquidsCanFly); glowSquidTakeDamageFromWater = getBoolean("mobs.glow_squid.takes-damage-from-water", glowSquidTakeDamageFromWater); glowSquidAlwaysDropExp = getBoolean("mobs.glow_squid.always-drop-exp", glowSquidAlwaysDropExp); diff --git a/patches/server/0295-Add-option-to-allow-creeper-to-encircle-target-when-.patch b/patches/server/0295-Add-option-to-allow-creeper-to-encircle-target-when-.patch index 3b96ea7f8..dd486e5c2 100644 --- a/patches/server/0295-Add-option-to-allow-creeper-to-encircle-target-when-.patch +++ b/patches/server/0295-Add-option-to-allow-creeper-to-encircle-target-when-.patch @@ -24,10 +24,10 @@ index e241ae250f4f04a17ef2c583d00b065a4ca56a4c..02b567e4e808e1a809d285ef39e1abc5 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 19495d46b71f61ac31fc2354e7b01678e642108f..1e729867df0f3f80a785dd6b3b69a045c21f2156 100644 +index 49c12f24cc5446f8d996490740ede863ed232562..fd565abe6bb48f3ec112bdbbe4a698d88fd2d0dc 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -1321,6 +1321,7 @@ public class PurpurWorldConfig { +@@ -1323,6 +1323,7 @@ public class PurpurWorldConfig { public boolean creeperHealthRadius = false; public boolean creeperAlwaysDropExp = false; public double creeperHeadVisibilityPercent = 0.5D; @@ -35,7 +35,7 @@ index 19495d46b71f61ac31fc2354e7b01678e642108f..1e729867df0f3f80a785dd6b3b69a045 private void creeperSettings() { creeperRidable = getBoolean("mobs.creeper.ridable", creeperRidable); creeperRidableInWater = getBoolean("mobs.creeper.ridable-in-water", creeperRidableInWater); -@@ -1339,6 +1340,7 @@ public class PurpurWorldConfig { +@@ -1341,6 +1342,7 @@ public class PurpurWorldConfig { creeperHealthRadius = getBoolean("mobs.creeper.health-impacts-explosion", creeperHealthRadius); creeperAlwaysDropExp = getBoolean("mobs.creeper.always-drop-exp", creeperAlwaysDropExp); creeperHeadVisibilityPercent = getDouble("mobs.creeper.head-visibility-percent", creeperHeadVisibilityPercent);