Updated Upstream (Paper & Tuinity)

Upstream has released updates that appears to apply and compile correctly

Paper Changes:
7f23e2ca [CI-SKIP] Make travis use 'build' instead of 'patch' (#4592)
a7861cbb Updated Upstream (CraftBukkit)
6c512a08 Expose the Entity Counter to allow plugins to use valid and non-conflicting Entity Ids

Tuinity Changes:
08581cf More validation
88a2c88 Revert usage of region manager
This commit is contained in:
William Blake Galbreath
2020-09-30 17:27:55 -05:00
parent bb5c8a7fc1
commit 8dfb30b7e4
7 changed files with 189 additions and 408 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Ridables
diff --git a/src/main/java/net/minecraft/server/AttributeDefaults.java b/src/main/java/net/minecraft/server/AttributeDefaults.java
index da66cf0a4..3aa05a80f 100644
index da66cf0a45..3aa05a80fe 100644
--- a/src/main/java/net/minecraft/server/AttributeDefaults.java
+++ b/src/main/java/net/minecraft/server/AttributeDefaults.java
@@ -9,7 +9,80 @@ import org.apache.logging.log4j.Logger;
@@ -91,7 +91,7 @@ index da66cf0a4..3aa05a80f 100644
public static AttributeProvider a(EntityTypes<? extends EntityLiving> entitytypes) {
return (AttributeProvider) AttributeDefaults.b.get(entitytypes);
diff --git a/src/main/java/net/minecraft/server/AttributeProvider.java b/src/main/java/net/minecraft/server/AttributeProvider.java
index dd235a6fc..ac902c614 100644
index dd235a6fc4..ac902c614d 100644
--- a/src/main/java/net/minecraft/server/AttributeProvider.java
+++ b/src/main/java/net/minecraft/server/AttributeProvider.java
@@ -101,6 +101,7 @@ public class AttributeProvider {
@@ -103,7 +103,7 @@ index dd235a6fc..ac902c614 100644
this.b = true;
return new AttributeProvider(this.a);
diff --git a/src/main/java/net/minecraft/server/ControllerLookDolphin.java b/src/main/java/net/minecraft/server/ControllerLookDolphin.java
index e5bdddfc1..8200ba60b 100644
index e5bdddfc14..8200ba60b7 100644
--- a/src/main/java/net/minecraft/server/ControllerLookDolphin.java
+++ b/src/main/java/net/minecraft/server/ControllerLookDolphin.java
@@ -1,6 +1,6 @@
@@ -124,7 +124,7 @@ index e5bdddfc1..8200ba60b 100644
this.d = false;
this.a.aC = this.a(this.a.aC, this.h() + 20.0F, this.b);
diff --git a/src/main/java/net/minecraft/server/ControllerMove.java b/src/main/java/net/minecraft/server/ControllerMove.java
index 8f9fb058c..eaf446946 100644
index 8f9fb058c1..eaf4469468 100644
--- a/src/main/java/net/minecraft/server/ControllerMove.java
+++ b/src/main/java/net/minecraft/server/ControllerMove.java
@@ -6,9 +6,9 @@ public class ControllerMove {
@@ -141,7 +141,7 @@ index 8f9fb058c..eaf446946 100644
public ControllerMove(EntityInsentient entityinsentient) {
diff --git a/src/main/java/net/minecraft/server/DamageSource.java b/src/main/java/net/minecraft/server/DamageSource.java
index bd0267ee4..8b36ac2b0 100644
index bd0267ee4b..8b36ac2b09 100644
--- a/src/main/java/net/minecraft/server/DamageSource.java
+++ b/src/main/java/net/minecraft/server/DamageSource.java
@@ -56,6 +56,7 @@ public class DamageSource {
@@ -161,7 +161,7 @@ index bd0267ee4..8b36ac2b0 100644
this.B = true;
return this;
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 1f8ea2eeb..ade77f6fe 100644
index abe17d1535..976faf3bf1 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -80,7 +80,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -278,10 +278,10 @@ index 1f8ea2eeb..ade77f6fe 100644
@Override
public void sendMessage(IChatBaseComponent ichatbasecomponent, UUID uuid) {}
@@ -3612,4 +3641,47 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
void accept(Entity entity, double d0, double d1, double d2);
@@ -3618,4 +3647,47 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return entityCount.incrementAndGet();
}
// Paper end
+
+ // Purpur start
+ private EntityHuman rider;
@@ -327,7 +327,7 @@ index 1f8ea2eeb..ade77f6fe 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
index f230d84fa..bbf61d011 100644
index f230d84faa..bbf61d0111 100644
--- a/src/main/java/net/minecraft/server/EntityBat.java
+++ b/src/main/java/net/minecraft/server/EntityBat.java
@@ -14,9 +14,48 @@ public class EntityBat extends EntityAmbient {
@@ -403,7 +403,7 @@ index f230d84fa..bbf61d011 100644
BlockPosition blockposition = this.getChunkCoordinates();
BlockPosition blockposition1 = blockposition.up();
diff --git a/src/main/java/net/minecraft/server/EntityBee.java b/src/main/java/net/minecraft/server/EntityBee.java
index b1ff30fb1..0ed37e18f 100644
index b1ff30fb15..0ed37e18f7 100644
--- a/src/main/java/net/minecraft/server/EntityBee.java
+++ b/src/main/java/net/minecraft/server/EntityBee.java
@@ -37,6 +37,7 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB
@@ -534,7 +534,7 @@ index b1ff30fb1..0ed37e18f 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityBlaze.java b/src/main/java/net/minecraft/server/EntityBlaze.java
index f55f12530..22b9c84b0 100644
index f55f125306..22b9c84b02 100644
--- a/src/main/java/net/minecraft/server/EntityBlaze.java
+++ b/src/main/java/net/minecraft/server/EntityBlaze.java
@@ -10,6 +10,7 @@ public class EntityBlaze extends EntityMonster {
@@ -614,7 +614,7 @@ index f55f12530..22b9c84b0 100644
if (this.c <= 0) {
this.c = 100;
diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java
index 79de11ce2..eba8e77ca 100644
index 79de11ce2f..eba8e77ca7 100644
--- a/src/main/java/net/minecraft/server/EntityCat.java
+++ b/src/main/java/net/minecraft/server/EntityCat.java
@@ -41,6 +41,25 @@ public class EntityCat extends EntityTameableAnimal {
@@ -694,7 +694,7 @@ index 79de11ce2..eba8e77ca 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityCaveSpider.java b/src/main/java/net/minecraft/server/EntityCaveSpider.java
index 776f3d25a..2e1f2dec1 100644
index 776f3d25a6..2e1f2dec17 100644
--- a/src/main/java/net/minecraft/server/EntityCaveSpider.java
+++ b/src/main/java/net/minecraft/server/EntityCaveSpider.java
@@ -8,6 +8,18 @@ public class EntityCaveSpider extends EntitySpider {
@@ -717,7 +717,7 @@ index 776f3d25a..2e1f2dec1 100644
return EntitySpider.eK().a(GenericAttributes.MAX_HEALTH, 12.0D);
}
diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java
index 26dee32bf..feca1b369 100644
index 26dee32bfe..feca1b3693 100644
--- a/src/main/java/net/minecraft/server/EntityChicken.java
+++ b/src/main/java/net/minecraft/server/EntityChicken.java
@@ -18,6 +18,16 @@ public class EntityChicken extends EntityAnimal {
@@ -754,7 +754,7 @@ index 26dee32bf..feca1b369 100644
} else {
this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.4D));
diff --git a/src/main/java/net/minecraft/server/EntityCod.java b/src/main/java/net/minecraft/server/EntityCod.java
index 9a99af6e9..039fae4c2 100644
index 9a99af6e9c..039fae4c29 100644
--- a/src/main/java/net/minecraft/server/EntityCod.java
+++ b/src/main/java/net/minecraft/server/EntityCod.java
@@ -6,6 +6,18 @@ public class EntityCod extends EntityFishSchool {
@@ -777,7 +777,7 @@ index 9a99af6e9..039fae4c2 100644
protected ItemStack eK() {
return new ItemStack(Items.COD_BUCKET);
diff --git a/src/main/java/net/minecraft/server/EntityComplexPart.java b/src/main/java/net/minecraft/server/EntityComplexPart.java
index c1b1bd123..26ff230ef 100644
index c1b1bd123e..26ff230ef7 100644
--- a/src/main/java/net/minecraft/server/EntityComplexPart.java
+++ b/src/main/java/net/minecraft/server/EntityComplexPart.java
@@ -47,4 +47,11 @@ public class EntityComplexPart extends Entity {
@@ -793,7 +793,7 @@ index c1b1bd123..26ff230ef 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
index cfb009c81..18c2d5393 100644
index cfb009c811..18c2d53937 100644
--- a/src/main/java/net/minecraft/server/EntityCow.java
+++ b/src/main/java/net/minecraft/server/EntityCow.java
@@ -11,9 +11,22 @@ public class EntityCow extends EntityAnimal {
@@ -877,7 +877,7 @@ index cfb009c81..18c2d5393 100644
this.world.addEntity(mooshroom);
this.die();
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
index 013639cc9..3ddfb5f34 100644
index 013639cc90..3ddfb5f340 100644
--- a/src/main/java/net/minecraft/server/EntityCreeper.java
+++ b/src/main/java/net/minecraft/server/EntityCreeper.java
@@ -18,12 +18,27 @@ public class EntityCreeper extends EntityMonster {
@@ -995,7 +995,7 @@ index 013639cc9..3ddfb5f34 100644
}
// Paper end
diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java
index cde5c46fe..306454060 100644
index cde5c46fee..3064540602 100644
--- a/src/main/java/net/minecraft/server/EntityDolphin.java
+++ b/src/main/java/net/minecraft/server/EntityDolphin.java
@@ -17,6 +17,7 @@ public class EntityDolphin extends EntityWaterAnimal {
@@ -1128,7 +1128,7 @@ index cde5c46fe..306454060 100644
this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D));
}
diff --git a/src/main/java/net/minecraft/server/EntityDrowned.java b/src/main/java/net/minecraft/server/EntityDrowned.java
index 6853ba319..8aa53c617 100644
index 6853ba3194..8aa53c617b 100644
--- a/src/main/java/net/minecraft/server/EntityDrowned.java
+++ b/src/main/java/net/minecraft/server/EntityDrowned.java
@@ -22,6 +22,16 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity {
@@ -1184,7 +1184,7 @@ index 6853ba319..8aa53c617 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index d617b5345..088aede37 100644
index d617b5345d..088aede370 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -46,6 +46,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -1334,7 +1334,7 @@ index d617b5345..088aede37 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index fde60d6c8..768764930 100644
index fde60d6c89..7687649300 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -30,9 +30,22 @@ public class EntityEnderman extends EntityMonster implements IEntityAngerable {
@@ -1402,7 +1402,7 @@ index fde60d6c8..768764930 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEndermite.java b/src/main/java/net/minecraft/server/EntityEndermite.java
index c4b1f318f..30f602bbc 100644
index c4b1f318f7..30f602bbc4 100644
--- a/src/main/java/net/minecraft/server/EntityEndermite.java
+++ b/src/main/java/net/minecraft/server/EntityEndermite.java
@@ -12,14 +12,28 @@ public class EntityEndermite extends EntityMonster {
@@ -1436,7 +1436,7 @@ index c4b1f318f..30f602bbc 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityEvoker.java b/src/main/java/net/minecraft/server/EntityEvoker.java
index ae7b269de..9abbbd59f 100644
index ae7b269def..9abbbd59f4 100644
--- a/src/main/java/net/minecraft/server/EntityEvoker.java
+++ b/src/main/java/net/minecraft/server/EntityEvoker.java
@@ -12,10 +12,23 @@ public class EntityEvoker extends EntityIllagerWizard {
@@ -1496,7 +1496,7 @@ index ae7b269de..9abbbd59f 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java
index 27d0f9351..d281114e5 100644
index 27d0f93510..d281114e5a 100644
--- a/src/main/java/net/minecraft/server/EntityFish.java
+++ b/src/main/java/net/minecraft/server/EntityFish.java
@@ -70,13 +70,12 @@ public abstract class EntityFish extends EntityWaterAnimal {
@@ -1558,7 +1558,7 @@ index 27d0f9351..d281114e5 100644
this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D));
}
diff --git a/src/main/java/net/minecraft/server/EntityFishSchool.java b/src/main/java/net/minecraft/server/EntityFishSchool.java
index 08372b722..6a8e15f01 100644
index 08372b7226..6a8e15f016 100644
--- a/src/main/java/net/minecraft/server/EntityFishSchool.java
+++ b/src/main/java/net/minecraft/server/EntityFishSchool.java
@@ -16,7 +16,7 @@ public abstract class EntityFishSchool extends EntityFish {
@@ -1571,7 +1571,7 @@ index 08372b722..6a8e15f01 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java
index 04b2bbea0..a73335e36 100644
index 04b2bbea0c..a73335e362 100644
--- a/src/main/java/net/minecraft/server/EntityFox.java
+++ b/src/main/java/net/minecraft/server/EntityFox.java
@@ -55,6 +55,39 @@ public class EntityFox extends EntityAnimal {
@@ -1695,7 +1695,7 @@ index 04b2bbea0..a73335e36 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityGhast.java b/src/main/java/net/minecraft/server/EntityGhast.java
index a67611c4f..e857d6f85 100644
index a67611c4f9..e857d6f854 100644
--- a/src/main/java/net/minecraft/server/EntityGhast.java
+++ b/src/main/java/net/minecraft/server/EntityGhast.java
@@ -14,11 +14,42 @@ public class EntityGhast extends EntityFlying implements IMonster {
@@ -1769,7 +1769,7 @@ index a67611c4f..e857d6f85 100644
if (this.j-- <= 0) {
this.j += this.i.getRandom().nextInt(5) + 2;
diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java
index 8dce2aad7..24eb6dca5 100644
index 8dce2aad77..24eb6dca5e 100644
--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java
+++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java
@@ -11,16 +11,28 @@ public class EntityGiantZombie extends EntityMonster {
@@ -1802,7 +1802,7 @@ index 8dce2aad7..24eb6dca5 100644
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillager.class, false));
diff --git a/src/main/java/net/minecraft/server/EntityGuardian.java b/src/main/java/net/minecraft/server/EntityGuardian.java
index d42750fdd..881b2dd45 100644
index d42750fdd4..881b2dd45f 100644
--- a/src/main/java/net/minecraft/server/EntityGuardian.java
+++ b/src/main/java/net/minecraft/server/EntityGuardian.java
@@ -24,15 +24,36 @@ public class EntityGuardian extends EntityMonster {
@@ -1898,7 +1898,7 @@ index d42750fdd..881b2dd45 100644
Vec3D vec3d = new Vec3D(this.b - this.i.locX(), this.c - this.i.locY(), this.d - this.i.locZ());
double d0 = vec3d.f();
diff --git a/src/main/java/net/minecraft/server/EntityGuardianElder.java b/src/main/java/net/minecraft/server/EntityGuardianElder.java
index 5d2870f0e..8148bc8b4 100644
index 5d2870f0e8..8148bc8b4e 100644
--- a/src/main/java/net/minecraft/server/EntityGuardianElder.java
+++ b/src/main/java/net/minecraft/server/EntityGuardianElder.java
@@ -16,6 +16,18 @@ public class EntityGuardianElder extends EntityGuardian {
@@ -1921,7 +1921,7 @@ index 5d2870f0e..8148bc8b4 100644
return EntityGuardian.eM().a(GenericAttributes.MOVEMENT_SPEED, 0.30000001192092896D).a(GenericAttributes.ATTACK_DAMAGE, 8.0D).a(GenericAttributes.MAX_HEALTH, 80.0D);
}
diff --git a/src/main/java/net/minecraft/server/EntityHoglin.java b/src/main/java/net/minecraft/server/EntityHoglin.java
index cf64c8ca2..7f642fe67 100644
index cf64c8ca2c..7f642fe674 100644
--- a/src/main/java/net/minecraft/server/EntityHoglin.java
+++ b/src/main/java/net/minecraft/server/EntityHoglin.java
@@ -13,13 +13,25 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin {
@@ -1978,7 +1978,7 @@ index cf64c8ca2..7f642fe67 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java
index 069111952..bd63a25e2 100644
index 069111952a..bd63a25e2c 100644
--- a/src/main/java/net/minecraft/server/EntityHorse.java
+++ b/src/main/java/net/minecraft/server/EntityHorse.java
@@ -12,6 +12,13 @@ public class EntityHorse extends EntityHorseAbstract {
@@ -1996,7 +1996,7 @@ index 069111952..bd63a25e2 100644
protected void eK() {
this.getAttributeInstance(GenericAttributes.MAX_HEALTH).setValue((double) this.fp());
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index c7757f9d0..a490d0715 100644
index c7757f9d0a..a490d0715d 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -39,12 +39,27 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -2036,7 +2036,7 @@ index c7757f9d0..a490d0715 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityHorseDonkey.java b/src/main/java/net/minecraft/server/EntityHorseDonkey.java
index 767d18d5a..cb8aee569 100644
index 767d18d5a0..cb8aee5691 100644
--- a/src/main/java/net/minecraft/server/EntityHorseDonkey.java
+++ b/src/main/java/net/minecraft/server/EntityHorseDonkey.java
@@ -8,6 +8,13 @@ public class EntityHorseDonkey extends EntityHorseChestedAbstract {
@@ -2054,7 +2054,7 @@ index 767d18d5a..cb8aee569 100644
protected SoundEffect getSoundAmbient() {
super.getSoundAmbient();
diff --git a/src/main/java/net/minecraft/server/EntityHorseMule.java b/src/main/java/net/minecraft/server/EntityHorseMule.java
index 3dd4d4f0f..243aeb736 100644
index 3dd4d4f0f3..243aeb736e 100644
--- a/src/main/java/net/minecraft/server/EntityHorseMule.java
+++ b/src/main/java/net/minecraft/server/EntityHorseMule.java
@@ -8,6 +8,12 @@ public class EntityHorseMule extends EntityHorseChestedAbstract {
@@ -2071,7 +2071,7 @@ index 3dd4d4f0f..243aeb736 100644
protected SoundEffect getSoundAmbient() {
super.getSoundAmbient();
diff --git a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
index abbc12c8e..b39feed7a 100644
index abbc12c8e0..b39feed7a9 100644
--- a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
+++ b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java
@@ -12,6 +12,18 @@ public class EntityHorseSkeleton extends EntityHorseAbstract {
@@ -2112,7 +2112,7 @@ index abbc12c8e..b39feed7a 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityHorseZombie.java b/src/main/java/net/minecraft/server/EntityHorseZombie.java
index acc5b8ca9..6e9806662 100644
index acc5b8ca90..6e9806662d 100644
--- a/src/main/java/net/minecraft/server/EntityHorseZombie.java
+++ b/src/main/java/net/minecraft/server/EntityHorseZombie.java
@@ -8,6 +8,18 @@ public class EntityHorseZombie extends EntityHorseAbstract {
@@ -2142,7 +2142,7 @@ index acc5b8ca9..6e9806662 100644
+ protected void eV() { if (world.purpurConfig.zombieHorseCanSwim) goalSelector.a(0, new PathfinderGoalFloat(this)); } // Purpur
}
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 48f9feaea..6c2b57a29 100644
index 48f9feaea1..6c2b57a294 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -2148,4 +2148,15 @@ public abstract class EntityHuman extends EntityLiving {
@@ -2162,7 +2162,7 @@ index 48f9feaea..6c2b57a29 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
index f5c9e4e0a..5e6c7e317 100644
index f5c9e4e0ae..5e6c7e317a 100644
--- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
+++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
@@ -20,6 +20,16 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
@@ -2199,7 +2199,7 @@ index f5c9e4e0a..5e6c7e317 100644
this.targetSelector.a(2, (new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)).a(300));
this.targetSelector.a(3, (new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)).a(300));
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 7465e867b..2bda9d6c6 100644
index 7465e867ba..2bda9d6c6c 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -29,7 +29,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -2320,7 +2320,7 @@ index 7465e867b..2bda9d6c6 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java
index bdff23688..954000a7b 100644
index bdff236883..954000a7b4 100644
--- a/src/main/java/net/minecraft/server/EntityIronGolem.java
+++ b/src/main/java/net/minecraft/server/EntityIronGolem.java
@@ -22,9 +22,22 @@ public class EntityIronGolem extends EntityGolem implements IEntityAngerable {
@@ -2371,7 +2371,7 @@ index bdff23688..954000a7b 100644
float f1 = 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F;
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index a2d50a1fe..b8f59f29a 100644
index a2d50a1fef..b8f59f29a4 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -466,7 +466,7 @@ public abstract class EntityLiving extends Entity {
@@ -2406,7 +2406,7 @@ index a2d50a1fe..b8f59f29a 100644
this.bu = f;
}
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index e90ff597d..a6ca8e68e 100644
index e90ff597d1..a6ca8e68e4 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -18,7 +18,46 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -2482,7 +2482,7 @@ index e90ff597d..a6ca8e68e 100644
return i == -1 ? null : EnumColor.fromColorIndex(i);
diff --git a/src/main/java/net/minecraft/server/EntityLlamaTrader.java b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
index 665a9e852..f65e93b74 100644
index 665a9e8524..f65e93b742 100644
--- a/src/main/java/net/minecraft/server/EntityLlamaTrader.java
+++ b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
@@ -11,6 +11,23 @@ public class EntityLlamaTrader extends EntityLlama {
@@ -2510,7 +2510,7 @@ index 665a9e852..f65e93b74 100644
protected EntityLlama fz() {
return (EntityLlama) EntityTypes.TRADER_LLAMA.a(this.world);
diff --git a/src/main/java/net/minecraft/server/EntityMagmaCube.java b/src/main/java/net/minecraft/server/EntityMagmaCube.java
index 8f9813ddd..9babff772 100644
index 8f9813ddd6..9babff772b 100644
--- a/src/main/java/net/minecraft/server/EntityMagmaCube.java
+++ b/src/main/java/net/minecraft/server/EntityMagmaCube.java
@@ -8,6 +8,23 @@ public class EntityMagmaCube extends EntitySlime {
@@ -2552,7 +2552,7 @@ index 8f9813ddd..9babff772 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
index 38df17bd2..7966b34f8 100644
index 38df17bd20..7966b34f8d 100644
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
@@ -20,6 +20,18 @@ public class EntityMushroomCow extends EntityCow implements IShearable {
@@ -2593,7 +2593,7 @@ index 38df17bd2..7966b34f8 100644
Pair<MobEffectList, Integer> pair = (Pair) optional.get();
diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java
index 9dc55b783..9bd6bc7d1 100644
index 9dc55b7832..9bd6bc7d18 100644
--- a/src/main/java/net/minecraft/server/EntityOcelot.java
+++ b/src/main/java/net/minecraft/server/EntityOcelot.java
@@ -16,6 +16,18 @@ public class EntityOcelot extends EntityAnimal {
@@ -2631,7 +2631,7 @@ index 9dc55b783..9bd6bc7d1 100644
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, 10, false, false, EntityTurtle.bo));
}
diff --git a/src/main/java/net/minecraft/server/EntityPanda.java b/src/main/java/net/minecraft/server/EntityPanda.java
index 01cc3d94d..4379380c2 100644
index 01cc3d94d3..4379380c25 100644
--- a/src/main/java/net/minecraft/server/EntityPanda.java
+++ b/src/main/java/net/minecraft/server/EntityPanda.java
@@ -46,6 +46,27 @@ public class EntityPanda extends EntityAnimal {
@@ -2767,7 +2767,7 @@ index 01cc3d94d..4379380c2 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
index 6bb73f869..822fe2691 100644
index 6bb73f869b..822fe26913 100644
--- a/src/main/java/net/minecraft/server/EntityParrot.java
+++ b/src/main/java/net/minecraft/server/EntityParrot.java
@@ -65,12 +65,58 @@ public class EntityParrot extends EntityPerchable implements EntityBird {
@@ -2843,7 +2843,7 @@ index 6bb73f869..822fe2691 100644
this.goalSelector.a(2, new PathfinderGoalSit(this));
this.goalSelector.a(2, new PathfinderGoalFollowOwner(this, 1.0D, 5.0F, 1.0F, true));
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index 03c9a8d0c..ee1ff6dc1 100644
index 03c9a8d0c2..ee1ff6dc17 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -25,6 +25,58 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@@ -3014,7 +3014,7 @@ index 03c9a8d0c..ee1ff6dc1 100644
EntityPhantom.this.yaw += 180.0F;
this.j = 0.1F;
diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java
index 87caac62b..43eaba96e 100644
index 87caac62b0..43eaba96e1 100644
--- a/src/main/java/net/minecraft/server/EntityPig.java
+++ b/src/main/java/net/minecraft/server/EntityPig.java
@@ -19,9 +19,22 @@ public class EntityPig extends EntityAnimal implements ISteerable, ISaddleable {
@@ -3041,7 +3041,7 @@ index 87caac62b..43eaba96e 100644
this.goalSelector.a(3, new PathfinderGoalBreed(this, 1.0D));
this.goalSelector.a(4, new PathfinderGoalTempt(this, 1.2D, RecipeItemStack.a(Items.CARROT_ON_A_STICK), false));
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java
index 194b76059..dbc5a74f6 100644
index 194b76059c..dbc5a74f6e 100644
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java
+++ b/src/main/java/net/minecraft/server/EntityPigZombie.java
@@ -22,6 +22,16 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
@@ -3062,7 +3062,7 @@ index 194b76059..dbc5a74f6 100644
public boolean jockeyOnlyBaby() {
return world.purpurConfig.zombifiedPiglinJockeyOnlyBaby;
diff --git a/src/main/java/net/minecraft/server/EntityPiglin.java b/src/main/java/net/minecraft/server/EntityPiglin.java
index e1b433007..55739e52e 100644
index e1b4330074..55739e52e1 100644
--- a/src/main/java/net/minecraft/server/EntityPiglin.java
+++ b/src/main/java/net/minecraft/server/EntityPiglin.java
@@ -25,6 +25,18 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow {
@@ -3113,7 +3113,7 @@ index e1b433007..55739e52e 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPiglinBrute.java b/src/main/java/net/minecraft/server/EntityPiglinBrute.java
index 00db2d166..c672e31fc 100644
index 00db2d1668..c672e31fcb 100644
--- a/src/main/java/net/minecraft/server/EntityPiglinBrute.java
+++ b/src/main/java/net/minecraft/server/EntityPiglinBrute.java
@@ -15,6 +15,18 @@ public class EntityPiglinBrute extends EntityPiglinAbstract {
@@ -3155,7 +3155,7 @@ index 00db2d166..c672e31fc 100644
PiglinBruteAI.b(this);
PiglinBruteAI.c(this);
diff --git a/src/main/java/net/minecraft/server/EntityPillager.java b/src/main/java/net/minecraft/server/EntityPillager.java
index a3a428da9..bf5669c30 100644
index a3a428da99..bf5669c305 100644
--- a/src/main/java/net/minecraft/server/EntityPillager.java
+++ b/src/main/java/net/minecraft/server/EntityPillager.java
@@ -13,15 +13,29 @@ public class EntityPillager extends EntityIllagerAbstract implements ICrossbow {
@@ -3189,7 +3189,7 @@ index a3a428da9..bf5669c30 100644
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false));
diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java
index cd6d2e07e..c74a10d9b 100644
index cd6d2e07ec..c74a10d9b6 100644
--- a/src/main/java/net/minecraft/server/EntityPolarBear.java
+++ b/src/main/java/net/minecraft/server/EntityPolarBear.java
@@ -18,12 +18,34 @@ public class EntityPolarBear extends EntityAnimal implements IEntityAngerable {
@@ -3264,7 +3264,7 @@ index cd6d2e07e..c74a10d9b 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPufferFish.java b/src/main/java/net/minecraft/server/EntityPufferFish.java
index 639af6bd3..81e918572 100644
index 639af6bd3d..81e9185726 100644
--- a/src/main/java/net/minecraft/server/EntityPufferFish.java
+++ b/src/main/java/net/minecraft/server/EntityPufferFish.java
@@ -17,6 +17,18 @@ public class EntityPufferFish extends EntityFish {
@@ -3296,7 +3296,7 @@ index 639af6bd3..81e918572 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java
index 98baf24bd..c5a9d7310 100644
index 98baf24bde..c5a9d7310f 100644
--- a/src/main/java/net/minecraft/server/EntityRabbit.java
+++ b/src/main/java/net/minecraft/server/EntityRabbit.java
@@ -20,6 +20,18 @@ public class EntityRabbit extends EntityAnimal {
@@ -3461,7 +3461,7 @@ index 98baf24bd..c5a9d7310 100644
this.d = flag;
}
diff --git a/src/main/java/net/minecraft/server/EntityRavager.java b/src/main/java/net/minecraft/server/EntityRavager.java
index 7064a12c8..c6d149061 100644
index 7064a12c89..c6d1490618 100644
--- a/src/main/java/net/minecraft/server/EntityRavager.java
+++ b/src/main/java/net/minecraft/server/EntityRavager.java
@@ -20,14 +20,37 @@ public class EntityRavager extends EntityRaider {
@@ -3512,7 +3512,7 @@ index 7064a12c8..c6d149061 100644
this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).setValue(0.0D);
} else {
diff --git a/src/main/java/net/minecraft/server/EntitySalmon.java b/src/main/java/net/minecraft/server/EntitySalmon.java
index 51ec63413..6dfcee2c9 100644
index 51ec634133..6dfcee2c9b 100644
--- a/src/main/java/net/minecraft/server/EntitySalmon.java
+++ b/src/main/java/net/minecraft/server/EntitySalmon.java
@@ -6,6 +6,18 @@ public class EntitySalmon extends EntityFishSchool {
@@ -3535,7 +3535,7 @@ index 51ec63413..6dfcee2c9 100644
public int eN() {
return 5;
diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java
index 2908e9cc4..04e585f44 100644
index 2908e9cc47..04e585f44c 100644
--- a/src/main/java/net/minecraft/server/EntitySheep.java
+++ b/src/main/java/net/minecraft/server/EntitySheep.java
@@ -56,10 +56,23 @@ public class EntitySheep extends EntityAnimal implements IShearable {
@@ -3563,7 +3563,7 @@ index 2908e9cc4..04e585f44 100644
this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D));
this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.1D, RecipeItemStack.a(Items.WHEAT), false));
diff --git a/src/main/java/net/minecraft/server/EntityShulker.java b/src/main/java/net/minecraft/server/EntityShulker.java
index f0394fe52..c5853f9f5 100644
index f0394fe521..c5853f9f51 100644
--- a/src/main/java/net/minecraft/server/EntityShulker.java
+++ b/src/main/java/net/minecraft/server/EntityShulker.java
@@ -29,12 +29,26 @@ public class EntityShulker extends EntityGolem implements IMonster {
@@ -3603,7 +3603,7 @@ index f0394fe52..c5853f9f5 100644
@Override
public boolean a() {
diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java
index 35f15c8dd..0ea7af085 100644
index 35f15c8ddd..0ea7af0850 100644
--- a/src/main/java/net/minecraft/server/EntitySilverfish.java
+++ b/src/main/java/net/minecraft/server/EntitySilverfish.java
@@ -11,13 +11,27 @@ public class EntitySilverfish extends EntityMonster {
@@ -3643,7 +3643,7 @@ index 35f15c8dd..0ea7af085 100644
public void g() {
diff --git a/src/main/java/net/minecraft/server/EntitySkeleton.java b/src/main/java/net/minecraft/server/EntitySkeleton.java
index 7c39bec83..3f130e03b 100644
index 7c39bec831..3f130e03bf 100644
--- a/src/main/java/net/minecraft/server/EntitySkeleton.java
+++ b/src/main/java/net/minecraft/server/EntitySkeleton.java
@@ -6,6 +6,18 @@ public class EntitySkeleton extends EntitySkeletonAbstract {
@@ -3666,7 +3666,7 @@ index 7c39bec83..3f130e03b 100644
protected SoundEffect getSoundAmbient() {
return SoundEffects.ENTITY_SKELETON_AMBIENT;
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
index 513bb3087..e21dbf46d 100644
index 513bb3087e..e21dbf46d6 100644
--- a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
+++ b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
@@ -28,12 +28,14 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR
@@ -3685,7 +3685,7 @@ index 513bb3087..e21dbf46d 100644
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, true));
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonStray.java b/src/main/java/net/minecraft/server/EntitySkeletonStray.java
index f985caada..d123fb82b 100644
index f985caada0..d123fb82b6 100644
--- a/src/main/java/net/minecraft/server/EntitySkeletonStray.java
+++ b/src/main/java/net/minecraft/server/EntitySkeletonStray.java
@@ -8,6 +8,18 @@ public class EntitySkeletonStray extends EntitySkeletonAbstract {
@@ -3708,7 +3708,7 @@ index f985caada..d123fb82b 100644
return b(entitytypes, worldaccess, enummobspawn, blockposition, random) && (enummobspawn == EnumMobSpawn.SPAWNER || worldaccess.e(blockposition));
}
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonWither.java b/src/main/java/net/minecraft/server/EntitySkeletonWither.java
index c872be77a..96cb080d9 100644
index c872be77a6..96cb080d94 100644
--- a/src/main/java/net/minecraft/server/EntitySkeletonWither.java
+++ b/src/main/java/net/minecraft/server/EntitySkeletonWither.java
@@ -9,6 +9,18 @@ public class EntitySkeletonWither extends EntitySkeletonAbstract {
@@ -3731,7 +3731,7 @@ index c872be77a..96cb080d9 100644
protected void initPathfinder() {
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityPiglinAbstract.class, true));
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
index f74c82785..8483458e4 100644
index f74c827850..8483458e41 100644
--- a/src/main/java/net/minecraft/server/EntitySlime.java
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
@@ -34,12 +34,45 @@ public class EntitySlime extends EntityInsentient implements IMonster {
@@ -3847,7 +3847,7 @@ index f74c82785..8483458e4 100644
}
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index dfe615814..bc3ac62b4 100644
index dfe615814d..bc3ac62b45 100644
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
@@ -14,12 +14,26 @@ public class EntitySnowman extends EntityGolem implements IShearable, IRangedEnt
@@ -3904,7 +3904,7 @@ index dfe615814..bc3ac62b4 100644
}
diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java
index 42f02b03b..889712b79 100644
index 42f02b03b1..889712b799 100644
--- a/src/main/java/net/minecraft/server/EntitySpider.java
+++ b/src/main/java/net/minecraft/server/EntitySpider.java
@@ -11,14 +11,28 @@ public class EntitySpider extends EntityMonster {
@@ -3937,7 +3937,7 @@ index 42f02b03b..889712b79 100644
this.targetSelector.a(2, new EntitySpider.PathfinderGoalSpiderNearestAttackableTarget<>(this, EntityHuman.class));
this.targetSelector.a(3, new EntitySpider.PathfinderGoalSpiderNearestAttackableTarget<>(this, EntityIronGolem.class));
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
index 028a7fe2c..c9d246131 100644
index 028a7fe2cd..c9d2461318 100644
--- a/src/main/java/net/minecraft/server/EntitySquid.java
+++ b/src/main/java/net/minecraft/server/EntitySquid.java
@@ -26,17 +26,38 @@ public class EntitySquid extends EntityWaterAnimal {
@@ -4037,7 +4037,7 @@ index 028a7fe2c..c9d246131 100644
if (i > 100) {
diff --git a/src/main/java/net/minecraft/server/EntityStrider.java b/src/main/java/net/minecraft/server/EntityStrider.java
index 3bd9b53d4..3069a408a 100644
index 3bd9b53d4c..3069a408a4 100644
--- a/src/main/java/net/minecraft/server/EntityStrider.java
+++ b/src/main/java/net/minecraft/server/EntityStrider.java
@@ -28,6 +28,18 @@ public class EntityStrider extends EntityAnimal implements ISteerable, ISaddleab
@@ -4077,7 +4077,7 @@ index 3bd9b53d4..3069a408a 100644
if (flag && !this.isSilent()) {
this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), SoundEffects.ENTITY_STRIDER_EAT, this.getSoundCategory(), 1.0F, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.2F);
diff --git a/src/main/java/net/minecraft/server/EntityTameableAnimal.java b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
index 9e008d56b..8f227678d 100644
index 9e008d56bb..8f227678dc 100644
--- a/src/main/java/net/minecraft/server/EntityTameableAnimal.java
+++ b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
@@ -130,6 +130,7 @@ public abstract class EntityTameableAnimal extends EntityAnimal {
@@ -4089,7 +4089,7 @@ index 9e008d56b..8f227678d 100644
return entityliving == this.getOwner();
}
diff --git a/src/main/java/net/minecraft/server/EntityTropicalFish.java b/src/main/java/net/minecraft/server/EntityTropicalFish.java
index 495c28ccb..2c9df356e 100644
index 495c28ccb8..2c9df356e6 100644
--- a/src/main/java/net/minecraft/server/EntityTropicalFish.java
+++ b/src/main/java/net/minecraft/server/EntityTropicalFish.java
@@ -19,6 +19,18 @@ public class EntityTropicalFish extends EntityFishSchool {
@@ -4112,7 +4112,7 @@ index 495c28ccb..2c9df356e 100644
protected void initDatawatcher() {
super.initDatawatcher();
diff --git a/src/main/java/net/minecraft/server/EntityTurtle.java b/src/main/java/net/minecraft/server/EntityTurtle.java
index e025eef47..c29803367 100644
index e025eef476..c298033679 100644
--- a/src/main/java/net/minecraft/server/EntityTurtle.java
+++ b/src/main/java/net/minecraft/server/EntityTurtle.java
@@ -27,6 +27,18 @@ public class EntityTurtle extends EntityAnimal {
@@ -4194,7 +4194,7 @@ index e025eef47..c29803367 100644
if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().m()) {
double d0 = this.b - this.i.locX();
diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java
index ae05856f2..a70855235 100644
index ae05856f25..a708552358 100644
--- a/src/main/java/net/minecraft/server/EntityVex.java
+++ b/src/main/java/net/minecraft/server/EntityVex.java
@@ -19,6 +19,45 @@ public class EntityVex extends EntityMonster {
@@ -4291,7 +4291,7 @@ index ae05856f2..a70855235 100644
Vec3D vec3d = new Vec3D(this.b - EntityVex.this.locX(), this.c - EntityVex.this.locY(), this.d - EntityVex.this.locZ());
double d0 = vec3d.f();
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 7add2fca1..a5f114933 100644
index 7add2fca10..a5f114933d 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -75,8 +75,19 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -4335,7 +4335,7 @@ index 7add2fca1..a5f114933 100644
this.h(entityhuman);
}
diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
index 96dda6a14..7420ec2ea 100644
index 96dda6a14f..7420ec2eae 100644
--- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java
+++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
@@ -23,6 +23,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
@@ -4375,7 +4375,7 @@ index 96dda6a14..7420ec2ea 100644
this.setTradingPlayer(entityhuman);
this.openTrade(entityhuman, this.getScoreboardDisplayName(), 1);
diff --git a/src/main/java/net/minecraft/server/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java
index a945a0a07..5e702f97a 100644
index a945a0a073..5e702f97a1 100644
--- a/src/main/java/net/minecraft/server/EntityVindicator.java
+++ b/src/main/java/net/minecraft/server/EntityVindicator.java
@@ -17,14 +17,28 @@ public class EntityVindicator extends EntityIllagerAbstract {
@@ -4408,7 +4408,7 @@ index a945a0a07..5e702f97a 100644
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, true));
diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
index 0ef981e5a..76fd72f33 100644
index 0ef981e5ad..76fd72f33c 100644
--- a/src/main/java/net/minecraft/server/EntityWitch.java
+++ b/src/main/java/net/minecraft/server/EntityWitch.java
@@ -24,6 +24,18 @@ public class EntityWitch extends EntityRaider implements IRangedEntity {
@@ -4444,7 +4444,7 @@ index 0ef981e5a..76fd72f33 100644
this.targetSelector.a(2, this.br);
this.targetSelector.a(3, this.bs);
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index 29bb74e51..1054b492c 100644
index 29bb74e51e..1054b492c2 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -32,6 +32,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -4652,7 +4652,7 @@ index 29bb74e51..1054b492c 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java
index 5779d1c9f..506b2a96f 100644
index 5779d1c9f9..506b2a96f2 100644
--- a/src/main/java/net/minecraft/server/EntityWolf.java
+++ b/src/main/java/net/minecraft/server/EntityWolf.java
@@ -33,9 +33,27 @@ public class EntityWolf extends EntityTameableAnimal implements IEntityAngerable
@@ -4692,7 +4692,7 @@ index 5779d1c9f..506b2a96f 100644
this.targetSelector.a(2, new PathfinderGoalOwnerHurtTarget(this));
this.targetSelector.a(3, (new PathfinderGoalHurtByTarget(this, new Class[0])).a(new Class[0])); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/server/EntityZoglin.java b/src/main/java/net/minecraft/server/EntityZoglin.java
index 55df54733..ce4072f6e 100644
index 55df54733d..ce4072f6ea 100644
--- a/src/main/java/net/minecraft/server/EntityZoglin.java
+++ b/src/main/java/net/minecraft/server/EntityZoglin.java
@@ -21,6 +21,18 @@ public class EntityZoglin extends EntityMonster implements IMonster, IOglin {
@@ -4756,7 +4756,7 @@ index 55df54733..ce4072f6e 100644
this.eL();
}
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 3e5c69287..d08747c66 100644
index 3e5c692876..d08747c66a 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -46,6 +46,16 @@ public class EntityZombie extends EntityMonster {
@@ -4789,7 +4789,7 @@ index 3e5c69287..d08747c66 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityZombieHusk.java b/src/main/java/net/minecraft/server/EntityZombieHusk.java
index ce6d79780..02b0ae550 100644
index ce6d797801..02b0ae550a 100644
--- a/src/main/java/net/minecraft/server/EntityZombieHusk.java
+++ b/src/main/java/net/minecraft/server/EntityZombieHusk.java
@@ -9,6 +9,16 @@ public class EntityZombieHusk extends EntityZombie {
@@ -4810,7 +4810,7 @@ index ce6d79780..02b0ae550 100644
public boolean jockeyOnlyBaby() {
return world.purpurConfig.huskJockeyOnlyBaby;
diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java
index 69e98dceb..cdcf3d1cf 100644
index 69e98dcebe..cdcf3d1cf5 100644
--- a/src/main/java/net/minecraft/server/EntityZombieVillager.java
+++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java
@@ -29,6 +29,16 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
@@ -4831,7 +4831,7 @@ index 69e98dceb..cdcf3d1cf 100644
public boolean jockeyOnlyBaby() {
return world.purpurConfig.zombieVillagerJockeyOnlyBaby;
diff --git a/src/main/java/net/minecraft/server/GeneratorAccess.java b/src/main/java/net/minecraft/server/GeneratorAccess.java
index b67aede00..ed09fe7fd 100644
index b67aede005..ed09fe7fdd 100644
--- a/src/main/java/net/minecraft/server/GeneratorAccess.java
+++ b/src/main/java/net/minecraft/server/GeneratorAccess.java
@@ -37,6 +37,7 @@ public interface GeneratorAccess extends ICombinedAccess, IWorldTime {
@@ -4843,7 +4843,7 @@ index b67aede00..ed09fe7fd 100644
default int getHeight() {
diff --git a/src/main/java/net/minecraft/server/IProjectile.java b/src/main/java/net/minecraft/server/IProjectile.java
index 0bac6b050..9a17eb606 100644
index 0bac6b0506..9a17eb6066 100644
--- a/src/main/java/net/minecraft/server/IProjectile.java
+++ b/src/main/java/net/minecraft/server/IProjectile.java
@@ -12,7 +12,7 @@ public abstract class IProjectile extends Entity {
@@ -4873,7 +4873,7 @@ index 0bac6b050..9a17eb606 100644
Entity entity1 = this.getShooter();
// Paper start - Cancel hit for vanished players
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 1ff07a08d..5b5e9211c 100644
index 1ff07a08dc..5b5e9211cd 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2149,6 +2149,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -4886,7 +4886,7 @@ index 1ff07a08d..5b5e9211c 100644
if ((entity instanceof EntityFish && origItem != null && origItem.getItem() == Items.WATER_BUCKET) && (event.isCancelled() || this.player.inventory.getItemInHand() == null || this.player.inventory.getItemInHand().getItem() != origItem)) {
this.sendPacket(new PacketPlayOutSpawnEntityLiving((EntityFish) entity));
diff --git a/src/main/java/net/minecraft/server/ProjectileHelper.java b/src/main/java/net/minecraft/server/ProjectileHelper.java
index b2c64b314..515ba50ae 100644
index b2c64b3144..515ba50aec 100644
--- a/src/main/java/net/minecraft/server/ProjectileHelper.java
+++ b/src/main/java/net/minecraft/server/ProjectileHelper.java
@@ -7,6 +7,7 @@ import javax.annotation.Nullable;
@@ -4898,7 +4898,7 @@ index b2c64b314..515ba50ae 100644
Vec3D vec3d = entity.getMot();
World world = entity.world;
diff --git a/src/main/java/net/minecraft/server/Vec3D.java b/src/main/java/net/minecraft/server/Vec3D.java
index 5af554870..c59305ef7 100644
index 5af554870b..c59305ef7d 100644
--- a/src/main/java/net/minecraft/server/Vec3D.java
+++ b/src/main/java/net/minecraft/server/Vec3D.java
@@ -39,6 +39,7 @@ public class Vec3D implements IPosition {
@@ -4926,7 +4926,7 @@ index 5af554870..c59305ef7 100644
return new Vec3D(this.x * d0, this.y * d1, this.z * d2);
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index caaab5015..c3dbe7802 100644
index caaab50153..c3dbe78027 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1516,5 +1516,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -4941,7 +4941,7 @@ index caaab5015..c3dbe7802 100644
// Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 8714d1574..af3739c79 100644
index 8714d1574d..af3739c79a 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -134,11 +134,13 @@ public class PurpurConfig {
@@ -4959,7 +4959,7 @@ index 8714d1574..af3739c79 100644
public static int dungeonSeed = -1;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index b070eed98..a0684f16c 100644
index b070eed986..a0684f16cb 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -42,11 +42,6 @@ public class PurpurWorldConfig {
@@ -5610,7 +5610,7 @@ index b070eed98..a0684f16c 100644
zombieVillagerJockeyTryExistingChickens = getBoolean("mobs.zombie_villager.jockey.try-existing-chickens", zombieVillagerJockeyTryExistingChickens);
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
new file mode 100644
index 000000000..0b16a7b63
index 0000000000..0b16a7b634
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
@@ -0,0 +1,76 @@
@@ -5692,7 +5692,7 @@ index 000000000..0b16a7b63
+}
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
new file mode 100644
index 000000000..426688b3a
index 0000000000..426688b3a6
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
@@ -0,0 +1,92 @@
@@ -5790,7 +5790,7 @@ index 000000000..426688b3a
+}
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
new file mode 100644
index 000000000..33c51460a
index 0000000000..33c51460ab
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
@@ -0,0 +1,61 @@
@@ -5857,7 +5857,7 @@ index 000000000..33c51460a
+}
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java
new file mode 100644
index 000000000..f75375936
index 0000000000..f753759361
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java
@@ -0,0 +1,61 @@
@@ -5924,7 +5924,7 @@ index 000000000..f75375936
+}
diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java
new file mode 100644
index 000000000..1b08a0905
index 0000000000..1b08a0905b
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java
@@ -0,0 +1,50 @@
@@ -5980,7 +5980,7 @@ index 000000000..1b08a0905
+}
diff --git a/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java b/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java
new file mode 100644
index 000000000..3b777c54f
index 0000000000..3b777c54f9
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java
@@ -0,0 +1,115 @@
@@ -6101,7 +6101,7 @@ index 000000000..3b777c54f
+}
diff --git a/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java b/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java
new file mode 100644
index 000000000..f5da00b10
index 0000000000..f5da00b100
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java
@@ -0,0 +1,120 @@
@@ -6227,7 +6227,7 @@ index 000000000..f5da00b10
+}
diff --git a/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
new file mode 100644
index 000000000..68acd09a6
index 0000000000..68acd09a6e
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
@@ -0,0 +1,21 @@
@@ -6254,7 +6254,7 @@ index 000000000..68acd09a6
+}
diff --git a/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java
new file mode 100644
index 000000000..c0ead608e
index 0000000000..c0ead608ed
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java
@@ -0,0 +1,18 @@
@@ -6277,7 +6277,7 @@ index 000000000..c0ead608e
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 407c03408..d9a979fa6 100644
index 407c03408a..d9a979fa6d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1133,4 +1133,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -6308,7 +6308,7 @@ index 407c03408..d9a979fa6 100644
+ // Purpur end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 8d5b08cbe..cfee9ee75 100644
index 8d5b08cbeb..cfee9ee753 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -502,6 +502,18 @@ public class CraftEventFactory {