@@ -79,7 +79,7 @@ index 9a94249834f8b0b8d3f6aeaf0c859ba875079250..0ade0256c3a227ea6a2971b2c5889b99
7979 if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
8080 entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it.
8181diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
82- index 37632d0c41149e6269fead808903765f0e59dbcc..856803084d30cc4cbdb53bd6db15e7db5ea16154 100644
82+ index 37632d0c41149e6269fead808903765f0e59dbcc..eed3fa6b14b1e93f8d6571bba5675796e3418f49 100644
8383--- a/src/main/java/net/minecraft/world/entity/Entity.java
8484+++ b/src/main/java/net/minecraft/world/entity/Entity.java
8585@@ -377,7 +377,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
@@ -124,7 +124,7 @@ index 37632d0c41149e6269fead808903765f0e59dbcc..856803084d30cc4cbdb53bd6db15e7db
124124 return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
125125 }
126126 // Paper end
127- + urpur start
127+ + // Purpur start
128128+ @Nullable
129129+ private Player rider = null;
130130+
@@ -2009,7 +2009,7 @@ index b05b560b7570e97bc234b75f26233909fcf575b3..71234b258157579d3a47064e7e299bb7
20092009 return "entity.minecraft.tropical_fish.predefined." + variant;
20102010 }
20112011diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
2012- index d8056421249c8e75e96a55ec07dce84d2bba9c5c..d22509f74bab68a06a8fa1a8547a2689053c6f85 100644
2012+ index d8056421249c8e75e96a55ec07dce84d2bba9c5c..be0c77cd7ca3c9b9379c16b47dc5b5e354847ccf 100644
20132013--- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java
20142014+++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java
20152015@@ -86,6 +86,23 @@ public class Turtle extends Animal {
@@ -2079,23 +2079,6 @@ index d8056421249c8e75e96a55ec07dce84d2bba9c5c..d22509f74bab68a06a8fa1a8547a2689
20792079
20802080 this.turtle.setSpeed(Mth.lerp(0.125F, this.turtle.getSpeed(), f1));
20812081 this.turtle.setDeltaMovement(this.turtle.getDeltaMovement().add(0.0D, (double) this.turtle.getSpeed() * d1 * 0.1D, 0.0D));
2082- @@ -523,6 +543,16 @@ public class Turtle extends Animal {
2083-
2084- }
2085-
2086- + // Purpur start
2087- + public void purpurTick(Player rider) {
2088- + if (turtle.isInWater()) {
2089- + waterController.purpurTick(rider);
2090- + } else {
2091- + super.purpurTick(rider);
2092- + }
2093- + }
2094- + // Purpur end
2095- +
2096- @Override
2097- protected boolean isValidTarget(LevelReader world, BlockPos pos) {
2098- return !world.isEmptyBlock(pos.above()) ? false : TurtleEggBlock.isSand(world, pos);
20992082diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
21002083index eecb7511582e5e316b71fa4a4734881424be5ca7..2efa2e19485f9d959a55115ab62f985454689379 100644
21012084--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
@@ -2792,7 +2775,7 @@ index a6f3fba3b02b0b4d2a4e9e5205301c6f52d0188a..4eebfc27ded55e4d764d04f35d3e9c9e
27922775 protected void defineSynchedData() {
27932776 }
27942777diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
2795- index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818afb47d20 100644
2778+ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..152111ff4c29e6cf13afeba8c9707f407c2b3531 100644
27962779--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
27972780+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
27982781@@ -107,6 +107,7 @@ public class EnderDragon extends Mob implements Enemy {
@@ -2803,7 +2786,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
28032786
28042787 public EnderDragon(EntityType<? extends EnderDragon> entitytypes, Level world) {
28052788 super(EntityType.ENDER_DRAGON, world);
2806- @@ -129,6 +130,38 @@ public class EnderDragon extends Mob implements Enemy {
2789+ @@ -129,6 +130,37 @@ public class EnderDragon extends Mob implements Enemy {
28072790 this.noCulling = true;
28082791 this.phaseManager = new EnderDragonPhaseManager(this);
28092792 this.explosionSource = new Explosion(world, this, null, null, Double.NaN, Double.NaN, Double.NaN, Float.NaN, true, Explosion.BlockInteraction.DESTROY, ParticleTypes.EXPLOSION, ParticleTypes.EXPLOSION_EMITTER, SoundEvents.GENERIC_EXPLODE); // CraftBukkit
@@ -2838,11 +2821,10 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
28382821+ @Override
28392822+ public boolean dismountsUnderwater() {
28402823+ return level().purpurConfig.useDismountsUnderwaterTag ? super.dismountsUnderwater() : !level().purpurConfig.enderDragonRidableInWater;
2841- + }
28422824 }
28432825
28442826 public void setDragonFight(EndDragonFight fight) {
2845- @@ -143,6 +176 ,17 @@ public class EnderDragon extends Mob implements Enemy {
2827+ @@ -143,6 +175 ,17 @@ public class EnderDragon extends Mob implements Enemy {
28462828 return this.fightOrigin;
28472829 }
28482830
@@ -2860,7 +2842,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
28602842 public static AttributeSupplier.Builder createAttributes() {
28612843 return Mob.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D);
28622844 }
2863- @@ -204,6 +248 ,37 @@ public class EnderDragon extends Mob implements Enemy {
2845+ @@ -204,6 +247 ,37 @@ public class EnderDragon extends Mob implements Enemy {
28642846
28652847 @Override
28662848 public void aiStep() {
@@ -2898,7 +2880,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
28982880 this.processFlappingMovement();
28992881 if (this.level().isClientSide) {
29002882 this.setHealth(this.getHealth());
2901- @@ -230,6 +305 ,8 @@ public class EnderDragon extends Mob implements Enemy {
2883+ @@ -230,6 +304 ,8 @@ public class EnderDragon extends Mob implements Enemy {
29022884 float f;
29032885
29042886 if (this.isDeadOrDying()) {
@@ -2907,7 +2889,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
29072889 float f1 = (this.random.nextFloat() - 0.5F) * 8.0F;
29082890
29092891 f = (this.random.nextFloat() - 0.5F) * 4.0F;
2910- @@ -242,9 +319 ,9 @@ public class EnderDragon extends Mob implements Enemy {
2892+ @@ -242,9 +318 ,9 @@ public class EnderDragon extends Mob implements Enemy {
29112893
29122894 f = 0.2F / ((float) vec3d.horizontalDistance() * 10.0F + 1.0F);
29132895 f *= (float) Math.pow(2.0D, vec3d.y);
@@ -2919,7 +2901,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
29192901 this.flapTime += f * 0.5F;
29202902 } else {
29212903 this.flapTime += f;
2922- @@ -278,7 +355 ,7 @@ public class EnderDragon extends Mob implements Enemy {
2904+ @@ -278,7 +354 ,7 @@ public class EnderDragon extends Mob implements Enemy {
29232905 }
29242906
29252907 this.phaseManager.getCurrentPhase().doClientTick();
@@ -2928,7 +2910,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
29282910 DragonPhaseInstance idragoncontroller = this.phaseManager.getCurrentPhase();
29292911
29302912 idragoncontroller.doServerTick();
2931- @@ -347,7 +424 ,7 @@ public class EnderDragon extends Mob implements Enemy {
2913+ @@ -347,7 +423 ,7 @@ public class EnderDragon extends Mob implements Enemy {
29322914 this.tickPart(this.body, (double) (f11 * 0.5F), 0.0D, (double) (-f12 * 0.5F));
29332915 this.tickPart(this.wing1, (double) (f12 * 4.5F), 2.0D, (double) (f11 * 4.5F));
29342916 this.tickPart(this.wing2, (double) (f12 * -4.5F), 2.0D, (double) (f11 * -4.5F));
@@ -2937,7 +2919,7 @@ index f56bb431be7d5f1a1b8edec41af1f3a28289316d..a6feb1cf892050068ea2f30a0c785818
29372919 this.knockBack(this.level().getEntities((Entity) this, this.wing1.getBoundingBox().inflate(4.0D, 2.0D, 4.0D).move(0.0D, -2.0D, 0.0D), EntitySelector.NO_CREATIVE_OR_SPECTATOR));
29382920 this.knockBack(this.level().getEntities((Entity) this, this.wing2.getBoundingBox().inflate(4.0D, 2.0D, 4.0D).move(0.0D, -2.0D, 0.0D), EntitySelector.NO_CREATIVE_OR_SPECTATOR));
29392921 this.hurt(this.level().getEntities((Entity) this, this.head.getBoundingBox().inflate(1.0D), EntitySelector.NO_CREATIVE_OR_SPECTATOR));
2940- @@ -391,7 +468 ,7 @@ public class EnderDragon extends Mob implements Enemy {
2922+ @@ -391,7 +467 ,7 @@ public class EnderDragon extends Mob implements Enemy {
29412923 }
29422924
29432925 if (!this.level().isClientSide) {
0 commit comments