Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@ffcb7b22 Update Parchment (#13177)
PaperMC/Paper@c33a9ce1 Fix incorrect variable use in Entity#startRiding
PaperMC/Paper@c710b667 Add MapPalette.getNearestColor (#13104)
PaperMC/Paper@b57d6410 Expose isReplaceable on BlockData (#13180)
PaperMC/Paper@af1823d4 Reduce impact of tick time calculations (#13188)
PaperMC/Paper@89ca94ab [ci/skip] Rebuild patches
PaperMC/Paper@e5cc2560 [ci/skip] Update CONTRIBUTING.md for Gradle and Windows Docs (#13190)
PaperMC/Paper@ab99393c Fix charged creeper explosions not dropping mob skulls (#13167)
PaperMC/Paper@81b7a578 Fixed Ender Dragon using wrong tracking range (#13046)
This commit is contained in:
granny
2025-10-16 22:07:40 -07:00
parent 49f2891215
commit c8a4f0b6f0
63 changed files with 693 additions and 693 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
diff --git a/net/minecraft/world/entity/GlowSquid.java b/net/minecraft/world/entity/GlowSquid.java
index 8e8ddab59de508c84c4182e105a11554387dcce0..1896f91e10a5e17332836d5354813a18a4dfe6dc 100644
index 8a10da9409e19b03b559d14c6f5238b5393545c7..cbb7e0591dc761d0566ac99dc6e5697b3ba4eeda 100644
--- a/net/minecraft/world/entity/GlowSquid.java
+++ b/net/minecraft/world/entity/GlowSquid.java
@@ -47,6 +47,13 @@ public class GlowSquid extends Squid {
@@ -23,13 +23,13 @@ index 8e8ddab59de508c84c4182e105a11554387dcce0..1896f91e10a5e17332836d5354813a18
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index fdf197b040b87468fe89d86f21688c7c07bef853..41d0bab1a046fdfd1a266883e2b522cf63b87157 100644
index 0002c7c4c728f44106ad4984e1d39ff2c76bf86f..be657ca79feed6a39fa5ca173d875e6678faf27e 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -291,6 +291,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
protected LivingEntity(EntityType<? extends LivingEntity> entityType, Level level) {
super(entityType, level);
this.attributes = new AttributeMap(DefaultAttributes.getSupplier(entityType), this); // Purpur - Ridables
protected LivingEntity(EntityType<? extends LivingEntity> type, Level level) {
super(type, level);
this.attributes = new AttributeMap(DefaultAttributes.getSupplier(type), this); // Purpur - Ridables
+ this.initAttributes(); // Purpur - Configurable entity base attributes
this.craftAttributes = new org.bukkit.craftbukkit.attribute.CraftAttributeMap(this.attributes); // CraftBukkit
// CraftBukkit - this.setHealth(this.getMaxHealth()) inlined and simplified to skip the instanceof check for Player, as getBukkitEntity() is not initialized in constructor
@@ -44,7 +44,7 @@ index fdf197b040b87468fe89d86f21688c7c07bef853..41d0bab1a046fdfd1a266883e2b522cf
return this.brain;
}
diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java
index 3b4ebfaf2327dd599cd98918418b6efc6d6be9b2..c5d2997629db6da1bb883e9b778d9da34e57430f 100644
index 16cebb7e0ba7070c67dee00a67c29c3f808d8048..947619d07ef381ab79774b3f6cdc4c2454b632cb 100644
--- a/net/minecraft/world/entity/ambient/Bat.java
+++ b/net/minecraft/world/entity/ambient/Bat.java
@@ -96,6 +96,21 @@ public class Bat extends AmbientCreature {
@@ -70,10 +70,10 @@ index 3b4ebfaf2327dd599cd98918418b6efc6d6be9b2..c5d2997629db6da1bb883e9b778d9da3
public boolean isFlapping() {
return !this.isResting() && this.tickCount % 10.0F == 0.0F;
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 3da697dfaef1880070ef61a3386adbf20d98e1a1..44e8623c03ee1f3dc1ece10d4d319246dec5b6eb 100644
index c0abcf209d45146d1f98599c2f4d16877431a46c..30f25727b60d3d846956b878dc53542669de6203 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -475,6 +475,14 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -473,6 +473,14 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
return beehiveBlockEntity != null && beehiveBlockEntity.isFireNearby();
}
@@ -89,7 +89,7 @@ index 3da697dfaef1880070ef61a3386adbf20d98e1a1..44e8623c03ee1f3dc1ece10d4d319246
public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME);
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index a960c3a4854f7d2343747d463d1d505b2e39d16b..d429beb03da8b499f19c3ed721b110d916849698 100644
index 59bcbf6d5d844000ab26c0ca7e6674c7ac6f35ed..10365c8a63bfbefa49d243d0e51a79b7a2052238 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -117,6 +117,14 @@ public class Cat extends TamableAnimal {
@@ -108,7 +108,7 @@ index a960c3a4854f7d2343747d463d1d505b2e39d16b..d429beb03da8b499f19c3ed721b110d9
protected void registerGoals() {
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, stack -> stack.is(ItemTags.CAT_FOOD), true);
diff --git a/net/minecraft/world/entity/animal/Chicken.java b/net/minecraft/world/entity/animal/Chicken.java
index 26732fde9894816cb83ba1249b2ac9b47e2b639b..b4b2cebbc8d4645dec0b1bfe4243426a1e7ccda5 100644
index bb261f049e28dd5fec00d92a844a1eaa4e8e0ca3..123527a051ec53f5cec886948bbb4da289d00270 100644
--- a/net/minecraft/world/entity/animal/Chicken.java
+++ b/net/minecraft/world/entity/animal/Chicken.java
@@ -89,6 +89,14 @@ public class Chicken extends Animal {
@@ -127,7 +127,7 @@ index 26732fde9894816cb83ba1249b2ac9b47e2b639b..b4b2cebbc8d4645dec0b1bfe4243426a
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/Cod.java b/net/minecraft/world/entity/animal/Cod.java
index 651c9243902e3c48fb438913974e996d67d6f746..ed52fbbf93e7a238d0f45981f8629ba8613bf3d4 100644
index 4bbe60e47cd3710c2dd31a418de38b894eb8247d..9b9a237a20d8e39ac11a39a4d5782084f97ea674 100644
--- a/net/minecraft/world/entity/animal/Cod.java
+++ b/net/minecraft/world/entity/animal/Cod.java
@@ -25,6 +25,13 @@ public class Cod extends AbstractSchoolingFish {
@@ -145,7 +145,7 @@ index 651c9243902e3c48fb438913974e996d67d6f746..ed52fbbf93e7a238d0f45981f8629ba8
public ItemStack getBucketItemStack() {
return new ItemStack(Items.COD_BUCKET);
diff --git a/net/minecraft/world/entity/animal/Cow.java b/net/minecraft/world/entity/animal/Cow.java
index 802c536659d45d0974fe788535ca326b86f90551..9dbc5f7b3896acb199577afa85451da38f2d2a01 100644
index 380c8e3c9c790d626cd9f8d4b1f13838d0b756ec..e7100834ce813e9814139c6d6e957fce15861ab7 100644
--- a/net/minecraft/world/entity/animal/Cow.java
+++ b/net/minecraft/world/entity/animal/Cow.java
@@ -46,6 +46,14 @@ public class Cow extends AbstractCow {
@@ -164,7 +164,7 @@ index 802c536659d45d0974fe788535ca326b86f90551..9dbc5f7b3896acb199577afa85451da3
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Dolphin.java b/net/minecraft/world/entity/animal/Dolphin.java
index ecd4dbcfc7f568722488c0894a98db68bb07ead9..03313754022b5ec682efef68e5d56a59ee2e8b92 100644
index 68dfce3c68cb4a861932e76dfa39f1b4f3724a50..71147da158f389207c032bc8e952ddb677e6d0ee 100644
--- a/net/minecraft/world/entity/animal/Dolphin.java
+++ b/net/minecraft/world/entity/animal/Dolphin.java
@@ -151,6 +151,14 @@ public class Dolphin extends AgeableWaterCreature {
@@ -183,7 +183,7 @@ index ecd4dbcfc7f568722488c0894a98db68bb07ead9..03313754022b5ec682efef68e5d56a59
@Override
public SpawnGroupData finalizeSpawn(
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index 4d2b6a34c0c276ef304916b2b84c92a516fe4979..50c8030a9ac6d1fc465cdf6ffbc88f85933405b0 100644
index 6b931060a7be54aa6a1c0d196c52c4e4b56c0a95..ce46a3ff3a24666736211221fa9c5e69b8146be8 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -180,6 +180,14 @@ public class Fox extends Animal {
@@ -202,7 +202,7 @@ index 4d2b6a34c0c276ef304916b2b84c92a516fe4979..50c8030a9ac6d1fc465cdf6ffbc88f85
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java
index 390b929a2d71df840febb081e68f675972db0fa4..597250765504186f7e01b3b88c7428258938afb3 100644
index eb14c2c508efd927d4696ac4e7cd420104ccc192..c5a126718c93d01376b73eb1337cfa63d9acd99e 100644
--- a/net/minecraft/world/entity/animal/HappyGhast.java
+++ b/net/minecraft/world/entity/animal/HappyGhast.java
@@ -132,6 +132,19 @@ public class HappyGhast extends Animal {
@@ -235,7 +235,7 @@ index 390b929a2d71df840febb081e68f675972db0fa4..597250765504186f7e01b3b88c742825
@Override
diff --git a/net/minecraft/world/entity/animal/IronGolem.java b/net/minecraft/world/entity/animal/IronGolem.java
index febe8b7b6a29f34fda685d1ab467dbf168d998c3..1148a5dcd5eef8e961df5388dbdd49769508007d 100644
index ed2ddcb4d4736b384a1b90cc4ea0e086e9d53102..89799cb1545b29ff10c25096e5ec7ba12af74eb1 100644
--- a/net/minecraft/world/entity/animal/IronGolem.java
+++ b/net/minecraft/world/entity/animal/IronGolem.java
@@ -92,6 +92,14 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -254,7 +254,7 @@ index febe8b7b6a29f34fda685d1ab467dbf168d998c3..1148a5dcd5eef8e961df5388dbdd4976
protected void registerGoals() {
if (this.level().purpurConfig.ironGolemPoppyCalm) this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.ReceiveFlower(this)); // Purpur - Iron golem calm anger options
diff --git a/net/minecraft/world/entity/animal/MushroomCow.java b/net/minecraft/world/entity/animal/MushroomCow.java
index cd13cff73e4a882a7d9aa246bfdf0c7ade99d987..eede8c36b351eb7bd555a0e6e362647e11dbeb2d 100644
index 9de016cb4e1aba2ab8ff4f16827b3450e8155992..743faa77525d68181ee38415399bc6078f9360f8 100644
--- a/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/net/minecraft/world/entity/animal/MushroomCow.java
@@ -80,6 +80,13 @@ public class MushroomCow extends AbstractCow implements Shearable {
@@ -272,7 +272,7 @@ index cd13cff73e4a882a7d9aa246bfdf0c7ade99d987..eede8c36b351eb7bd555a0e6e362647e
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
diff --git a/net/minecraft/world/entity/animal/Ocelot.java b/net/minecraft/world/entity/animal/Ocelot.java
index 0340813f71980d2c48853a68b37d353cd50a28cb..9f3ab67cf17c4f66da8bec0c9b818025ef303040 100644
index 91fa99c852e79e572165322212b0291e73ebf0b3..751aa4fea84db8e385001633df0c0d18ef6fde3a 100644
--- a/net/minecraft/world/entity/animal/Ocelot.java
+++ b/net/minecraft/world/entity/animal/Ocelot.java
@@ -81,6 +81,14 @@ public class Ocelot extends Animal {
@@ -291,7 +291,7 @@ index 0340813f71980d2c48853a68b37d353cd50a28cb..9f3ab67cf17c4f66da8bec0c9b818025
return this.entityData.get(DATA_TRUSTING);
}
diff --git a/net/minecraft/world/entity/animal/Panda.java b/net/minecraft/world/entity/animal/Panda.java
index 65874fa6b80f5d0953317629ff997fafec68f66d..b31e2ef8a498fe33107a5c4ee2b4e056a44027cc 100644
index 7be63b0738a1962a4b2563e78ae72f48bc330a2a..c74f2a95a473464be3497ea39e366564d3f74e66 100644
--- a/net/minecraft/world/entity/animal/Panda.java
+++ b/net/minecraft/world/entity/animal/Panda.java
@@ -133,6 +133,15 @@ public class Panda extends Animal {
@@ -324,7 +324,7 @@ index 65874fa6b80f5d0953317629ff997fafec68f66d..b31e2ef8a498fe33107a5c4ee2b4e056
if (this.isLazy()) {
diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java
index 60e1810f91c086debb4ada192720398834c8ca84..24f7e486dec1714d917342887afaf775ef6300d5 100644
index e0374a72738f8110e41471cd0ef2d044be616523..debda7f54b05831d16014fb271b1a996822fecb5 100644
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -193,6 +193,14 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -343,7 +343,7 @@ index 60e1810f91c086debb4ada192720398834c8ca84..24f7e486dec1714d917342887afaf775
@Override
public SpawnGroupData finalizeSpawn(
diff --git a/net/minecraft/world/entity/animal/Pig.java b/net/minecraft/world/entity/animal/Pig.java
index 70c9629e6f1f82f44e14487ed3c81e391d480029..39f6a3f3ea5f7e51580b7cbf9bbfd4a04368a380 100644
index 84afbacfb7f590fa68858816b7c717a92fd03fc2..8a8c796377254d47e68d0d8b1c9bdac7d4b99360 100644
--- a/net/minecraft/world/entity/animal/Pig.java
+++ b/net/minecraft/world/entity/animal/Pig.java
@@ -83,6 +83,14 @@ public class Pig extends Animal implements ItemSteerable {
@@ -362,7 +362,7 @@ index 70c9629e6f1f82f44e14487ed3c81e391d480029..39f6a3f3ea5f7e51580b7cbf9bbfd4a0
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/PolarBear.java b/net/minecraft/world/entity/animal/PolarBear.java
index b0f1c80465b3e4dd8ff220209df8a00f60ede84a..75eb4a6dd43346622d6c528aa6e66d251167d3ac 100644
index 6ffb35630bab1303edb2179e4dcf749f9b3c3c28..2cf417f3bcf338a3edc4a2f71d8a700aca2e52dc 100644
--- a/net/minecraft/world/entity/animal/PolarBear.java
+++ b/net/minecraft/world/entity/animal/PolarBear.java
@@ -117,6 +117,14 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -379,9 +379,9 @@ index b0f1c80465b3e4dd8ff220209df8a00f60ede84a..75eb4a6dd43346622d6c528aa6e66d25
+
@Nullable
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob otherParent) {
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
diff --git a/net/minecraft/world/entity/animal/Pufferfish.java b/net/minecraft/world/entity/animal/Pufferfish.java
index 7c2d200165111e0a6fb804157074a28322304d95..9c9e0fb36d7a2e4f644314008c8dc6bdbeb42bcf 100644
index 51dd0333b02ee232f3e2b17c9ae3617ea36f18ba..8b895308ee7639396983c73dc4c2572c957df027 100644
--- a/net/minecraft/world/entity/animal/Pufferfish.java
+++ b/net/minecraft/world/entity/animal/Pufferfish.java
@@ -59,6 +59,13 @@ public class Pufferfish extends AbstractFish {
@@ -399,7 +399,7 @@ index 7c2d200165111e0a6fb804157074a28322304d95..9c9e0fb36d7a2e4f644314008c8dc6bd
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java
index daab94acd64b75ee19d582014eacfe4944aeda55..b644b85f2509f584770dee11677e5bfeef4a46a2 100644
index f50b38c98ec6eb96a72dde926a20e9a3803ee630..1b29d2a49350ff557e09b1297b3825f2cc28bad3 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -145,6 +145,14 @@ public class Rabbit extends Animal {
@@ -418,7 +418,7 @@ index daab94acd64b75ee19d582014eacfe4944aeda55..b644b85f2509f584770dee11677e5bfe
public void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/Salmon.java b/net/minecraft/world/entity/animal/Salmon.java
index 265b2a6db778cabc1a97726c22c991051e3007fe..e426b3280b519a3cd727b200794324361c62b67e 100644
index a0bd1c1446b81868fdb61a4d3db6140e7887cdb9..e5790db0472fa97471b828cf6d817697389c3a8c 100644
--- a/net/minecraft/world/entity/animal/Salmon.java
+++ b/net/minecraft/world/entity/animal/Salmon.java
@@ -51,6 +51,13 @@ public class Salmon extends AbstractSchoolingFish {
@@ -436,7 +436,7 @@ index 265b2a6db778cabc1a97726c22c991051e3007fe..e426b3280b519a3cd727b20079432436
public int getMaxSchoolSize() {
return 5;
diff --git a/net/minecraft/world/entity/animal/SnowGolem.java b/net/minecraft/world/entity/animal/SnowGolem.java
index 6d0d1bb14b64d2a176db6a74f3a5ff0fa78a5434..3204145fc93bbeaad203f845edb984895a6ff494 100644
index 00af403efafbdd7274524403b2212c15026ee147..d6f2a04cf04090e3cb68f5111d47bff9f1243568 100644
--- a/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/net/minecraft/world/entity/animal/SnowGolem.java
@@ -80,6 +80,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -455,7 +455,7 @@ index 6d0d1bb14b64d2a176db6a74f3a5ff0fa78a5434..3204145fc93bbeaad203f845edb98489
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/animal/Squid.java b/net/minecraft/world/entity/animal/Squid.java
index 438765bc5799dff8b9cfd6fa77808712e6ada9b2..559a483e39f9da5c6c1131b5af61b594b5d3e7e8 100644
index 39c8703d3034b48c9218adf4d347bd5e24231145..ad2be25e45b350c7d971cd750245dbfa2b27ccb5 100644
--- a/net/minecraft/world/entity/animal/Squid.java
+++ b/net/minecraft/world/entity/animal/Squid.java
@@ -91,6 +91,14 @@ public class Squid extends AgeableWaterCreature {
@@ -474,7 +474,7 @@ index 438765bc5799dff8b9cfd6fa77808712e6ada9b2..559a483e39f9da5c6c1131b5af61b594
protected void registerGoals() {
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
diff --git a/net/minecraft/world/entity/animal/TropicalFish.java b/net/minecraft/world/entity/animal/TropicalFish.java
index cc26b929abd249536659df03a1cafbe83cde6f0f..c102db5ffdfc7dcb0ec7e59fb031fe6afcdd8237 100644
index 6c2497ab50dd7ab6d5a7043935b0beeed36bfad8..95368fd534c77e7d89ed6219f1f3948c428c256c 100644
--- a/net/minecraft/world/entity/animal/TropicalFish.java
+++ b/net/minecraft/world/entity/animal/TropicalFish.java
@@ -89,6 +89,13 @@ public class TropicalFish extends AbstractSchoolingFish {
@@ -492,7 +492,7 @@ index cc26b929abd249536659df03a1cafbe83cde6f0f..c102db5ffdfc7dcb0ec7e59fb031fe6a
return "entity.minecraft.tropical_fish.predefined." + variantId;
}
diff --git a/net/minecraft/world/entity/animal/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java
index 542adc537723f9878a217aa3b71d67d1e4c1a8d2..b9dd8a359711a1993b515fda4b81e61d28a4da49 100644
index bb54f64cc36939bfd1e6ca57a1128b813fab2ad7..88bd025f491ec17884007cc5c1b57c64461d2901 100644
--- a/net/minecraft/world/entity/animal/Turtle.java
+++ b/net/minecraft/world/entity/animal/Turtle.java
@@ -103,6 +103,14 @@ public class Turtle extends Animal {
@@ -511,7 +511,7 @@ index 542adc537723f9878a217aa3b71d67d1e4c1a8d2..b9dd8a359711a1993b515fda4b81e61d
this.homePos = homePos;
}
diff --git a/net/minecraft/world/entity/animal/allay/Allay.java b/net/minecraft/world/entity/animal/allay/Allay.java
index 173101a3b5bb1057adec2b5df396fd3000c028bc..d2665a3bc4602ca8e9635bc9f8104c7ad8eacc5a 100644
index 4d08642a006d4b7d9b858d8c594c2888f0d7e595..d842d0158f1c685a9350c61158a6eaa36ea9e897 100644
--- a/net/minecraft/world/entity/animal/allay/Allay.java
+++ b/net/minecraft/world/entity/animal/allay/Allay.java
@@ -167,6 +167,14 @@ public class Allay extends PathfinderMob implements InventoryCarrier, VibrationS
@@ -530,7 +530,7 @@ index 173101a3b5bb1057adec2b5df396fd3000c028bc..d2665a3bc4602ca8e9635bc9f8104c7a
protected Brain.Provider<Allay> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/animal/armadillo/Armadillo.java b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
index a394bc9e4de64a862acc2d33a01c1dd298bce464..c77284ba3dc3c2eb13ba97bbdcdea7c4a864c195 100644
index 764ad0be43e225f2f9d84641158ad0844993489e..2343f4fcca96f4887c6fb00e8fdc43b959aba69e 100644
--- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java
+++ b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
@@ -99,6 +99,14 @@ public class Armadillo extends Animal {
@@ -549,7 +549,7 @@ index a394bc9e4de64a862acc2d33a01c1dd298bce464..c77284ba3dc3c2eb13ba97bbdcdea7c4
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index d350bd4a29e3ce6196e3df9f0757ca24bd667075..78c3750b0e9fa53f3c3ef1958663e8e3c0269c5c 100644
index 6614b38726dc1a9778032cbedc22e4343f70774f..330caf84f0a8e0edff764d4bd34b85b54b9f057f 100644
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -138,6 +138,14 @@ public class Axolotl extends Animal implements Bucketable {
@@ -568,7 +568,7 @@ index d350bd4a29e3ce6196e3df9f0757ca24bd667075..78c3750b0e9fa53f3c3ef1958663e8e3
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return 0.0F;
diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java
index 96c98f032b1b3aec32aba38244ee8b45aca9078c..3a794ff3d68c86b4e5ef93ff8f5cedfa07d22f99 100644
index 486974bf7764a6eee37e67acdfc3b7798fa218ef..78df0eb0a0b6765406bd0dc041a02b099d86dd60 100644
--- a/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/net/minecraft/world/entity/animal/camel/Camel.java
@@ -335,6 +335,23 @@ public class Camel extends AbstractHorse {
@@ -596,7 +596,7 @@ index 96c98f032b1b3aec32aba38244ee8b45aca9078c..3a794ff3d68c86b4e5ef93ff8f5cedfa
public SoundEvent getAmbientSound() {
return SoundEvents.CAMEL_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
index 20d2f081fa2576ea946489d3e717b389092abaef..0597de19bcb1dc21cc7d07bb9b69dfb6967bba6f 100644
index f63dee3d9192836c4a92696a4383bcfb1489385d..e50f9c7113063ce0c8696e06a3ca6ab768adc4af 100644
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
@@ -131,6 +131,16 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
@@ -617,7 +617,7 @@ index 20d2f081fa2576ea946489d3e717b389092abaef..0597de19bcb1dc21cc7d07bb9b69dfb6
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
}
diff --git a/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
index b528bd7cc2001a3c0ec1cf615a4c306a9cd7e9f1..387f6bb134a766ce7b72cf2d4a56509f51687308 100644
index 628f93f477d188cb4400be9a12cdfe09badcb971..59d5f89403a33d402910a0adca13edd14607431f 100644
--- a/net/minecraft/world/entity/animal/horse/AbstractHorse.java
+++ b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
@@ -139,6 +139,46 @@ public abstract class AbstractHorse extends Animal implements HasCustomInventory
@@ -677,7 +677,7 @@ index b528bd7cc2001a3c0ec1cf615a4c306a9cd7e9f1..387f6bb134a766ce7b72cf2d4a56509f
}
diff --git a/net/minecraft/world/entity/animal/horse/Donkey.java b/net/minecraft/world/entity/animal/horse/Donkey.java
index 66dda36aeb668488076f0c93dc83ab6cc4ec1a31..3aa12702cd1f4ef160180bc6ba64a6566cbddc9d 100644
index 88e45b38763992a645e36cccab36f74a2024f671..65470905a29f1ae0ea7ac1d29ee108adcbc499c7 100644
--- a/net/minecraft/world/entity/animal/horse/Donkey.java
+++ b/net/minecraft/world/entity/animal/horse/Donkey.java
@@ -23,6 +23,23 @@ public class Donkey extends AbstractChestedHorse {
@@ -705,7 +705,7 @@ index 66dda36aeb668488076f0c93dc83ab6cc4ec1a31..3aa12702cd1f4ef160180bc6ba64a656
public SoundEvent getAmbientSound() {
return SoundEvents.DONKEY_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/horse/Horse.java b/net/minecraft/world/entity/animal/horse/Horse.java
index f1cb2e315e1d86f9fcd87db11d3ee7a81cfe12f6..53c0eac62018a0d88e30b8c13de94216ff829cd8 100644
index e5fc006066a817737110918d047e71abf24bb334..78b68881357f1bc1111478bb7c9e4f1ba55e055e 100644
--- a/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/net/minecraft/world/entity/animal/horse/Horse.java
@@ -54,6 +54,23 @@ public class Horse extends AbstractHorse {
@@ -733,7 +733,7 @@ index f1cb2e315e1d86f9fcd87db11d3ee7a81cfe12f6..53c0eac62018a0d88e30b8c13de94216
protected void randomizeAttributes(RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt));
diff --git a/net/minecraft/world/entity/animal/horse/Llama.java b/net/minecraft/world/entity/animal/horse/Llama.java
index c3efc59c5e396c664022dd91bca143c60164fe0c..fb2b45b85d9f8ae5546573a31cf0d5a39dad149c 100644
index 1e76e5c5e046e9e284c42ad5de9430aa489a7b28..d1f1f30486ea5c4785e5c4c0104fa31a2e27521a 100644
--- a/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/net/minecraft/world/entity/animal/horse/Llama.java
@@ -137,6 +137,23 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -761,7 +761,7 @@ index c3efc59c5e396c664022dd91bca143c60164fe0c..fb2b45b85d9f8ae5546573a31cf0d5a3
return false;
}
diff --git a/net/minecraft/world/entity/animal/horse/Mule.java b/net/minecraft/world/entity/animal/horse/Mule.java
index b1c96936ba8dcba4435a649dd7e6ec3c921c3702..0107bb5fc029c5390d73e9a4cd08c13838a2ded5 100644
index d6c61075321e6005f977be17bbb6d7045f42d7f0..dc3723c5a0bca9e1023629657f668c7e5f6df4a4 100644
--- a/net/minecraft/world/entity/animal/horse/Mule.java
+++ b/net/minecraft/world/entity/animal/horse/Mule.java
@@ -22,6 +22,23 @@ public class Mule extends AbstractChestedHorse {
@@ -789,7 +789,7 @@ index b1c96936ba8dcba4435a649dd7e6ec3c921c3702..0107bb5fc029c5390d73e9a4cd08c138
public SoundEvent getAmbientSound() {
return SoundEvents.MULE_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index ba0e483df57cc56f356282519105a2e3e77601f8..a7bcc0ff10e429ebfe91173c392e9a0c07903289 100644
index 47b36581d5291e4d223fb39572d62674b8eb68bc..557e06b9002217b7ba5a07399bd71491cb0236c6 100644
--- a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -49,6 +49,23 @@ public class SkeletonHorse extends AbstractHorse {
@@ -817,7 +817,7 @@ index ba0e483df57cc56f356282519105a2e3e77601f8..a7bcc0ff10e429ebfe91173c392e9a0c
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/horse/TraderLlama.java b/net/minecraft/world/entity/animal/horse/TraderLlama.java
index 626b129b54aa622267dfc2ee5ec13bb9f10d6390..db07a476fdaa1cfde2b44be77cdc5a17a17bd898 100644
index 21211278de627079d7c9e91305e42aa0f8ae34d3..a566336bb088286a29eeeca1703addc98922f6e6 100644
--- a/net/minecraft/world/entity/animal/horse/TraderLlama.java
+++ b/net/minecraft/world/entity/animal/horse/TraderLlama.java
@@ -53,6 +53,23 @@ public class TraderLlama extends Llama {
@@ -845,7 +845,7 @@ index 626b129b54aa622267dfc2ee5ec13bb9f10d6390..db07a476fdaa1cfde2b44be77cdc5a17
public boolean isTraderLlama() {
return true;
diff --git a/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index 45d09ebcc9ce4321285a4ec49e8ee369290f6b2c..3d597bd355b6c918ea1bf4b7d537ad4f76e218d2 100644
index c916c28b0d3115588cedf84cf70469b6f6050ec9..6684f5dfb7dec101bad15b7ede3d9fd377aacd45 100644
--- a/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -45,6 +45,23 @@ public class ZombieHorse extends AbstractHorse {
@@ -873,7 +873,7 @@ index 45d09ebcc9ce4321285a4ec49e8ee369290f6b2c..3d597bd355b6c918ea1bf4b7d537ad4f
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index 1975976c92e3acb361dcc1ec49c6ce5818173806..a36ce4568ae173edaeab04b580c88c5389487bd5 100644
index 1e453cdbe3c290209fd2fb912a90fb44a642959a..0e371655c8a500bad69626475222f9e726013c02 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -79,6 +79,14 @@ public class Sheep extends Animal implements Shearable {
@@ -892,7 +892,7 @@ index 1975976c92e3acb361dcc1ec49c6ce5818173806..a36ce4568ae173edaeab04b580c88c53
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index 85a5cad5d7c4056fccf11807e6bcce5432febbc5..0c0f25664f4433e3c6c2e51779d7cfc309114d90 100644
index 1013898f40c82b64bc62eb99365d10a57e8f66b5..cd6a5173e2c6d49c7df9baae464b391ea1fdd620 100644
--- a/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -105,6 +105,14 @@ public class Sniffer extends Animal {
@@ -911,7 +911,7 @@ index 85a5cad5d7c4056fccf11807e6bcce5432febbc5..0c0f25664f4433e3c6c2e51779d7cfc3
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index ba0f003546d70651eddb1907f33ceb549584c0ca..70753293961f73f917973c35e1d3fb81b836f1f8 100644
index 901138575d9468374565d395b56bfaeb353479f7..56db9816b52aed4facc80c95ec664cd98c6daca2 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -208,6 +208,14 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -930,7 +930,7 @@ index ba0f003546d70651eddb1907f33ceb549584c0ca..70753293961f73f917973c35e1d3fb81
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index c3eefe0a4a3b13e20853193450e8634c61257a0a..00ea1b2b62e422f8420dcd8a7fdf186474695ac7 100644
index f695e3ba62a4047d8203c0399790d646e97309f7..81f73a5b400a346ee86285bf4ca6c846c0c4b87e 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -165,6 +165,13 @@ public class EnderDragon extends Mob implements Enemy {
@@ -957,7 +957,7 @@ index c3eefe0a4a3b13e20853193450e8634c61257a0a..00ea1b2b62e422f8420dcd8a7fdf1864
// CraftBukkit start - SPIGOT-2420: Special case, the ender dragon drops 12000 xp for the first kill and 500 xp for every other kill and this over time.
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 110ef9d81fdfa099316abf7b9c7ef4e1fdc976f7..3023c8e5b16b54a14abeb832f0a82456fa999707 100644
index 151bfd4de9a11642ca128e91a6ed80d41820b358..8e5e364d297a3eb55b67ce7081ec7548cbf7f3a6 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -213,6 +213,14 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -985,7 +985,7 @@ index 110ef9d81fdfa099316abf7b9c7ef4e1fdc976f7..3023c8e5b16b54a14abeb832f0a82456
} else {
super.customServerAiStep(level);
diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java
index e0a38808c3757aaaabb6d3d8a0f9c1c0133c792f..14e2fe8d0d21464c946af9949ba3a77e31f22d23 100644
index 937300689b75486ba582b6dbe294c4355dc31d9e..8621ab150da50116260cd76821c02109cd32e351 100644
--- a/net/minecraft/world/entity/monster/Blaze.java
+++ b/net/minecraft/world/entity/monster/Blaze.java
@@ -75,6 +75,14 @@ public class Blaze extends Monster {
@@ -1004,7 +1004,7 @@ index e0a38808c3757aaaabb6d3d8a0f9c1c0133c792f..14e2fe8d0d21464c946af9949ba3a77e
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Bogged.java b/net/minecraft/world/entity/monster/Bogged.java
index 9ab5b3f88eeec22110b8aba71714e05209e4b855..579a5fd6e4545cc51eafbeac2369e114d404c2f1 100644
index 71a8bf118babb1fd7985caac087855c1da85025c..2ec4e1cc570ebdbaa8a0f3fc681026a4b89f53ed 100644
--- a/net/minecraft/world/entity/monster/Bogged.java
+++ b/net/minecraft/world/entity/monster/Bogged.java
@@ -60,6 +60,14 @@ public class Bogged extends AbstractSkeleton implements Shearable {
@@ -1023,7 +1023,7 @@ index 9ab5b3f88eeec22110b8aba71714e05209e4b855..579a5fd6e4545cc51eafbeac2369e114
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/CaveSpider.java b/net/minecraft/world/entity/monster/CaveSpider.java
index 4873a3d8dd9c160ecdbda594ee546c35ec03a1e7..64eecd8d1acd318743800c1daa77cd97097a0f7c 100644
index e528e85dfb080c6fa28c01536d8fd0a29662651e..ca8e92447eb5f58e2bd855ac6fa1d580425218f9 100644
--- a/net/minecraft/world/entity/monster/CaveSpider.java
+++ b/net/minecraft/world/entity/monster/CaveSpider.java
@@ -43,6 +43,14 @@ public class CaveSpider extends Spider {
@@ -1039,10 +1039,10 @@ index 4873a3d8dd9c160ecdbda594ee546c35ec03a1e7..64eecd8d1acd318743800c1daa77cd97
+ // Purpur end - Configurable entity base attributes
+
@Override
public boolean doHurtTarget(ServerLevel level, Entity source) {
if (super.doHurtTarget(level, source)) {
public boolean doHurtTarget(ServerLevel level, Entity target) {
if (super.doHurtTarget(level, target)) {
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
index d250d8a2d0cbe41b2336a0a697c1c179b24dc823..b7d33384ca236a902a7aa2004b16d545e5a58c9e 100644
index c3e2677a817da764577acc7298ad5fe52d7d5b2e..6259636b9856be5b03af83ee515e70cbf1eb51d8 100644
--- a/net/minecraft/world/entity/monster/Creeper.java
+++ b/net/minecraft/world/entity/monster/Creeper.java
@@ -137,6 +137,14 @@ public class Creeper extends Monster {
@@ -1061,7 +1061,7 @@ index d250d8a2d0cbe41b2336a0a697c1c179b24dc823..b7d33384ca236a902a7aa2004b16d545
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Drowned.java b/net/minecraft/world/entity/monster/Drowned.java
index eb70d05d2540295f79d24fbd0c07a9a349783f88..453f9d6e9581165c59b959ea6bccc5387dff91bd 100644
index 8ab6c0f67ac25c1229850ae01abd01d878827d0c..4037f13778d21461c862c26a0fcc3c08e6d472ae 100644
--- a/net/minecraft/world/entity/monster/Drowned.java
+++ b/net/minecraft/world/entity/monster/Drowned.java
@@ -93,6 +93,19 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -1085,7 +1085,7 @@ index eb70d05d2540295f79d24fbd0c07a9a349783f88..453f9d6e9581165c59b959ea6bccc538
protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
diff --git a/net/minecraft/world/entity/monster/ElderGuardian.java b/net/minecraft/world/entity/monster/ElderGuardian.java
index 07355eb21c7b06d282be32f6956d4de9e399b9c9..7ebc7224d3db38cc5137112d5a74999f6e23b8d5 100644
index e5d16ca14a40d520dce43dd3d9b6347aefbd25d7..57fb334f670d35aa181b13e12fa2c5f36da1dda6 100644
--- a/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -43,6 +43,14 @@ public class ElderGuardian extends Guardian {
@@ -1104,7 +1104,7 @@ index 07355eb21c7b06d282be32f6956d4de9e399b9c9..7ebc7224d3db38cc5137112d5a74999f
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
}
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index 612b0caa28d214886edab3b2de34838659bd39f2..73e3b50ffa544f29267413c88bcf21af71d1ff4f 100644
index eaa5cc7e72ba604d14e41975d24624f1def04656..b8fd334b9dd704d5d4502a6e051db09cced24f59 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -107,6 +107,14 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -1123,7 +1123,7 @@ index 612b0caa28d214886edab3b2de34838659bd39f2..73e3b50ffa544f29267413c88bcf21af
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java
index c7e3a80a678df50cbb03349826f7e03c23a2c622..7e6cebeff52bb9252d55a191179b9bb82f4405bb 100644
index 844ba943a2a752f9b25506b644a4b4abc981b4cb..c6ae00f6ab83743b9ce43d9e55f04ba23b0de0f1 100644
--- a/net/minecraft/world/entity/monster/Endermite.java
+++ b/net/minecraft/world/entity/monster/Endermite.java
@@ -64,6 +64,14 @@ public class Endermite extends Monster {
@@ -1142,7 +1142,7 @@ index c7e3a80a678df50cbb03349826f7e03c23a2c622..7e6cebeff52bb9252d55a191179b9bb8
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Evoker.java b/net/minecraft/world/entity/monster/Evoker.java
index 10142de6bdf9474958ca939c956a428218ee48db..e8aac93cffa3a9d4105c03c1aeb4d571ee0eba6c 100644
index 70cf903d95d35b539e9a299a4035c8ddde5e4b97..a5243b7969fec5d60b94368caf5e962c348c4135 100644
--- a/net/minecraft/world/entity/monster/Evoker.java
+++ b/net/minecraft/world/entity/monster/Evoker.java
@@ -65,6 +65,14 @@ public class Evoker extends SpellcasterIllager {
@@ -1161,7 +1161,7 @@ index 10142de6bdf9474958ca939c956a428218ee48db..e8aac93cffa3a9d4105c03c1aeb4d571
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index 49925c8db7166359fdcc0008d5be2130d01686b6..bcd602714104043e67ed67446ea47dda33761e31 100644
index 1d888ebabecfd1beebdf718c5d771b312070245a..fdbf14ff7e62d8db023b3d3bdf4ae685b5f085a8 100644
--- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -74,6 +74,14 @@ public class Ghast extends Mob implements Enemy {
@@ -1180,7 +1180,7 @@ index 49925c8db7166359fdcc0008d5be2130d01686b6..bcd602714104043e67ed67446ea47dda
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Giant.java b/net/minecraft/world/entity/monster/Giant.java
index c098fc14eb4f2ebd7dc1f6be9507279296416eea..e673f488bfab9648075857bc40e1339f974a903c 100644
index dcbe6bbce0baa4fad7fe180944beeb6ca4026f7d..416bb85fc87b5f9e372f33df8fe27f12e83834b9 100644
--- a/net/minecraft/world/entity/monster/Giant.java
+++ b/net/minecraft/world/entity/monster/Giant.java
@@ -35,6 +35,16 @@ public class Giant extends Monster {
@@ -1201,7 +1201,7 @@ index c098fc14eb4f2ebd7dc1f6be9507279296416eea..e673f488bfab9648075857bc40e1339f
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index 7202edbad08975fc62f9aa876d9e53a238182b20..1106f170bbfd8ea5446246c9778039742356a222 100644
index 339c81d0a9833e762ca4fc63430d22266f95627d..c59f2dd8661d7a6bd35aaa1933a60a47f795bdd1 100644
--- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -90,6 +90,14 @@ public class Guardian extends Monster {
@@ -1220,7 +1220,7 @@ index 7202edbad08975fc62f9aa876d9e53a238182b20..1106f170bbfd8ea5446246c977803974
protected void registerGoals() {
MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0);
diff --git a/net/minecraft/world/entity/monster/Husk.java b/net/minecraft/world/entity/monster/Husk.java
index b8b7700df42feb2309d9e845e37aa0e9ca026f9b..4a617bb6bc3675d8cb42be0b5ae19befd4b3176f 100644
index af1af1687bbbc9a60b71ad83879ca5cb5af15eef..43d4e0eb3defdd4c76896097788d2ba0970c33c9 100644
--- a/net/minecraft/world/entity/monster/Husk.java
+++ b/net/minecraft/world/entity/monster/Husk.java
@@ -37,6 +37,18 @@ public class Husk extends Zombie {
@@ -1243,7 +1243,7 @@ index b8b7700df42feb2309d9e845e37aa0e9ca026f9b..4a617bb6bc3675d8cb42be0b5ae19bef
EntityType<Husk> entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Illusioner.java b/net/minecraft/world/entity/monster/Illusioner.java
index c41d43d20db8a573efcbbe8593f5b1f56a18aa0e..753532aad0973230e1c7f4102ac55b243355c61e 100644
index 162986914c6718438b7e1d5408bdbe5a4d3e3a68..b6872c94d769346ed2a8bb2406fc2b39ef64a67c 100644
--- a/net/minecraft/world/entity/monster/Illusioner.java
+++ b/net/minecraft/world/entity/monster/Illusioner.java
@@ -74,6 +74,16 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
@@ -1264,7 +1264,7 @@ index c41d43d20db8a573efcbbe8593f5b1f56a18aa0e..753532aad0973230e1c7f4102ac55b24
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
index 4a1299d6cee2807522de0c2d0d4745c5810e4121..bb1364c4a220cc93f7ac01cbaa617561de4cd2e3 100644
index 9be4861fc5cf5e9f8f562785eb3e857b6c1d3585..f39611741c4dacec2b1ad2d25ca9b7d47c188049 100644
--- a/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
@@ -46,6 +46,28 @@ public class MagmaCube extends Slime {
@@ -1297,7 +1297,7 @@ index 4a1299d6cee2807522de0c2d0d4745c5810e4121..bb1364c4a220cc93f7ac01cbaa617561
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index f5cc26632345bdae6fbda72e1084bacf79a75752..958f0c86986a155f56d3995a87882f83df66043f 100644
index d29752add305e97d2265606b7b4212c308072523..ba9368c601f0b720cc665b96f392be1370fb9556 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -141,7 +141,10 @@ public class Phantom extends Mob implements Enemy {
@@ -1337,7 +1337,7 @@ index f5cc26632345bdae6fbda72e1084bacf79a75752..958f0c86986a155f56d3995a87882f83
public void tick() {
super.tick();
diff --git a/net/minecraft/world/entity/monster/Pillager.java b/net/minecraft/world/entity/monster/Pillager.java
index fa49ed77f33bca6335812e9f56176cc053a364ad..bcc20f9642e9d20cf18bb5f8e63daa277154be1a 100644
index f75eab4f895c0ed381b65717dc106dc13325428a..748233be6bdfd735aa3ccc02a7ba21a45603ffa4 100644
--- a/net/minecraft/world/entity/monster/Pillager.java
+++ b/net/minecraft/world/entity/monster/Pillager.java
@@ -81,6 +81,14 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
@@ -1356,7 +1356,7 @@ index fa49ed77f33bca6335812e9f56176cc053a364ad..bcc20f9642e9d20cf18bb5f8e63daa27
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index b67ac487ce4a7fd8b2f62452ab0b87f4a55006f2..9e7b07f353fb8f0650b8805014c371368eaabcd5 100644
index 91514bc1eb85eb224b8760f17cecc423c6206554..f43125ca7d52170a1ca2a54a5b2758794f25fbd1 100644
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -93,6 +93,14 @@ public class Ravager extends Raider {
@@ -1375,7 +1375,7 @@ index b67ac487ce4a7fd8b2f62452ab0b87f4a55006f2..9e7b07f353fb8f0650b8805014c37136
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
index d3b14cfb5310423e52899edd5873e9ba7f6a30fc..dac39e2c1ed4422b466effb0acc9267454bdc2fb 100644
index d9401842948fed8edd6d31fcf08da2747f1a3921..3909804ba8f9e220260efe6255ff2b298a4448db 100644
--- a/net/minecraft/world/entity/monster/Shulker.java
+++ b/net/minecraft/world/entity/monster/Shulker.java
@@ -126,6 +126,14 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -1403,7 +1403,7 @@ index d3b14cfb5310423e52899edd5873e9ba7f6a30fc..dac39e2c1ed4422b466effb0acc92674
private void setVariant(Optional<DyeColor> variant) {
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
index 19dcc657fd2a995638d5e23c2b043d012d978e79..c200d57841304ba0d7a76fdd9a440fe9f2b25136 100644
index b278c8cce74f16c49f579ca13688dabfce95d14d..23722456ce82dcc6b571b96e5c9b0d70005f9c2e 100644
--- a/net/minecraft/world/entity/monster/Silverfish.java
+++ b/net/minecraft/world/entity/monster/Silverfish.java
@@ -56,6 +56,16 @@ public class Silverfish extends Monster {
@@ -1424,7 +1424,7 @@ index 19dcc657fd2a995638d5e23c2b043d012d978e79..c200d57841304ba0d7a76fdd9a440fe9
protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java
index bb7f93435168da4023ee07585e92192717881acc..dc9a946b102e93a024130967b1eb1d5e78070b4d 100644
index c39072d9265b2640e3bd701dacb54aa629f3b230..8d1f83ba8042435a0dc1e6e1fb9873173efe277d 100644
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -42,6 +42,13 @@ public class Skeleton extends AbstractSkeleton {
@@ -1442,7 +1442,7 @@ index bb7f93435168da4023ee07585e92192717881acc..dc9a946b102e93a024130967b1eb1d5e
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
index ce6e19b9cf943a8a9d1e85c8764d57b7f282cd69..6f6b6c47d003271a54fee53723cd09d435431be1 100644
index 3b9c4f2623ddecf54b139e032d8056a7ec0d59c0..beb504f9a5de48d9631585648a98cd3d2d682d76 100644
--- a/net/minecraft/world/entity/monster/Slime.java
+++ b/net/minecraft/world/entity/monster/Slime.java
@@ -101,6 +101,39 @@ public class Slime extends Mob implements Enemy {
@@ -1498,7 +1498,7 @@ index ce6e19b9cf943a8a9d1e85c8764d57b7f282cd69..6f6b6c47d003271a54fee53723cd09d4
this.setHealth(this.getMaxHealth());
}
diff --git a/net/minecraft/world/entity/monster/Spider.java b/net/minecraft/world/entity/monster/Spider.java
index 771592182fe56efc6fc0dae7fa852483b3b99c57..853752e66b2b9299b20d4a66dc73cf0db839d9e3 100644
index 6237bbbed2aa643755e8e58a5fdd2f6d75f717ac..580047cd6a803ffdf6a1887d32731ddfd23316b9 100644
--- a/net/minecraft/world/entity/monster/Spider.java
+++ b/net/minecraft/world/entity/monster/Spider.java
@@ -67,6 +67,14 @@ public class Spider extends Monster {
@@ -1517,7 +1517,7 @@ index 771592182fe56efc6fc0dae7fa852483b3b99c57..853752e66b2b9299b20d4a66dc73cf0d
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Stray.java b/net/minecraft/world/entity/monster/Stray.java
index 4a7dbd1e4d927240433882a95822e9edfc83b827..b5465b552c5aea7603a54cfdeafe451bfaf38bf2 100644
index b1013db104186ba079a51c6c30bb7f89b92da3d7..1be523e22b2fa0f9546eb272f3f68a896a0575c9 100644
--- a/net/minecraft/world/entity/monster/Stray.java
+++ b/net/minecraft/world/entity/monster/Stray.java
@@ -39,6 +39,13 @@ public class Stray extends AbstractSkeleton {
@@ -1535,7 +1535,7 @@ index 4a7dbd1e4d927240433882a95822e9edfc83b827..b5465b552c5aea7603a54cfdeafe451b
EntityType<Stray> entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java
index f1e559f552b932d1d66b67ff35ca519ee273fc50..255d4d0cd8f48bf09232cd0fecb87f430e68084a 100644
index f03ec1e8985f2c81ad2ec13d136e4c0362be4fff..5d41885ceb7145a516a398da0d7553faeb386710 100644
--- a/net/minecraft/world/entity/monster/Strider.java
+++ b/net/minecraft/world/entity/monster/Strider.java
@@ -109,6 +109,14 @@ public class Strider extends Animal implements ItemSteerable {
@@ -1554,7 +1554,7 @@ index f1e559f552b932d1d66b67ff35ca519ee273fc50..255d4d0cd8f48bf09232cd0fecb87f43
EntityType<Strider> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
index f8fb8de570468151e1b82e8f15e66e2ea6fd8e22..a8d3d1aaaa62781824f3b3422030c87de884793d 100644
index 6713498d873980bd979b864ab0ac6dfc9d4e1482..7fddf0a36b1c4a3f7fbab8b0319e00281e8acd90 100644
--- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java
@@ -104,6 +104,14 @@ public class Vex extends Monster implements TraceableEntity {
@@ -1573,7 +1573,7 @@ index f8fb8de570468151e1b82e8f15e66e2ea6fd8e22..a8d3d1aaaa62781824f3b3422030c87d
public boolean isFlapping() {
return this.tickCount % TICKS_PER_FLAP == 0;
diff --git a/net/minecraft/world/entity/monster/Vindicator.java b/net/minecraft/world/entity/monster/Vindicator.java
index 8e5bf153a457026808e2ea670e874e66ca0d5e98..1f66c8d5194ee5b3794ea86a951ae553aa375422 100644
index c584a404838d5f8a916a27a74b4f4e8e3d5c1b1d..fdaf024a27825844105ef62baddf30e3b4412d28 100644
--- a/net/minecraft/world/entity/monster/Vindicator.java
+++ b/net/minecraft/world/entity/monster/Vindicator.java
@@ -73,6 +73,14 @@ public class Vindicator extends AbstractIllager {
@@ -1592,7 +1592,7 @@ index 8e5bf153a457026808e2ea670e874e66ca0d5e98..1f66c8d5194ee5b3794ea86a951ae553
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
index e420d7dc0fc09d712ee63238f2107a2fa0f799b7..620d529c0cf71e0c19b9ed6a02d173218a38abd4 100644
index bed6ce6749df67c3a4966958801d13ccd9529b1d..60a6d8880e6d0009cfd136599ca6f1c1b07adc42 100644
--- a/net/minecraft/world/entity/monster/Witch.java
+++ b/net/minecraft/world/entity/monster/Witch.java
@@ -73,6 +73,14 @@ public class Witch extends Raider implements RangedAttackMob {
@@ -1611,7 +1611,7 @@ index e420d7dc0fc09d712ee63238f2107a2fa0f799b7..620d529c0cf71e0c19b9ed6a02d17321
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/WitherSkeleton.java b/net/minecraft/world/entity/monster/WitherSkeleton.java
index 48f9d87d26bad99b81af001a81d2c3d274cad007..96dc17a43c258fec424954606a7a43d490e870d6 100644
index 7061a0ae68ed28ea72335bb5eab013a6554abc07..4d4e04d9fb5b68897ffa6f299bd2009bb397da3d 100644
--- a/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -51,6 +51,14 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -1630,7 +1630,7 @@ index 48f9d87d26bad99b81af001a81d2c3d274cad007..96dc17a43c258fec424954606a7a43d4
protected void registerGoals() {
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java
index 44ad3bbcfdf8615d6e5a896fb923685c481ae5b5..f1d42c8ee4a23ba3485477632b51dd9bcf9db926 100644
index 68095374ffd82db27ed704eb82dd68c51071df19..5e52eab9a78db8a5652bdee7127d75921f641ab9 100644
--- a/net/minecraft/world/entity/monster/Zoglin.java
+++ b/net/minecraft/world/entity/monster/Zoglin.java
@@ -103,6 +103,14 @@ public class Zoglin extends Monster implements HoglinBase {
@@ -1649,7 +1649,7 @@ index 44ad3bbcfdf8615d6e5a896fb923685c481ae5b5..f1d42c8ee4a23ba3485477632b51dd9b
protected Brain.Provider<Zoglin> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/monster/Zombie.java b/net/minecraft/world/entity/monster/Zombie.java
index 1aeea30498e089d686b845f31b44aef0ff994c60..4f5d19c19887dc543c336bb72dac76c82503f792 100644
index 3f000e9a1be45134b12b46badc2b52d23b960e9a..6e106c03fc81ab9f5a9de80e86e0e46cf853a232 100644
--- a/net/minecraft/world/entity/monster/Zombie.java
+++ b/net/minecraft/world/entity/monster/Zombie.java
@@ -119,6 +119,14 @@ public class Zombie extends Monster {
@@ -1677,7 +1677,7 @@ index 1aeea30498e089d686b845f31b44aef0ff994c60..4f5d19c19887dc543c336bb72dac76c8
class ZombieAttackTurtleEggGoal extends RemoveBlockGoal {
diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java
index 454e2795e04c7b7cac88f782df3dfb4200b192fc..706c0cc803ede18f0790e94cfc989f0676199e7a 100644
index f9c119d38c2812cfeeb775e728f6c751bf748c85..1de823b94ee0e53109b4dd3e726f721eaed0acd4 100644
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -90,6 +90,18 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -1700,7 +1700,7 @@ index 454e2795e04c7b7cac88f782df3dfb4200b192fc..706c0cc803ede18f0790e94cfc989f06
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index 5919405428eb03c499167bc7b963e3f96f721c8c..a6244a3d5d8e48b81147d6aed7ac1126e9ae5d64 100644
index d52e83ee890ab278440a69972ad83d4dd2f972a6..819faafec711edc6e837a2f52a318910f4ef0a5c 100644
--- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -81,6 +81,14 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -1728,7 +1728,7 @@ index 5919405428eb03c499167bc7b963e3f96f721c8c..a6244a3d5d8e48b81147d6aed7ac1126
@Nullable
diff --git a/net/minecraft/world/entity/monster/creaking/Creaking.java b/net/minecraft/world/entity/monster/creaking/Creaking.java
index 982790edbd74bd80988df1400b0e67669bfd164c..c05d572fa2ab5a70c8825d2d2b6ffb36317e92fe 100644
index c3c4dfb89c807020c4147140bc23ba1ce5cfe888..f31a29531cc7d63bed5a4bcbe3986bcc366b6103 100644
--- a/net/minecraft/world/entity/monster/creaking/Creaking.java
+++ b/net/minecraft/world/entity/monster/creaking/Creaking.java
@@ -125,6 +125,14 @@ public class Creaking extends Monster {
@@ -1747,7 +1747,7 @@ index 982790edbd74bd80988df1400b0e67669bfd164c..c05d572fa2ab5a70c8825d2d2b6ffb36
protected BodyRotationControl createBodyControl() {
return new Creaking.CreakingBodyRotationControl(this);
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index c3d08cfdb15602f6fbe2ac81c751e879668a4dd7..04eb22a9bbafb81f010a4413e653ae31426ba3e6 100644
index d852f8cff28e3ff2189896d713d37a3400b0a70b..1062df067d6b98ffba27864450d8a867446aae79 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -112,6 +112,14 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1766,7 +1766,7 @@ index c3d08cfdb15602f6fbe2ac81c751e879668a4dd7..04eb22a9bbafb81f010a4413e653ae31
public void setTimeInOverworld(int timeInOverworld) {
this.timeInOverworld = timeInOverworld;
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
index 8a7c6326e056772fb89ca73b20cc1d9d1a029db9..c44fd14350b2504fc38ae22a61029d5c44b60918 100644
index 0dc2d7f71c06ba575c2ac97a4be6b2466d5407d9..19211c0d78113da7827a071fd510b4f36e63a9f2 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -153,6 +153,14 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1785,7 +1785,7 @@ index 8a7c6326e056772fb89ca73b20cc1d9d1a029db9..c44fd14350b2504fc38ae22a61029d5c
protected void addAdditionalSaveData(ValueOutput output) {
super.addAdditionalSaveData(output);
diff --git a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
index 4c8e49ba064241ec7ac505fa6f5df6d7f9c009b6..f52aba35ee7e202074cda8fb4dfd6a7d9ded1f09 100644
index e1b1a909c7e92c5fa5e8f9c155bc57290ef6667b..31e38737806098795de0e87fbcaf60d4ab83ea6e 100644
--- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
+++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
@@ -82,6 +82,14 @@ public class PiglinBrute extends AbstractPiglin {
@@ -1804,7 +1804,7 @@ index 4c8e49ba064241ec7ac505fa6f5df6d7f9c009b6..f52aba35ee7e202074cda8fb4dfd6a7d
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 50.0)
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index cf92712dbe0eee7296bd641e1acaf9000fca9189..aedcc54dcc370c00c1d7349e3a17358da5d6ca1d 100644
index 5f982512eb04cbfff21e270026046a384bb01537..05d748a7de077694b1035d3e73f35f1f98419902 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -271,6 +271,14 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1823,10 +1823,10 @@ index cf92712dbe0eee7296bd641e1acaf9000fca9189..aedcc54dcc370c00c1d7349e3a17358d
public Brain<Villager> getBrain() {
return (Brain<Villager>)super.getBrain();
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
index 10f2b2f96418b059c7f6b43e1f060b0ccb03362f..0eeda11b37cd17122183d5e22d02d9cd61f2b4e5 100644
index 5372f9cef4667a11b4e4447b1bacd7c232b6b0ad..b06ea793e0008c68d85d8112415fbc011131984d 100644
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -84,6 +84,13 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -84,6 +84,13 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
}
// Purpur end - Ridables

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index b99b09118707ab94406fc0472420449e7e88f2ac..042861f45c7ee423614122387ac652d60dfc2852 100644
index 1d6f77ade1456fd4ffc425e0c75ea98e86be7a42..72d24ebbbcd7d6db849190ca646ecdaf1053d0bb 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -931,6 +931,27 @@ public abstract class PlayerList {
@@ -929,6 +929,27 @@ public abstract class PlayerList {
player.getBukkitEntity().recalculatePermissions(); // CraftBukkit
this.server.getCommands().sendCommands(player);
} // Paper - Add sendOpLevel API
@@ -37,7 +37,7 @@ index b99b09118707ab94406fc0472420449e7e88f2ac..042861f45c7ee423614122387ac652d6
// Paper start - whitelist verify event / login event
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
index 3c1641a906f301dbfb0f30a597479fb727f4639c..76d84cb829a7f9b88689986d04497fbfd9d65b87 100644
index 2c0b158c6e666941a073295e9b112f64ad5b6d90..21e0bd539188352c9db551c96af37a6a87a089d2 100644
--- a/net/minecraft/world/entity/player/Player.java
+++ b/net/minecraft/world/entity/player/Player.java
@@ -182,6 +182,7 @@ public abstract class Player extends Avatar implements ContainerUser {
@@ -49,7 +49,7 @@ index 3c1641a906f301dbfb0f30a597479fb727f4639c..76d84cb829a7f9b88689986d04497fbf
// CraftBukkit start
public boolean fauxSleeping;
diff --git a/net/minecraft/world/inventory/ChestMenu.java b/net/minecraft/world/inventory/ChestMenu.java
index 0fffa384f928ab84451331380968fb4650eafe26..0399092c9f7a43ac100c11505176ade6d95a39da 100644
index 1fb3a34ea872dec73658fac59743e46ef8db5151..4c3b8d7ba777916ffc5ad0feccffbc7634bffe8d 100644
--- a/net/minecraft/world/inventory/ChestMenu.java
+++ b/net/minecraft/world/inventory/ChestMenu.java
@@ -66,10 +66,30 @@ public class ChestMenu extends AbstractContainerMenu {
@@ -108,7 +108,7 @@ index 8cf089874a75735be690ab72a01264bac5ff793d..611f78f93b70674b53c025d9151dacb5
this.activeChest = enderChestBlockEntity;
}
diff --git a/net/minecraft/world/level/block/EnderChestBlock.java b/net/minecraft/world/level/block/EnderChestBlock.java
index 1518e035c4b6fdfc68b77fc42b043dd27f680767..a7b20c0781b0372a36e67c7b5a3eae90476f83e0 100644
index 4fe246e457bd9befcdcb6e2301bd55e949322d6f..5189125f4a66590b7842d19cd940de659d24c6a4 100644
--- a/net/minecraft/world/level/block/EnderChestBlock.java
+++ b/net/minecraft/world/level/block/EnderChestBlock.java
@@ -85,8 +85,8 @@ public class EnderChestBlock extends AbstractChestBlock<EnderChestBlockEntity> i

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Villagers follow emerald blocks
diff --git a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
index c23d6edeaca324bcfd60c6e96ec4038f6ef595a9..9251693b3caa2d77b093064b6599db1078cd06d0 100644
index d9aefe5777fa545d67621bc1ce2ef6a11ca9b27c..48be4530b25d273032ff1a055406c7cca928d678 100644
--- a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
+++ b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
@@ -167,7 +167,7 @@ public class DefaultAttributes {
@@ -31,7 +31,7 @@ index dae935cc68e2e571d50e56ac8913c099a11cf771..a805c9426630c2c46db9d0dd536f1d16
@Override
diff --git a/net/minecraft/world/entity/npc/AbstractVillager.java b/net/minecraft/world/entity/npc/AbstractVillager.java
index cf4703cb909aa5906fdd689082208ea4dd77fc0f..8eceba09d1a410aaf359c71a2a0e5d44471e67b6 100644
index 6bb17ecbd93f6ced5436cf75f3695f44eedd4bd9..e60387c4ef2aa0fc35a559d75b1a7c1539dda57b 100644
--- a/net/minecraft/world/entity/npc/AbstractVillager.java
+++ b/net/minecraft/world/entity/npc/AbstractVillager.java
@@ -35,6 +35,7 @@ import net.minecraft.world.level.storage.ValueOutput;
@@ -43,7 +43,7 @@ index cf4703cb909aa5906fdd689082208ea4dd77fc0f..8eceba09d1a410aaf359c71a2a0e5d44
public static final int VILLAGER_SLOT_OFFSET = 300;
private static final int VILLAGER_INVENTORY_SIZE = 8;
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index b5dc02822ce6a82eb69fd7341c317fb1f7ee0a7f..4b076b9eeeb3614df3a024f16fecb287bed72ec7 100644
index 05d748a7de077694b1035d3e73f35f1f98419902..b7b290e9870f8f51af7e44f71b1e04ce9c552626 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -268,6 +268,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -72,10 +72,10 @@ index b5dc02822ce6a82eb69fd7341c317fb1f7ee0a7f..4b076b9eeeb3614df3a024f16fecb287
public boolean assignProfessionWhenSpawned() {
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
index 0eeda11b37cd17122183d5e22d02d9cd61f2b4e5..e9a98a7009555128cb5118093add3fb331a7d485 100644
index b06ea793e0008c68d85d8112415fbc011131984d..e5a6cc63d29be742be039053c39f983ed9c6a1e1 100644
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -88,9 +88,16 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -88,9 +88,16 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
@Override
public void initAttributes() {
this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.wanderingTraderMaxHealth);
@@ -92,7 +92,7 @@ index 0eeda11b37cd17122183d5e22d02d9cd61f2b4e5..e9a98a7009555128cb5118093add3fb3
@Override
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
@@ -125,6 +132,7 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -125,6 +132,7 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
this.goalSelector.addGoal(1, new PanicGoal(this, 0.5));
this.goalSelector.addGoal(1, new LookAtTradingPlayerGoal(this));
this.goalSelector.addGoal(2, new WanderingTrader.WanderToPositionGoal(this, 2.0, 0.35));

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement elytra settings
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 41d0bab1a046fdfd1a266883e2b522cf63b87157..f48c543287a99d4281de4085e7a65f128bd2dc4a 100644
index be657ca79feed6a39fa5ca173d875e6678faf27e..01b7bdf66a2b52d204257e497cfccc11a20ce4b0 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -3744,7 +3744,18 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3750,7 +3750,18 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
.filter(equipmentSlot1 -> canGlideUsing(this.getItemBySlot(equipmentSlot1), equipmentSlot1))
.toList();
EquipmentSlot equipmentSlot = Util.getRandom(list, this.random);
@@ -51,7 +51,7 @@ index f86b0579e707ecfa5c2074ea22bbe383b5e11841..43a6d9bd3a2e301e3957e9933663c3af
itemInHand.shrink(1); // Moved up from below
} else {
diff --git a/net/minecraft/world/item/ItemStack.java b/net/minecraft/world/item/ItemStack.java
index 2d9fbd3173df397e7debd9c08d4c8c5e760246e6..358d69bdca0aa46d1952d3ef9bf9b65dc39a3338 100644
index b367b94ba6977b94c7f46c9f02ed6c3fc5284185..e4bcd4a3cbbc8942d52e5f3c7a4fb1572fdef91c 100644
--- a/net/minecraft/world/item/ItemStack.java
+++ b/net/minecraft/world/item/ItemStack.java
@@ -697,6 +697,14 @@ public final class ItemStack implements DataComponentHolder {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
diff --git a/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java b/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
index 5bff703ae4f95091620dec5347246d7c0cbe5d5e..220a828717e1933a44c5282b56713ba0053d2440 100644
index 9503ec9d44a6c0811639b7d0cf504d32fefff58d..ab878a0f789fa0dc3713eedac1bbcebcfc1a7fa5 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EndCrystal.java
@@ -27,6 +27,12 @@ public class EndCrystal extends Entity {
@@ -19,8 +19,8 @@ index 5bff703ae4f95091620dec5347246d7c0cbe5d5e..220a828717e1933a44c5282b56713ba0
+ private int idleCooldown = 0;
+ // Purpur end - Phantoms attracted to crystals and crystals shoot phantoms
public EndCrystal(EntityType<? extends EndCrystal> entityType, Level level) {
super(entityType, level);
public EndCrystal(EntityType<? extends EndCrystal> type, Level level) {
super(type, level);
@@ -95,6 +101,49 @@ public class EndCrystal extends Entity {
// Paper end - Fix invulnerable end crystals
if (this.level().purpurConfig.endCrystalCramming > 0 && this.level().getEntitiesOfClass(EndCrystal.class, getBoundingBox()).size() > this.level().purpurConfig.endCrystalCramming) this.hurt(this.damageSources().cramming(), 6.0F); // Purpur - End Crystal Cramming
@@ -72,7 +72,7 @@ index 5bff703ae4f95091620dec5347246d7c0cbe5d5e..220a828717e1933a44c5282b56713ba0
@Override
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index 958f0c86986a155f56d3995a87882f83df66043f..3e0df2669e567094ad52ff8c59037e3fb5c96f30 100644
index ba9368c601f0b720cc665b96f392be1370fb9556..81f7223d49eac01899c877ba7e47515c17269151 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -49,6 +49,7 @@ public class Phantom extends Mob implements Enemy {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Phantoms burn in light
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index 3e0df2669e567094ad52ff8c59037e3fb5c96f30..bf2330068d43f52a9a21d73180ef5a83697444ea 100644
index 81f7223d49eac01899c877ba7e47515c17269151..42089b34a1a1927247953b54cdc3300e1b600a90 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -55,6 +55,7 @@ public class Phantom extends Mob implements Enemy {
@@ -14,8 +14,8 @@ index 3e0df2669e567094ad52ff8c59037e3fb5c96f30..bf2330068d43f52a9a21d73180ef5a83
// Paper end
+ private static final net.minecraft.world.item.crafting.Ingredient TORCH = net.minecraft.world.item.crafting.Ingredient.of(net.minecraft.world.item.Items.TORCH, net.minecraft.world.item.Items.SOUL_TORCH); // Purpur - Phantoms burn in light
public Phantom(EntityType<? extends Phantom> entityType, Level level) {
super(entityType, level);
public Phantom(EntityType<? extends Phantom> type, Level level) {
super(type, level);
@@ -238,7 +239,11 @@ public class Phantom extends Mob implements Enemy {
@Override

View File

@@ -22,7 +22,7 @@ index f673a7e78729edf13f094d547a0b995ea9ae7146..0fa52865c293e74c9e5f3d1fd93a0e24
// CraftBukkit end - call EntityBreedEvent
level.broadcastEntityEvent(breedOffspring, (byte)12);
diff --git a/net/minecraft/world/entity/animal/Animal.java b/net/minecraft/world/entity/animal/Animal.java
index 834a7d6b0a332c1c3f32ab8797fe1d3cb45159c1..8405cbe7754b916e3d3a39318685fb91af5edce2 100644
index 3c77ce7861085f076bbdfb430af095420e7a12f5..643d40772770f0ebed0170bfed29e739f521d46d 100644
--- a/net/minecraft/world/entity/animal/Animal.java
+++ b/net/minecraft/world/entity/animal/Animal.java
@@ -41,6 +41,7 @@ public abstract class Animal extends AgeableMob {
@@ -31,8 +31,8 @@ index 834a7d6b0a332c1c3f32ab8797fe1d3cb45159c1..8405cbe7754b916e3d3a39318685fb91
public @Nullable ItemStack breedItem; // CraftBukkit - Add breedItem variable
+ public abstract int getPurpurBreedTime(); // Purpur - Make entity breeding times configurable
protected Animal(EntityType<? extends Animal> entityType, Level level) {
super(entityType, level);
protected Animal(EntityType<? extends Animal> type, Level level) {
super(type, level);
@@ -267,8 +268,10 @@ public abstract class Animal extends AgeableMob {
player.awardStat(Stats.ANIMALS_BRED);
CriteriaTriggers.BRED_ANIMALS.trigger(player, this, animal, baby);
@@ -47,10 +47,10 @@ index 834a7d6b0a332c1c3f32ab8797fe1d3cb45159c1..8405cbe7754b916e3d3a39318685fb91
animal.resetLove();
level.broadcastEntityEvent(this, (byte)18);
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 0238bbbd85100dd107a11c00fd19d2250766b11e..a5e0edd6da8675643f3a4d63199e8cd865a6d836 100644
index 30f25727b60d3d846956b878dc53542669de6203..025ac8b3088ad1e45d10094c7534375a917b3a73 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -483,6 +483,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -481,6 +481,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
}
// Purpur end - Configurable entity base attributes
@@ -65,7 +65,7 @@ index 0238bbbd85100dd107a11c00fd19d2250766b11e..a5e0edd6da8675643f3a4d63199e8cd8
public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME);
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index d429beb03da8b499f19c3ed721b110d916849698..5e6a66c1a3532d39dae82eaeb2428605536e2155 100644
index 10365c8a63bfbefa49d243d0e51a79b7a2052238..2411e1a9e98f8db63e326b4bfbe759084e938431 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -125,6 +125,13 @@ public class Cat extends TamableAnimal {
@@ -83,7 +83,7 @@ index d429beb03da8b499f19c3ed721b110d916849698..5e6a66c1a3532d39dae82eaeb2428605
protected void registerGoals() {
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, stack -> stack.is(ItemTags.CAT_FOOD), true);
diff --git a/net/minecraft/world/entity/animal/Chicken.java b/net/minecraft/world/entity/animal/Chicken.java
index 6f6d99c075b3e402742e3c7401dea366f2d871b6..e4702a5a89147bd83fa73a969fab7077ddd623f6 100644
index b5d3d5fc666d04bc18ca5157a3aacc639c2537c8..b65abf395b3d3c10dc20604b670e44c183f5131b 100644
--- a/net/minecraft/world/entity/animal/Chicken.java
+++ b/net/minecraft/world/entity/animal/Chicken.java
@@ -102,6 +102,13 @@ public class Chicken extends Animal {
@@ -101,7 +101,7 @@ index 6f6d99c075b3e402742e3c7401dea366f2d871b6..e4702a5a89147bd83fa73a969fab7077
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/Cow.java b/net/minecraft/world/entity/animal/Cow.java
index 9dbc5f7b3896acb199577afa85451da38f2d2a01..753ed26cc6bfc8276d4405091b78b0e50182b84a 100644
index e7100834ce813e9814139c6d6e957fce15861ab7..298cbc74a7d26de1cd0fb356ce9e802c0cc3a1ca 100644
--- a/net/minecraft/world/entity/animal/Cow.java
+++ b/net/minecraft/world/entity/animal/Cow.java
@@ -54,6 +54,13 @@ public class Cow extends AbstractCow {
@@ -119,7 +119,7 @@ index 9dbc5f7b3896acb199577afa85451da38f2d2a01..753ed26cc6bfc8276d4405091b78b0e5
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index 50c8030a9ac6d1fc465cdf6ffbc88f85933405b0..8066bdf7c3b8ea37c9649a6f236fd8531b33f951 100644
index ce46a3ff3a24666736211221fa9c5e69b8146be8..0fd04235d75a961465e44defbab9d116bcdd3f4a 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -188,6 +188,13 @@ public class Fox extends Animal {
@@ -150,7 +150,7 @@ index 50c8030a9ac6d1fc465cdf6ffbc88f85933405b0..8066bdf7c3b8ea37c9649a6f236fd853
this.partner.resetLove();
serverLevel.addFreshEntityWithPassengers(fox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason
diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java
index 597250765504186f7e01b3b88c7428258938afb3..95dd6d0aa45330fb09e430d920ab92411ea8926e 100644
index c5a126718c93d01376b73eb1337cfa63d9acd99e..5f7ab269e406e6d6912a58b3b48123d6c4da282c 100644
--- a/net/minecraft/world/entity/animal/HappyGhast.java
+++ b/net/minecraft/world/entity/animal/HappyGhast.java
@@ -145,6 +145,13 @@ public class HappyGhast extends Animal {
@@ -168,7 +168,7 @@ index 597250765504186f7e01b3b88c7428258938afb3..95dd6d0aa45330fb09e430d920ab9241
protected void ageBoundaryReached() {
if (this.isBaby()) {
diff --git a/net/minecraft/world/entity/animal/MushroomCow.java b/net/minecraft/world/entity/animal/MushroomCow.java
index eede8c36b351eb7bd555a0e6e362647e11dbeb2d..5bca000fc9b8ba992e5285ef34b96b5fbcaae0da 100644
index 743faa77525d68181ee38415399bc6078f9360f8..6cbf93991ee375d2051128721a409a3a7a9064e8 100644
--- a/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/net/minecraft/world/entity/animal/MushroomCow.java
@@ -87,6 +87,13 @@ public class MushroomCow extends AbstractCow implements Shearable {
@@ -186,7 +186,7 @@ index eede8c36b351eb7bd555a0e6e362647e11dbeb2d..5bca000fc9b8ba992e5285ef34b96b5f
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
diff --git a/net/minecraft/world/entity/animal/Ocelot.java b/net/minecraft/world/entity/animal/Ocelot.java
index 9f3ab67cf17c4f66da8bec0c9b818025ef303040..bc81c68fda213f3d64be5f480ae87264c581a52a 100644
index 751aa4fea84db8e385001633df0c0d18ef6fde3a..c6f8e978df2ff28c0da243e44d26e33dacf221e5 100644
--- a/net/minecraft/world/entity/animal/Ocelot.java
+++ b/net/minecraft/world/entity/animal/Ocelot.java
@@ -89,6 +89,13 @@ public class Ocelot extends Animal {
@@ -204,7 +204,7 @@ index 9f3ab67cf17c4f66da8bec0c9b818025ef303040..bc81c68fda213f3d64be5f480ae87264
return this.entityData.get(DATA_TRUSTING);
}
diff --git a/net/minecraft/world/entity/animal/Panda.java b/net/minecraft/world/entity/animal/Panda.java
index b31e2ef8a498fe33107a5c4ee2b4e056a44027cc..83110d64ab7fd9b30a9fee1c5240c3de11c2514a 100644
index c74f2a95a473464be3497ea39e366564d3f74e66..09e64eda71bfc1d55ec9fa37c6241c1d4cdc5842 100644
--- a/net/minecraft/world/entity/animal/Panda.java
+++ b/net/minecraft/world/entity/animal/Panda.java
@@ -142,6 +142,13 @@ public class Panda extends Animal {
@@ -222,7 +222,7 @@ index b31e2ef8a498fe33107a5c4ee2b4e056a44027cc..83110d64ab7fd9b30a9fee1c5240c3de
protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) {
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java
index 24f7e486dec1714d917342887afaf775ef6300d5..35afe8dc9fb3ad6e9103f4fb60742ad70d933f85 100644
index debda7f54b05831d16014fb271b1a996822fecb5..eeccbee1f8e11862813abf0ed0d0f03bf28b376f 100644
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -201,6 +201,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -240,7 +240,7 @@ index 24f7e486dec1714d917342887afaf775ef6300d5..35afe8dc9fb3ad6e9103f4fb60742ad7
@Override
public SpawnGroupData finalizeSpawn(
diff --git a/net/minecraft/world/entity/animal/Pig.java b/net/minecraft/world/entity/animal/Pig.java
index 39f6a3f3ea5f7e51580b7cbf9bbfd4a04368a380..50d20169b0a8ccc78e8573d26663e800f70a9f66 100644
index 8a8c796377254d47e68d0d8b1c9bdac7d4b99360..5300c3ae50633aa513c25384c1a2084701921cb9 100644
--- a/net/minecraft/world/entity/animal/Pig.java
+++ b/net/minecraft/world/entity/animal/Pig.java
@@ -91,6 +91,13 @@ public class Pig extends Animal implements ItemSteerable {
@@ -258,7 +258,7 @@ index 39f6a3f3ea5f7e51580b7cbf9bbfd4a04368a380..50d20169b0a8ccc78e8573d26663e800
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/PolarBear.java b/net/minecraft/world/entity/animal/PolarBear.java
index 75eb4a6dd43346622d6c528aa6e66d251167d3ac..63fae10cea012f6f00a52d375e39b64538f88208 100644
index 2cf417f3bcf338a3edc4a2f71d8a700aca2e52dc..884137b428a1fe69bb61b9ae05b652357daecc27 100644
--- a/net/minecraft/world/entity/animal/PolarBear.java
+++ b/net/minecraft/world/entity/animal/PolarBear.java
@@ -125,6 +125,13 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -274,9 +274,9 @@ index 75eb4a6dd43346622d6c528aa6e66d251167d3ac..63fae10cea012f6f00a52d375e39b645
+
@Nullable
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob otherParent) {
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java
index b644b85f2509f584770dee11677e5bfeef4a46a2..ec2620726f84a59312b03044b181ca436122d9bb 100644
index 1b29d2a49350ff557e09b1297b3825f2cc28bad3..318729fdaa9c6dc7ee480618804a19fb29b6e76d 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -153,6 +153,13 @@ public class Rabbit extends Animal {
@@ -294,7 +294,7 @@ index b644b85f2509f584770dee11677e5bfeef4a46a2..ec2620726f84a59312b03044b181ca43
public void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java
index b9dd8a359711a1993b515fda4b81e61d28a4da49..966f21d90996a9c162e3f60ff53edb53507645b3 100644
index 88bd025f491ec17884007cc5c1b57c64461d2901..38b6678cbbce86e62efe08ece6634b1a5895dd84 100644
--- a/net/minecraft/world/entity/animal/Turtle.java
+++ b/net/minecraft/world/entity/animal/Turtle.java
@@ -111,6 +111,13 @@ public class Turtle extends Animal {
@@ -325,7 +325,7 @@ index b9dd8a359711a1993b515fda4b81e61d28a4da49..966f21d90996a9c162e3f60ff53edb53
this.partner.resetLove();
RandomSource random = this.animal.getRandom();
diff --git a/net/minecraft/world/entity/animal/armadillo/Armadillo.java b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
index c77284ba3dc3c2eb13ba97bbdcdea7c4a864c195..33e678dca2a5f50eadcf6719822190cedf5265dd 100644
index 2343f4fcca96f4887c6fb00e8fdc43b959aba69e..cee8103cf9406600930f34b4801748db0e2fb8ed 100644
--- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java
+++ b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
@@ -107,6 +107,13 @@ public class Armadillo extends Animal {
@@ -343,7 +343,7 @@ index c77284ba3dc3c2eb13ba97bbdcdea7c4a864c195..33e678dca2a5f50eadcf6719822190ce
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 9bec0aa8cf669d68f9cdb87621024ac4dfe217c9..a56ff850de466a592855a9bf2bc395c2e4b97c17 100644
index 330caf84f0a8e0edff764d4bd34b85b54b9f057f..277e955eabed07bdc50531dfe182de8cb05e56c2 100644
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -146,6 +146,13 @@ public class Axolotl extends Animal implements Bucketable {
@@ -361,7 +361,7 @@ index 9bec0aa8cf669d68f9cdb87621024ac4dfe217c9..a56ff850de466a592855a9bf2bc395c2
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return 0.0F;
diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java
index 3a794ff3d68c86b4e5ef93ff8f5cedfa07d22f99..bb750bcc35a3dd75c112dea445595ab27cc15fd5 100644
index 78df0eb0a0b6765406bd0dc041a02b099d86dd60..cc71c575a8fb62c41198c6e1f27bd0e88380f5bc 100644
--- a/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/net/minecraft/world/entity/animal/camel/Camel.java
@@ -97,6 +97,13 @@ public class Camel extends AbstractHorse {
@@ -379,7 +379,7 @@ index 3a794ff3d68c86b4e5ef93ff8f5cedfa07d22f99..bb750bcc35a3dd75c112dea445595ab2
protected void addAdditionalSaveData(ValueOutput output) {
super.addAdditionalSaveData(output);
diff --git a/net/minecraft/world/entity/animal/frog/Frog.java b/net/minecraft/world/entity/animal/frog/Frog.java
index 054fb0c62a827e708e2195c4d4991e24df2eca78..295a907236c2f0ad4038a86edef45374da906d98 100644
index 4979ae6dc8f6c2361b443b8bbe90738e4a199200..78863bd593acaa46f33a49fadbd0cdb025074c11 100644
--- a/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/net/minecraft/world/entity/animal/frog/Frog.java
@@ -164,6 +164,13 @@ public class Frog extends Animal {
@@ -397,7 +397,7 @@ index 054fb0c62a827e708e2195c4d4991e24df2eca78..295a907236c2f0ad4038a86edef45374
protected Brain.Provider<Frog> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index 330fe06b0b1d4c25c69acde22c2e9c00e0756a52..52d35093b9fc84e27b4c4e62883a7e581e8c0f5b 100644
index 3f264db00d9312cc1e8bfba8da0c829774ba00aa..673b90e3af9a9fdc03a4cbda9702e49def025d29 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -131,6 +131,13 @@ public class Goat extends Animal {
@@ -415,7 +415,7 @@ index 330fe06b0b1d4c25c69acde22c2e9c00e0756a52..52d35093b9fc84e27b4c4e62883a7e58
protected Brain.Provider<Goat> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/animal/horse/Donkey.java b/net/minecraft/world/entity/animal/horse/Donkey.java
index 3aa12702cd1f4ef160180bc6ba64a6566cbddc9d..9e1100d672bfb712854d23203d0b730b8cc78a3d 100644
index 65470905a29f1ae0ea7ac1d29ee108adcbc499c7..293d6059bc5e50b66b23e8e2e1d759e61cb26999 100644
--- a/net/minecraft/world/entity/animal/horse/Donkey.java
+++ b/net/minecraft/world/entity/animal/horse/Donkey.java
@@ -40,6 +40,13 @@ public class Donkey extends AbstractChestedHorse {
@@ -433,7 +433,7 @@ index 3aa12702cd1f4ef160180bc6ba64a6566cbddc9d..9e1100d672bfb712854d23203d0b730b
public SoundEvent getAmbientSound() {
return SoundEvents.DONKEY_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/horse/Horse.java b/net/minecraft/world/entity/animal/horse/Horse.java
index 53c0eac62018a0d88e30b8c13de94216ff829cd8..3678c767818abb9e4180c2ade378ca09761ad784 100644
index 78b68881357f1bc1111478bb7c9e4f1ba55e055e..513856b5047842edd501eb6c23c13e3bf10d7249 100644
--- a/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/net/minecraft/world/entity/animal/horse/Horse.java
@@ -71,6 +71,13 @@ public class Horse extends AbstractHorse {
@@ -451,7 +451,7 @@ index 53c0eac62018a0d88e30b8c13de94216ff829cd8..3678c767818abb9e4180c2ade378ca09
protected void randomizeAttributes(RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt));
diff --git a/net/minecraft/world/entity/animal/horse/Llama.java b/net/minecraft/world/entity/animal/horse/Llama.java
index fb2b45b85d9f8ae5546573a31cf0d5a39dad149c..d6ae23d48dacb3f445465daf755e6fe7ad8c9c70 100644
index d1f1f30486ea5c4785e5c4c0104fa31a2e27521a..df3fd52ed0bc794919ff20c4eb8c561ec2b5ad8f 100644
--- a/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/net/minecraft/world/entity/animal/horse/Llama.java
@@ -154,6 +154,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -469,7 +469,7 @@ index fb2b45b85d9f8ae5546573a31cf0d5a39dad149c..d6ae23d48dacb3f445465daf755e6fe7
return false;
}
diff --git a/net/minecraft/world/entity/animal/horse/Mule.java b/net/minecraft/world/entity/animal/horse/Mule.java
index 0107bb5fc029c5390d73e9a4cd08c13838a2ded5..fe2570ceb96d39ff6598a67a4ac4b4707eb28656 100644
index dc3723c5a0bca9e1023629657f668c7e5f6df4a4..5e6a9467d15e551ab2c8b3e42abd096a85e36037 100644
--- a/net/minecraft/world/entity/animal/horse/Mule.java
+++ b/net/minecraft/world/entity/animal/horse/Mule.java
@@ -39,6 +39,13 @@ public class Mule extends AbstractChestedHorse {
@@ -487,7 +487,7 @@ index 0107bb5fc029c5390d73e9a4cd08c13838a2ded5..fe2570ceb96d39ff6598a67a4ac4b470
public SoundEvent getAmbientSound() {
return SoundEvents.MULE_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index a7bcc0ff10e429ebfe91173c392e9a0c07903289..042b73f0807438327ebf4a2fd3a9d54d52159511 100644
index 557e06b9002217b7ba5a07399bd71491cb0236c6..024591d5ffd396391864554e7b532910d465c30a 100644
--- a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -66,6 +66,13 @@ public class SkeletonHorse extends AbstractHorse {
@@ -505,7 +505,7 @@ index a7bcc0ff10e429ebfe91173c392e9a0c07903289..042b73f0807438327ebf4a2fd3a9d54d
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/horse/TraderLlama.java b/net/minecraft/world/entity/animal/horse/TraderLlama.java
index db07a476fdaa1cfde2b44be77cdc5a17a17bd898..09769f47dc2849ee9eeb60b3c4edb7536a5cf87d 100644
index a566336bb088286a29eeeca1703addc98922f6e6..8b63470177d60d79fe0b774a301d36701026a803 100644
--- a/net/minecraft/world/entity/animal/horse/TraderLlama.java
+++ b/net/minecraft/world/entity/animal/horse/TraderLlama.java
@@ -70,6 +70,13 @@ public class TraderLlama extends Llama {
@@ -523,7 +523,7 @@ index db07a476fdaa1cfde2b44be77cdc5a17a17bd898..09769f47dc2849ee9eeb60b3c4edb753
public boolean isTraderLlama() {
return true;
diff --git a/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index 3d597bd355b6c918ea1bf4b7d537ad4f76e218d2..69b9ae449e58f13bf0950fdfe3f89742af89956e 100644
index 6684f5dfb7dec101bad15b7ede3d9fd377aacd45..0d6d470b8680aed64d2b208b2ed9b037c96563d9 100644
--- a/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -62,6 +62,13 @@ public class ZombieHorse extends AbstractHorse {
@@ -541,7 +541,7 @@ index 3d597bd355b6c918ea1bf4b7d537ad4f76e218d2..69b9ae449e58f13bf0950fdfe3f89742
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index a36ce4568ae173edaeab04b580c88c5389487bd5..eca2b9e1b92ba626eb6203dbc5678976f43bdc29 100644
index 0e371655c8a500bad69626475222f9e726013c02..e5d495c12e2cd5a215f5b908ad65f6366eb47808 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -87,6 +87,13 @@ public class Sheep extends Animal implements Shearable {
@@ -559,7 +559,7 @@ index a36ce4568ae173edaeab04b580c88c5389487bd5..eca2b9e1b92ba626eb6203dbc5678976
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index 04c80778f9ce75e337c6c97e8fe6c47f275a558c..93dc1c39d1d61a0f3c2b84e239dc083ee0abec65 100644
index cd6a5173e2c6d49c7df9baae464b391ea1fdd620..d7e61ce6e2b77817f4eca913f2c319096e7f244f 100644
--- a/net/minecraft/world/entity/animal/sniffer/Sniffer.java
+++ b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
@@ -113,6 +113,13 @@ public class Sniffer extends Animal {
@@ -577,7 +577,7 @@ index 04c80778f9ce75e337c6c97e8fe6c47f275a558c..93dc1c39d1d61a0f3c2b84e239dc083e
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index 70753293961f73f917973c35e1d3fb81b836f1f8..c8966878b861ba8ecf1be1ca830742d2b4e76864 100644
index 56db9816b52aed4facc80c95ec664cd98c6daca2..fc9b895b69385b04d56d071cbd498e61db6e6cb4 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -216,6 +216,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -595,7 +595,7 @@ index 70753293961f73f917973c35e1d3fb81b836f1f8..c8966878b861ba8ecf1be1ca830742d2
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java
index 255d4d0cd8f48bf09232cd0fecb87f430e68084a..eb33b66fa3bc705552b6abf2d8e941e84cdda60e 100644
index 5d41885ceb7145a516a398da0d7553faeb386710..6760c826cf72cc704f54ea0e3d6aaffde4ac22c4 100644
--- a/net/minecraft/world/entity/monster/Strider.java
+++ b/net/minecraft/world/entity/monster/Strider.java
@@ -117,6 +117,13 @@ public class Strider extends Animal implements ItemSteerable {
@@ -613,7 +613,7 @@ index 255d4d0cd8f48bf09232cd0fecb87f430e68084a..eb33b66fa3bc705552b6abf2d8e941e8
EntityType<Strider> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index c74c6409ce61f9d4d728b6ce6693bb7ba665e474..b19717af413f739abf632050409db25e2e85e0c6 100644
index 1062df067d6b98ffba27864450d8a867446aae79..2de148c874feeff23da144037562ded852e48a04 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -120,6 +120,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {

View File

@@ -8,7 +8,7 @@ farm Nether Wart. Reimplemented based on a feature of the carpet-extra
mod.
diff --git a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
index de89e45ecd4ac4c6db8b74bbe3dd6b4a7cf21671..f15e4cfd8c0ac5e08779dbe6b9aa40bfe9ce4d8f 100644
index ed286786bb8b4eee335ad3a601ce3713df36f5a9..7776ad5d87ee8aadc9fcb36fbce62fe868754942 100644
--- a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
+++ b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
@@ -32,6 +32,7 @@ public class HarvestFarmland extends Behavior<Villager> {
@@ -32,9 +32,9 @@ index de89e45ecd4ac4c6db8b74bbe3dd6b4a7cf21671..f15e4cfd8c0ac5e08779dbe6b9aa40bf
this.validFarmlandAroundVillager.clear();
@@ -83,6 +85,7 @@ public class HarvestFarmland extends Behavior<Villager> {
BlockState blockState = serverLevel.getBlockState(pos);
BlockState blockState = level.getBlockState(pos);
Block block = blockState.getBlock();
Block block1 = serverLevel.getBlockState(pos.below()).getBlock();
Block block1 = level.getBlockState(pos.below()).getBlock();
+ if (this.clericWartFarmer) return block == net.minecraft.world.level.block.Blocks.NETHER_WART && blockState.getValue(net.minecraft.world.level.block.NetherWartBlock.AGE) == 3 || blockState.isAir() && block1 == net.minecraft.world.level.block.Blocks.SOUL_SAND; // Purpur - Option for Villager Clerics to farm Nether Wart
return block instanceof CropBlock && ((CropBlock)block).isMaxAge(blockState) || blockState.isAir() && block1 instanceof FarmBlock;
}
@@ -135,7 +135,7 @@ index f0583076ef62189508a392a76c3fb6b741bbdde9..dc4a9ddb8479e9d0c4895b19d7d677cd
brain.setMemory(MemoryModuleType.SECONDARY_JOB_SITE, list);
} else {
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index 7db0456e6cd88c30ff8849644e3ea8b599ca325d..9f8fd64a3812e6d6bfefb21dd793aae9ad2bcd94 100644
index b7b290e9870f8f51af7e44f71b1e04ce9c552626..33af111898df4e10367e6ef0d01eaf376bfc5819 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -314,7 +314,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Add mobGriefing override to everything affected
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index f48c543287a99d4281de4085e7a65f128bd2dc4a..7c65124b4c10166d57ac3c0e8435be06bf05efef 100644
index 01b7bdf66a2b52d204257e497cfccc11a20ce4b0..ab3ddd1c52b561c56ee240ee68f5e5aca706b744 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -1943,7 +1943,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -1949,7 +1949,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
if (this.level() instanceof ServerLevel serverLevel) {
boolean var6 = false;
if (this.dead && entitySource instanceof WitherBoss) { // Paper
@@ -18,7 +18,7 @@ index f48c543287a99d4281de4085e7a65f128bd2dc4a..7c65124b4c10166d57ac3c0e8435be06
BlockState blockState = Blocks.WITHER_ROSE.defaultBlockState();
if (this.level().getBlockState(blockPos).isAir() && blockState.canSurvive(this.level(), blockPos)) {
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 2bef2cd10447f41d5fc4c37eb574ce32fc2386ab..8f58641132231f450d0fb0c1fa61559c6cef8dcf 100644
index 996e9e098ed510cdadc82e4f133b6aec509040d3..e4aaa451129d0ed11d855b53aae0c0279b899479 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -554,7 +554,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -31,7 +31,7 @@ index 2bef2cd10447f41d5fc4c37eb574ce32fc2386ab..8f58641132231f450d0fb0c1fa61559c
for (ItemEntity itemEntity : this.level()
diff --git a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
index f15e4cfd8c0ac5e08779dbe6b9aa40bfe9ce4d8f..ec03365dc786596521d280ea4d6948c651ee8deb 100644
index 7776ad5d87ee8aadc9fcb36fbce62fe868754942..da974278e763df239f834c1d3653919d37787d42 100644
--- a/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
+++ b/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
@@ -49,7 +49,7 @@ public class HarvestFarmland extends Behavior<Villager> {
@@ -92,7 +92,7 @@ index 962c0b327a46cf0c58904466d3bcb608f474c329..72cc1d2cc76dd564b7fd5c797e8e784b
} else if (this.nextStartTick > 0) {
this.nextStartTick--;
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index 8066bdf7c3b8ea37c9649a6f236fd8531b33f951..cb0cb2b1701a9b17557cb6d97090db3743200e4c 100644
index 0fd04235d75a961465e44defbab9d116bcdd3f4a..51e28983b67edcd744f38aba38c704dfd2ffff6e 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -1058,7 +1058,7 @@ public class Fox extends Animal {
@@ -105,7 +105,7 @@ index 8066bdf7c3b8ea37c9649a6f236fd8531b33f951..cb0cb2b1701a9b17557cb6d97090db37
if (blockState.is(Blocks.SWEET_BERRY_BUSH)) {
this.pickSweetBerries(blockState);
diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java
index ec2620726f84a59312b03044b181ca436122d9bb..a2ba60d8858bb595319cce8e97c91638701176f9 100644
index 318729fdaa9c6dc7ee480618804a19fb29b6e76d..5e194a54a3a8d350c08edcba312e95b46db6c300 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -648,7 +648,7 @@ public class Rabbit extends Animal {
@@ -118,7 +118,7 @@ index ec2620726f84a59312b03044b181ca436122d9bb..a2ba60d8858bb595319cce8e97c91638
}
diff --git a/net/minecraft/world/entity/animal/SnowGolem.java b/net/minecraft/world/entity/animal/SnowGolem.java
index 3204145fc93bbeaad203f845edb984895a6ff494..405710ff3bb9344041449711c0b8311b00e75728 100644
index d6f2a04cf04090e3cb68f5111d47bff9f1243568..20f73d895bc55581c62283825a6d5296150ac707 100644
--- a/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/net/minecraft/world/entity/animal/SnowGolem.java
@@ -136,7 +136,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -131,7 +131,7 @@ index 3204145fc93bbeaad203f845edb984895a6ff494..405710ff3bb9344041449711c0b8311b
}
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 00ea1b2b62e422f8420dcd8a7fdf186474695ac7..51115b67b9236b8ef3f89907fea60b5d448edde7 100644
index 81f73a5b400a346ee86285bf4ca6c846c0c4b87e..1f9db9786995744c5ca5d97d8cf46fdd69aa8aa5 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -544,7 +544,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -144,7 +144,7 @@ index 00ea1b2b62e422f8420dcd8a7fdf186474695ac7..51115b67b9236b8ef3f89907fea60b5d
//flag1 = level.removeBlock(blockPos, false) || flag1;
flag1 = true;
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index 3023c8e5b16b54a14abeb832f0a82456fa999707..b65af78ece66a60e36cc7aad1ad3cd10445223fa 100644
index 8e5e364d297a3eb55b67ce7081ec7548cbf7f3a6..f6af57f402847e0f9af6a00b387d8a4b3e4d2afe 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -495,7 +495,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -157,7 +157,7 @@ index 3023c8e5b16b54a14abeb832f0a82456fa999707..b65af78ece66a60e36cc7aad1ad3cd10
int alternativeTarget = Mth.floor(this.getBbWidth() / 2.0F + 1.0F);
int floor = Mth.floor(this.getBbHeight());
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index 73e3b50ffa544f29267413c88bcf21af71d1ff4f..9a1271771008089a5b08792bfd4cdc18a4458469 100644
index b8fd334b9dd704d5d4502a6e051db09cced24f59..e6304680a8f2e9fb5fdcfd166471fd3355fb643c 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -513,7 +513,7 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -179,7 +179,7 @@ index 73e3b50ffa544f29267413c88bcf21af71d1ff4f..9a1271771008089a5b08792bfd4cdc18
}
diff --git a/net/minecraft/world/entity/monster/Evoker.java b/net/minecraft/world/entity/monster/Evoker.java
index e8aac93cffa3a9d4105c03c1aeb4d571ee0eba6c..4d1d746e39d136243dc620c89b29daf80dc62230 100644
index a5243b7969fec5d60b94368caf5e962c348c4135..24d104036902b8aaf79325e33d3063ccea29e13e 100644
--- a/net/minecraft/world/entity/monster/Evoker.java
+++ b/net/minecraft/world/entity/monster/Evoker.java
@@ -306,7 +306,7 @@ public class Evoker extends SpellcasterIllager {
@@ -192,7 +192,7 @@ index e8aac93cffa3a9d4105c03c1aeb4d571ee0eba6c..4d1d746e39d136243dc620c89b29daf8
} else {
List<Sheep> nearbyEntities = serverLevel.getNearbyEntities(
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index 9e7b07f353fb8f0650b8805014c371368eaabcd5..23b6d3c9746e1ee641d8b19ec50805cb271a9cc9 100644
index f43125ca7d52170a1ca2a54a5b2758794f25fbd1..a1fb74b51f51c045eed0fe09eceafa6d533babe2 100644
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -179,7 +179,7 @@ public class Ravager extends Raider {
@@ -205,7 +205,7 @@ index 9e7b07f353fb8f0650b8805014c371368eaabcd5..23b6d3c9746e1ee641d8b19ec50805cb
AABB aabb = this.getBoundingBox().inflate(0.2);
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
index c200d57841304ba0d7a76fdd9a440fe9f2b25136..6f4aaeb645d9638764c3516d2f1501661ac56170 100644
index 23722456ce82dcc6b571b96e5c9b0d70005f9c2e..97662c39001b4433601f46ef83f28c0ee916c02a 100644
--- a/net/minecraft/world/entity/monster/Silverfish.java
+++ b/net/minecraft/world/entity/monster/Silverfish.java
@@ -170,7 +170,7 @@ public class Silverfish extends Monster {
@@ -227,7 +227,7 @@ index c200d57841304ba0d7a76fdd9a440fe9f2b25136..6f4aaeb645d9638764c3516d2f150166
continue;
}
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
index c44fd14350b2504fc38ae22a61029d5c44b60918..1d9dc37055a2a9f41945b39812e1be15a8eb57e5 100644
index 19211c0d78113da7827a071fd510b4f36e63a9f2..4e1a7b6caf8c0a3721a3a799261d7b63301c3b29 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -438,7 +438,7 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -240,13 +240,13 @@ index c44fd14350b2504fc38ae22a61029d5c44b60918..1d9dc37055a2a9f41945b39812e1be15
protected boolean canReplaceCurrentItem(ItemStack candidate) {
diff --git a/net/minecraft/world/entity/projectile/LargeFireball.java b/net/minecraft/world/entity/projectile/LargeFireball.java
index dd0ec97ea4561d2dccf735580faf0d65d6ac4b0d..779879f8d678a5e45e2752e6e033cc350acac89b 100644
index b782957c118313fcaa80d127291e5b6d614da98a..f92ea082aca3aa75839e8ce0001b0f272d3235ce 100644
--- a/net/minecraft/world/entity/projectile/LargeFireball.java
+++ b/net/minecraft/world/entity/projectile/LargeFireball.java
@@ -20,20 +20,20 @@ public class LargeFireball extends Fireball {
public LargeFireball(EntityType<? extends LargeFireball> entityType, Level level) {
super(entityType, level);
public LargeFireball(EntityType<? extends LargeFireball> type, Level level) {
super(type, level);
- this.isIncendiary = (level instanceof ServerLevel serverLevel) && serverLevel.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING); // CraftBukkit
+ this.isIncendiary = (level instanceof ServerLevel serverLevel) && serverLevel.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING, serverLevel.purpurConfig.fireballsMobGriefingOverride); // CraftBukkit // Purpur - Add mobGriefing override to everything affected
}
@@ -268,7 +268,7 @@ index dd0ec97ea4561d2dccf735580faf0d65d6ac4b0d..779879f8d678a5e45e2752e6e033cc35
org.bukkit.event.entity.ExplosionPrimeEvent event = new org.bukkit.event.entity.ExplosionPrimeEvent((org.bukkit.entity.Explosive) this.getBukkitEntity());
if (event.callEvent()) {
diff --git a/net/minecraft/world/entity/projectile/Projectile.java b/net/minecraft/world/entity/projectile/Projectile.java
index d538b1df2b07abd1c4257726891238696bf7a718..c0e83bbdcf3662bed498e0fe5a78d2b25c22a94e 100644
index cdb73cab0a64f51d65a7420fdac44455c6c77a48..74f5478c9eb8d0a01a7634980b6003198b8ea50c 100644
--- a/net/minecraft/world/entity/projectile/Projectile.java
+++ b/net/minecraft/world/entity/projectile/Projectile.java
@@ -436,7 +436,7 @@ public abstract class Projectile extends Entity implements TraceableEntity {
@@ -281,7 +281,7 @@ index d538b1df2b07abd1c4257726891238696bf7a718..c0e83bbdcf3662bed498e0fe5a78d2b2
public boolean mayBreak(ServerLevel level) {
diff --git a/net/minecraft/world/entity/projectile/SmallFireball.java b/net/minecraft/world/entity/projectile/SmallFireball.java
index d0d54c67542544fd412d191bd4d4a83a1a629078..5f3b0435e4d1fbf27937887d0ef80c93fff87016 100644
index 78b1fb603fb33700229dc3ce93cd6e316eb95140..9471f4198f9e20de765552bf6a22ca448e669c94 100644
--- a/net/minecraft/world/entity/projectile/SmallFireball.java
+++ b/net/minecraft/world/entity/projectile/SmallFireball.java
@@ -25,7 +25,7 @@ public class SmallFireball extends Fireball {
@@ -294,7 +294,7 @@ index d0d54c67542544fd412d191bd4d4a83a1a629078..5f3b0435e4d1fbf27937887d0ef80c93
// CraftBukkit end
}
diff --git a/net/minecraft/world/entity/raid/Raider.java b/net/minecraft/world/entity/raid/Raider.java
index a495789b2d21fa9a24d5dca4ecfa196ddce49466..2254493c889b8967011c09dc448ba375d82e2035 100644
index 8d8315edfb69b062ed5e3d957f4043ec411dd5d7..4d72b60489e9c684905ca251ead011aaa8ce1cdd 100644
--- a/net/minecraft/world/entity/raid/Raider.java
+++ b/net/minecraft/world/entity/raid/Raider.java
@@ -401,7 +401,7 @@ public abstract class Raider extends PatrollingMonster {
@@ -307,10 +307,10 @@ index a495789b2d21fa9a24d5dca4ecfa196ddce49466..2254493c889b8967011c09dc448ba375
return true;
} else if (this.mob.getCurrentRaid().isOver()) {
diff --git a/net/minecraft/world/level/GameRules.java b/net/minecraft/world/level/GameRules.java
index 9a7a98c0928e1b6816b5a879fd2f9d43a9fb6304..225caea92f90d2468f08b7a6603ed7fc0bfd65b6 100644
index c6e9dac65474cc9c8a1200756b5be45c22fe1637..22c558f6ed1d2593b7bd1505730cd25c804c5eda 100644
--- a/net/minecraft/world/level/GameRules.java
+++ b/net/minecraft/world/level/GameRules.java
@@ -367,6 +367,13 @@ public class GameRules {
@@ -365,6 +365,13 @@ public class GameRules {
this.<T>getRule(key).setFrom(rule, level); // CraftBukkit - per-world
}
@@ -325,12 +325,12 @@ index 9a7a98c0928e1b6816b5a879fd2f9d43a9fb6304..225caea92f90d2468f08b7a6603ed7fc
return this.getRule(key).get();
}
diff --git a/net/minecraft/world/level/block/CropBlock.java b/net/minecraft/world/level/block/CropBlock.java
index 5f6b423dd1dabf9bd3dec551f4bd86a44f6c120d..6f0544b2c77c6555f2d376cbe6190f54646c91d8 100644
index 4d7e01fea4bac6cf71cbca3deae632df0f738497..c5cbaa9ece0d304503998a4bca5e3527e0ea0601 100644
--- a/net/minecraft/world/level/block/CropBlock.java
+++ b/net/minecraft/world/level/block/CropBlock.java
@@ -169,7 +169,7 @@ public class CropBlock extends VegetationBlock implements BonemealableBlock {
@Override
protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean flag) {
protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean pastEdges) {
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(level, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
- if (level instanceof ServerLevel serverLevel && entity instanceof Ravager && serverLevel.purpurConfig.ravagerGriefableBlocks.contains(serverLevel.getBlockState(pos).getBlock()) && org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !serverLevel.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit // Purpur - Configurable ravager griefable blocks list
+ if (level instanceof ServerLevel serverLevel && entity instanceof Ravager && serverLevel.purpurConfig.ravagerGriefableBlocks.contains(serverLevel.getBlockState(pos).getBlock()) && org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !serverLevel.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING, serverLevel.purpurConfig.ravagerMobGriefingOverride))) { // CraftBukkit // Purpur - Configurable ravager griefable blocks list // Purpur - Add mobGriefing override to everything affected
@@ -351,7 +351,7 @@ index 9883e6d1a1b76155c8ba1817fda6615b4742e18e..dc1ad33f801c308871931d271f97ff91
// CraftBukkit start - Interact soil
org.bukkit.event.Cancellable cancellable;
diff --git a/net/minecraft/world/level/block/PowderSnowBlock.java b/net/minecraft/world/level/block/PowderSnowBlock.java
index c6dc40b72c7bd6e0e65262fc4eb5573caa635bd3..7e1129eaf50ea43872b2b7eb4278e7ee3c858594 100644
index cfc0fda316d14c178a663dbbd4e19f1469519f0f..99abf0f4e73cbfe916901dfc9081fec6e437c758 100644
--- a/net/minecraft/world/level/block/PowderSnowBlock.java
+++ b/net/minecraft/world/level/block/PowderSnowBlock.java
@@ -96,7 +96,7 @@ public class PowderSnowBlock extends Block implements BucketPickup {
@@ -364,7 +364,7 @@ index c6dc40b72c7bd6e0e65262fc4eb5573caa635bd3..7e1129eaf50ea43872b2b7eb4278e7ee
}
// CraftBukkit end
diff --git a/net/minecraft/world/level/block/TurtleEggBlock.java b/net/minecraft/world/level/block/TurtleEggBlock.java
index 00554972f51d1758f0d81364bdc13901fcdb1052..91e43cbb8bf5faf2677b170f6884fb2b4e74ca86 100644
index 7be238baf5373296fa5192704969307146e2dfa4..0d8d9b560eadce88f0b334270767ee1d53c7cf79 100644
--- a/net/minecraft/world/level/block/TurtleEggBlock.java
+++ b/net/minecraft/world/level/block/TurtleEggBlock.java
@@ -214,7 +214,7 @@ public class TurtleEggBlock extends Block {

View File

@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/net/minecraft/world/level/block/EndGatewayBlock.java b/net/minecraft/world/level/block/EndGatewayBlock.java
index b52fef8f15fe4789be161ae6c22f0f27ac6a27fc..294ac7dbdd4c3ab80af3de2dc15ce8f5e18851dc 100644
index 6161cd82dade8b4119ab0b8ba84451d592ce5858..5830b9a57786c6b0ab50a47aa68e960a580a31f6 100644
--- a/net/minecraft/world/level/block/EndGatewayBlock.java
+++ b/net/minecraft/world/level/block/EndGatewayBlock.java
@@ -99,6 +99,13 @@ public class EndGatewayBlock extends BaseEntityBlock implements Portal {
@@ -35,11 +35,11 @@ index b52fef8f15fe4789be161ae6c22f0f27ac6a27fc..294ac7dbdd4c3ab80af3de2dc15ce8f5
TheEndGatewayBlockEntity.triggerCooldown(level, pos, state, theEndGatewayBlockEntity);
}
diff --git a/net/minecraft/world/level/block/EndPortalBlock.java b/net/minecraft/world/level/block/EndPortalBlock.java
index c001b94efb4b5077c97ace11920a4c1b81e03848..b42203825222fb252f8bdd9d98c5e23bb37505db 100644
index 20c34b4601979e9a36e500da2143e446eeef098e..8b44e7e98085dc75ba631922ae4d14d6cfc5565c 100644
--- a/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/net/minecraft/world/level/block/EndPortalBlock.java
@@ -61,6 +61,13 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal {
protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean flag) {
protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean pastEdges) {
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(level, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
if (entity.canUsePortal(false)) {
+ // Purpur start - Add EntityTeleportHinderedEvent
@@ -53,11 +53,11 @@ index c001b94efb4b5077c97ace11920a4c1b81e03848..b42203825222fb252f8bdd9d98c5e23b
org.bukkit.event.entity.EntityPortalEnterEvent event = new org.bukkit.event.entity.EntityPortalEnterEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.util.CraftLocation.toBukkit(pos, level), org.bukkit.PortalType.ENDER); // Paper - add portal type
level.getCraftServer().getPluginManager().callEvent(event);
diff --git a/net/minecraft/world/level/block/NetherPortalBlock.java b/net/minecraft/world/level/block/NetherPortalBlock.java
index 807cc0d489b752c71f4e4ba03622af2815859282..774dc449eae37c13fb4c3160409300f947282cd5 100644
index da01114a89d62c80550272987d2df26daa661d65..e72d3f2776369a39b7429dc6a8aee9d05b5349ff 100644
--- a/net/minecraft/world/level/block/NetherPortalBlock.java
+++ b/net/minecraft/world/level/block/NetherPortalBlock.java
@@ -113,6 +113,13 @@ public class NetherPortalBlock extends Block implements Portal {
protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean flag) {
protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean pastEdges) {
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(level, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
if (entity.canUsePortal(false)) {
+ // Purpur start - Add EntityTeleportHinderedEvent

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Toggle for water sensitive mob damage
diff --git a/net/minecraft/world/entity/GlowSquid.java b/net/minecraft/world/entity/GlowSquid.java
index 1896f91e10a5e17332836d5354813a18a4dfe6dc..1c446cec71aa163374ab9832c961a6b4c3fc534b 100644
index cbb7e0591dc761d0566ac99dc6e5697b3ba4eeda..a10a1e26d0260968c6becd1e9d68436071da8411 100644
--- a/net/minecraft/world/entity/GlowSquid.java
+++ b/net/minecraft/world/entity/GlowSquid.java
@@ -54,6 +54,13 @@ public class GlowSquid extends Squid {
@@ -23,7 +23,7 @@ index 1896f91e10a5e17332836d5354813a18a4dfe6dc..1c446cec71aa163374ab9832c961a6b4
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java
index c5d2997629db6da1bb883e9b778d9da34e57430f..7b6caaeb34c297f22206d0da0293a56594654657 100644
index 947619d07ef381ab79774b3f6cdc4c2454b632cb..9dd4d9a10df973fbf4e4fc63a8a7b7041f21ede4 100644
--- a/net/minecraft/world/entity/ambient/Bat.java
+++ b/net/minecraft/world/entity/ambient/Bat.java
@@ -111,6 +111,13 @@ public class Bat extends AmbientCreature {
@@ -41,7 +41,7 @@ index c5d2997629db6da1bb883e9b778d9da34e57430f..7b6caaeb34c297f22206d0da0293a565
public boolean isFlapping() {
return !this.isResting() && this.tickCount % 10.0F == 0.0F;
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 68fecbd75d0243706f052f6f4cd654cf411a0782..980d3255d6dc7913fdb5437dafb702c2eff5d56f 100644
index 025ac8b3088ad1e45d10094c7534375a917b3a73..234f02e0b75c6b9a8f52c440c680b539ee783f91 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -184,7 +184,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -53,7 +53,7 @@ index 68fecbd75d0243706f052f6f4cd654cf411a0782..980d3255d6dc7913fdb5437dafb702c2
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
this.setPathfindingMalus(PathType.COCOA, -1.0F);
this.setPathfindingMalus(PathType.FENCE, -1.0F);
@@ -490,6 +490,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -488,6 +488,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
}
// Purpur end - Make entity breeding times configurable
@@ -68,7 +68,7 @@ index 68fecbd75d0243706f052f6f4cd654cf411a0782..980d3255d6dc7913fdb5437dafb702c2
public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME);
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index 5e6a66c1a3532d39dae82eaeb2428605536e2155..41f303078b2e1f0460215fbfe27ff06fd5783c35 100644
index 2411e1a9e98f8db63e326b4bfbe759084e938431..842c03df5a4ee67192f2850b89be45648024fd17 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -132,6 +132,13 @@ public class Cat extends TamableAnimal {
@@ -86,7 +86,7 @@ index 5e6a66c1a3532d39dae82eaeb2428605536e2155..41f303078b2e1f0460215fbfe27ff06f
protected void registerGoals() {
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, stack -> stack.is(ItemTags.CAT_FOOD), true);
diff --git a/net/minecraft/world/entity/animal/Chicken.java b/net/minecraft/world/entity/animal/Chicken.java
index e4702a5a89147bd83fa73a969fab7077ddd623f6..58f7690a05febac5c57ba7ea2aff93b7d94a4291 100644
index b65abf395b3d3c10dc20604b670e44c183f5131b..dde117db5952784e385f242d388b062d0fa1d49d 100644
--- a/net/minecraft/world/entity/animal/Chicken.java
+++ b/net/minecraft/world/entity/animal/Chicken.java
@@ -109,6 +109,13 @@ public class Chicken extends Animal {
@@ -104,7 +104,7 @@ index e4702a5a89147bd83fa73a969fab7077ddd623f6..58f7690a05febac5c57ba7ea2aff93b7
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/Cod.java b/net/minecraft/world/entity/animal/Cod.java
index ed52fbbf93e7a238d0f45981f8629ba8613bf3d4..6128ed595cb97cc11c1a0e1e1673b3af8e428fb8 100644
index 9b9a237a20d8e39ac11a39a4d5782084f97ea674..f8fbba4ae8b0ecf9aec33f60b908a88fa2933713 100644
--- a/net/minecraft/world/entity/animal/Cod.java
+++ b/net/minecraft/world/entity/animal/Cod.java
@@ -32,6 +32,13 @@ public class Cod extends AbstractSchoolingFish {
@@ -122,7 +122,7 @@ index ed52fbbf93e7a238d0f45981f8629ba8613bf3d4..6128ed595cb97cc11c1a0e1e1673b3af
public ItemStack getBucketItemStack() {
return new ItemStack(Items.COD_BUCKET);
diff --git a/net/minecraft/world/entity/animal/Cow.java b/net/minecraft/world/entity/animal/Cow.java
index 753ed26cc6bfc8276d4405091b78b0e50182b84a..d584ffe3cc8dfb5fd4ce352b1da18af6a143d575 100644
index 298cbc74a7d26de1cd0fb356ce9e802c0cc3a1ca..a71b6c8a0c48d9c7121e7d29cff6d388cb2df09f 100644
--- a/net/minecraft/world/entity/animal/Cow.java
+++ b/net/minecraft/world/entity/animal/Cow.java
@@ -61,6 +61,13 @@ public class Cow extends AbstractCow {
@@ -140,7 +140,7 @@ index 753ed26cc6bfc8276d4405091b78b0e50182b84a..d584ffe3cc8dfb5fd4ce352b1da18af6
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Dolphin.java b/net/minecraft/world/entity/animal/Dolphin.java
index 03313754022b5ec682efef68e5d56a59ee2e8b92..e6df7495a8c4e36ec7d0921a7dcccc16a9cb7916 100644
index 71147da158f389207c032bc8e952ddb677e6d0ee..aaeb8a787158171920993719afcacc58ffd0f5a2 100644
--- a/net/minecraft/world/entity/animal/Dolphin.java
+++ b/net/minecraft/world/entity/animal/Dolphin.java
@@ -159,6 +159,13 @@ public class Dolphin extends AgeableWaterCreature {
@@ -158,7 +158,7 @@ index 03313754022b5ec682efef68e5d56a59ee2e8b92..e6df7495a8c4e36ec7d0921a7dcccc16
@Override
public SpawnGroupData finalizeSpawn(
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index cb0cb2b1701a9b17557cb6d97090db3743200e4c..15e5ebdf0446ccf4e380fe910a288d3bbf048549 100644
index 51e28983b67edcd744f38aba38c704dfd2ffff6e..22058c67eff5204202b71d2df9db3e59c2e5f916 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -195,6 +195,13 @@ public class Fox extends Animal {
@@ -176,7 +176,7 @@ index cb0cb2b1701a9b17557cb6d97090db3743200e4c..15e5ebdf0446ccf4e380fe910a288d3b
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java
index 95dd6d0aa45330fb09e430d920ab92411ea8926e..f15dcbd16f910f191f1e4ce8bda857476cc94fee 100644
index 5f7ab269e406e6d6912a58b3b48123d6c4da282c..dbc01564e23e7785e85b16f100925d36496ef51c 100644
--- a/net/minecraft/world/entity/animal/HappyGhast.java
+++ b/net/minecraft/world/entity/animal/HappyGhast.java
@@ -152,6 +152,13 @@ public class HappyGhast extends Animal {
@@ -194,7 +194,7 @@ index 95dd6d0aa45330fb09e430d920ab92411ea8926e..f15dcbd16f910f191f1e4ce8bda85747
protected void ageBoundaryReached() {
if (this.isBaby()) {
diff --git a/net/minecraft/world/entity/animal/IronGolem.java b/net/minecraft/world/entity/animal/IronGolem.java
index 1148a5dcd5eef8e961df5388dbdd49769508007d..e58fb3cbb71693d8556bace35d6e57ea9e455d80 100644
index 89799cb1545b29ff10c25096e5ec7ba12af74eb1..4a7c6dedb23ac1057eda80de4a2cd54fe3e6f76f 100644
--- a/net/minecraft/world/entity/animal/IronGolem.java
+++ b/net/minecraft/world/entity/animal/IronGolem.java
@@ -100,6 +100,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -212,7 +212,7 @@ index 1148a5dcd5eef8e961df5388dbdd49769508007d..e58fb3cbb71693d8556bace35d6e57ea
protected void registerGoals() {
if (this.level().purpurConfig.ironGolemPoppyCalm) this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.ReceiveFlower(this)); // Purpur - Iron golem calm anger options
diff --git a/net/minecraft/world/entity/animal/MushroomCow.java b/net/minecraft/world/entity/animal/MushroomCow.java
index 5bca000fc9b8ba992e5285ef34b96b5fbcaae0da..270563334fcb1b2124e5721ce0d443ac8d712080 100644
index 6cbf93991ee375d2051128721a409a3a7a9064e8..ddd763cc38e8c624db7ef207f244961bda0b5ae1 100644
--- a/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/net/minecraft/world/entity/animal/MushroomCow.java
@@ -94,6 +94,13 @@ public class MushroomCow extends AbstractCow implements Shearable {
@@ -230,7 +230,7 @@ index 5bca000fc9b8ba992e5285ef34b96b5fbcaae0da..270563334fcb1b2124e5721ce0d443ac
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
diff --git a/net/minecraft/world/entity/animal/Ocelot.java b/net/minecraft/world/entity/animal/Ocelot.java
index bc81c68fda213f3d64be5f480ae87264c581a52a..4810b6cd45d27da3c601d1eb4d3377572f1a61dc 100644
index c6f8e978df2ff28c0da243e44d26e33dacf221e5..125d324832623bb52ac1afd197862876a0f5f928 100644
--- a/net/minecraft/world/entity/animal/Ocelot.java
+++ b/net/minecraft/world/entity/animal/Ocelot.java
@@ -96,6 +96,13 @@ public class Ocelot extends Animal {
@@ -248,7 +248,7 @@ index bc81c68fda213f3d64be5f480ae87264c581a52a..4810b6cd45d27da3c601d1eb4d337757
return this.entityData.get(DATA_TRUSTING);
}
diff --git a/net/minecraft/world/entity/animal/Panda.java b/net/minecraft/world/entity/animal/Panda.java
index 83110d64ab7fd9b30a9fee1c5240c3de11c2514a..5fde42f9e86adc5872a10eb864a38f5bae171c10 100644
index 09e64eda71bfc1d55ec9fa37c6241c1d4cdc5842..36ec50791543c4eabf7158aa8d6ba272b14f6cd6 100644
--- a/net/minecraft/world/entity/animal/Panda.java
+++ b/net/minecraft/world/entity/animal/Panda.java
@@ -149,6 +149,13 @@ public class Panda extends Animal {
@@ -266,7 +266,7 @@ index 83110d64ab7fd9b30a9fee1c5240c3de11c2514a..5fde42f9e86adc5872a10eb864a38f5b
protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) {
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java
index 35afe8dc9fb3ad6e9103f4fb60742ad70d933f85..861739ca43e0212ab9ad4037693b729bd69fbb0b 100644
index eeccbee1f8e11862813abf0ed0d0f03bf28b376f..f5c98b277984249ec077c5742854a3cb444eb68c 100644
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -208,6 +208,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -284,7 +284,7 @@ index 35afe8dc9fb3ad6e9103f4fb60742ad70d933f85..861739ca43e0212ab9ad4037693b729b
@Override
public SpawnGroupData finalizeSpawn(
diff --git a/net/minecraft/world/entity/animal/Pig.java b/net/minecraft/world/entity/animal/Pig.java
index 50d20169b0a8ccc78e8573d26663e800f70a9f66..5ea66e3eb813c961d4275657a69300bc3953b1bc 100644
index 5300c3ae50633aa513c25384c1a2084701921cb9..719317c3cd5fc0202ef5deb150e0304191b121b8 100644
--- a/net/minecraft/world/entity/animal/Pig.java
+++ b/net/minecraft/world/entity/animal/Pig.java
@@ -98,6 +98,13 @@ public class Pig extends Animal implements ItemSteerable {
@@ -302,7 +302,7 @@ index 50d20169b0a8ccc78e8573d26663e800f70a9f66..5ea66e3eb813c961d4275657a69300bc
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/PolarBear.java b/net/minecraft/world/entity/animal/PolarBear.java
index 63fae10cea012f6f00a52d375e39b64538f88208..e69acaf3e99e298535ba9a39a6389f4ca5d304aa 100644
index 884137b428a1fe69bb61b9ae05b652357daecc27..eda9e5965a6ff244288215188de8e05ebcb61f14 100644
--- a/net/minecraft/world/entity/animal/PolarBear.java
+++ b/net/minecraft/world/entity/animal/PolarBear.java
@@ -132,6 +132,13 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -318,9 +318,9 @@ index 63fae10cea012f6f00a52d375e39b64538f88208..e69acaf3e99e298535ba9a39a6389f4c
+
@Nullable
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob otherParent) {
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
diff --git a/net/minecraft/world/entity/animal/Pufferfish.java b/net/minecraft/world/entity/animal/Pufferfish.java
index 9c9e0fb36d7a2e4f644314008c8dc6bdbeb42bcf..d91560b021775dd29f1f099f4a9df8af0e7b8d4c 100644
index 8b895308ee7639396983c73dc4c2572c957df027..49f1d08239e92aa4e8f18ee8054c13e54089ed82 100644
--- a/net/minecraft/world/entity/animal/Pufferfish.java
+++ b/net/minecraft/world/entity/animal/Pufferfish.java
@@ -66,6 +66,13 @@ public class Pufferfish extends AbstractFish {
@@ -338,7 +338,7 @@ index 9c9e0fb36d7a2e4f644314008c8dc6bdbeb42bcf..d91560b021775dd29f1f099f4a9df8af
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java
index a2ba60d8858bb595319cce8e97c91638701176f9..f773595560a59724c13a0f9e9cbe0a4d5b442313 100644
index 5e194a54a3a8d350c08edcba312e95b46db6c300..fb773ac6f450f6632fd7af3d0c44af57075fdcce 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -160,6 +160,13 @@ public class Rabbit extends Animal {
@@ -356,7 +356,7 @@ index a2ba60d8858bb595319cce8e97c91638701176f9..f773595560a59724c13a0f9e9cbe0a4d
public void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/Salmon.java b/net/minecraft/world/entity/animal/Salmon.java
index e426b3280b519a3cd727b200794324361c62b67e..3c517936aee31fcf246787c033688870a2349e55 100644
index e5790db0472fa97471b828cf6d817697389c3a8c..b9641e307d669ba20428843575a6bb39065df034 100644
--- a/net/minecraft/world/entity/animal/Salmon.java
+++ b/net/minecraft/world/entity/animal/Salmon.java
@@ -58,6 +58,13 @@ public class Salmon extends AbstractSchoolingFish {
@@ -374,7 +374,7 @@ index e426b3280b519a3cd727b200794324361c62b67e..3c517936aee31fcf246787c033688870
public int getMaxSchoolSize() {
return 5;
diff --git a/net/minecraft/world/entity/animal/SnowGolem.java b/net/minecraft/world/entity/animal/SnowGolem.java
index 405710ff3bb9344041449711c0b8311b00e75728..448946f352e394b4c5e84914c583c26c0bd390c3 100644
index 20f73d895bc55581c62283825a6d5296150ac707..6cb6ff86e3fd7b9dd2929669dc1b0d339af9a95a 100644
--- a/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/net/minecraft/world/entity/animal/SnowGolem.java
@@ -125,7 +125,7 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -387,7 +387,7 @@ index 405710ff3bb9344041449711c0b8311b00e75728..448946f352e394b4c5e84914c583c26c
@Override
diff --git a/net/minecraft/world/entity/animal/Squid.java b/net/minecraft/world/entity/animal/Squid.java
index 559a483e39f9da5c6c1131b5af61b594b5d3e7e8..c752eec4ed181eb4fa5c8b382764f2f544719f23 100644
index ad2be25e45b350c7d971cd750245dbfa2b27ccb5..38a2d3f1344a8a826ceca645279779beb3a4dde7 100644
--- a/net/minecraft/world/entity/animal/Squid.java
+++ b/net/minecraft/world/entity/animal/Squid.java
@@ -99,6 +99,13 @@ public class Squid extends AgeableWaterCreature {
@@ -405,7 +405,7 @@ index 559a483e39f9da5c6c1131b5af61b594b5d3e7e8..c752eec4ed181eb4fa5c8b382764f2f5
protected void registerGoals() {
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
diff --git a/net/minecraft/world/entity/animal/TropicalFish.java b/net/minecraft/world/entity/animal/TropicalFish.java
index c102db5ffdfc7dcb0ec7e59fb031fe6afcdd8237..4510798913f94474b16ab6cbfa32dc0fdf0a226a 100644
index 95368fd534c77e7d89ed6219f1f3948c428c256c..22a75b6b1e6f130027e39051f04267fb436ae6de 100644
--- a/net/minecraft/world/entity/animal/TropicalFish.java
+++ b/net/minecraft/world/entity/animal/TropicalFish.java
@@ -96,6 +96,13 @@ public class TropicalFish extends AbstractSchoolingFish {
@@ -423,7 +423,7 @@ index c102db5ffdfc7dcb0ec7e59fb031fe6afcdd8237..4510798913f94474b16ab6cbfa32dc0f
return "entity.minecraft.tropical_fish.predefined." + variantId;
}
diff --git a/net/minecraft/world/entity/animal/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java
index 966f21d90996a9c162e3f60ff53edb53507645b3..6a52e549257582d09af824f4067c91130f35cf8a 100644
index 38b6678cbbce86e62efe08ece6634b1a5895dd84..e9b19fe300f9d5caebe8603d0347eae834408809 100644
--- a/net/minecraft/world/entity/animal/Turtle.java
+++ b/net/minecraft/world/entity/animal/Turtle.java
@@ -118,6 +118,13 @@ public class Turtle extends Animal {
@@ -441,7 +441,7 @@ index 966f21d90996a9c162e3f60ff53edb53507645b3..6a52e549257582d09af824f4067c9113
this.homePos = homePos;
}
diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index a6145a24bffc1f56406cb9e57b15631ba82afe6a..4932668448a7346758983b647f4e508061297ba2 100644
index 277e955eabed07bdc50531dfe182de8cb05e56c2..c32a5f348e41d6ff733331b85baf32da839083fe 100644
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -153,6 +153,13 @@ public class Axolotl extends Animal implements Bucketable {
@@ -459,7 +459,7 @@ index a6145a24bffc1f56406cb9e57b15631ba82afe6a..4932668448a7346758983b647f4e5080
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return 0.0F;
diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
index 0597de19bcb1dc21cc7d07bb9b69dfb6967bba6f..19d02efdd82f370d0edc62abdbb7be3a062f8706 100644
index e50f9c7113063ce0c8696e06a3ca6ab768adc4af..5095ddcf1a2a4d4f5cff6dbaeec39a4e6e0d1d92 100644
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
@@ -141,6 +141,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
@@ -477,7 +477,7 @@ index 0597de19bcb1dc21cc7d07bb9b69dfb6967bba6f..19d02efdd82f370d0edc62abdbb7be3a
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
}
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index 0ec325f198d877057a9b497e667d1f3be40e683e..4e93554170d9c91a7d704b161b91ca28b19be73b 100644
index 673b90e3af9a9fdc03a4cbda9702e49def025d29..b048ca99370c65446855e3867eeb29ddb6ad51f6 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -138,6 +138,13 @@ public class Goat extends Animal {
@@ -495,7 +495,7 @@ index 0ec325f198d877057a9b497e667d1f3be40e683e..4e93554170d9c91a7d704b161b91ca28
protected Brain.Provider<Goat> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/animal/horse/Donkey.java b/net/minecraft/world/entity/animal/horse/Donkey.java
index 9e1100d672bfb712854d23203d0b730b8cc78a3d..9b17b1acf63fddb5f5b6cdf95283ae8f619a8120 100644
index 293d6059bc5e50b66b23e8e2e1d759e61cb26999..322ff19885fc2a982bc3c4bd7b5588cd2974e425 100644
--- a/net/minecraft/world/entity/animal/horse/Donkey.java
+++ b/net/minecraft/world/entity/animal/horse/Donkey.java
@@ -47,6 +47,13 @@ public class Donkey extends AbstractChestedHorse {
@@ -513,7 +513,7 @@ index 9e1100d672bfb712854d23203d0b730b8cc78a3d..9b17b1acf63fddb5f5b6cdf95283ae8f
public SoundEvent getAmbientSound() {
return SoundEvents.DONKEY_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/horse/Horse.java b/net/minecraft/world/entity/animal/horse/Horse.java
index 3678c767818abb9e4180c2ade378ca09761ad784..2928159447a87ea8cc945e73e2e81ad1dbe13680 100644
index 513856b5047842edd501eb6c23c13e3bf10d7249..4d8c6eac4d276dac7859bed1a1c83d45f1858b64 100644
--- a/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/net/minecraft/world/entity/animal/horse/Horse.java
@@ -78,6 +78,13 @@ public class Horse extends AbstractHorse {
@@ -531,7 +531,7 @@ index 3678c767818abb9e4180c2ade378ca09761ad784..2928159447a87ea8cc945e73e2e81ad1
protected void randomizeAttributes(RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt));
diff --git a/net/minecraft/world/entity/animal/horse/Llama.java b/net/minecraft/world/entity/animal/horse/Llama.java
index d6ae23d48dacb3f445465daf755e6fe7ad8c9c70..9a16450170734e4c47bbc91d764b889765e473f0 100644
index df3fd52ed0bc794919ff20c4eb8c561ec2b5ad8f..32ceec4a08010a2febaac47b6288673cbc71ac90 100644
--- a/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/net/minecraft/world/entity/animal/horse/Llama.java
@@ -161,6 +161,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -549,7 +549,7 @@ index d6ae23d48dacb3f445465daf755e6fe7ad8c9c70..9a16450170734e4c47bbc91d764b8897
return false;
}
diff --git a/net/minecraft/world/entity/animal/horse/Mule.java b/net/minecraft/world/entity/animal/horse/Mule.java
index fe2570ceb96d39ff6598a67a4ac4b4707eb28656..14a17d4b33b276f28e45ce06de06793a73a50916 100644
index 5e6a9467d15e551ab2c8b3e42abd096a85e36037..b1c320210e3116249043ef91feb621e1af5afabf 100644
--- a/net/minecraft/world/entity/animal/horse/Mule.java
+++ b/net/minecraft/world/entity/animal/horse/Mule.java
@@ -46,6 +46,13 @@ public class Mule extends AbstractChestedHorse {
@@ -567,7 +567,7 @@ index fe2570ceb96d39ff6598a67a4ac4b4707eb28656..14a17d4b33b276f28e45ce06de06793a
public SoundEvent getAmbientSound() {
return SoundEvents.MULE_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index 042b73f0807438327ebf4a2fd3a9d54d52159511..cff709a28830a842a499f7dfe3b8bc0b703c9af4 100644
index 024591d5ffd396391864554e7b532910d465c30a..9cd58494f090dd0d16787b3d739cbaa8bcd92370 100644
--- a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -73,6 +73,13 @@ public class SkeletonHorse extends AbstractHorse {
@@ -585,7 +585,7 @@ index 042b73f0807438327ebf4a2fd3a9d54d52159511..cff709a28830a842a499f7dfe3b8bc0b
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/horse/TraderLlama.java b/net/minecraft/world/entity/animal/horse/TraderLlama.java
index 09769f47dc2849ee9eeb60b3c4edb7536a5cf87d..3222b0439a4c3cabab8f5648b71df2c215e335ff 100644
index 8b63470177d60d79fe0b774a301d36701026a803..204dfdeb5c3bb650dbd6c990c6a2e1e4d14b8c77 100644
--- a/net/minecraft/world/entity/animal/horse/TraderLlama.java
+++ b/net/minecraft/world/entity/animal/horse/TraderLlama.java
@@ -77,6 +77,13 @@ public class TraderLlama extends Llama {
@@ -603,7 +603,7 @@ index 09769f47dc2849ee9eeb60b3c4edb7536a5cf87d..3222b0439a4c3cabab8f5648b71df2c2
public boolean isTraderLlama() {
return true;
diff --git a/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index 69b9ae449e58f13bf0950fdfe3f89742af89956e..e78fac0a5e37d53afbc200f015adab60b3bfc9da 100644
index 0d6d470b8680aed64d2b208b2ed9b037c96563d9..fd8a512910c886af1ae4e66edbf7f8d6fe0bc4f3 100644
--- a/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -69,6 +69,13 @@ public class ZombieHorse extends AbstractHorse {
@@ -621,7 +621,7 @@ index 69b9ae449e58f13bf0950fdfe3f89742af89956e..e78fac0a5e37d53afbc200f015adab60
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index eca2b9e1b92ba626eb6203dbc5678976f43bdc29..fe5bbf00e02efa8ff71014d2b334ad1f6cd4052f 100644
index e5d495c12e2cd5a215f5b908ad65f6366eb47808..e204b349615be98ea9a143ca2bb73a3a0a32baa4 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -94,6 +94,13 @@ public class Sheep extends Animal implements Shearable {
@@ -639,7 +639,7 @@ index eca2b9e1b92ba626eb6203dbc5678976f43bdc29..fe5bbf00e02efa8ff71014d2b334ad1f
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index c8966878b861ba8ecf1be1ca830742d2b4e76864..9c76157edc1ee7a15498e8759b5c2f71be3b0b51 100644
index fc9b895b69385b04d56d071cbd498e61db6e6cb4..4b1c93cf2e17ae85d3b34a49c15e2926d8d1c81a 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -223,6 +223,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -657,7 +657,7 @@ index c8966878b861ba8ecf1be1ca830742d2b4e76864..9c76157edc1ee7a15498e8759b5c2f71
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index 51115b67b9236b8ef3f89907fea60b5d448edde7..52a84b1d354201fc6496dd937be091c1750eba33 100644
index 1f9db9786995744c5ca5d97d8cf46fdd69aa8aa5..a3fe470ee11475c90462c50d54bfb27658a9536f 100644
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -172,6 +172,13 @@ public class EnderDragon extends Mob implements Enemy {
@@ -675,7 +675,7 @@ index 51115b67b9236b8ef3f89907fea60b5d448edde7..52a84b1d354201fc6496dd937be091c1
return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0).add(Attributes.CAMERA_DISTANCE, 16.0);
}
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index b65af78ece66a60e36cc7aad1ad3cd10445223fa..d38a004d1192e967dfc82d858257fbfc4586df37 100644
index f6af57f402847e0f9af6a00b387d8a4b3e4d2afe..37919a338630efeb87accb7e0a7d86fddc03e858 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -221,6 +221,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -693,12 +693,12 @@ index b65af78ece66a60e36cc7aad1ad3cd10445223fa..d38a004d1192e967dfc82d858257fbfc
protected PathNavigation createNavigation(Level level) {
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java
index 14e2fe8d0d21464c946af9949ba3a77e31f22d23..e43d6fabcaffca05ee93878ee28ac9df0bb5789f 100644
index 8621ab150da50116260cd76821c02109cd32e351..e940633d5140bb19623cef9cc9d6acdae77ed392 100644
--- a/net/minecraft/world/entity/monster/Blaze.java
+++ b/net/minecraft/world/entity/monster/Blaze.java
@@ -34,7 +34,7 @@ public class Blaze extends Monster {
public Blaze(EntityType<? extends Blaze> entityType, Level level) {
super(entityType, level);
public Blaze(EntityType<? extends Blaze> type, Level level) {
super(type, level);
this.moveControl = new org.purpurmc.purpur.controller.FlyingWithSpacebarMoveControllerWASD(this, 0.3F); // Purpur - Ridables
- this.setPathfindingMalus(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
@@ -715,7 +715,7 @@ index 14e2fe8d0d21464c946af9949ba3a77e31f22d23..e43d6fabcaffca05ee93878ee28ac9df
@Override
diff --git a/net/minecraft/world/entity/monster/CaveSpider.java b/net/minecraft/world/entity/monster/CaveSpider.java
index 64eecd8d1acd318743800c1daa77cd97097a0f7c..420fe0d01d0b173a6a541f77e1aaca3f3bb565e7 100644
index ca8e92447eb5f58e2bd855ac6fa1d580425218f9..239d855df83083e0eb875c430a165427f3a143de 100644
--- a/net/minecraft/world/entity/monster/CaveSpider.java
+++ b/net/minecraft/world/entity/monster/CaveSpider.java
@@ -51,6 +51,13 @@ public class CaveSpider extends Spider {
@@ -730,10 +730,10 @@ index 64eecd8d1acd318743800c1daa77cd97097a0f7c..420fe0d01d0b173a6a541f77e1aaca3f
+ // Purpur end - Toggle for water sensitive mob damage
+
@Override
public boolean doHurtTarget(ServerLevel level, Entity source) {
if (super.doHurtTarget(level, source)) {
public boolean doHurtTarget(ServerLevel level, Entity target) {
if (super.doHurtTarget(level, target)) {
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
index b7d33384ca236a902a7aa2004b16d545e5a58c9e..099ece4b4d0996fc26a5d42f81a42fcc63f22506 100644
index 6259636b9856be5b03af83ee515e70cbf1eb51d8..719c752270c3f1b2496184df0eb728e3c934a3d5 100644
--- a/net/minecraft/world/entity/monster/Creeper.java
+++ b/net/minecraft/world/entity/monster/Creeper.java
@@ -266,6 +266,13 @@ public class Creeper extends Monster {
@@ -751,7 +751,7 @@ index b7d33384ca236a902a7aa2004b16d545e5a58c9e..099ece4b4d0996fc26a5d42f81a42fcc
public SoundEvent getHurtSound(DamageSource damageSource) {
return SoundEvents.CREEPER_HURT;
diff --git a/net/minecraft/world/entity/monster/Drowned.java b/net/minecraft/world/entity/monster/Drowned.java
index ee13dd20af2730f3051f77fb0e73ce5c8253bd4a..33c45250277b2383f4ef1d740898ba02f22bcb26 100644
index af8c33c6d8ecbc7c3d8a33fc740adc26a43c08b3..6beaed7f1ce39bef190cfa7e1addc28b929c0747 100644
--- a/net/minecraft/world/entity/monster/Drowned.java
+++ b/net/minecraft/world/entity/monster/Drowned.java
@@ -123,6 +123,13 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -769,7 +769,7 @@ index ee13dd20af2730f3051f77fb0e73ce5c8253bd4a..33c45250277b2383f4ef1d740898ba02
protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
diff --git a/net/minecraft/world/entity/monster/ElderGuardian.java b/net/minecraft/world/entity/monster/ElderGuardian.java
index 7ebc7224d3db38cc5137112d5a74999f6e23b8d5..287b6fea404d4f1f121219f92918dc2d1c0ac780 100644
index 57fb334f670d35aa181b13e12fa2c5f36da1dda6..1ea323a17440abbe36c9528e80e169816267005b 100644
--- a/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -51,6 +51,13 @@ public class ElderGuardian extends Guardian {
@@ -787,13 +787,13 @@ index 7ebc7224d3db38cc5137112d5a74999f6e23b8d5..287b6fea404d4f1f121219f92918dc2d
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
}
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index 9a1271771008089a5b08792bfd4cdc18a4458469..122c68cd0ad5a308600d7bbde15d246131d28546 100644
index e6304680a8f2e9fb5fdcfd166471fd3355fb643c..09cce24dcc6a57f02c020c7e035e7940ddf9a962 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -87,7 +87,7 @@ public class EnderMan extends Monster implements NeutralMob {
public EnderMan(EntityType<? extends EnderMan> entityType, Level level) {
super(entityType, level);
public EnderMan(EntityType<? extends EnderMan> type, Level level) {
super(type, level);
- this.setPathfindingMalus(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
}
@@ -809,7 +809,7 @@ index 9a1271771008089a5b08792bfd4cdc18a4458469..122c68cd0ad5a308600d7bbde15d2461
@Override
diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java
index 7e6cebeff52bb9252d55a191179b9bb82f4405bb..a1e848405acfa412d0555f051f4a2f28d933652c 100644
index c6ae00f6ab83743b9ce43d9e55f04ba23b0de0f1..c79c689cb99ad2a6cab88cf8b583ff0f9e91b115 100644
--- a/net/minecraft/world/entity/monster/Endermite.java
+++ b/net/minecraft/world/entity/monster/Endermite.java
@@ -72,6 +72,13 @@ public class Endermite extends Monster {
@@ -827,7 +827,7 @@ index 7e6cebeff52bb9252d55a191179b9bb82f4405bb..a1e848405acfa412d0555f051f4a2f28
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Evoker.java b/net/minecraft/world/entity/monster/Evoker.java
index 4d1d746e39d136243dc620c89b29daf80dc62230..d77e3b0f36ec4a262ff375d9e2da912553a344f8 100644
index 24d104036902b8aaf79325e33d3063ccea29e13e..9015643b47e2d20a5c75c5f4bf2ec66399d4a2e5 100644
--- a/net/minecraft/world/entity/monster/Evoker.java
+++ b/net/minecraft/world/entity/monster/Evoker.java
@@ -73,6 +73,13 @@ public class Evoker extends SpellcasterIllager {
@@ -845,7 +845,7 @@ index 4d1d746e39d136243dc620c89b29daf80dc62230..d77e3b0f36ec4a262ff375d9e2da9125
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index bcd602714104043e67ed67446ea47dda33761e31..2ad7a35efbae5c4697413a48ff28a4c6f3c94a35 100644
index fdbf14ff7e62d8db023b3d3bdf4ae685b5f085a8..f87e4b960fad01ceb62dc4c80ab80aaad5c7a986 100644
--- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -82,6 +82,13 @@ public class Ghast extends Mob implements Enemy {
@@ -863,7 +863,7 @@ index bcd602714104043e67ed67446ea47dda33761e31..2ad7a35efbae5c4697413a48ff28a4c6
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Giant.java b/net/minecraft/world/entity/monster/Giant.java
index f5565d314ded2145219debc446c7ddcb93b660e9..ccc2f7906c322a5406467986565074cbddf6cbe0 100644
index e6fb01e4e2146d6c6971d80af0f101d20c03950a..2204c729ce42e89a0b42b365e0060098afcf68f9 100644
--- a/net/minecraft/world/entity/monster/Giant.java
+++ b/net/minecraft/world/entity/monster/Giant.java
@@ -62,6 +62,13 @@ public class Giant extends Monster {
@@ -881,7 +881,7 @@ index f5565d314ded2145219debc446c7ddcb93b660e9..ccc2f7906c322a5406467986565074cb
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index 1106f170bbfd8ea5446246c9778039742356a222..0af004e822b6f474b8119626c542bd822bb21e45 100644
index c59f2dd8661d7a6bd35aaa1933a60a47f795bdd1..68eb628b5019c60df9f8bdfc7d47a6e68913fbd4 100644
--- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -98,6 +98,13 @@ public class Guardian extends Monster {
@@ -899,7 +899,7 @@ index 1106f170bbfd8ea5446246c9778039742356a222..0af004e822b6f474b8119626c542bd82
protected void registerGoals() {
MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0);
diff --git a/net/minecraft/world/entity/monster/Husk.java b/net/minecraft/world/entity/monster/Husk.java
index 557b2d684936c15299d7082a92ec8b08e7fab9a5..d25baa1e1b03b38219c8851c1552f342543ba884 100644
index c3f582260bce068a887b3211b7add009efe18bd1..b43f65cf25ac1a7b753cc0c879e42fcb6508376a 100644
--- a/net/minecraft/world/entity/monster/Husk.java
+++ b/net/minecraft/world/entity/monster/Husk.java
@@ -66,6 +66,13 @@ public class Husk extends Zombie {
@@ -917,7 +917,7 @@ index 557b2d684936c15299d7082a92ec8b08e7fab9a5..d25baa1e1b03b38219c8851c1552f342
EntityType<Husk> entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Illusioner.java b/net/minecraft/world/entity/monster/Illusioner.java
index 753532aad0973230e1c7f4102ac55b243355c61e..ac31cd022f079561ca90ceb2a1c28a126efd255a 100644
index b6872c94d769346ed2a8bb2406fc2b39ef64a67c..ee5e0b20f65a5f7d7dc2cf8fea2eff56f8f56a41 100644
--- a/net/minecraft/world/entity/monster/Illusioner.java
+++ b/net/minecraft/world/entity/monster/Illusioner.java
@@ -84,6 +84,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
@@ -935,7 +935,7 @@ index 753532aad0973230e1c7f4102ac55b243355c61e..ac31cd022f079561ca90ceb2a1c28a12
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
index bb1364c4a220cc93f7ac01cbaa617561de4cd2e3..da90b7dc79aa6d01e88c1250fff662ba1b001dc3 100644
index f39611741c4dacec2b1ad2d25ca9b7d47c188049..a5ca7a2f301cc8ae5878e583c2cf8aeef2085982 100644
--- a/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
@@ -68,6 +68,13 @@ public class MagmaCube extends Slime {
@@ -953,7 +953,7 @@ index bb1364c4a220cc93f7ac01cbaa617561de4cd2e3..da90b7dc79aa6d01e88c1250fff662ba
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index bf2330068d43f52a9a21d73180ef5a83697444ea..e0193db5ce783b4ab2b8afaeaeffde8ac8bc8a71 100644
index 42089b34a1a1927247953b54cdc3300e1b600a90..b4ff8b2f5fecffe808788014e0903b7238849172 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -129,6 +129,13 @@ public class Phantom extends Mob implements Enemy {
@@ -971,7 +971,7 @@ index bf2330068d43f52a9a21d73180ef5a83697444ea..e0193db5ce783b4ab2b8afaeaeffde8a
public boolean isFlapping() {
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
diff --git a/net/minecraft/world/entity/monster/Pillager.java b/net/minecraft/world/entity/monster/Pillager.java
index bcc20f9642e9d20cf18bb5f8e63daa277154be1a..faaf42a029b1a0423c5e10ee3e17e4ba0e70be02 100644
index 748233be6bdfd735aa3ccc02a7ba21a45603ffa4..1aa2f744b0d875fb874cf23a0601fee48ead66c2 100644
--- a/net/minecraft/world/entity/monster/Pillager.java
+++ b/net/minecraft/world/entity/monster/Pillager.java
@@ -89,6 +89,13 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
@@ -989,7 +989,7 @@ index bcc20f9642e9d20cf18bb5f8e63daa277154be1a..faaf42a029b1a0423c5e10ee3e17e4ba
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index 23b6d3c9746e1ee641d8b19ec50805cb271a9cc9..d75df6de50f9830efeea826d0ebdac17f56d4c4b 100644
index a1fb74b51f51c045eed0fe09eceafa6d533babe2..5d7f6825d7bff413cac0fbf3a1d613bccd5102d6 100644
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -101,6 +101,13 @@ public class Ravager extends Raider {
@@ -1007,7 +1007,7 @@ index 23b6d3c9746e1ee641d8b19ec50805cb271a9cc9..d75df6de50f9830efeea826d0ebdac17
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
index dac39e2c1ed4422b466effb0acc9267454bdc2fb..219ae068c4c17b38424af39b0c08d9e1e35fb00d 100644
index 3909804ba8f9e220260efe6255ff2b298a4448db..21b28d1ba59656b123aef95a7e18075dae9bc236 100644
--- a/net/minecraft/world/entity/monster/Shulker.java
+++ b/net/minecraft/world/entity/monster/Shulker.java
@@ -134,6 +134,13 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -1025,7 +1025,7 @@ index dac39e2c1ed4422b466effb0acc9267454bdc2fb..219ae068c4c17b38424af39b0c08d9e1
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
index 6f4aaeb645d9638764c3516d2f1501661ac56170..51714029d4ea5033014dcefd25f74cc0c9a72dbd 100644
index 97662c39001b4433601f46ef83f28c0ee916c02a..190312706c2e69bb0cf6e402e8e3ad7dd64b7b98 100644
--- a/net/minecraft/world/entity/monster/Silverfish.java
+++ b/net/minecraft/world/entity/monster/Silverfish.java
@@ -66,6 +66,13 @@ public class Silverfish extends Monster {
@@ -1043,7 +1043,7 @@ index 6f4aaeb645d9638764c3516d2f1501661ac56170..51714029d4ea5033014dcefd25f74cc0
protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java
index dc9a946b102e93a024130967b1eb1d5e78070b4d..4c625007fdfc7525036ec0c761400b07facbb43a 100644
index 8d1f83ba8042435a0dc1e6e1fb9873173efe277d..1ae787edeb2011afb373fb44702f8a5150ee95b1 100644
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -49,6 +49,13 @@ public class Skeleton extends AbstractSkeleton {
@@ -1061,7 +1061,7 @@ index dc9a946b102e93a024130967b1eb1d5e78070b4d..4c625007fdfc7525036ec0c761400b07
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
index 6f6b6c47d003271a54fee53723cd09d435431be1..75a82b32c0efc1403dc9c875012739a417443c27 100644
index beb504f9a5de48d9631585648a98cd3d2d682d76..f6e0ec18150f91d42f9a5b2f45e5a6e80c4ea031 100644
--- a/net/minecraft/world/entity/monster/Slime.java
+++ b/net/minecraft/world/entity/monster/Slime.java
@@ -134,6 +134,13 @@ public class Slime extends Mob implements Enemy {
@@ -1079,7 +1079,7 @@ index 6f6b6c47d003271a54fee53723cd09d435431be1..75a82b32c0efc1403dc9c875012739a4
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Spider.java b/net/minecraft/world/entity/monster/Spider.java
index 853752e66b2b9299b20d4a66dc73cf0db839d9e3..ed343a806be211299f03c46ed2214caed552f149 100644
index 580047cd6a803ffdf6a1887d32731ddfd23316b9..5fa082b5a04d152c72f6053ca6bc4598899ca30c 100644
--- a/net/minecraft/world/entity/monster/Spider.java
+++ b/net/minecraft/world/entity/monster/Spider.java
@@ -75,6 +75,13 @@ public class Spider extends Monster {
@@ -1097,7 +1097,7 @@ index 853752e66b2b9299b20d4a66dc73cf0db839d9e3..ed343a806be211299f03c46ed2214cae
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Stray.java b/net/minecraft/world/entity/monster/Stray.java
index b5465b552c5aea7603a54cfdeafe451bfaf38bf2..e4ae604d4d0756edc9418634d9958338997c8203 100644
index 1be523e22b2fa0f9546eb272f3f68a896a0575c9..1d99432da3df434394a746f0bf4d5cc62c90dcba 100644
--- a/net/minecraft/world/entity/monster/Stray.java
+++ b/net/minecraft/world/entity/monster/Stray.java
@@ -46,6 +46,13 @@ public class Stray extends AbstractSkeleton {
@@ -1115,12 +1115,12 @@ index b5465b552c5aea7603a54cfdeafe451bfaf38bf2..e4ae604d4d0756edc9418634d9958338
EntityType<Stray> entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java
index eb33b66fa3bc705552b6abf2d8e941e84cdda60e..d64ece808045016679b74c315ffd54b10eea47b9 100644
index 6760c826cf72cc704f54ea0e3d6aaffde4ac22c4..1004aaf885268d08e68e5d2465fae2b5566a4eff 100644
--- a/net/minecraft/world/entity/monster/Strider.java
+++ b/net/minecraft/world/entity/monster/Strider.java
@@ -86,7 +86,7 @@ public class Strider extends Animal implements ItemSteerable {
public Strider(EntityType<? extends Strider> entityType, Level level) {
super(entityType, level);
public Strider(EntityType<? extends Strider> type, Level level) {
super(type, level);
this.blocksBuilding = true;
- this.setPathfindingMalus(PathType.WATER, -1.0F);
+ if (isSensitiveToWater()) this.setPathfindingMalus(PathType.WATER, -1.0F); // Purpur - Toggle for water sensitive mob damage
@@ -1137,7 +1137,7 @@ index eb33b66fa3bc705552b6abf2d8e941e84cdda60e..d64ece808045016679b74c315ffd54b1
@Override
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
index a8d3d1aaaa62781824f3b3422030c87de884793d..39f7c6ab8aa0fb0e1b472205f4849b3b10c74d81 100644
index 7fddf0a36b1c4a3f7fbab8b0319e00281e8acd90..75681ed441e5cbb4c01a433f9757795089af234b 100644
--- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java
@@ -112,6 +112,13 @@ public class Vex extends Monster implements TraceableEntity {
@@ -1155,7 +1155,7 @@ index a8d3d1aaaa62781824f3b3422030c87de884793d..39f7c6ab8aa0fb0e1b472205f4849b3b
public boolean isFlapping() {
return this.tickCount % TICKS_PER_FLAP == 0;
diff --git a/net/minecraft/world/entity/monster/Vindicator.java b/net/minecraft/world/entity/monster/Vindicator.java
index 1f66c8d5194ee5b3794ea86a951ae553aa375422..28fc1cd1e8721e2a87b5aa610d27afa8df3f4074 100644
index fdaf024a27825844105ef62baddf30e3b4412d28..33452593731c53f404059271b3fbb0407d75517c 100644
--- a/net/minecraft/world/entity/monster/Vindicator.java
+++ b/net/minecraft/world/entity/monster/Vindicator.java
@@ -81,6 +81,13 @@ public class Vindicator extends AbstractIllager {
@@ -1173,7 +1173,7 @@ index 1f66c8d5194ee5b3794ea86a951ae553aa375422..28fc1cd1e8721e2a87b5aa610d27afa8
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
index 620d529c0cf71e0c19b9ed6a02d173218a38abd4..5d32cbb46b5ac9833a2a16e828b7d1915a08f3f1 100644
index 60a6d8880e6d0009cfd136599ca6f1c1b07adc42..cafdebd0fa9a7458e5adaf109b3ebd4beed7a1ef 100644
--- a/net/minecraft/world/entity/monster/Witch.java
+++ b/net/minecraft/world/entity/monster/Witch.java
@@ -81,6 +81,13 @@ public class Witch extends Raider implements RangedAttackMob {
@@ -1191,7 +1191,7 @@ index 620d529c0cf71e0c19b9ed6a02d173218a38abd4..5d32cbb46b5ac9833a2a16e828b7d191
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/WitherSkeleton.java b/net/minecraft/world/entity/monster/WitherSkeleton.java
index 96dc17a43c258fec424954606a7a43d490e870d6..29a2d1b25c8f04691d4e34fcb3256a4f0144829d 100644
index 4d4e04d9fb5b68897ffa6f299bd2009bb397da3d..778779c79c56e2ca438ecbb82fbb16d70d312524 100644
--- a/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -59,6 +59,13 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -1209,7 +1209,7 @@ index 96dc17a43c258fec424954606a7a43d490e870d6..29a2d1b25c8f04691d4e34fcb3256a4f
protected void registerGoals() {
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java
index f1d42c8ee4a23ba3485477632b51dd9bcf9db926..5ed357158eccc48b2d1e25e06c35b7436086e7c5 100644
index 5e52eab9a78db8a5652bdee7127d75921f641ab9..67998321b2c47d4aaf027c5fd17cb6d01e105b6f 100644
--- a/net/minecraft/world/entity/monster/Zoglin.java
+++ b/net/minecraft/world/entity/monster/Zoglin.java
@@ -111,6 +111,13 @@ public class Zoglin extends Monster implements HoglinBase {
@@ -1227,7 +1227,7 @@ index f1d42c8ee4a23ba3485477632b51dd9bcf9db926..5ed357158eccc48b2d1e25e06c35b743
protected Brain.Provider<Zoglin> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/monster/Zombie.java b/net/minecraft/world/entity/monster/Zombie.java
index 73b6ffd6a1f27a5d49125b51d3396df5d84493f6..452fcb94b5d31e04bf3c96bd1b07ff9b54101595 100644
index 787efb0297b675e18c2e237126c849ec98eeab5b..336588a6bc2e95a02656c98aa58865ef4d90a8d5 100644
--- a/net/minecraft/world/entity/monster/Zombie.java
+++ b/net/minecraft/world/entity/monster/Zombie.java
@@ -141,6 +141,13 @@ public class Zombie extends Monster {
@@ -1245,7 +1245,7 @@ index 73b6ffd6a1f27a5d49125b51d3396df5d84493f6..452fcb94b5d31e04bf3c96bd1b07ff9b
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java
index 1d01131dae3900280d5c9ce9899f4afa09acfd46..31d8feaf5e2b84bee72796fd96502a862e573f52 100644
index fa11f0fc2b036032fde14cc1a64df693eed1a017..1693fbcd47cc06409ac1849475feda7b5c4e437a 100644
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -119,6 +119,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -1263,7 +1263,7 @@ index 1d01131dae3900280d5c9ce9899f4afa09acfd46..31d8feaf5e2b84bee72796fd96502a86
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index 325d0f32fd8824dc1c7067eb9c303bdfc122c706..3e262c6919287ad981b1d36b7f96dd14cae8e190 100644
index 8e226a6a732efee42ecf492676089ecf0b2d785a..d43e4d29a75dd66551eb432ceec1cc3fda738364 100644
--- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -106,6 +106,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -1281,7 +1281,7 @@ index 325d0f32fd8824dc1c7067eb9c303bdfc122c706..3e262c6919287ad981b1d36b7f96dd14
public void setPersistentAngerTarget(@Nullable UUID target) {
this.persistentAngerTarget = target;
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index 05cfdeb5afaad609ae873bb31ca411c4d6759a3f..a98de218d58361cce3f0cde21fbffbe9c1584701 100644
index 2de148c874feeff23da144037562ded852e48a04..660d1f56cc74bc2a8764094d16772aace1234c15 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -127,6 +127,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1299,7 +1299,7 @@ index 05cfdeb5afaad609ae873bb31ca411c4d6759a3f..a98de218d58361cce3f0cde21fbffbe9
public void setTimeInOverworld(int timeInOverworld) {
this.timeInOverworld = timeInOverworld;
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
index 1d9dc37055a2a9f41945b39812e1be15a8eb57e5..6eb4a5d752835110b7ff7c817bb31f027074c6db 100644
index 4e1a7b6caf8c0a3721a3a799261d7b63301c3b29..5bf58287dad04c96459982d55b5ac00646e37d53 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -161,6 +161,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1317,7 +1317,7 @@ index 1d9dc37055a2a9f41945b39812e1be15a8eb57e5..6eb4a5d752835110b7ff7c817bb31f02
protected void addAdditionalSaveData(ValueOutput output) {
super.addAdditionalSaveData(output);
diff --git a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
index f52aba35ee7e202074cda8fb4dfd6a7d9ded1f09..f4893cc54d7f144025da0057beedb3a974c80dc1 100644
index 31e38737806098795de0e87fbcaf60d4ab83ea6e..e988a65cbd1f71f488fa8221ef11b6b1a05dc554 100644
--- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
+++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
@@ -90,6 +90,13 @@ public class PiglinBrute extends AbstractPiglin {
@@ -1335,7 +1335,7 @@ index f52aba35ee7e202074cda8fb4dfd6a7d9ded1f09..f4893cc54d7f144025da0057beedb3a9
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 50.0)
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index 9f8fd64a3812e6d6bfefb21dd793aae9ad2bcd94..08f6c4ca51177290bc80103d8ebd7087c41be954 100644
index 33af111898df4e10367e6ef0d01eaf376bfc5819..810494826a7b600941f3087f114064e157ba88e6 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -281,6 +281,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1353,10 +1353,10 @@ index 9f8fd64a3812e6d6bfefb21dd793aae9ad2bcd94..08f6c4ca51177290bc80103d8ebd7087
public Brain<Villager> getBrain() {
return (Brain<Villager>)super.getBrain();
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
index e9a98a7009555128cb5118093add3fb331a7d485..a23b8788db33625df43940a26de8dffdb91d5d2d 100644
index e5a6cc63d29be742be039053c39f983ed9c6a1e1..6e5f5711b729b41f5221fb7e7d0c8dad57f790ca 100644
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -98,6 +98,13 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -98,6 +98,13 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
}
// Purpur end - Villagers follow emerald blocks

View File

@@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight
Co-authored by: Encode42 <me@encode42.dev>
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index ef77be60df1cf44088e684c21dbcaf3032bb3ad6..92292ae5a313e85a3238427e7ab19c73e31f0ecb 100644
index 75039c43a1f7d6f22fdebd1bac56a028354d1527..906848dce743c66b18899c21d408d28ad6dc642c 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -544,6 +544,24 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name
@@ -31,11 +31,11 @@ index ef77be60df1cf44088e684c21dbcaf3032bb3ad6..92292ae5a313e85a3238427e7ab19c73
+ }
+ // Purpur end - copied from Mob - API for any mob to burn daylight
+
public Entity(EntityType<?> entityType, Level level) {
this.type = entityType;
public Entity(EntityType<?> type, Level level) {
this.type = type;
this.level = level;
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
index 7c65124b4c10166d57ac3c0e8435be06bf05efef..6eb4efd8220be4a06ae3306595b64a94f23538c3 100644
index ab3ddd1c52b561c56ee240ee68f5e5aca706b744..7dd9e6ecb2d68a98e3c4980638098cfc3ee82633 100644
--- a/net/minecraft/world/entity/LivingEntity.java
+++ b/net/minecraft/world/entity/LivingEntity.java
@@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -45,7 +45,7 @@ index 7c65124b4c10166d57ac3c0e8435be06bf05efef..6eb4efd8220be4a06ae3306595b64a94
+ protected boolean shouldBurnInDay = false; public boolean shouldBurnInDay() { return this.shouldBurnInDay; } public void setShouldBurnInDay(boolean shouldBurnInDay) { this.shouldBurnInDay = shouldBurnInDay; } // Purpur - API for any mob to burn daylight
// CraftBukkit end
protected LivingEntity(EntityType<? extends LivingEntity> entityType, Level level) {
protected LivingEntity(EntityType<? extends LivingEntity> type, Level level) {
@@ -795,6 +796,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
this.getSleepingPos().ifPresent(blockPos -> output.store("sleeping_pos", BlockPos.CODEC, blockPos));
DataResult<Dynamic<?>> dataResult = this.brain.serializeStart(NbtOps.INSTANCE).map(tag -> new Dynamic<>(NbtOps.INSTANCE, tag));
@@ -62,7 +62,7 @@ index 7c65124b4c10166d57ac3c0e8435be06bf05efef..6eb4efd8220be4a06ae3306595b64a94
this.lastHurtByPlayer = EntityReference.read(input, "last_hurt_by_player");
this.lastHurtByPlayerMemoryTime = input.getIntOr("last_hurt_by_player_memory_time", 0);
this.lastHurtByMob = EntityReference.read(input, "last_hurt_by_mob");
@@ -3711,6 +3714,32 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3717,6 +3720,32 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterOrRain()) {
this.hurtServer(serverLevel, this.damageSources().drown(), 1.0F);
}
@@ -96,7 +96,7 @@ index 7c65124b4c10166d57ac3c0e8435be06bf05efef..6eb4efd8220be4a06ae3306595b64a94
protected void applyInput() {
diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java
index 8f58641132231f450d0fb0c1fa61559c6cef8dcf..b9659c11204f632f42bc776453fcf5ce1eb09073 100644
index e4aaa451129d0ed11d855b53aae0c0279b899479..19ce70712cb651f2cf086a0b490ef9008dbc4ce0 100644
--- a/net/minecraft/world/entity/Mob.java
+++ b/net/minecraft/world/entity/Mob.java
@@ -1589,19 +1589,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
@@ -122,7 +122,7 @@ index 8f58641132231f450d0fb0c1fa61559c6cef8dcf..b9659c11204f632f42bc776453fcf5ce
@Override
diff --git a/net/minecraft/world/entity/monster/AbstractSkeleton.java b/net/minecraft/world/entity/monster/AbstractSkeleton.java
index 2ef478b287e1240dd172235f7cabf31f60456a8a..b228c29e550d77f62ac53df9f32efe1a31c9f933 100644
index 7e43dd4b44335989127cc1b6e2c59d771876887a..14730f53561dec218b0fa6648c8de2b2157165fc 100644
--- a/net/minecraft/world/entity/monster/AbstractSkeleton.java
+++ b/net/minecraft/world/entity/monster/AbstractSkeleton.java
@@ -64,11 +64,12 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
@@ -132,8 +132,8 @@ index 2ef478b287e1240dd172235f7cabf31f60456a8a..b228c29e550d77f62ac53df9f32efe1a
- private boolean shouldBurnInDay = true; // Paper - shouldBurnInDay API
+ //private boolean shouldBurnInDay = true; // Paper - shouldBurnInDay API // Purpur - moved to LivingEntity; keep methods for ABI compatibility - API for any mob to burn daylight
protected AbstractSkeleton(EntityType<? extends AbstractSkeleton> entityType, Level level) {
super(entityType, level);
protected AbstractSkeleton(EntityType<? extends AbstractSkeleton> type, Level level) {
super(type, level);
this.reassessWeaponGoal();
+ this.setShouldBurnInDay(true); // Purpur - API for any mob to burn daylight
}
@@ -186,13 +186,13 @@ index 2ef478b287e1240dd172235f7cabf31f60456a8a..b228c29e550d77f62ac53df9f32efe1a
// Paper end - shouldBurnInDay API
diff --git a/net/minecraft/world/entity/monster/Husk.java b/net/minecraft/world/entity/monster/Husk.java
index d25baa1e1b03b38219c8851c1552f342543ba884..f8f27c7e5be15d6b7684159c193167837270d96b 100644
index b43f65cf25ac1a7b753cc0c879e42fcb6508376a..938c8e0708df47299a627b1c7f56793035dd219c 100644
--- a/net/minecraft/world/entity/monster/Husk.java
+++ b/net/minecraft/world/entity/monster/Husk.java
@@ -18,6 +18,7 @@ import net.minecraft.world.level.ServerLevelAccessor;
public class Husk extends Zombie {
public Husk(EntityType<? extends Husk> entityType, Level level) {
super(entityType, level);
public Husk(EntityType<? extends Husk> type, Level level) {
super(type, level);
+ this.setShouldBurnInDay(false); // Purpur - API for any mob to burn daylight
}
@@ -207,7 +207,7 @@ index d25baa1e1b03b38219c8851c1552f342543ba884..f8f27c7e5be15d6b7684159c19316783
@Override
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index e0193db5ce783b4ab2b8afaeaeffde8ac8bc8a71..aa292ec60655cc9419da2a744c8cb841ddbc40e1 100644
index b4ff8b2f5fecffe808788014e0903b7238849172..c7d52c623d8616209ab742b69838beed156d80de 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -53,7 +53,7 @@ public class Phantom extends Mob implements Enemy {
@@ -280,7 +280,7 @@ index e0193db5ce783b4ab2b8afaeaeffde8ac8bc8a71..aa292ec60655cc9419da2a744c8cb841
}
diff --git a/net/minecraft/world/entity/monster/Zombie.java b/net/minecraft/world/entity/monster/Zombie.java
index 452fcb94b5d31e04bf3c96bd1b07ff9b54101595..6e3ae67dbb9a60177f26d075d42aacce580ff956 100644
index 336588a6bc2e95a02656c98aa58865ef4d90a8d5..00e9383ad8251da600c84885c439a207c256c22a 100644
--- a/net/minecraft/world/entity/monster/Zombie.java
+++ b/net/minecraft/world/entity/monster/Zombie.java
@@ -91,11 +91,12 @@ public class Zombie extends Monster {
@@ -290,9 +290,9 @@ index 452fcb94b5d31e04bf3c96bd1b07ff9b54101595..6e3ae67dbb9a60177f26d075d42aacce
- private boolean shouldBurnInDay = true; // Paper - Add more Zombie API
+ //private boolean shouldBurnInDay = true; // Paper - Add more Zombie API // Purpur - implemented in LivingEntity - API for any mob to burn daylight
public Zombie(EntityType<? extends Zombie> entityType, Level level) {
super(entityType, level);
this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(level.paperConfig().entities.behavior.doorBreakingDifficulty.getOrDefault(entityType, level.paperConfig().entities.behavior.doorBreakingDifficulty.get(EntityType.ZOMBIE)))); // Paper - Configurable door breaking difficulty
public Zombie(EntityType<? extends Zombie> type, Level level) {
super(type, level);
this.breakDoorGoal = new BreakDoorGoal(this, com.google.common.base.Predicates.in(level.paperConfig().entities.behavior.doorBreakingDifficulty.getOrDefault(type, level.paperConfig().entities.behavior.doorBreakingDifficulty.get(EntityType.ZOMBIE)))); // Paper - Configurable door breaking difficulty
+ this.setShouldBurnInDay(true); // Purpur - API for any mob to burn daylight
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Cows naturally aggressive to players chance
diff --git a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
index 9251693b3caa2d77b093064b6599db1078cd06d0..99458462d99f0b503ccb55444f4930515c7c641c 100644
index 48be4530b25d273032ff1a055406c7cca928d678..65f48ced39fe3bffaea34b1f8d83374bfd5cc1c8 100644
--- a/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
+++ b/net/minecraft/world/entity/ai/attributes/DefaultAttributes.java
@@ -131,7 +131,7 @@ public class DefaultAttributes {
@@ -18,7 +18,7 @@ index 9251693b3caa2d77b093064b6599db1078cd06d0..99458462d99f0b503ccb55444f493051
.put(EntityType.OCELOT, Ocelot.createAttributes().build())
.put(EntityType.PANDA, Panda.createAttributes().build())
diff --git a/net/minecraft/world/entity/animal/Cow.java b/net/minecraft/world/entity/animal/Cow.java
index d584ffe3cc8dfb5fd4ce352b1da18af6a143d575..09ee10a17e15431a2937cf753e670dc000a2e36f 100644
index a71b6c8a0c48d9c7121e7d29cff6d388cb2df09f..150ba89fee07dcb67550165597203f572d901f04 100644
--- a/net/minecraft/world/entity/animal/Cow.java
+++ b/net/minecraft/world/entity/animal/Cow.java
@@ -23,6 +23,8 @@ import net.minecraft.world.level.storage.ValueInput;
@@ -29,7 +29,7 @@ index d584ffe3cc8dfb5fd4ce352b1da18af6a143d575..09ee10a17e15431a2937cf753e670dc0
+
private static final EntityDataAccessor<Holder<CowVariant>> DATA_VARIANT_ID = SynchedEntityData.defineId(Cow.class, EntityDataSerializers.COW_VARIANT);
public Cow(EntityType<? extends Cow> entityType, Level level) {
public Cow(EntityType<? extends Cow> type, Level level) {
@@ -49,8 +51,9 @@ public class Cow extends AbstractCow {
// Purpur start - Configurable entity base attributes
@Override

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Mobs always drop experience
diff --git a/net/minecraft/world/entity/GlowSquid.java b/net/minecraft/world/entity/GlowSquid.java
index 1c446cec71aa163374ab9832c961a6b4c3fc534b..86a694b94045b47f6e98c480645f75738b8a052c 100644
index a10a1e26d0260968c6becd1e9d68436071da8411..0a29ed8b1347ce7c854bb787e0d003ffdcf44830 100644
--- a/net/minecraft/world/entity/GlowSquid.java
+++ b/net/minecraft/world/entity/GlowSquid.java
@@ -61,6 +61,13 @@ public class GlowSquid extends Squid {
@@ -23,7 +23,7 @@ index 1c446cec71aa163374ab9832c961a6b4c3fc534b..86a694b94045b47f6e98c480645f7573
protected ParticleOptions getInkParticle() {
return ParticleTypes.GLOW_SQUID_INK;
diff --git a/net/minecraft/world/entity/ambient/Bat.java b/net/minecraft/world/entity/ambient/Bat.java
index 7b6caaeb34c297f22206d0da0293a56594654657..6ef5a4804032945c7ededa2eee1ae0ae4417019b 100644
index 9dd4d9a10df973fbf4e4fc63a8a7b7041f21ede4..a764dec7a349273b31a994c38e2c7374c6a1adb6 100644
--- a/net/minecraft/world/entity/ambient/Bat.java
+++ b/net/minecraft/world/entity/ambient/Bat.java
@@ -118,6 +118,13 @@ public class Bat extends AmbientCreature {
@@ -41,10 +41,10 @@ index 7b6caaeb34c297f22206d0da0293a56594654657..6ef5a4804032945c7ededa2eee1ae0ae
public boolean isFlapping() {
return !this.isResting() && this.tickCount % 10.0F == 0.0F;
diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java
index 980d3255d6dc7913fdb5437dafb702c2eff5d56f..a520052f0feae97c5ed8eb4af4fb48cdf56d6550 100644
index 234f02e0b75c6b9a8f52c440c680b539ee783f91..968ec5a7188cc4e4a60956e12e44c4b746cf78d1 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -497,6 +497,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
@@ -495,6 +495,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal {
}
// Purpur end - Toggle for water sensitive mob damage
@@ -59,7 +59,7 @@ index 980d3255d6dc7913fdb5437dafb702c2eff5d56f..a520052f0feae97c5ed8eb4af4fb48cd
public int getRemainingPersistentAngerTime() {
return this.entityData.get(DATA_REMAINING_ANGER_TIME);
diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java
index 41f303078b2e1f0460215fbfe27ff06fd5783c35..09d518a59fe93afbeacb2d41a0c9d287f4a74443 100644
index 842c03df5a4ee67192f2850b89be45648024fd17..aff91b88efcb2e089d5d0faebb4fc8cb8a48accd 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -139,6 +139,13 @@ public class Cat extends TamableAnimal {
@@ -77,7 +77,7 @@ index 41f303078b2e1f0460215fbfe27ff06fd5783c35..09d518a59fe93afbeacb2d41a0c9d287
protected void registerGoals() {
this.temptGoal = new Cat.CatTemptGoal(this, 0.6, stack -> stack.is(ItemTags.CAT_FOOD), true);
diff --git a/net/minecraft/world/entity/animal/Chicken.java b/net/minecraft/world/entity/animal/Chicken.java
index 58f7690a05febac5c57ba7ea2aff93b7d94a4291..eaf913805195a580e3aa816dc28053abb9bdc246 100644
index dde117db5952784e385f242d388b062d0fa1d49d..c36d35bcef9eee3da3371fc3c06f3fca124c3d80 100644
--- a/net/minecraft/world/entity/animal/Chicken.java
+++ b/net/minecraft/world/entity/animal/Chicken.java
@@ -116,6 +116,13 @@ public class Chicken extends Animal {
@@ -95,7 +95,7 @@ index 58f7690a05febac5c57ba7ea2aff93b7d94a4291..eaf913805195a580e3aa816dc28053ab
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/Cod.java b/net/minecraft/world/entity/animal/Cod.java
index 6128ed595cb97cc11c1a0e1e1673b3af8e428fb8..7e08573cba6efcd78fcce37bccc2923f374f3c44 100644
index f8fbba4ae8b0ecf9aec33f60b908a88fa2933713..50ebeabf494eab43b10394fa2fff312912df99b2 100644
--- a/net/minecraft/world/entity/animal/Cod.java
+++ b/net/minecraft/world/entity/animal/Cod.java
@@ -39,6 +39,13 @@ public class Cod extends AbstractSchoolingFish {
@@ -113,7 +113,7 @@ index 6128ed595cb97cc11c1a0e1e1673b3af8e428fb8..7e08573cba6efcd78fcce37bccc2923f
public ItemStack getBucketItemStack() {
return new ItemStack(Items.COD_BUCKET);
diff --git a/net/minecraft/world/entity/animal/Cow.java b/net/minecraft/world/entity/animal/Cow.java
index 09ee10a17e15431a2937cf753e670dc000a2e36f..b2fa170b14bc3037e5c143d320d0a1ef24738f1c 100644
index 150ba89fee07dcb67550165597203f572d901f04..c3d225f555b44d73196a3c34ca0b3a0c19434be5 100644
--- a/net/minecraft/world/entity/animal/Cow.java
+++ b/net/minecraft/world/entity/animal/Cow.java
@@ -71,6 +71,13 @@ public class Cow extends AbstractCow {
@@ -131,7 +131,7 @@ index 09ee10a17e15431a2937cf753e670dc000a2e36f..b2fa170b14bc3037e5c143d320d0a1ef
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/animal/Dolphin.java b/net/minecraft/world/entity/animal/Dolphin.java
index e6df7495a8c4e36ec7d0921a7dcccc16a9cb7916..39c31dcce4df2b5fddf69bf20e2d81b25ed8e469 100644
index aaeb8a787158171920993719afcacc58ffd0f5a2..c790233d6f254a77a42ec5628441345a506c37b0 100644
--- a/net/minecraft/world/entity/animal/Dolphin.java
+++ b/net/minecraft/world/entity/animal/Dolphin.java
@@ -166,6 +166,13 @@ public class Dolphin extends AgeableWaterCreature {
@@ -149,7 +149,7 @@ index e6df7495a8c4e36ec7d0921a7dcccc16a9cb7916..39c31dcce4df2b5fddf69bf20e2d81b2
@Override
public SpawnGroupData finalizeSpawn(
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index 15e5ebdf0446ccf4e380fe910a288d3bbf048549..0602c7fc5b5f4c895dcb9fc55fd2f079617c1483 100644
index 22058c67eff5204202b71d2df9db3e59c2e5f916..a78af2629a9df93ea17b21c05f3d688692250920 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -202,6 +202,13 @@ public class Fox extends Animal {
@@ -167,7 +167,7 @@ index 15e5ebdf0446ccf4e380fe910a288d3bbf048549..0602c7fc5b5f4c895dcb9fc55fd2f079
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java
index f15dcbd16f910f191f1e4ce8bda857476cc94fee..5b08703e27a9e92fb4bcd019661b1407078c24e1 100644
index dbc01564e23e7785e85b16f100925d36496ef51c..e85f17f362548f13a414a41f711900add788b2f7 100644
--- a/net/minecraft/world/entity/animal/HappyGhast.java
+++ b/net/minecraft/world/entity/animal/HappyGhast.java
@@ -159,6 +159,13 @@ public class HappyGhast extends Animal {
@@ -185,7 +185,7 @@ index f15dcbd16f910f191f1e4ce8bda857476cc94fee..5b08703e27a9e92fb4bcd019661b1407
protected void ageBoundaryReached() {
if (this.isBaby()) {
diff --git a/net/minecraft/world/entity/animal/IronGolem.java b/net/minecraft/world/entity/animal/IronGolem.java
index e58fb3cbb71693d8556bace35d6e57ea9e455d80..a0c3ef5ca2fccc0719b5d70e1610aa0fbf921b0c 100644
index 4a7c6dedb23ac1057eda80de4a2cd54fe3e6f76f..1c96cd8e369507dfedd7d3495861e0e270ad0cd6 100644
--- a/net/minecraft/world/entity/animal/IronGolem.java
+++ b/net/minecraft/world/entity/animal/IronGolem.java
@@ -107,6 +107,13 @@ public class IronGolem extends AbstractGolem implements NeutralMob {
@@ -203,7 +203,7 @@ index e58fb3cbb71693d8556bace35d6e57ea9e455d80..a0c3ef5ca2fccc0719b5d70e1610aa0f
protected void registerGoals() {
if (this.level().purpurConfig.ironGolemPoppyCalm) this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.ReceiveFlower(this)); // Purpur - Iron golem calm anger options
diff --git a/net/minecraft/world/entity/animal/MushroomCow.java b/net/minecraft/world/entity/animal/MushroomCow.java
index 270563334fcb1b2124e5721ce0d443ac8d712080..d08c79943993014d2a266b66ce79e30f6d7a321f 100644
index ddd763cc38e8c624db7ef207f244961bda0b5ae1..3b18ea446cc7e19295a9fa37b74c3a02be421e55 100644
--- a/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/net/minecraft/world/entity/animal/MushroomCow.java
@@ -101,6 +101,13 @@ public class MushroomCow extends AbstractCow implements Shearable {
@@ -221,7 +221,7 @@ index 270563334fcb1b2124e5721ce0d443ac8d712080..d08c79943993014d2a266b66ce79e30f
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
diff --git a/net/minecraft/world/entity/animal/Ocelot.java b/net/minecraft/world/entity/animal/Ocelot.java
index 4810b6cd45d27da3c601d1eb4d3377572f1a61dc..13f0e2910e232f115ecb2496de2192617fd334e5 100644
index 125d324832623bb52ac1afd197862876a0f5f928..72cbb5bf9023272f6e169a2956d2035706dd8a57 100644
--- a/net/minecraft/world/entity/animal/Ocelot.java
+++ b/net/minecraft/world/entity/animal/Ocelot.java
@@ -103,6 +103,13 @@ public class Ocelot extends Animal {
@@ -239,7 +239,7 @@ index 4810b6cd45d27da3c601d1eb4d3377572f1a61dc..13f0e2910e232f115ecb2496de219261
return this.entityData.get(DATA_TRUSTING);
}
diff --git a/net/minecraft/world/entity/animal/Panda.java b/net/minecraft/world/entity/animal/Panda.java
index 5fde42f9e86adc5872a10eb864a38f5bae171c10..580ded94fbb6ba861259fd92c174d0aab879b3ab 100644
index 36ec50791543c4eabf7158aa8d6ba272b14f6cd6..c97ec93732d10197ee978477dc07c097d45bbe15 100644
--- a/net/minecraft/world/entity/animal/Panda.java
+++ b/net/minecraft/world/entity/animal/Panda.java
@@ -156,6 +156,13 @@ public class Panda extends Animal {
@@ -257,7 +257,7 @@ index 5fde42f9e86adc5872a10eb864a38f5bae171c10..580ded94fbb6ba861259fd92c174d0aa
protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) {
return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot();
diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java
index 861739ca43e0212ab9ad4037693b729bd69fbb0b..fa00f9fab8a5f4226e2e4b061239537303ff73e0 100644
index f5c98b277984249ec077c5742854a3cb444eb68c..17d3814887adbc62d7a2f6eccc6e05e61b30bb29 100644
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -215,6 +215,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal {
@@ -275,7 +275,7 @@ index 861739ca43e0212ab9ad4037693b729bd69fbb0b..fa00f9fab8a5f4226e2e4b0612395373
@Override
public SpawnGroupData finalizeSpawn(
diff --git a/net/minecraft/world/entity/animal/Pig.java b/net/minecraft/world/entity/animal/Pig.java
index 5ea66e3eb813c961d4275657a69300bc3953b1bc..9a68ee7b31cf050af007c1a58cf4fd01771cd8ff 100644
index 719317c3cd5fc0202ef5deb150e0304191b121b8..2b9342497a408248f24682f547d93125ce268d86 100644
--- a/net/minecraft/world/entity/animal/Pig.java
+++ b/net/minecraft/world/entity/animal/Pig.java
@@ -105,6 +105,13 @@ public class Pig extends Animal implements ItemSteerable {
@@ -293,7 +293,7 @@ index 5ea66e3eb813c961d4275657a69300bc3953b1bc..9a68ee7b31cf050af007c1a58cf4fd01
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/PolarBear.java b/net/minecraft/world/entity/animal/PolarBear.java
index e69acaf3e99e298535ba9a39a6389f4ca5d304aa..de0d6239686fda715d2c5f3e34ce77edcf803800 100644
index eda9e5965a6ff244288215188de8e05ebcb61f14..9ac8beb6075502e3b18064429cb71c5d5b1d8831 100644
--- a/net/minecraft/world/entity/animal/PolarBear.java
+++ b/net/minecraft/world/entity/animal/PolarBear.java
@@ -139,6 +139,13 @@ public class PolarBear extends Animal implements NeutralMob {
@@ -309,9 +309,9 @@ index e69acaf3e99e298535ba9a39a6389f4ca5d304aa..de0d6239686fda715d2c5f3e34ce77ed
+
@Nullable
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob otherParent) {
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
diff --git a/net/minecraft/world/entity/animal/Pufferfish.java b/net/minecraft/world/entity/animal/Pufferfish.java
index d91560b021775dd29f1f099f4a9df8af0e7b8d4c..1ed4e7b13c7a578fbfdbf75740f79fadad3f6d2f 100644
index 49f1d08239e92aa4e8f18ee8054c13e54089ed82..6775cb8d78aaa7007077277b272825b7410877d4 100644
--- a/net/minecraft/world/entity/animal/Pufferfish.java
+++ b/net/minecraft/world/entity/animal/Pufferfish.java
@@ -73,6 +73,13 @@ public class Pufferfish extends AbstractFish {
@@ -329,7 +329,7 @@ index d91560b021775dd29f1f099f4a9df8af0e7b8d4c..1ed4e7b13c7a578fbfdbf75740f79fad
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java
index f773595560a59724c13a0f9e9cbe0a4d5b442313..44dc38b94c311a791fadb073200fe04510f5123e 100644
index fb773ac6f450f6632fd7af3d0c44af57075fdcce..f91e63d9bd382bf2ef76766def08342a91eae29c 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -167,6 +167,13 @@ public class Rabbit extends Animal {
@@ -347,7 +347,7 @@ index f773595560a59724c13a0f9e9cbe0a4d5b442313..44dc38b94c311a791fadb073200fe045
public void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/Salmon.java b/net/minecraft/world/entity/animal/Salmon.java
index 3c517936aee31fcf246787c033688870a2349e55..d2679beaa3be6de36227c5b66609e0df393c4376 100644
index b9641e307d669ba20428843575a6bb39065df034..db3610b7a95effd9ad6fc782d254b9e2a4eb434f 100644
--- a/net/minecraft/world/entity/animal/Salmon.java
+++ b/net/minecraft/world/entity/animal/Salmon.java
@@ -65,6 +65,13 @@ public class Salmon extends AbstractSchoolingFish {
@@ -365,7 +365,7 @@ index 3c517936aee31fcf246787c033688870a2349e55..d2679beaa3be6de36227c5b66609e0df
public int getMaxSchoolSize() {
return 5;
diff --git a/net/minecraft/world/entity/animal/SnowGolem.java b/net/minecraft/world/entity/animal/SnowGolem.java
index 448946f352e394b4c5e84914c583c26c0bd390c3..efba95b3d833f2393ae846af1b27d10ef75550af 100644
index 6cb6ff86e3fd7b9dd2929669dc1b0d339af9a95a..03071650204193f1130e8e17f280ae6ad2cfad38 100644
--- a/net/minecraft/world/entity/animal/SnowGolem.java
+++ b/net/minecraft/world/entity/animal/SnowGolem.java
@@ -88,6 +88,13 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -383,7 +383,7 @@ index 448946f352e394b4c5e84914c583c26c0bd390c3..efba95b3d833f2393ae846af1b27d10e
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/animal/Squid.java b/net/minecraft/world/entity/animal/Squid.java
index c752eec4ed181eb4fa5c8b382764f2f544719f23..19f176976218db6207b7cdd8aacd370b83cfd536 100644
index 38a2d3f1344a8a826ceca645279779beb3a4dde7..7126ee1e2c950d37ec33204da1b6910bcb6e9e30 100644
--- a/net/minecraft/world/entity/animal/Squid.java
+++ b/net/minecraft/world/entity/animal/Squid.java
@@ -106,6 +106,13 @@ public class Squid extends AgeableWaterCreature {
@@ -401,7 +401,7 @@ index c752eec4ed181eb4fa5c8b382764f2f544719f23..19f176976218db6207b7cdd8aacd370b
protected void registerGoals() {
this.goalSelector.addGoal(0, new Squid.SquidRandomMovementGoal(this));
diff --git a/net/minecraft/world/entity/animal/TropicalFish.java b/net/minecraft/world/entity/animal/TropicalFish.java
index 4510798913f94474b16ab6cbfa32dc0fdf0a226a..8d1fa86c6f4881c05f11fa80018b8de7f4920006 100644
index 22a75b6b1e6f130027e39051f04267fb436ae6de..64682d4cadcc15d6308f535591d130cfda244807 100644
--- a/net/minecraft/world/entity/animal/TropicalFish.java
+++ b/net/minecraft/world/entity/animal/TropicalFish.java
@@ -103,6 +103,13 @@ public class TropicalFish extends AbstractSchoolingFish {
@@ -419,7 +419,7 @@ index 4510798913f94474b16ab6cbfa32dc0fdf0a226a..8d1fa86c6f4881c05f11fa80018b8de7
return "entity.minecraft.tropical_fish.predefined." + variantId;
}
diff --git a/net/minecraft/world/entity/animal/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java
index 6a52e549257582d09af824f4067c91130f35cf8a..bb2f87ee973ad4163a7d130d607e6efa4cefdd92 100644
index e9b19fe300f9d5caebe8603d0347eae834408809..22401f6b05ab371568f76eb64af28bd762c21ce8 100644
--- a/net/minecraft/world/entity/animal/Turtle.java
+++ b/net/minecraft/world/entity/animal/Turtle.java
@@ -125,6 +125,13 @@ public class Turtle extends Animal {
@@ -437,7 +437,7 @@ index 6a52e549257582d09af824f4067c91130f35cf8a..bb2f87ee973ad4163a7d130d607e6efa
this.homePos = homePos;
}
diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
index 4932668448a7346758983b647f4e508061297ba2..08fb591e860b7b2b93b42bfc7a91d63999567dc6 100644
index c32a5f348e41d6ff733331b85baf32da839083fe..3cc8ee115e889ced4457596b9c5fce438157e980 100644
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -160,6 +160,13 @@ public class Axolotl extends Animal implements Bucketable {
@@ -455,7 +455,7 @@ index 4932668448a7346758983b647f4e508061297ba2..08fb591e860b7b2b93b42bfc7a91d639
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
return 0.0F;
diff --git a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
index 19d02efdd82f370d0edc62abdbb7be3a062f8706..eb1074a39d7d1ec8ecf7f2345e5402ef092cf9b1 100644
index 5095ddcf1a2a4d4f5cff6dbaeec39a4e6e0d1d92..088b2cf28f56d60167b03bcce5fbd2c47fa2de9a 100644
--- a/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
+++ b/net/minecraft/world/entity/animal/coppergolem/CopperGolem.java
@@ -148,6 +148,13 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
@@ -473,7 +473,7 @@ index 19d02efdd82f370d0edc62abdbb7be3a062f8706..eb1074a39d7d1ec8ecf7f2345e5402ef
return Mob.createMobAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F).add(Attributes.STEP_HEIGHT, 1.0).add(Attributes.MAX_HEALTH, 12.0);
}
diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java
index 4e93554170d9c91a7d704b161b91ca28b19be73b..99980c9a69b51f81a9cd4429d59fab9497d79656 100644
index b048ca99370c65446855e3867eeb29ddb6ad51f6..6b6461a61a1738d64220f571b8cf7b46605327c0 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -145,6 +145,13 @@ public class Goat extends Animal {
@@ -491,7 +491,7 @@ index 4e93554170d9c91a7d704b161b91ca28b19be73b..99980c9a69b51f81a9cd4429d59fab94
protected Brain.Provider<Goat> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/animal/horse/Donkey.java b/net/minecraft/world/entity/animal/horse/Donkey.java
index 9b17b1acf63fddb5f5b6cdf95283ae8f619a8120..0783d41a6c4622b03d9d368c1af949af1292dcb7 100644
index 322ff19885fc2a982bc3c4bd7b5588cd2974e425..2e44d50b3a8b3e69602f96d45474d823403547c8 100644
--- a/net/minecraft/world/entity/animal/horse/Donkey.java
+++ b/net/minecraft/world/entity/animal/horse/Donkey.java
@@ -54,6 +54,13 @@ public class Donkey extends AbstractChestedHorse {
@@ -509,7 +509,7 @@ index 9b17b1acf63fddb5f5b6cdf95283ae8f619a8120..0783d41a6c4622b03d9d368c1af949af
public SoundEvent getAmbientSound() {
return SoundEvents.DONKEY_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/horse/Horse.java b/net/minecraft/world/entity/animal/horse/Horse.java
index 2928159447a87ea8cc945e73e2e81ad1dbe13680..f1080a40f759b30b921b88b4f6edd35f4795406f 100644
index 4d8c6eac4d276dac7859bed1a1c83d45f1858b64..e437557688c9726222840c8a2dc94a2b40380b53 100644
--- a/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/net/minecraft/world/entity/animal/horse/Horse.java
@@ -85,6 +85,13 @@ public class Horse extends AbstractHorse {
@@ -527,7 +527,7 @@ index 2928159447a87ea8cc945e73e2e81ad1dbe13680..f1080a40f759b30b921b88b4f6edd35f
protected void randomizeAttributes(RandomSource random) {
this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt));
diff --git a/net/minecraft/world/entity/animal/horse/Llama.java b/net/minecraft/world/entity/animal/horse/Llama.java
index 9a16450170734e4c47bbc91d764b889765e473f0..e4f261e14bf57d6c50cf7c012707f1265fcf9f61 100644
index 32ceec4a08010a2febaac47b6288673cbc71ac90..cd231252ad71334578943325d5f14982af778849 100644
--- a/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/net/minecraft/world/entity/animal/horse/Llama.java
@@ -168,6 +168,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob {
@@ -545,7 +545,7 @@ index 9a16450170734e4c47bbc91d764b889765e473f0..e4f261e14bf57d6c50cf7c012707f126
return false;
}
diff --git a/net/minecraft/world/entity/animal/horse/Mule.java b/net/minecraft/world/entity/animal/horse/Mule.java
index 14a17d4b33b276f28e45ce06de06793a73a50916..6e0b1c83a6a03d12296e0e3b2c805b64d8378abd 100644
index b1c320210e3116249043ef91feb621e1af5afabf..b7ff4f9838581479e773b03922f57f529b1e2ee9 100644
--- a/net/minecraft/world/entity/animal/horse/Mule.java
+++ b/net/minecraft/world/entity/animal/horse/Mule.java
@@ -53,6 +53,13 @@ public class Mule extends AbstractChestedHorse {
@@ -563,7 +563,7 @@ index 14a17d4b33b276f28e45ce06de06793a73a50916..6e0b1c83a6a03d12296e0e3b2c805b64
public SoundEvent getAmbientSound() {
return SoundEvents.MULE_AMBIENT;
diff --git a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index cff709a28830a842a499f7dfe3b8bc0b703c9af4..f6ab6ecc10486694d77905239a82bda4dec94936 100644
index 9cd58494f090dd0d16787b3d739cbaa8bcd92370..986746435e837dd1de8ee86f7dcd796ef095d73b 100644
--- a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -80,6 +80,13 @@ public class SkeletonHorse extends AbstractHorse {
@@ -581,7 +581,7 @@ index cff709a28830a842a499f7dfe3b8bc0b703c9af4..f6ab6ecc10486694d77905239a82bda4
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/horse/TraderLlama.java b/net/minecraft/world/entity/animal/horse/TraderLlama.java
index 3222b0439a4c3cabab8f5648b71df2c215e335ff..61775beaba90ed3b43f5de62c96fe7bf81fc92e4 100644
index 204dfdeb5c3bb650dbd6c990c6a2e1e4d14b8c77..be8b7e4f449183ce20138ffbdd0c856859455ce8 100644
--- a/net/minecraft/world/entity/animal/horse/TraderLlama.java
+++ b/net/minecraft/world/entity/animal/horse/TraderLlama.java
@@ -84,6 +84,13 @@ public class TraderLlama extends Llama {
@@ -599,7 +599,7 @@ index 3222b0439a4c3cabab8f5648b71df2c215e335ff..61775beaba90ed3b43f5de62c96fe7bf
public boolean isTraderLlama() {
return true;
diff --git a/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index e78fac0a5e37d53afbc200f015adab60b3bfc9da..e59172ea2fafbab673dc3e9bdc25055f3d8f85ee 100644
index fd8a512910c886af1ae4e66edbf7f8d6fe0bc4f3..384bb954ea633c8e8ac239539925948b9dde6168 100644
--- a/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -76,6 +76,13 @@ public class ZombieHorse extends AbstractHorse {
@@ -617,7 +617,7 @@ index e78fac0a5e37d53afbc200f015adab60b3bfc9da..e59172ea2fafbab673dc3e9bdc25055f
return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java
index fe5bbf00e02efa8ff71014d2b334ad1f6cd4052f..5924a195de35d5fed84ef7175f7c69610eeafd38 100644
index e204b349615be98ea9a143ca2bb73a3a0a32baa4..21d66dd46650afae2091e236dfec760c096c34f8 100644
--- a/net/minecraft/world/entity/animal/sheep/Sheep.java
+++ b/net/minecraft/world/entity/animal/sheep/Sheep.java
@@ -101,6 +101,13 @@ public class Sheep extends Animal implements Shearable {
@@ -635,7 +635,7 @@ index fe5bbf00e02efa8ff71014d2b334ad1f6cd4052f..5924a195de35d5fed84ef7175f7c6961
protected void registerGoals() {
this.eatBlockGoal = new EatBlockGoal(this);
diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java
index 9c76157edc1ee7a15498e8759b5c2f71be3b0b51..b3f3959e5da61460a5c29b6a75af32e3459f3528 100644
index 4b1c93cf2e17ae85d3b34a49c15e2926d8d1c81a..353507a7483afd6428fb10c461ff5c4162a97704 100644
--- a/net/minecraft/world/entity/animal/wolf/Wolf.java
+++ b/net/minecraft/world/entity/animal/wolf/Wolf.java
@@ -230,6 +230,13 @@ public class Wolf extends TamableAnimal implements NeutralMob {
@@ -653,7 +653,7 @@ index 9c76157edc1ee7a15498e8759b5c2f71be3b0b51..b3f3959e5da61460a5c29b6a75af32e3
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
index d38a004d1192e967dfc82d858257fbfc4586df37..5b4d8bafaa7c03a40d02d84449a20cd0f7682afd 100644
index 37919a338630efeb87accb7e0a7d86fddc03e858..b2c0dc521f46fe3aaf82c70626917af4141a6615 100644
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
@@ -228,6 +228,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -671,7 +671,7 @@ index d38a004d1192e967dfc82d858257fbfc4586df37..5b4d8bafaa7c03a40d02d84449a20cd0
protected PathNavigation createNavigation(Level level) {
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
diff --git a/net/minecraft/world/entity/monster/Blaze.java b/net/minecraft/world/entity/monster/Blaze.java
index e43d6fabcaffca05ee93878ee28ac9df0bb5789f..26bef7ee1c68c75c77b7c72d8c08ce3b3c2efb98 100644
index e940633d5140bb19623cef9cc9d6acdae77ed392..354a4a10cce3fc3b7611ad99c0c7ed7d34f87b15 100644
--- a/net/minecraft/world/entity/monster/Blaze.java
+++ b/net/minecraft/world/entity/monster/Blaze.java
@@ -83,6 +83,13 @@ public class Blaze extends Monster {
@@ -689,7 +689,7 @@ index e43d6fabcaffca05ee93878ee28ac9df0bb5789f..26bef7ee1c68c75c77b7c72d8c08ce3b
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/CaveSpider.java b/net/minecraft/world/entity/monster/CaveSpider.java
index 420fe0d01d0b173a6a541f77e1aaca3f3bb565e7..7eca4b751d900c6d6ee34993c3e2368127d19e03 100644
index 239d855df83083e0eb875c430a165427f3a143de..994429d657e3f40b43b2c744112658e510be156c 100644
--- a/net/minecraft/world/entity/monster/CaveSpider.java
+++ b/net/minecraft/world/entity/monster/CaveSpider.java
@@ -58,6 +58,13 @@ public class CaveSpider extends Spider {
@@ -704,10 +704,10 @@ index 420fe0d01d0b173a6a541f77e1aaca3f3bb565e7..7eca4b751d900c6d6ee34993c3e23681
+ // Purpur end - Mobs always drop experience
+
@Override
public boolean doHurtTarget(ServerLevel level, Entity source) {
if (super.doHurtTarget(level, source)) {
public boolean doHurtTarget(ServerLevel level, Entity target) {
if (super.doHurtTarget(level, target)) {
diff --git a/net/minecraft/world/entity/monster/Creeper.java b/net/minecraft/world/entity/monster/Creeper.java
index 099ece4b4d0996fc26a5d42f81a42fcc63f22506..b68025d5c5e2727026bb792663d026f1be5a2ea2 100644
index 719c752270c3f1b2496184df0eb728e3c934a3d5..ff85af8c6f8a64e8472377decf47ab667f68a3f0 100644
--- a/net/minecraft/world/entity/monster/Creeper.java
+++ b/net/minecraft/world/entity/monster/Creeper.java
@@ -273,6 +273,13 @@ public class Creeper extends Monster {
@@ -725,7 +725,7 @@ index 099ece4b4d0996fc26a5d42f81a42fcc63f22506..b68025d5c5e2727026bb792663d026f1
public SoundEvent getHurtSound(DamageSource damageSource) {
return SoundEvents.CREEPER_HURT;
diff --git a/net/minecraft/world/entity/monster/Drowned.java b/net/minecraft/world/entity/monster/Drowned.java
index 33c45250277b2383f4ef1d740898ba02f22bcb26..592b4f139a184f0522e350f5b83777b235eb243c 100644
index 6beaed7f1ce39bef190cfa7e1addc28b929c0747..5a947d7fbf1a08011d87f71b96a8f221130fb583 100644
--- a/net/minecraft/world/entity/monster/Drowned.java
+++ b/net/minecraft/world/entity/monster/Drowned.java
@@ -130,6 +130,13 @@ public class Drowned extends Zombie implements RangedAttackMob {
@@ -743,7 +743,7 @@ index 33c45250277b2383f4ef1d740898ba02f22bcb26..592b4f139a184f0522e350f5b83777b2
protected void addBehaviourGoals() {
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
diff --git a/net/minecraft/world/entity/monster/ElderGuardian.java b/net/minecraft/world/entity/monster/ElderGuardian.java
index 287b6fea404d4f1f121219f92918dc2d1c0ac780..ab1c050ff326a072e817a05958b8f4ec803af063 100644
index 1ea323a17440abbe36c9528e80e169816267005b..abb7496c293175828fde54ae2b4991aa3ff6b30f 100644
--- a/net/minecraft/world/entity/monster/ElderGuardian.java
+++ b/net/minecraft/world/entity/monster/ElderGuardian.java
@@ -58,6 +58,13 @@ public class ElderGuardian extends Guardian {
@@ -761,7 +761,7 @@ index 287b6fea404d4f1f121219f92918dc2d1c0ac780..ab1c050ff326a072e817a05958b8f4ec
return Guardian.createAttributes().add(Attributes.MOVEMENT_SPEED, 0.3F).add(Attributes.ATTACK_DAMAGE, 8.0).add(Attributes.MAX_HEALTH, 80.0);
}
diff --git a/net/minecraft/world/entity/monster/EnderMan.java b/net/minecraft/world/entity/monster/EnderMan.java
index 122c68cd0ad5a308600d7bbde15d246131d28546..bf5fedd1dc7eea2a36edfb1420efe207ac409085 100644
index 09cce24dcc6a57f02c020c7e035e7940ddf9a962..e4d6610c43a019e9e1e296703e80eecc4ffdd36c 100644
--- a/net/minecraft/world/entity/monster/EnderMan.java
+++ b/net/minecraft/world/entity/monster/EnderMan.java
@@ -115,6 +115,13 @@ public class EnderMan extends Monster implements NeutralMob {
@@ -779,7 +779,7 @@ index 122c68cd0ad5a308600d7bbde15d246131d28546..bf5fedd1dc7eea2a36edfb1420efe207
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java
index a1e848405acfa412d0555f051f4a2f28d933652c..3b3855a74c62c6d513e07221ae45b1cbfb1a3c2f 100644
index c79c689cb99ad2a6cab88cf8b583ff0f9e91b115..4a778ad22f92e3fd95665a9b40ae932b427bac16 100644
--- a/net/minecraft/world/entity/monster/Endermite.java
+++ b/net/minecraft/world/entity/monster/Endermite.java
@@ -79,6 +79,13 @@ public class Endermite extends Monster {
@@ -797,7 +797,7 @@ index a1e848405acfa412d0555f051f4a2f28d933652c..3b3855a74c62c6d513e07221ae45b1cb
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Evoker.java b/net/minecraft/world/entity/monster/Evoker.java
index d77e3b0f36ec4a262ff375d9e2da912553a344f8..5c1992a7fd5d7c5fe23ebfad35a828263d0ff93c 100644
index 9015643b47e2d20a5c75c5f4bf2ec66399d4a2e5..274a40f0edc4d928570cf75ee1c51d1d03dabb2f 100644
--- a/net/minecraft/world/entity/monster/Evoker.java
+++ b/net/minecraft/world/entity/monster/Evoker.java
@@ -80,6 +80,13 @@ public class Evoker extends SpellcasterIllager {
@@ -815,7 +815,7 @@ index d77e3b0f36ec4a262ff375d9e2da912553a344f8..5c1992a7fd5d7c5fe23ebfad35a82826
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
index 2ad7a35efbae5c4697413a48ff28a4c6f3c94a35..ce7cd858e724f17d14e31516127a4c88874f3de8 100644
index f87e4b960fad01ceb62dc4c80ab80aaad5c7a986..2b3b893c6fa05727df0f24cac67f97cb890054fe 100644
--- a/net/minecraft/world/entity/monster/Ghast.java
+++ b/net/minecraft/world/entity/monster/Ghast.java
@@ -89,6 +89,13 @@ public class Ghast extends Mob implements Enemy {
@@ -833,7 +833,7 @@ index 2ad7a35efbae5c4697413a48ff28a4c6f3c94a35..ce7cd858e724f17d14e31516127a4c88
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Giant.java b/net/minecraft/world/entity/monster/Giant.java
index ccc2f7906c322a5406467986565074cbddf6cbe0..f4ec41a74b13be98f3ac78521fdd357842bc9ebd 100644
index 2204c729ce42e89a0b42b365e0060098afcf68f9..b7edb5db6621e982a6a529c5319ba68a07d2f6f0 100644
--- a/net/minecraft/world/entity/monster/Giant.java
+++ b/net/minecraft/world/entity/monster/Giant.java
@@ -69,6 +69,13 @@ public class Giant extends Monster {
@@ -851,7 +851,7 @@ index ccc2f7906c322a5406467986565074cbddf6cbe0..f4ec41a74b13be98f3ac78521fdd3578
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 100.0)
diff --git a/net/minecraft/world/entity/monster/Guardian.java b/net/minecraft/world/entity/monster/Guardian.java
index 0af004e822b6f474b8119626c542bd822bb21e45..fdb866927740f41c411914ab67ce77316937e3e2 100644
index 68eb628b5019c60df9f8bdfc7d47a6e68913fbd4..24f7af91a59d4e8975cf8aece3a934aa927972e9 100644
--- a/net/minecraft/world/entity/monster/Guardian.java
+++ b/net/minecraft/world/entity/monster/Guardian.java
@@ -105,6 +105,13 @@ public class Guardian extends Monster {
@@ -869,7 +869,7 @@ index 0af004e822b6f474b8119626c542bd822bb21e45..fdb866927740f41c411914ab67ce7731
protected void registerGoals() {
MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0);
diff --git a/net/minecraft/world/entity/monster/Husk.java b/net/minecraft/world/entity/monster/Husk.java
index f8f27c7e5be15d6b7684159c193167837270d96b..f2c55aa23ec647af6907b349b937c98fffd95523 100644
index 938c8e0708df47299a627b1c7f56793035dd219c..0bc9c1b235cd5ac771c7b0f200abe4fde38b7858 100644
--- a/net/minecraft/world/entity/monster/Husk.java
+++ b/net/minecraft/world/entity/monster/Husk.java
@@ -74,6 +74,13 @@ public class Husk extends Zombie {
@@ -887,7 +887,7 @@ index f8f27c7e5be15d6b7684159c193167837270d96b..f2c55aa23ec647af6907b349b937c98f
EntityType<Husk> entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Illusioner.java b/net/minecraft/world/entity/monster/Illusioner.java
index ac31cd022f079561ca90ceb2a1c28a126efd255a..2b7ea7db4153c084d5f1edd9e3555c59ea3bed12 100644
index ee5e0b20f65a5f7d7dc2cf8fea2eff56f8f56a41..e34c37a9a2eacc97f44fcb6d911cf215b07414a2 100644
--- a/net/minecraft/world/entity/monster/Illusioner.java
+++ b/net/minecraft/world/entity/monster/Illusioner.java
@@ -91,6 +91,13 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
@@ -905,7 +905,7 @@ index ac31cd022f079561ca90ceb2a1c28a126efd255a..2b7ea7db4153c084d5f1edd9e3555c59
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/MagmaCube.java b/net/minecraft/world/entity/monster/MagmaCube.java
index da90b7dc79aa6d01e88c1250fff662ba1b001dc3..7ef0f84d4c449a8991683ca66d7b16ca21ef4cdf 100644
index a5ca7a2f301cc8ae5878e583c2cf8aeef2085982..da80b17668e4268f02999f553e0e829f8fbb0d10 100644
--- a/net/minecraft/world/entity/monster/MagmaCube.java
+++ b/net/minecraft/world/entity/monster/MagmaCube.java
@@ -75,6 +75,13 @@ public class MagmaCube extends Slime {
@@ -923,7 +923,7 @@ index da90b7dc79aa6d01e88c1250fff662ba1b001dc3..7ef0f84d4c449a8991683ca66d7b16ca
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
}
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
index aa292ec60655cc9419da2a744c8cb841ddbc40e1..db1ce88d5289aa8432bafce099e3c73230681f76 100644
index c7d52c623d8616209ab742b69838beed156d80de..628fc869f5b4c33dfb2daf1e35db7c5df8aa28fd 100644
--- a/net/minecraft/world/entity/monster/Phantom.java
+++ b/net/minecraft/world/entity/monster/Phantom.java
@@ -147,6 +147,13 @@ public class Phantom extends Mob implements Enemy {
@@ -941,7 +941,7 @@ index aa292ec60655cc9419da2a744c8cb841ddbc40e1..db1ce88d5289aa8432bafce099e3c732
public boolean isFlapping() {
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
diff --git a/net/minecraft/world/entity/monster/Pillager.java b/net/minecraft/world/entity/monster/Pillager.java
index faaf42a029b1a0423c5e10ee3e17e4ba0e70be02..2ed473468032bb6edbd03882b5f5405b90a2f0f4 100644
index 1aa2f744b0d875fb874cf23a0601fee48ead66c2..8bc07bbf713ebd3afc8c0e62c92b5e11fb424307 100644
--- a/net/minecraft/world/entity/monster/Pillager.java
+++ b/net/minecraft/world/entity/monster/Pillager.java
@@ -96,6 +96,13 @@ public class Pillager extends AbstractIllager implements CrossbowAttackMob, Inve
@@ -959,7 +959,7 @@ index faaf42a029b1a0423c5e10ee3e17e4ba0e70be02..2ed473468032bb6edbd03882b5f5405b
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Ravager.java b/net/minecraft/world/entity/monster/Ravager.java
index d75df6de50f9830efeea826d0ebdac17f56d4c4b..2b85cedf235e673d6030c2a649abf60b5792b242 100644
index 5d7f6825d7bff413cac0fbf3a1d613bccd5102d6..7e137ae1bf2d2c0eae37a5ea857d4ea51d4044b7 100644
--- a/net/minecraft/world/entity/monster/Ravager.java
+++ b/net/minecraft/world/entity/monster/Ravager.java
@@ -108,6 +108,13 @@ public class Ravager extends Raider {
@@ -977,7 +977,7 @@ index d75df6de50f9830efeea826d0ebdac17f56d4c4b..2b85cedf235e673d6030c2a649abf60b
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
index 219ae068c4c17b38424af39b0c08d9e1e35fb00d..ae95ee80a8846c7daefb240f1e22aebd772a6ee9 100644
index 21b28d1ba59656b123aef95a7e18075dae9bc236..99589855c69e76ecdfa9bb21b62e59f175b24375 100644
--- a/net/minecraft/world/entity/monster/Shulker.java
+++ b/net/minecraft/world/entity/monster/Shulker.java
@@ -141,6 +141,13 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -995,7 +995,7 @@ index 219ae068c4c17b38424af39b0c08d9e1e35fb00d..ae95ee80a8846c7daefb240f1e22aebd
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
index 51714029d4ea5033014dcefd25f74cc0c9a72dbd..bcae390578519fef362a126fbcf2b5cfd18c3dc4 100644
index 190312706c2e69bb0cf6e402e8e3ad7dd64b7b98..929ebc003b0dd7bea252e905fb9fa671dc54a252 100644
--- a/net/minecraft/world/entity/monster/Silverfish.java
+++ b/net/minecraft/world/entity/monster/Silverfish.java
@@ -73,6 +73,13 @@ public class Silverfish extends Monster {
@@ -1013,7 +1013,7 @@ index 51714029d4ea5033014dcefd25f74cc0c9a72dbd..bcae390578519fef362a126fbcf2b5cf
protected void registerGoals() {
this.friendsGoal = new Silverfish.SilverfishWakeUpFriendsGoal(this);
diff --git a/net/minecraft/world/entity/monster/Skeleton.java b/net/minecraft/world/entity/monster/Skeleton.java
index 4c625007fdfc7525036ec0c761400b07facbb43a..44260780b36e5a20314ba4622c2a877f60df78c5 100644
index 1ae787edeb2011afb373fb44702f8a5150ee95b1..717e34cbca2e70d80c2c9e2921d9a53cac1b3f8f 100644
--- a/net/minecraft/world/entity/monster/Skeleton.java
+++ b/net/minecraft/world/entity/monster/Skeleton.java
@@ -56,6 +56,13 @@ public class Skeleton extends AbstractSkeleton {
@@ -1031,7 +1031,7 @@ index 4c625007fdfc7525036ec0c761400b07facbb43a..44260780b36e5a20314ba4622c2a877f
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/Slime.java b/net/minecraft/world/entity/monster/Slime.java
index 75a82b32c0efc1403dc9c875012739a417443c27..970105d598964194e167ad243f6e2fc2a19fba08 100644
index f6e0ec18150f91d42f9a5b2f45e5a6e80c4ea031..97d15b759d65e32df4d780ec4850b986fcaf6ead 100644
--- a/net/minecraft/world/entity/monster/Slime.java
+++ b/net/minecraft/world/entity/monster/Slime.java
@@ -141,6 +141,13 @@ public class Slime extends Mob implements Enemy {
@@ -1049,7 +1049,7 @@ index 75a82b32c0efc1403dc9c875012739a417443c27..970105d598964194e167ad243f6e2fc2
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/Spider.java b/net/minecraft/world/entity/monster/Spider.java
index ed343a806be211299f03c46ed2214caed552f149..9af8dc2e82491ef27f9b99feddb96df2cabbcf07 100644
index 5fa082b5a04d152c72f6053ca6bc4598899ca30c..ae72caa023d3df03b3458baf784dfade9e0b4ecb 100644
--- a/net/minecraft/world/entity/monster/Spider.java
+++ b/net/minecraft/world/entity/monster/Spider.java
@@ -82,6 +82,13 @@ public class Spider extends Monster {
@@ -1067,7 +1067,7 @@ index ed343a806be211299f03c46ed2214caed552f149..9af8dc2e82491ef27f9b99feddb96df2
protected void registerGoals() {
this.goalSelector.addGoal(1, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/monster/Stray.java b/net/minecraft/world/entity/monster/Stray.java
index e4ae604d4d0756edc9418634d9958338997c8203..e69a5c552d2f57bc373cb2b89690a7dd9c2faefc 100644
index 1d99432da3df434394a746f0bf4d5cc62c90dcba..dff140efcc082d828b26f4f0cbb7084a414d9faf 100644
--- a/net/minecraft/world/entity/monster/Stray.java
+++ b/net/minecraft/world/entity/monster/Stray.java
@@ -53,6 +53,13 @@ public class Stray extends AbstractSkeleton {
@@ -1085,7 +1085,7 @@ index e4ae604d4d0756edc9418634d9958338997c8203..e69a5c552d2f57bc373cb2b89690a7dd
EntityType<Stray> entityType, ServerLevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java
index d64ece808045016679b74c315ffd54b10eea47b9..592095f4c78866c53745786a615f1681dcaf6bf6 100644
index 1004aaf885268d08e68e5d2465fae2b5566a4eff..da7644dd2b9e86ec8947250ff998fb554e881161 100644
--- a/net/minecraft/world/entity/monster/Strider.java
+++ b/net/minecraft/world/entity/monster/Strider.java
@@ -124,6 +124,13 @@ public class Strider extends Animal implements ItemSteerable {
@@ -1103,7 +1103,7 @@ index d64ece808045016679b74c315ffd54b10eea47b9..592095f4c78866c53745786a615f1681
EntityType<Strider> entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random
) {
diff --git a/net/minecraft/world/entity/monster/Vex.java b/net/minecraft/world/entity/monster/Vex.java
index 39f7c6ab8aa0fb0e1b472205f4849b3b10c74d81..9ecbecb2a5feed3e4cbb09c07e2c5b66f0a1c7c6 100644
index 75681ed441e5cbb4c01a433f9757795089af234b..39d164dbc8aac355987c1725411395919ce1685f 100644
--- a/net/minecraft/world/entity/monster/Vex.java
+++ b/net/minecraft/world/entity/monster/Vex.java
@@ -119,6 +119,13 @@ public class Vex extends Monster implements TraceableEntity {
@@ -1121,7 +1121,7 @@ index 39f7c6ab8aa0fb0e1b472205f4849b3b10c74d81..9ecbecb2a5feed3e4cbb09c07e2c5b66
public boolean isFlapping() {
return this.tickCount % TICKS_PER_FLAP == 0;
diff --git a/net/minecraft/world/entity/monster/Vindicator.java b/net/minecraft/world/entity/monster/Vindicator.java
index 28fc1cd1e8721e2a87b5aa610d27afa8df3f4074..7f70b2387842f65da4632f1a27669a02d4e0402d 100644
index 33452593731c53f404059271b3fbb0407d75517c..e209b0ad1fa95d01387671b7dad4a347bb12ed4c 100644
--- a/net/minecraft/world/entity/monster/Vindicator.java
+++ b/net/minecraft/world/entity/monster/Vindicator.java
@@ -88,6 +88,13 @@ public class Vindicator extends AbstractIllager {
@@ -1139,7 +1139,7 @@ index 28fc1cd1e8721e2a87b5aa610d27afa8df3f4074..7f70b2387842f65da4632f1a27669a02
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/Witch.java b/net/minecraft/world/entity/monster/Witch.java
index 5d32cbb46b5ac9833a2a16e828b7d1915a08f3f1..1abfaf4bbb26dafc506ddf2d5449ba009364bd76 100644
index cafdebd0fa9a7458e5adaf109b3ebd4beed7a1ef..76e051fee759ce86b3d410c250ebee31a678f459 100644
--- a/net/minecraft/world/entity/monster/Witch.java
+++ b/net/minecraft/world/entity/monster/Witch.java
@@ -88,6 +88,13 @@ public class Witch extends Raider implements RangedAttackMob {
@@ -1157,7 +1157,7 @@ index 5d32cbb46b5ac9833a2a16e828b7d1915a08f3f1..1abfaf4bbb26dafc506ddf2d5449ba00
protected void registerGoals() {
super.registerGoals();
diff --git a/net/minecraft/world/entity/monster/WitherSkeleton.java b/net/minecraft/world/entity/monster/WitherSkeleton.java
index 29a2d1b25c8f04691d4e34fcb3256a4f0144829d..80705c379e6bc41c6b6e4e75e6168aef17c8acf1 100644
index 778779c79c56e2ca438ecbb82fbb16d70d312524..51e2078912991266f2dac79775b1d5701e85fe79 100644
--- a/net/minecraft/world/entity/monster/WitherSkeleton.java
+++ b/net/minecraft/world/entity/monster/WitherSkeleton.java
@@ -66,6 +66,13 @@ public class WitherSkeleton extends AbstractSkeleton {
@@ -1175,7 +1175,7 @@ index 29a2d1b25c8f04691d4e34fcb3256a4f0144829d..80705c379e6bc41c6b6e4e75e6168aef
protected void registerGoals() {
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractPiglin.class, true));
diff --git a/net/minecraft/world/entity/monster/Zoglin.java b/net/minecraft/world/entity/monster/Zoglin.java
index 5ed357158eccc48b2d1e25e06c35b7436086e7c5..e0ee4f71786dce5690cf75bb55def05c8608c8d2 100644
index 67998321b2c47d4aaf027c5fd17cb6d01e105b6f..2632dd89d2f5661137e2c09b8cd426fc40599f69 100644
--- a/net/minecraft/world/entity/monster/Zoglin.java
+++ b/net/minecraft/world/entity/monster/Zoglin.java
@@ -118,6 +118,13 @@ public class Zoglin extends Monster implements HoglinBase {
@@ -1193,7 +1193,7 @@ index 5ed357158eccc48b2d1e25e06c35b7436086e7c5..e0ee4f71786dce5690cf75bb55def05c
protected Brain.Provider<Zoglin> brainProvider() {
return Brain.provider(MEMORY_TYPES, SENSOR_TYPES);
diff --git a/net/minecraft/world/entity/monster/Zombie.java b/net/minecraft/world/entity/monster/Zombie.java
index 6e3ae67dbb9a60177f26d075d42aacce580ff956..63b29933e262115062a082dcaed0d16146a181bd 100644
index 00e9383ad8251da600c84885c439a207c256c22a..7e13f2958f3935077fe25570567d2576f435028c 100644
--- a/net/minecraft/world/entity/monster/Zombie.java
+++ b/net/minecraft/world/entity/monster/Zombie.java
@@ -149,6 +149,13 @@ public class Zombie extends Monster {
@@ -1211,7 +1211,7 @@ index 6e3ae67dbb9a60177f26d075d42aacce580ff956..63b29933e262115062a082dcaed0d161
protected void registerGoals() {
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java
index 31d8feaf5e2b84bee72796fd96502a862e573f52..f21f2c45edb5dc51154649b4406601c3c9840dfd 100644
index 1693fbcd47cc06409ac1849475feda7b5c4e437a..ee6ce9ccace1f602772542670d02bb5a4c8a4766 100644
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -126,6 +126,13 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -1229,7 +1229,7 @@ index 31d8feaf5e2b84bee72796fd96502a862e573f52..f21f2c45edb5dc51154649b4406601c3
protected void defineSynchedData(SynchedEntityData.Builder builder) {
super.defineSynchedData(builder);
diff --git a/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
index 3e262c6919287ad981b1d36b7f96dd14cae8e190..1955ea6cff628234342989249de6efd1180b0999 100644
index d43e4d29a75dd66551eb432ceec1cc3fda738364..9ee3fcc538be14f2eea8ed97eeec93b05a9cb4f2 100644
--- a/net/minecraft/world/entity/monster/ZombifiedPiglin.java
+++ b/net/minecraft/world/entity/monster/ZombifiedPiglin.java
@@ -113,6 +113,13 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob {
@@ -1247,7 +1247,7 @@ index 3e262c6919287ad981b1d36b7f96dd14cae8e190..1955ea6cff628234342989249de6efd1
public void setPersistentAngerTarget(@Nullable UUID target) {
this.persistentAngerTarget = target;
diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
index a98de218d58361cce3f0cde21fbffbe9c1584701..08c3372555d098b62465437798bf6cbd08e73ec5 100644
index 660d1f56cc74bc2a8764094d16772aace1234c15..c5f7213b91d7a533ff56e4789514b47adb791777 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -134,6 +134,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
@@ -1265,7 +1265,7 @@ index a98de218d58361cce3f0cde21fbffbe9c1584701..08c3372555d098b62465437798bf6cbd
public void setTimeInOverworld(int timeInOverworld) {
this.timeInOverworld = timeInOverworld;
diff --git a/net/minecraft/world/entity/monster/piglin/Piglin.java b/net/minecraft/world/entity/monster/piglin/Piglin.java
index 6eb4a5d752835110b7ff7c817bb31f027074c6db..000391f95bf2881765c304aecb013eb313d55ba1 100644
index 5bf58287dad04c96459982d55b5ac00646e37d53..dee71746e90f8a81e29ee35c3438219172509d6b 100644
--- a/net/minecraft/world/entity/monster/piglin/Piglin.java
+++ b/net/minecraft/world/entity/monster/piglin/Piglin.java
@@ -168,6 +168,13 @@ public class Piglin extends AbstractPiglin implements CrossbowAttackMob, Invento
@@ -1283,7 +1283,7 @@ index 6eb4a5d752835110b7ff7c817bb31f027074c6db..000391f95bf2881765c304aecb013eb3
protected void addAdditionalSaveData(ValueOutput output) {
super.addAdditionalSaveData(output);
diff --git a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
index f4893cc54d7f144025da0057beedb3a974c80dc1..70ee15527fa6f30783d6a58bb767b18124f25c53 100644
index e988a65cbd1f71f488fa8221ef11b6b1a05dc554..ebe1b4e0b841906684561151919a5b3f6e206b60 100644
--- a/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
+++ b/net/minecraft/world/entity/monster/piglin/PiglinBrute.java
@@ -97,6 +97,13 @@ public class PiglinBrute extends AbstractPiglin {
@@ -1301,7 +1301,7 @@ index f4893cc54d7f144025da0057beedb3a974c80dc1..70ee15527fa6f30783d6a58bb767b181
return Monster.createMonsterAttributes()
.add(Attributes.MAX_HEALTH, 50.0)
diff --git a/net/minecraft/world/entity/npc/Villager.java b/net/minecraft/world/entity/npc/Villager.java
index 08f6c4ca51177290bc80103d8ebd7087c41be954..dda4563b0f0d6f0d1a0ccd64a4ec787bf27abf2d 100644
index 810494826a7b600941f3087f114064e157ba88e6..0ab9ac120703285baa563391653323c17d05b20b 100644
--- a/net/minecraft/world/entity/npc/Villager.java
+++ b/net/minecraft/world/entity/npc/Villager.java
@@ -288,6 +288,13 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -1319,10 +1319,10 @@ index 08f6c4ca51177290bc80103d8ebd7087c41be954..dda4563b0f0d6f0d1a0ccd64a4ec787b
public Brain<Villager> getBrain() {
return (Brain<Villager>)super.getBrain();
diff --git a/net/minecraft/world/entity/npc/WanderingTrader.java b/net/minecraft/world/entity/npc/WanderingTrader.java
index a23b8788db33625df43940a26de8dffdb91d5d2d..1b86f903a1ef71465635ea04ed34832bf59ff6b5 100644
index 6e5f5711b729b41f5221fb7e7d0c8dad57f790ca..75d8e6d3e89959785fb2c187ec804bb53dba72d1 100644
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -105,6 +105,13 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
@@ -105,6 +105,13 @@ public class WanderingTrader extends AbstractVillager implements Consumable.Over
}
// Purpur end - Toggle for water sensitive mob damage

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/gametest/framework/TestCommand.java
+++ b/net/minecraft/gametest/framework/TestCommand.java
@@ -452,7 +_,7 @@
@@ -443,7 +_,7 @@
)
)
);

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/network/Connection.java
+++ b/net/minecraft/network/Connection.java
@@ -580,11 +_,20 @@
@@ -578,11 +_,20 @@
private static final int MAX_PER_TICK = io.papermc.paper.configuration.GlobalConfiguration.get().misc.maxJoinsPerTick; // Paper - Buffer joins to world
private static int joinAttemptsThisTick; // Paper - Buffer joins to world
private static int currTick; // Paper - Buffer joins to world

View File

@@ -17,15 +17,15 @@
// Paper start - improve tick loop
public final ca.spottedleaf.moonrise.common.time.TickData tickTimes1s = new ca.spottedleaf.moonrise.common.time.TickData(java.util.concurrent.TimeUnit.SECONDS.toNanos(1L));
public final ca.spottedleaf.moonrise.common.time.TickData tickTimes5s = new ca.spottedleaf.moonrise.common.time.TickData(java.util.concurrent.TimeUnit.SECONDS.toNanos(5L));
@@ -353,6 +_,7 @@
final long now = System.nanoTime();
@@ -370,6 +_,7 @@
public double[] computeTPS() {
final long interval = this.tickRateManager().nanosecondsPerTick();
return new double[] {
+ getTPS(this.tickTimes5s, now, interval), // Purpur - Add 5 second tps average in /tps
getTPS(this.tickTimes1m, now, interval),
getTPS(this.tickTimes5m, now, interval),
getTPS(this.tickTimes15m, now, interval)
@@ -993,6 +_,15 @@
+ getTPS(this.tickTimes5s, interval), // Purpur - Add 5 second tps average in /tps
getTPS(this.tickTimes1m, interval),
getTPS(this.tickTimes5m, interval),
getTPS(this.tickTimes15m, interval)
@@ -1012,6 +_,15 @@
LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
@@ -41,7 +41,7 @@
// CraftBukkit start
if (this.server != null) {
this.server.spark.disable(); // Paper - spark
@@ -1091,6 +_,8 @@
@@ -1110,6 +_,8 @@
this.safeShutdown(waitForShutdown, false);
}
public void safeShutdown(boolean waitForShutdown, boolean isRestarting) {
@@ -50,7 +50,7 @@
this.isRestarting = isRestarting;
this.hasLoggedStop = true; // Paper - Debugging
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
@@ -1274,6 +_,16 @@
@@ -1293,6 +_,16 @@
}
// Paper end - Add onboarding message for initial server start
@@ -67,7 +67,7 @@
while (this.running) {
final long tickStart = System.nanoTime(); // Paper - improve tick loop
long l; // Paper - improve tick loop - diff on change, expect this to be tick interval
@@ -1287,8 +_,10 @@
@@ -1306,8 +_,10 @@
final long ticksBehind = Math.max(1L, this.tickSchedule.getPeriodsAhead(l, tickStart));
final long catchup = (long)Math.max(
1,
@@ -79,7 +79,7 @@
// adjust ticksBehind so that it is not greater-than catchup
if (ticksBehind > catchup) {
@@ -1759,7 +_,7 @@
@@ -1778,7 +_,7 @@
long worldTime = level.getGameTime();
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
for (Player entityhuman : level.players()) {
@@ -88,7 +88,7 @@
continue;
}
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
@@ -1931,7 +_,7 @@
@@ -1950,7 +_,7 @@
@DontObfuscate
public String getServerModName() {

View File

@@ -3,11 +3,11 @@
@@ -53,6 +_,18 @@
}
private static int setMode(CommandContext<CommandSourceStack> source, Collection<ServerPlayer> players, GameType gameType) {
private static int setMode(CommandContext<CommandSourceStack> context, Collection<ServerPlayer> players, GameType gameType) {
+ // Purpur start - Gamemode extra permissions
+ if (org.purpurmc.purpur.PurpurConfig.commandGamemodeRequiresPermission) {
+ String gamemode = gameType.getName();
+ CommandSourceStack sender = source.getSource();
+ CommandSourceStack sender = context.getSource();
+ if (!sender.testPermission(2, "minecraft.command.gamemode." + gamemode)) {
+ return 0;
+ }

View File

@@ -15,7 +15,7 @@
this.server = server;
- this.customSpawners = customSpawners;
+ this.customSpawners = new ArrayList<>(); // Purpur - Allow toggling special MobSpawners per world
this.serverLevelData = levelData;
this.serverLevelData = serverLevelData;
+ // Purpur start - Allow toggling special MobSpawners per world
+ if (purpurConfig.phantomSpawning) {
+ this.customSpawners.add(new net.minecraft.world.level.levelgen.PhantomSpawner());
@@ -145,14 +145,14 @@
} else {
org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(this, heightmapPos, Blocks.SNOW.defaultBlockState(), 3, null); // CraftBukkit
@@ -1050,7 +_,7 @@
holder -> holder.is(PoiTypes.LIGHTNING_ROD),
blockPos -> blockPos.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, blockPos.getX(), blockPos.getZ()) - 1,
poiType -> poiType.is(PoiTypes.LIGHTNING_ROD),
pos1 -> pos1.getY() == this.getHeight(Heightmap.Types.WORLD_SURFACE, pos1.getX(), pos1.getZ()) - 1,
pos,
- 128,
+ org.purpurmc.purpur.PurpurConfig.lightningRodRange, // Purpur - Make lightning rod range configurable
PoiManager.Occupancy.ANY
);
return optional.map(blockPos -> blockPos.above(1));
return optional.map(pos1 -> pos1.above(1));
@@ -1099,8 +_,26 @@
int _int = this.getGameRules().getInt(GameRules.RULE_PLAYERS_SLEEPING_PERCENTAGE);
Component component;
@@ -196,7 +196,7 @@
this.serverLevelData.setThundering(false, org.bukkit.event.weather.ThunderChangeEvent.Cause.SLEEP); // Paper - Add cause to Weather/ThunderChangeEvents
// CraftBukkit start
// If we stop due to everyone sleeping we should reset the weather duration to some other random value.
@@ -2804,7 +_,7 @@
@@ -2794,7 +_,7 @@
// Spigot start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
// Paper start - Fix merchant inventory not closing on entity removal

View File

@@ -123,8 +123,8 @@
+ // Purpur end - Component related conveniences
+
@Override
public void displayClientMessage(Component chatComponent, boolean actionBar) {
this.sendSystemMessage(chatComponent, actionBar);
public void displayClientMessage(Component message, boolean overlay) {
this.sendSystemMessage(message, overlay);
@@ -2327,6 +_,20 @@
);
}
@@ -143,8 +143,8 @@
+ }
+ // Purpur end - Component related conveniences
+
public void sendSystemMessage(Component mesage) {
this.sendSystemMessage(mesage, false);
public void sendSystemMessage(Component message) {
this.sendSystemMessage(message, false);
}
@@ -2465,7 +_,67 @@
@@ -215,7 +215,7 @@
public ServerStatsCounter getStats() {
return this.stats;
@@ -3107,4 +_,56 @@
@@ -3109,4 +_,56 @@
return (org.bukkit.craftbukkit.entity.CraftPlayer) super.getBukkitEntity();
}
// CraftBukkit end

View File

@@ -26,8 +26,8 @@
if (interactionResult.consumesAction()) {
CriteriaTriggers.ITEM_USED_ON_BLOCK.trigger(player, blockPos, itemStack);
@@ -573,4 +_,18 @@
public void setLevel(ServerLevel serverLevel) {
this.level = serverLevel;
public void setLevel(ServerLevel level) {
this.level = level;
}
+
+ // Purpur start - Shift right click to use exp for mending

View File

@@ -37,7 +37,7 @@
public void broadcastAll(Packet<?> packet, ResourceKey<Level> dimension) {
for (ServerPlayer serverPlayer : this.players) {
if (serverPlayer.level().dimension() == dimension) {
@@ -906,6 +_,7 @@
@@ -904,6 +_,7 @@
} else {
b = (byte)(24 + permLevel);
}
@@ -45,7 +45,7 @@
player.connection.send(new ClientboundEntityEventPacket(player, b));
}
@@ -918,7 +_,7 @@
@@ -916,7 +_,7 @@
// Paper start - whitelist verify event / login event
public LoginResult canBypassFullServerLogin(final NameAndId nameAndId, final LoginResult currentResult) {

View File

@@ -2,19 +2,19 @@
+++ b/net/minecraft/world/damagesource/CombatRules.java
@@ -15,7 +_,7 @@
public static float getDamageAfterAbsorb(LivingEntity entity, float damage, DamageSource damageSource, float armorValue, float armorToughness) {
public static float getDamageAfterAbsorb(LivingEntity entity, float damageAmount, DamageSource damageSource, float armorValue, float armorToughness) {
float f = 2.0F + armorToughness / 4.0F;
- float f1 = Mth.clamp(armorValue - damage / f, armorValue * 0.2F, 20.0F);
+ float f1 = Mth.clamp(armorValue - damage / f, armorValue * 0.2F, org.purpurmc.purpur.PurpurConfig.limitArmor ? 20F : Float.MAX_VALUE); // Purpur - Add attribute clamping and armor limit config
- float f1 = Mth.clamp(armorValue - damageAmount / f, armorValue * 0.2F, 20.0F);
+ float f1 = Mth.clamp(armorValue - damageAmount / f, armorValue * 0.2F, org.purpurmc.purpur.PurpurConfig.limitArmor ? 20F : Float.MAX_VALUE); // Purpur - Add attribute clamping and armor limit config
float f2 = f1 / 25.0F;
ItemStack weaponItem = damageSource.getWeaponItem();
float f3;
@@ -30,7 +_,7 @@
}
public static float getDamageAfterMagicAbsorb(float damage, float enchantModifiers) {
public static float getDamageAfterMagicAbsorb(float damageAmount, float enchantModifiers) {
- float f = Mth.clamp(enchantModifiers, 0.0F, 20.0F);
+ float f = Mth.clamp(enchantModifiers, 0.0F, org.purpurmc.purpur.PurpurConfig.limitArmor ? 20F : Float.MAX_VALUE); // Purpur - Add attribute clamping and armor limit config
return damage * (1.0F - f / 25.0F);
return damageAmount * (1.0F - f / 25.0F);
}
}

View File

@@ -48,10 +48,10 @@
+ }
+ // Purpur end - Add canSaveToDisk to Entity
+
public Entity(EntityType<?> entityType, Level level) {
this.type = entityType;
public Entity(EntityType<?> type, Level level) {
this.type = type;
this.level = level;
this.dimensions = entityType.getDimensions();
this.dimensions = type.getDimensions();
+ // Purpur start - Add toggle for RNG manipulation
+ this.random = level == null || level.purpurConfig.entitySharedRandom ? SHARED_RANDOM : RandomSource.create();
+ this.uuid = Mth.createInsecureUUID(this.random);
@@ -99,7 +99,7 @@
} catch (Throwable var7) {
CrashReport crashReport = CrashReport.forThrowable(var7, "Loading entity NBT");
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
@@ -3035,6 +_,7 @@
@@ -3034,6 +_,7 @@
if (this.isAlive() && this instanceof Leashable leashable2) {
if (leashable2.getLeashHolder() == player) {
if (!this.level().isClientSide()) {
@@ -107,7 +107,7 @@
// Paper start - EntityUnleashEvent
if (!org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerUnleashEntityEvent(
leashable2, player, hand, !player.hasInfiniteMaterials(), true
@@ -3459,15 +_,18 @@
@@ -3458,15 +_,18 @@
return Vec3.directionFromRotation(this.getRotationVector());
}
@@ -127,7 +127,7 @@
}
}
}
@@ -3672,7 +_,7 @@
@@ -3671,7 +_,7 @@
}
public int getMaxAirSupply() {
@@ -136,7 +136,7 @@
}
public int getAirSupply() {
@@ -4234,7 +_,7 @@
@@ -4233,7 +_,7 @@
// CraftBukkit end
public boolean canUsePortal(boolean allowPassengers) {
@@ -145,7 +145,7 @@
}
public boolean canTeleport(Level fromLevel, Level toLevel) {
@@ -4749,6 +_,12 @@
@@ -4748,6 +_,12 @@
return Mth.lerp(partialTick, this.yRotO, this.yRot);
}
@@ -158,7 +158,7 @@
// Paper start - optimise collisions
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
if (this.touchingUnloadedChunk()) {
@@ -5166,7 +_,7 @@
@@ -5165,7 +_,7 @@
}
public float maxUpStep() {

View File

@@ -17,7 +17,7 @@
public static ResourceLocation getKey(EntityType<?> entityType) {
return BuiltInRegistries.ENTITY_TYPE.getKey(entityType);
}
@@ -1442,6 +_,16 @@
@@ -1444,6 +_,16 @@
return this.category;
}
@@ -34,7 +34,7 @@
public String getDescriptionId() {
return this.descriptionId;
}
@@ -1501,7 +_,11 @@
@@ -1503,7 +_,11 @@
entity.load(input);
},
// Paper end - Don't fire sync event during generation

View File

@@ -1,7 +1,7 @@
--- a/net/minecraft/world/entity/GlowSquid.java
+++ b/net/minecraft/world/entity/GlowSquid.java
@@ -27,6 +_,13 @@
super(entityType, level);
super(type, level);
}
+ // Purpur start - Flying squids! Oh my!

View File

@@ -137,7 +137,7 @@
final org.bukkit.inventory.EquipmentSlot handSlot = (hand != null) ? org.bukkit.craftbukkit.CraftEquipmentSlot.getHand(hand) : null;
final EntityResurrectEvent event = new EntityResurrectEvent((org.bukkit.entity.LivingEntity) this.getBukkitEntity(), handSlot);
event.setCancelled(itemStack == null);
@@ -1914,6 +_,7 @@
@@ -1920,6 +_,7 @@
boolean flag = this.lastHurtByPlayerMemoryTime > 0;
this.dropEquipment(level); // CraftBukkit - from below
if (this.shouldDropLoot(level)) {
@@ -145,7 +145,7 @@
this.dropFromLootTable(level, damageSource, flag);
// Paper start
final boolean prev = this.clearEquipmentSlots;
@@ -1922,6 +_,7 @@
@@ -1928,6 +_,7 @@
// Paper end
this.dropCustomDeathLoot(level, damageSource, flag);
this.clearEquipmentSlots = prev; // Paper
@@ -153,7 +153,7 @@
}
// CraftBukkit start - Call death event // Paper start - call advancement triggers with correct entity equipment
@@ -3140,6 +_,7 @@
@@ -3146,6 +_,7 @@
float f = (float)(d * 10.0 - 3.0);
if (f > 0.0F) {
this.playSound(this.getFallDamageSound((int)f), 1.0F, 1.0F);
@@ -161,7 +161,7 @@
this.hurt(this.damageSources().flyIntoWall(), f);
}
}
@@ -4539,6 +_,12 @@
@@ -4545,6 +_,12 @@
? slot == EquipmentSlot.MAINHAND && this.canUseSlot(EquipmentSlot.MAINHAND)
: slot == equippable.slot() && this.canUseSlot(equippable.slot()) && equippable.canBeEquippedBy(this.getType());
}

View File

@@ -6,8 +6,8 @@
public net.kyori.adventure.util.TriState despawnInPeacefulOverride = net.kyori.adventure.util.TriState.NOT_SET; // Paper - allow changing despawnInPeaceful
+ public int ticksSinceLastInteraction; // Purpur - Entity lifespan
protected Mob(EntityType<? extends Mob> entityType, Level level) {
super(entityType, level);
protected Mob(EntityType<? extends Mob> type, Level level) {
super(type, level);
@@ -295,6 +_,7 @@
target = null;
}
@@ -44,7 +44,7 @@
+ // Purpur end - Entity lifespan
@Override
protected void playHurtSound(DamageSource source) {
protected void playHurtSound(DamageSource damageSource) {
@@ -443,6 +_,7 @@
output.putString("Paper.DespawnInPeacefulOverride", this.despawnInPeacefulOverride.name());
}

View File

@@ -10,15 +10,15 @@
this.usePlayerItem(player, hand, itemInHand);
this.setInLove(serverPlayer, breedCopy); // Paper - Fix EntityBreedEvent copying
@@ -223,10 +_,20 @@
public void spawnChildFromBreeding(ServerLevel level, Animal mate) {
AgeableMob breedOffspring = this.getBreedOffspring(level, mate);
public void spawnChildFromBreeding(ServerLevel level, Animal partner) {
AgeableMob breedOffspring = this.getBreedOffspring(level, partner);
if (breedOffspring != null) {
- breedOffspring.setBaby(true);
- breedOffspring.snapTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F);
+ //breedOffspring.setBaby(true); // Purpur - Add adjustable breeding cooldown to config - moved down
+ //breedOffspring.snapTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F); // Purpur - Add adjustable breeding cooldown to config - moved down
// CraftBukkit start - Call EntityBreedEvent
ServerPlayer breeder = Optional.ofNullable(this.getLoveCause()).or(() -> Optional.ofNullable(mate.getLoveCause())).orElse(null);
ServerPlayer breeder = Optional.ofNullable(this.getLoveCause()).or(() -> Optional.ofNullable(partner.getLoveCause())).orElse(null);
+ // Purpur start - Add adjustable breeding cooldown to config
+ if (breeder != null && level.purpurConfig.animalBreedingCooldownSeconds > 0) {
+ if (level.hasBreedingCooldown(breeder.getUUID(), this.getClass())) {
@@ -30,5 +30,5 @@
+ breedOffspring.snapTo(this.getX(), this.getY(), this.getZ(), 0.0F, 0.0F);
+ // Purpur end - Add adjustable breeding cooldown to config
int experience = this.getRandom().nextInt(7) + 1;
org.bukkit.event.entity.EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(breedOffspring, this, mate, breeder, this.breedItem, experience);
org.bukkit.event.entity.EntityBreedEvent entityBreedEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(breedOffspring, this, partner, breeder, this.breedItem, experience);
if (entityBreedEvent.isCancelled()) {

View File

@@ -9,7 +9,7 @@
this.setPathfindingMalus(PathType.WATER_BORDER, 16.0F);
this.setPathfindingMalus(PathType.COCOA, -1.0F);
this.setPathfindingMalus(PathType.FENCE, -1.0F);
@@ -368,7 +_,7 @@
@@ -366,7 +_,7 @@
}
public static boolean isNightOrRaining(Level level) {
@@ -18,7 +18,7 @@
}
public void setStayOutOfHiveCountdown(int stayOutOfHiveCountdown) {
@@ -391,7 +_,7 @@
@@ -389,7 +_,7 @@
@Override
protected void customServerAiStep(ServerLevel level) {
boolean hasStung = this.hasStung();
@@ -27,7 +27,7 @@
this.underWaterTicks++;
} else {
this.underWaterTicks = 0;
@@ -401,6 +_,7 @@
@@ -399,6 +_,7 @@
this.hurtServer(level, this.damageSources().drown(), 1.0F);
}
@@ -35,7 +35,7 @@
if (hasStung) {
this.timeSinceSting++;
if (this.timeSinceSting % 5 == 0 && this.random.nextInt(Mth.clamp(1200 - this.timeSinceSting, 1, 1200)) == 0) {
@@ -1140,6 +_,7 @@
@@ -1138,6 +_,7 @@
Bee.this.savedFlowerPos = optional.get();
Bee.this.navigation
.moveTo(Bee.this.savedFlowerPos.getX() + 0.5, Bee.this.savedFlowerPos.getY() + 0.5, Bee.this.savedFlowerPos.getZ() + 0.5, 1.2F);
@@ -43,7 +43,7 @@
return true;
} else {
Bee.this.remainingCooldownBeforeLocatingNewFlower = Mth.nextInt(Bee.this.random, 20, 60);
@@ -1186,6 +_,7 @@
@@ -1184,6 +_,7 @@
this.pollinating = false;
Bee.this.navigation.stop();
Bee.this.remainingCooldownBeforeLocatingNewFlower = 200;
@@ -51,7 +51,7 @@
}
@Override
@@ -1232,6 +_,7 @@
@@ -1230,6 +_,7 @@
this.setWantedPos();
}

View File

@@ -6,8 +6,8 @@
public BlockPos treasurePos;
+ private boolean isNaturallyAggressiveToPlayers; // Purpur - Dolphins naturally aggressive to players chance
public Dolphin(EntityType<? extends Dolphin> entityType, Level level) {
super(entityType, level);
public Dolphin(EntityType<? extends Dolphin> type, Level level) {
super(type, level);
@@ -90,6 +_,7 @@
this.setAirSupply(this.getMaxAirSupply());
this.setXRot(0.0F);

View File

@@ -6,8 +6,8 @@
private UUID persistentAngerTarget;
+ @Nullable private UUID summoner; // Purpur - Summoner API
public IronGolem(EntityType<? extends IronGolem> entityType, Level level) {
super(entityType, level);
public IronGolem(EntityType<? extends IronGolem> type, Level level) {
super(type, level);
}
+ // Purpur start - Summoner API

View File

@@ -1,7 +1,7 @@
--- a/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/net/minecraft/world/entity/animal/MushroomCow.java
@@ -201,6 +_,13 @@
level.playSound(null, this, SoundEvents.MOOSHROOM_SHEAR, soundSource, 1.0F, 1.0F);
level.playSound(null, this, SoundEvents.MOOSHROOM_SHEAR, source, 1.0F, 1.0F);
this.convertTo(EntityType.COW, ConversionParams.single(this, false, false), cow -> {
level.sendParticles(ParticleTypes.EXPLOSION, this.getX(), this.getY(0.5), this.getZ(), 1, 0.0, 0.0, 0.0, 0.0);
+ // Purpur start - Fix cow rotation when shearing mooshroom

View File

@@ -44,7 +44,7 @@
@Nullable
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob otherParent) {
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
- return null;
+ return level.purpurConfig.parrotBreedable ? EntityType.PARROT.create(level, EntitySpawnReason.BREEDING) : null; // Purpur - Breedable parrots
}

View File

@@ -1,7 +1,7 @@
--- a/net/minecraft/world/entity/animal/PolarBear.java
+++ b/net/minecraft/world/entity/animal/PolarBear.java
@@ -65,6 +_,29 @@
super(entityType, level);
super(type, level);
}
+ // Purpur start - Breedable Polar Bears
@@ -29,7 +29,7 @@
+
@Nullable
@Override
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob otherParent) {
public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob partner) {
@@ -73,7 +_,7 @@
@Override

View File

@@ -6,8 +6,8 @@
private static final boolean DEFAULT_PUMPKIN = true;
+ @Nullable private java.util.UUID summoner; // Purpur - Summoner API
public SnowGolem(EntityType<? extends SnowGolem> entityType, Level level) {
super(entityType, level);
public SnowGolem(EntityType<? extends SnowGolem> type, Level level) {
super(type, level);
}
+ // Purpur start - Summoner API

View File

@@ -2,9 +2,9 @@
+++ b/net/minecraft/world/entity/animal/Squid.java
@@ -46,10 +_,29 @@
public Squid(EntityType<? extends Squid> entityType, Level level) {
super(entityType, level);
- //this.random.setSeed(this.getId()); // Paper - Share random for entities to make them more random
public Squid(EntityType<? extends Squid> type, Level level) {
super(type, level);
- // this.random.setSeed(this.getId()); // Paper - Share random for entities to make them more random
+ if (!level.purpurConfig.entitySharedRandom) this.random.setSeed(this.getId()); // Paper - Share random for entities to make them more random // Purpur - Add toggle for RNG manipulation
this.tentacleSpeed = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F;
}

View File

@@ -6,8 +6,8 @@
public static final EquipmentSlot EQUIPMENT_SLOT_ANTENNA = EquipmentSlot.SADDLE;
+ @Nullable private UUID summoner; // Purpur - Summoner API
public CopperGolem(EntityType<? extends AbstractGolem> entityType, Level level) {
super(entityType, level);
public CopperGolem(EntityType<? extends AbstractGolem> type, Level level) {
super(type, level);
@@ -97,6 +_,17 @@
this.getBrain().setMemory(MemoryModuleType.TRANSPORT_ITEMS_COOLDOWN_TICKS, this.getRandom().nextInt(60, 100));
}

View File

@@ -3,9 +3,9 @@
@@ -43,7 +_,7 @@
private static final int TICK_TO_START_ON_REACHED_INTERACTION = 1;
private static final int TICK_TO_PLAY_ON_REACHED_SOUND = 9;
private static final Predicate<BlockState> TRANSPORT_ITEM_SOURCE_BLOCK = blockState -> blockState.is(BlockTags.COPPER_CHESTS);
- private static final Predicate<BlockState> TRANSPORT_ITEM_DESTINATION_BLOCK = blockState -> blockState.is(Blocks.CHEST)
+ private static final Predicate<BlockState> TRANSPORT_ITEM_DESTINATION_BLOCK = blockState -> blockState.is(Blocks.CHEST) // Purpur - copper golem can place items in barrels option - diff on change
|| blockState.is(Blocks.TRAPPED_CHEST);
private static final Predicate<BlockState> TRANSPORT_ITEM_SOURCE_BLOCK = state -> state.is(BlockTags.COPPER_CHESTS);
- private static final Predicate<BlockState> TRANSPORT_ITEM_DESTINATION_BLOCK = state -> state.is(Blocks.CHEST) || state.is(Blocks.TRAPPED_CHEST);
+ private static final Predicate<BlockState> TRANSPORT_ITEM_DESTINATION_BLOCK = state -> state.is(Blocks.CHEST) || state.is(Blocks.TRAPPED_CHEST); // Purpur - copper golem can place items in barrels option - diff on change
private static final ImmutableList<SensorType<? extends Sensor<? super CopperGolem>>> SENSOR_TYPES = ImmutableList.of(
SensorType.NEAREST_LIVING_ENTITIES, SensorType.HURT_BY
);

View File

@@ -3,12 +3,12 @@
@@ -78,6 +_,7 @@
private Llama caravanHead;
@Nullable
public Llama caravanTail; // Paper
public Llama caravanTail; // Paper - public
+ public boolean shouldJoinCaravan = true; // Purpur - Llama API
public Llama(EntityType<? extends Llama> entityType, Level level) {
super(entityType, level);
@@ -112,6 +_,7 @@
public Llama(EntityType<? extends Llama> type, Level level) {
super(type, level);
@@ -107,6 +_,7 @@
super.addAdditionalSaveData(output);
output.store("Variant", Llama.Variant.LEGACY_CODEC, this.getVariant());
output.putInt("Strength", this.getStrength());
@@ -16,7 +16,7 @@
}
@Override
@@ -119,6 +_,7 @@
@@ -114,6 +_,7 @@
this.setStrength(input.getIntOr("Strength", 0));
super.readAdditionalSaveData(input);
this.setVariant(input.read("Variant", Llama.Variant.LEGACY_CODEC).orElse(Llama.Variant.DEFAULT));
@@ -24,7 +24,7 @@
}
@Override
@@ -400,6 +_,7 @@
@@ -395,6 +_,7 @@
public void leaveCaravan() {
if (this.caravanHead != null) {
@@ -32,7 +32,7 @@
this.caravanHead.caravanTail = null;
}
@@ -407,6 +_,7 @@
@@ -402,6 +_,7 @@
}
public void joinCaravan(Llama caravanHead) {

View File

@@ -6,8 +6,8 @@
private static final TargetingConditions TARGETING_CONDITIONS = TargetingConditions.forCombat().range(20.0).selector(LIVING_ENTITY_SELECTOR);
+ @Nullable private java.util.UUID summoner; // Purpur - Summoner API
public WitherBoss(EntityType<? extends WitherBoss> entityType, Level level) {
super(entityType, level);
public WitherBoss(EntityType<? extends WitherBoss> type, Level level) {
super(type, level);
@@ -87,6 +_,17 @@
this.xpReward = 50;
}

View File

@@ -6,8 +6,8 @@
// Paper end - Allow ArmorStands not to tick
+ public boolean canMovementTick = true; // Purpur - Movement options for armor stands
public ArmorStand(EntityType<? extends ArmorStand> entityType, Level level) {
super(entityType, level);
public ArmorStand(EntityType<? extends ArmorStand> type, Level level) {
super(type, level);
if (level != null) this.canTick = level.paperConfig().entities.armorStands.tick; // Paper - Allow ArmorStands not to tick
+ if (level != null) this.canMovementTick = level.purpurConfig.armorstandMovement; // Purpur - Movement options for armor stands
+ this.setShowArms(level != null && level.purpurConfig.armorstandPlaceWithArms); // Purpur - Config to show Armor Stand arms on spawn

View File

@@ -11,8 +11,8 @@
+ public boolean immuneToLightning = false;
+ // Purpur end - Item entity immunities
public ItemEntity(EntityType<? extends ItemEntity> entityType, Level level) {
super(entityType, level);
public ItemEntity(EntityType<? extends ItemEntity> type, Level level) {
super(type, level);
@@ -333,7 +_,16 @@
@Override

View File

@@ -2,12 +2,12 @@
+++ b/net/minecraft/world/entity/monster/Creeper.java
@@ -56,6 +_,7 @@
public int explosionRadius = 3;
private boolean droppedSkulls;
public boolean droppedSkulls;
public @Nullable Entity entityIgniter; // CraftBukkit
+ private boolean exploding = false; // Purpur - Config to make Creepers explode on death
public Creeper(EntityType<? extends Creeper> entityType, Level level) {
super(entityType, level);
public Creeper(EntityType<? extends Creeper> type, Level level) {
super(type, level);
@@ -159,6 +_,27 @@
return false; // CraftBukkit
}

View File

@@ -6,8 +6,8 @@
public int life = 0;
+ private boolean isPlayerSpawned; // Purpur - Add back player spawned endermite API
public Endermite(EntityType<? extends Endermite> entityType, Level level) {
super(entityType, level);
public Endermite(EntityType<? extends Endermite> type, Level level) {
super(type, level);
this.xpReward = 3;
}

View File

@@ -19,10 +19,10 @@
}
+
+ // Purpur start - Toggle for Zombified Piglin death always counting as player kill when angry
+ if (livingEntity instanceof Player player && this.level().purpurConfig.zombifiedPiglinCountAsPlayerKillWhenAngry) {
+ if (target instanceof Player player && this.level().purpurConfig.zombifiedPiglinCountAsPlayerKillWhenAngry) {
+ this.setLastHurtByPlayer(player, this.tickCount);
+ }
+ // Purpur end - Toggle for Zombified Piglin death always counting as player kill when angry
return super.setTarget(livingEntity, reason); // CraftBukkit
return super.setTarget(target, reason); // CraftBukkit
}

View File

@@ -7,8 +7,8 @@
+ private boolean isLobotomized = false; public boolean isLobotomized() { return this.isLobotomized; } // Purpur - Lobotomize stuck villagers
+ private int notLobotomizedCount = 0; // Purpur - Lobotomize stuck villagers
public Villager(EntityType<? extends Villager> entityType, Level level) {
this(entityType, level, VillagerType.PLAINS);
public Villager(EntityType<? extends Villager> type, Level level) {
this(type, level, VillagerType.PLAINS);
@@ -196,6 +_,57 @@
this.setVillagerData(this.getVillagerData().withType(villagerType).withProfession(level.registryAccess(), VillagerProfession.NONE));
}
@@ -121,11 +121,11 @@
@@ -922,6 +_,7 @@
}
public void spawnGolemIfNeeded(ServerLevel serverLevel, long gameTime, int minVillagerAmount) {
+ if (serverLevel.purpurConfig.villagerSpawnIronGolemRadius > 0 && serverLevel.getEntitiesOfClass(net.minecraft.world.entity.animal.IronGolem.class, getBoundingBox().inflate(serverLevel.purpurConfig.villagerSpawnIronGolemRadius)).size() > serverLevel.purpurConfig.villagerSpawnIronGolemLimit) return; // Purpur - Implement configurable search radius for villagers to spawn iron golems
public void spawnGolemIfNeeded(ServerLevel level, long gameTime, int minVillagerAmount) {
+ if (level.purpurConfig.villagerSpawnIronGolemRadius > 0 && level.getEntitiesOfClass(net.minecraft.world.entity.animal.IronGolem.class, getBoundingBox().inflate(level.purpurConfig.villagerSpawnIronGolemRadius)).size() > level.purpurConfig.villagerSpawnIronGolemLimit) return; // Purpur - Implement configurable search radius for villagers to spawn iron golems
if (this.wantsToSpawnGolem(gameTime)) {
AABB aabb = this.getBoundingBox().inflate(10.0, 10.0, 10.0);
List<Villager> entitiesOfClass = serverLevel.getEntitiesOfClass(Villager.class, aabb);
List<Villager> entitiesOfClass = level.getEntitiesOfClass(Villager.class, aabb);
@@ -989,6 +_,12 @@
@Override

View File

@@ -1,7 +1,7 @@
--- a/net/minecraft/world/entity/npc/WanderingTrader.java
+++ b/net/minecraft/world/entity/npc/WanderingTrader.java
@@ -60,6 +_,13 @@
super(entityType, level);
super(type, level);
}
+ // Purpur start - Allow leashing villagers

View File

@@ -6,9 +6,9 @@
public ItemStack firedFromWeapon = null;
+ public net.minecraft.world.item.enchantment.ItemEnchantments actualEnchantments = net.minecraft.world.item.enchantment.ItemEnchantments.EMPTY; // Purpur - Add an option to fix MC-3304 projectile looting
protected AbstractArrow(EntityType<? extends AbstractArrow> entityType, Level level) {
super(entityType, level);
@@ -350,7 +_,7 @@
protected AbstractArrow(EntityType<? extends AbstractArrow> type, Level level) {
super(type, level);
@@ -344,7 +_,7 @@
this.setInGround(false);
Vec3 deltaMovement = this.getDeltaMovement();
this.setDeltaMovement(deltaMovement.multiply(this.random.nextFloat() * 0.2F, this.random.nextFloat() * 0.2F, this.random.nextFloat() * 0.2F));
@@ -17,7 +17,7 @@
}
public boolean isInGround() {
@@ -574,6 +_,12 @@
@@ -568,6 +_,12 @@
public ItemStack getWeaponItem() {
return this.firedFromWeapon;
}

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/entity/projectile/ThrownTrident.java
+++ b/net/minecraft/world/entity/projectile/ThrownTrident.java
@@ -66,7 +_,7 @@
@@ -69,7 +_,7 @@
Entity owner = this.getOwner();
int i = this.entityData.get(ID_LOYALTY);

View File

@@ -1,7 +1,7 @@
--- a/net/minecraft/world/inventory/AbstractFurnaceMenu.java
+++ b/net/minecraft/world/inventory/AbstractFurnaceMenu.java
@@ -121,7 +_,13 @@
} else if (index != 1 && index != 0) {
} else if (slotIndex != 1 && slotIndex != 0) {
if (this.canSmelt(item)) {
if (!this.moveItemStackTo(item, 0, 1, false)) {
- return ItemStack.EMPTY;

View File

@@ -44,8 +44,8 @@
@Override
public void removed(Player player) {
super.removed(player);
- this.access.execute((level, blockPos) -> this.clearContainer(player, this.enchantSlots));
+ this.access.execute((level, blockPos) -> {if (level.purpurConfig.enchantmentTableLapisPersists) this.getSlot(1).set(ItemStack.EMPTY);this.clearContainer(player, this.enchantSlots);}); // Purpur - Enchantment Table Persists Lapis
- this.access.execute((level, pos) -> this.clearContainer(player, this.enchantSlots));
+ this.access.execute((level, pos) -> {if (level.purpurConfig.enchantmentTableLapisPersists) this.getSlot(1).set(ItemStack.EMPTY);this.clearContainer(player, this.enchantSlots);}); // Purpur - Enchantment Table Persists Lapis
}
@Override

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/world/inventory/ItemCombinerMenu.java
+++ b/net/minecraft/world/inventory/ItemCombinerMenu.java
@@ -156,7 +_,9 @@
@@ -155,7 +_,9 @@
return ItemStack.EMPTY;
}

View File

@@ -1,10 +1,10 @@
--- a/net/minecraft/world/item/MapItem.java
+++ b/net/minecraft/world/item/MapItem.java
@@ -194,6 +_,7 @@
public static void renderBiomePreviewMap(ServerLevel serverLevel, ItemStack stack) {
MapItemSavedData savedData = getSavedData(stack, serverLevel);
public static void renderBiomePreviewMap(ServerLevel level, ItemStack stack) {
MapItemSavedData savedData = getSavedData(stack, level);
if (savedData != null) {
+ savedData.isExplorerMap = true; // Purpur - Explorer Map API
if (serverLevel.dimension() == savedData.dimension) {
if (level.dimension() == savedData.dimension) {
int i = 1 << savedData.scale;
int i1 = savedData.centerX;

View File

@@ -24,17 +24,17 @@
public static void dropResources(BlockState state, LevelAccessor level, BlockPos pos, @Nullable BlockEntity blockEntity) {
if (level instanceof ServerLevel) {
- getDrops(state, (ServerLevel)level, pos, blockEntity).forEach(itemStack -> popResource((ServerLevel)level, pos, itemStack));
+ getDrops(state, (ServerLevel)level, pos, blockEntity).forEach(itemStack -> popResource((ServerLevel)level, pos, applyLoreFromTile(itemStack, blockEntity))); // Purpur - Persistent BlockEntity Lore and DisplayName
- getDrops(state, (ServerLevel)level, pos, blockEntity).forEach(stack -> popResource((ServerLevel)level, pos, stack));
+ getDrops(state, (ServerLevel)level, pos, blockEntity).forEach(stack -> popResource((ServerLevel)level, pos, applyLoreFromTile(stack, blockEntity))); // Purpur - Persistent BlockEntity Lore and DisplayName
state.spawnAfterBreak((ServerLevel)level, pos, ItemStack.EMPTY, true);
}
}
@@ -414,11 +_,30 @@
public static void dropResources(BlockState state, Level level, BlockPos pos, @Nullable BlockEntity blockEntity, @Nullable Entity entity, ItemStack tool, boolean dropExperience) {
// Paper end - Properly handle xp dropping
// Paper end - Properly handle xp dropping
if (level instanceof ServerLevel) {
- getDrops(state, (ServerLevel)level, pos, blockEntity, entity, tool).forEach(itemStack -> popResource(level, pos, itemStack));
+ getDrops(state, (ServerLevel)level, pos, blockEntity, entity, tool).forEach(itemStack -> popResource(level, pos, applyLoreFromTile(itemStack, blockEntity))); // Purpur - Persistent BlockEntity Lore and DisplayName
- getDrops(state, (ServerLevel)level, pos, blockEntity, entity, tool).forEach(stack -> popResource(level, pos, stack));
+ getDrops(state, (ServerLevel)level, pos, blockEntity, entity, tool).forEach(stack -> popResource(level, pos, applyLoreFromTile(stack, blockEntity))); // Purpur - Persistent BlockEntity Lore and DisplayName
state.spawnAfterBreak((ServerLevel)level, pos, tool, dropExperience); // Paper - Properly handle xp dropping
}
}

View File

@@ -1,14 +1,14 @@
--- a/net/minecraft/world/level/block/BubbleColumnBlock.java
+++ b/net/minecraft/world/level/block/BubbleColumnBlock.java
@@ -100,9 +_,9 @@
if (blockState.is(Blocks.BUBBLE_COLUMN)) {
return blockState;
} else if (blockState.is(Blocks.SOUL_SAND)) {
@@ -99,9 +_,9 @@
if (state.is(Blocks.BUBBLE_COLUMN)) {
return state;
} else if (state.is(Blocks.SOUL_SAND)) {
- return Blocks.BUBBLE_COLUMN.defaultBlockState().setValue(DRAG_DOWN, false);
+ return Blocks.BUBBLE_COLUMN.defaultBlockState().setValue(DRAG_DOWN, org.purpurmc.purpur.PurpurConfig.soulSandBlockReverseBubbleColumnFlow); // Purpur - Config to reverse bubble column flow
} else {
- return blockState.is(Blocks.MAGMA_BLOCK) ? Blocks.BUBBLE_COLUMN.defaultBlockState().setValue(DRAG_DOWN, true) : Blocks.WATER.defaultBlockState();
+ return blockState.is(Blocks.MAGMA_BLOCK) ? Blocks.BUBBLE_COLUMN.defaultBlockState().setValue(DRAG_DOWN, !org.purpurmc.purpur.PurpurConfig.magmaBlockReverseBubbleColumnFlow) : Blocks.WATER.defaultBlockState(); // Purpur - Config to reverse bubble column flow
- return state.is(Blocks.MAGMA_BLOCK) ? Blocks.BUBBLE_COLUMN.defaultBlockState().setValue(DRAG_DOWN, true) : Blocks.WATER.defaultBlockState();
+ return state.is(Blocks.MAGMA_BLOCK) ? Blocks.BUBBLE_COLUMN.defaultBlockState().setValue(DRAG_DOWN, !org.purpurmc.purpur.PurpurConfig.magmaBlockReverseBubbleColumnFlow) : Blocks.WATER.defaultBlockState(); // Purpur - Config to reverse bubble column flow
}
}

View File

@@ -2,7 +2,7 @@
+++ b/net/minecraft/world/level/block/CropBlock.java
@@ -169,7 +_,7 @@
@Override
protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean flag) {
protected void entityInside(BlockState state, Level level, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean pastEdges) {
if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(level, pos)).callEvent()) { return; } // Paper - Add EntityInsideBlockEvent
- if (level instanceof ServerLevel serverLevel && entity instanceof Ravager && org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !serverLevel.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit
+ if (level instanceof ServerLevel serverLevel && entity instanceof Ravager && serverLevel.purpurConfig.ravagerGriefableBlocks.contains(serverLevel.getBlockState(pos).getBlock()) && org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState(), !serverLevel.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit // Purpur - Configurable ravager griefable blocks list

View File

@@ -3,13 +3,13 @@
@@ -138,7 +_,7 @@
@Override
protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean isMoving) {
protected void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) {
- if (this.shouldSpreadLiquid(level, pos, state)) {
+ if (level.purpurConfig.tickFluids && this.shouldSpreadLiquid(level, pos, state)) { // Purpur - Tick fluids config
level.scheduleTick(pos, state.getFluidState().getType(), this.getFlowSpeed(level, pos)); // Paper - Configurable speed for water flowing over lava
}
}
@@ -173,7 +_,7 @@
@@ -175,7 +_,7 @@
BlockState neighborState,
RandomSource random
) {
@@ -18,7 +18,7 @@
scheduledTickAccess.scheduleTick(pos, state.getFluidState().getType(), this.fluid.getTickDelay(level));
}
@@ -182,7 +_,7 @@
@@ -184,7 +_,7 @@
@Override
protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block neighborBlock, @Nullable Orientation orientation, boolean movedByPiston) {

View File

@@ -44,7 +44,7 @@
public void clearBees() {
this.stored.clear();
@@ -397,8 +_,8 @@
registration.register(DebugSubscriptions.BEE_HIVES, () -> DebugHiveInfo.pack(this));
registrar.register(DebugSubscriptions.BEE_HIVES, () -> DebugHiveInfo.pack(this));
}
- static class BeeData {

View File

@@ -6,8 +6,8 @@
private Component name;
+ private int lapis = 0; // Purpur - Enchantment Table Persists Lapis
public EnchantingTableBlockEntity(BlockPos pos, BlockState state) {
super(BlockEntityType.ENCHANTING_TABLE, pos, state);
public EnchantingTableBlockEntity(BlockPos pos, BlockState blockState) {
super(BlockEntityType.ENCHANTING_TABLE, pos, blockState);
@@ -40,12 +_,14 @@
protected void saveAdditional(ValueOutput output) {
super.saveAdditional(output);

View File

@@ -20,5 +20,5 @@
+ }
+ // Purpur end - Implement infinite liquids
protected void spreadTo(LevelAccessor level, BlockPos pos, BlockState blockState, Direction direction, FluidState fluidState) {
if (blockState.getBlock() instanceof LiquidBlockContainer liquidBlockContainer) {
protected void spreadTo(LevelAccessor level, BlockPos pos, BlockState state, Direction direction, FluidState fluidState) {
if (state.getBlock() instanceof LiquidBlockContainer liquidBlockContainer) {