Updated Upstream (Paper)

Upstream has released updates that appears to apply and compile correctly

Paper Changes:
de5b093c Handle chunk unloading during block tick
be7b4063 performance: Improve Activation Range entity iteration
bacbd880 performance: Many Entity Activation Range Improvements
269394fe Update hidden-configs
This commit is contained in:
William Blake Galbreath
2020-03-30 19:31:24 -05:00
parent 93bb79d462
commit 27fb33e6dc
14 changed files with 179 additions and 186 deletions

View File

@@ -1,4 +1,4 @@
From f701d39cd31b65e3109e4f7473ab07721f80913a Mon Sep 17 00:00:00 2001
From 7265c2942eaf49e272a1fcbd31cf6cce02ecff18 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 6 Feb 2020 19:53:59 -0600
Subject: [PATCH] Ridables
@@ -112,7 +112,7 @@ Subject: [PATCH] Ridables
create mode 100644 src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
diff --git a/src/main/java/net/minecraft/server/AxisAlignedBB.java b/src/main/java/net/minecraft/server/AxisAlignedBB.java
index c950139c0f..77cb24ef66 100644
index c950139c0..77cb24ef6 100644
--- a/src/main/java/net/minecraft/server/AxisAlignedBB.java
+++ b/src/main/java/net/minecraft/server/AxisAlignedBB.java
@@ -104,6 +104,7 @@ public class AxisAlignedBB {
@@ -132,7 +132,7 @@ index c950139c0f..77cb24ef66 100644
return this.grow(d0, d0, d0);
}
diff --git a/src/main/java/net/minecraft/server/ControllerLookDolphin.java b/src/main/java/net/minecraft/server/ControllerLookDolphin.java
index 1d9ba04daa..2bade947ee 100644
index 1d9ba04da..2bade947e 100644
--- a/src/main/java/net/minecraft/server/ControllerLookDolphin.java
+++ b/src/main/java/net/minecraft/server/ControllerLookDolphin.java
@@ -1,6 +1,6 @@
@@ -153,7 +153,7 @@ index 1d9ba04daa..2bade947ee 100644
this.d = false;
this.a.aK = this.a(this.a.aK, 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 a5c4cbb67f..efe6afde9b 100644
index a5c4cbb67..efe6afde9 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 {
@@ -170,7 +170,7 @@ index a5c4cbb67f..efe6afde9b 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 816d301f1c..f7344d3aec 100644
index 816d301f1..f7344d3ae 100644
--- a/src/main/java/net/minecraft/server/DamageSource.java
+++ b/src/main/java/net/minecraft/server/DamageSource.java
@@ -57,6 +57,7 @@ public class DamageSource {
@@ -195,7 +195,7 @@ index 816d301f1c..f7344d3aec 100644
this.C = true;
return this;
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 8974c16bf9..0b9112c1b4 100644
index 8da54c68c..6e05cd094 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -78,7 +78,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -234,7 +234,7 @@ index 8974c16bf9..0b9112c1b4 100644
private float headHeight;
// CraftBukkit start
public boolean persist = true;
@@ -814,6 +814,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -815,6 +815,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return vec3d1;
}
@@ -242,7 +242,7 @@ index 8974c16bf9..0b9112c1b4 100644
public static double b(Vec3D vec3d) {
return vec3d.x * vec3d.x + vec3d.z * vec3d.z;
}
@@ -1140,6 +1141,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1141,6 +1142,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return flag;
}
@@ -250,7 +250,7 @@ index 8974c16bf9..0b9112c1b4 100644
private boolean l() {
return this.world.getType(new BlockPosition(this)).getBlock() == Blocks.BUBBLE_COLUMN;
}
@@ -1153,8 +1155,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1154,8 +1156,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.isInWater() || this.isInRain() || this.l();
}
@@ -261,7 +261,7 @@ index 8974c16bf9..0b9112c1b4 100644
}
public boolean aA() {
@@ -1285,6 +1288,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1286,6 +1289,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.inLava;
}
@@ -269,7 +269,7 @@ index 8974c16bf9..0b9112c1b4 100644
public void a(float f, Vec3D vec3d) {
Vec3D vec3d1 = a(vec3d, f, this.yaw);
@@ -2112,7 +2116,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2113,7 +2117,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
} else {
this.passengers.add(entity);
}
@@ -284,7 +284,7 @@ index 8974c16bf9..0b9112c1b4 100644
}
return true; // CraftBukkit
}
@@ -2147,6 +2157,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2148,6 +2158,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return false;
}
// Spigot end
@@ -297,7 +297,7 @@ index 8974c16bf9..0b9112c1b4 100644
this.passengers.remove(entity);
entity.j = 60;
}
@@ -2315,6 +2331,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2316,6 +2332,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.setFlag(4, flag);
}
@@ -305,7 +305,7 @@ index 8974c16bf9..0b9112c1b4 100644
public boolean bt() {
return this.glowing || this.world.isClientSide && this.getFlag(6);
}
@@ -2533,6 +2550,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2534,6 +2551,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public void setHeadRotation(float f) {}
@@ -313,7 +313,7 @@ index 8974c16bf9..0b9112c1b4 100644
public void l(float f) {}
public boolean bA() {
@@ -3378,4 +3396,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -3379,4 +3397,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
void accept(Entity entity, double d0, double d1, double d2);
}
@@ -358,7 +358,7 @@ index 8974c16bf9..0b9112c1b4 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityAgeable.java b/src/main/java/net/minecraft/server/EntityAgeable.java
index 3d27f0964a..822316a65f 100644
index 3d27f0964..822316a65 100644
--- a/src/main/java/net/minecraft/server/EntityAgeable.java
+++ b/src/main/java/net/minecraft/server/EntityAgeable.java
@@ -86,7 +86,7 @@ public abstract class EntityAgeable extends EntityCreature {
@@ -371,7 +371,7 @@ index 3d27f0964a..822316a65f 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
index 34239160be..592408bac9 100644
index 34239160b..592408bac 100644
--- a/src/main/java/net/minecraft/server/EntityBat.java
+++ b/src/main/java/net/minecraft/server/EntityBat.java
@@ -14,9 +14,44 @@ public class EntityBat extends EntityAmbient {
@@ -462,7 +462,7 @@ index 34239160be..592408bac9 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityBee.java b/src/main/java/net/minecraft/server/EntityBee.java
index c7d79efdf6..7e4aad7716 100644
index c7d79efdf..7e4aad771 100644
--- a/src/main/java/net/minecraft/server/EntityBee.java
+++ b/src/main/java/net/minecraft/server/EntityBee.java
@@ -36,9 +36,7 @@ public class EntityBee extends EntityAnimal implements EntityBird {
@@ -643,7 +643,7 @@ index c7d79efdf6..7e4aad7716 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityBlaze.java b/src/main/java/net/minecraft/server/EntityBlaze.java
index da6a3fa2c8..d02130e0d1 100644
index da6a3fa2c..d02130e0d 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 {
@@ -733,7 +733,7 @@ index da6a3fa2c8..d02130e0d1 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 b3bdc194ab..8b9222d778 100644
index b3bdc194a..8b9222d77 100644
--- a/src/main/java/net/minecraft/server/EntityCat.java
+++ b/src/main/java/net/minecraft/server/EntityCat.java
@@ -42,6 +42,23 @@ public class EntityCat extends EntityTameableAnimal {
@@ -827,7 +827,7 @@ index b3bdc194ab..8b9222d778 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityCaveSpider.java b/src/main/java/net/minecraft/server/EntityCaveSpider.java
index 23ced2c7bb..5b86b36f6a 100644
index 23ced2c7b..5b86b36f6 100644
--- a/src/main/java/net/minecraft/server/EntityCaveSpider.java
+++ b/src/main/java/net/minecraft/server/EntityCaveSpider.java
@@ -8,6 +8,23 @@ public class EntityCaveSpider extends EntitySpider {
@@ -855,7 +855,7 @@ index 23ced2c7bb..5b86b36f6a 100644
protected void initAttributes() {
super.initAttributes();
diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java
index 65795fc896..5505b7ee94 100644
index 65795fc89..5505b7ee9 100644
--- a/src/main/java/net/minecraft/server/EntityChicken.java
+++ b/src/main/java/net/minecraft/server/EntityChicken.java
@@ -17,9 +17,27 @@ public class EntityChicken extends EntityAnimal {
@@ -895,7 +895,7 @@ index 65795fc896..5505b7ee94 100644
this.forceDrops = true; // CraftBukkit
this.a((IMaterial) Items.EGG);
diff --git a/src/main/java/net/minecraft/server/EntityCod.java b/src/main/java/net/minecraft/server/EntityCod.java
index 1e3782122a..0153a821ee 100644
index 1e3782122..0153a821e 100644
--- a/src/main/java/net/minecraft/server/EntityCod.java
+++ b/src/main/java/net/minecraft/server/EntityCod.java
@@ -6,6 +6,23 @@ public class EntityCod extends EntityFishSchool {
@@ -923,7 +923,7 @@ index 1e3782122a..0153a821ee 100644
protected ItemStack l() {
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 a0b35c8699..144e89f224 100644
index a0b35c869..144e89f22 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 {
@@ -939,7 +939,7 @@ index a0b35c8699..144e89f224 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
index 2c8bbf20ae..723a9fa1ee 100644
index 2c8bbf20a..723a9fa1e 100644
--- a/src/main/java/net/minecraft/server/EntityCow.java
+++ b/src/main/java/net/minecraft/server/EntityCow.java
@@ -11,9 +11,27 @@ public class EntityCow extends EntityAnimal {
@@ -971,7 +971,7 @@ index 2c8bbf20ae..723a9fa1ee 100644
this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D));
this.goalSelector.a(3, new PathfinderGoalTempt(this, 1.25D, RecipeItemStack.a(Items.WHEAT), false));
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
index 45dfc8104a..48fd8e716b 100644
index 45dfc8104..48fd8e716 100644
--- a/src/main/java/net/minecraft/server/EntityCreeper.java
+++ b/src/main/java/net/minecraft/server/EntityCreeper.java
@@ -23,16 +23,35 @@ public class EntityCreeper extends EntityMonster {
@@ -1087,7 +1087,7 @@ index 45dfc8104a..48fd8e716b 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java
index ce78586ea0..81570b37bb 100644
index ce78586ea..81570b37b 100644
--- a/src/main/java/net/minecraft/server/EntityDolphin.java
+++ b/src/main/java/net/minecraft/server/EntityDolphin.java
@@ -1,5 +1,12 @@
@@ -1238,7 +1238,7 @@ index ce78586ea0..81570b37bb 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 77885f67ff..63f5969b10 100644
index 77885f67f..63f5969b1 100644
--- a/src/main/java/net/minecraft/server/EntityDrowned.java
+++ b/src/main/java/net/minecraft/server/EntityDrowned.java
@@ -19,6 +19,23 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity {
@@ -1301,7 +1301,7 @@ index 77885f67ff..63f5969b10 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index af10fc36e0..e08b731d2c 100644
index af10fc36e..e08b731d2 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 {
@@ -1458,7 +1458,7 @@ index af10fc36e0..e08b731d2c 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index 212636dcb2..de30ce483f 100644
index 212636dcb..de30ce483 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -27,9 +27,27 @@ public class EntityEnderman extends EntityMonster {
@@ -1557,7 +1557,7 @@ index 212636dcb2..de30ce483f 100644
if (iblockdata2 != null && this.a(world, blockposition, iblockdata2, iblockdata, iblockdata1, blockposition1)) {
// CraftBukkit start - Place event
diff --git a/src/main/java/net/minecraft/server/EntityEndermite.java b/src/main/java/net/minecraft/server/EntityEndermite.java
index e4bd2796a4..5eaf1920b2 100644
index e4bd2796a..5eaf1920b 100644
--- a/src/main/java/net/minecraft/server/EntityEndermite.java
+++ b/src/main/java/net/minecraft/server/EntityEndermite.java
@@ -12,13 +12,32 @@ public class EntityEndermite extends EntityMonster {
@@ -1594,7 +1594,7 @@ index e4bd2796a4..5eaf1920b2 100644
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
}
diff --git a/src/main/java/net/minecraft/server/EntityEvoker.java b/src/main/java/net/minecraft/server/EntityEvoker.java
index b030fe9577..179a261296 100644
index b030fe957..179a26129 100644
--- a/src/main/java/net/minecraft/server/EntityEvoker.java
+++ b/src/main/java/net/minecraft/server/EntityEvoker.java
@@ -12,10 +12,28 @@ public class EntityEvoker extends EntityIllagerWizard {
@@ -1659,7 +1659,7 @@ index b030fe9577..179a261296 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java
index b853fd0d9b..b8d786fad5 100644
index b853fd0d9..b8d786fad 100644
--- a/src/main/java/net/minecraft/server/EntityFish.java
+++ b/src/main/java/net/minecraft/server/EntityFish.java
@@ -72,9 +72,10 @@ public abstract class EntityFish extends EntityWaterAnimal {
@@ -1713,7 +1713,7 @@ index b853fd0d9b..b8d786fad5 100644
this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D));
}
diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java
index 82a32d5dbf..4f53090d3d 100644
index 82a32d5db..4f53090d3 100644
--- a/src/main/java/net/minecraft/server/EntityFox.java
+++ b/src/main/java/net/minecraft/server/EntityFox.java
@@ -55,6 +55,23 @@ public class EntityFox extends EntityAnimal {
@@ -1851,7 +1851,7 @@ index 82a32d5dbf..4f53090d3d 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityGhast.java b/src/main/java/net/minecraft/server/EntityGhast.java
index e1c2540d14..46841df718 100644
index e1c2540d1..46841df71 100644
--- a/src/main/java/net/minecraft/server/EntityGhast.java
+++ b/src/main/java/net/minecraft/server/EntityGhast.java
@@ -14,11 +14,47 @@ public class EntityGhast extends EntityFlying implements IMonster {
@@ -1934,7 +1934,7 @@ index e1c2540d14..46841df718 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 d9e5eaad12..ff8a41a539 100644
index d9e5eaad1..ff8a41a53 100644
--- a/src/main/java/net/minecraft/server/EntityGiantZombie.java
+++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java
@@ -4,8 +4,33 @@ public class EntityGiantZombie extends EntityMonster {
@@ -1972,7 +1972,7 @@ index d9e5eaad12..ff8a41a539 100644
protected float b(EntityPose entitypose, EntitySize entitysize) {
return 10.440001F;
diff --git a/src/main/java/net/minecraft/server/EntityGuardian.java b/src/main/java/net/minecraft/server/EntityGuardian.java
index e69cb334fb..97040872bc 100644
index e69cb334f..97040872b 100644
--- a/src/main/java/net/minecraft/server/EntityGuardian.java
+++ b/src/main/java/net/minecraft/server/EntityGuardian.java
@@ -24,15 +24,39 @@ public class EntityGuardian extends EntityMonster {
@@ -2073,7 +2073,7 @@ index e69cb334fb..97040872bc 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 7484bfeea0..f231340d90 100644
index 7484bfeea..f231340d9 100644
--- a/src/main/java/net/minecraft/server/EntityGuardianElder.java
+++ b/src/main/java/net/minecraft/server/EntityGuardianElder.java
@@ -16,6 +16,23 @@ public class EntityGuardianElder extends EntityGuardian {
@@ -2101,7 +2101,7 @@ index 7484bfeea0..f231340d90 100644
public void initAttributes() {
super.initAttributes();
diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java
index a6fb4ba5b9..98b1e93759 100644
index a6fb4ba5b..98b1e9375 100644
--- a/src/main/java/net/minecraft/server/EntityHorse.java
+++ b/src/main/java/net/minecraft/server/EntityHorse.java
@@ -19,6 +19,13 @@ public class EntityHorse extends EntityHorseAbstract {
@@ -2119,7 +2119,7 @@ index a6fb4ba5b9..98b1e93759 100644
protected void initDatawatcher() {
super.initDatawatcher();
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index c56efe035a..e7ba83f32a 100644
index c56efe035..e7ba83f32 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -38,12 +38,39 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -2172,7 +2172,7 @@ index c56efe035a..e7ba83f32a 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityHorseDonkey.java b/src/main/java/net/minecraft/server/EntityHorseDonkey.java
index 9a52decdca..64d80081f7 100644
index 9a52decdc..64d80081f 100644
--- a/src/main/java/net/minecraft/server/EntityHorseDonkey.java
+++ b/src/main/java/net/minecraft/server/EntityHorseDonkey.java
@@ -6,6 +6,13 @@ public class EntityHorseDonkey extends EntityHorseChestedAbstract {
@@ -2190,7 +2190,7 @@ index 9a52decdca..64d80081f7 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 4dd4d91eba..a9f26efe66 100644
index 4dd4d91eb..a9f26efe6 100644
--- a/src/main/java/net/minecraft/server/EntityHorseMule.java
+++ b/src/main/java/net/minecraft/server/EntityHorseMule.java
@@ -6,6 +6,13 @@ public class EntityHorseMule extends EntityHorseChestedAbstract {
@@ -2208,7 +2208,7 @@ index 4dd4d91eba..a9f26efe66 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 290cb9337c..7bf76e5a0b 100644
index 290cb9337..7bf76e5a0 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 {
@@ -2249,7 +2249,7 @@ index 290cb9337c..7bf76e5a0b 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityHorseZombie.java b/src/main/java/net/minecraft/server/EntityHorseZombie.java
index 5782a25ecd..c87fc523f1 100644
index 5782a25ec..c87fc523f 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 {
@@ -2279,7 +2279,7 @@ index 5782a25ecd..c87fc523f1 100644
+ protected void ez() { 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 584166f225..de22cad764 100644
index 584166f22..de22cad76 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -374,9 +374,21 @@ public abstract class EntityHuman extends EntityLiving {
@@ -2306,7 +2306,7 @@ index 584166f225..de22cad764 100644
this.setSneaking(false);
} else {
diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
index 81b7cd06f2..3e6722cfce 100644
index 81b7cd06f..3e6722cfc 100644
--- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
+++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
@@ -19,10 +19,28 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan
@@ -2347,7 +2347,7 @@ index 81b7cd06f2..3e6722cfce 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 1991cee43d..28218f048d 100644
index 1991cee43..28218f048 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -28,7 +28,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -2439,7 +2439,7 @@ index 1991cee43d..28218f048d 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java
index 7f6a567760..288a043fbd 100644
index 7f6a56776..288a043fb 100644
--- a/src/main/java/net/minecraft/server/EntityIronGolem.java
+++ b/src/main/java/net/minecraft/server/EntityIronGolem.java
@@ -17,8 +17,26 @@ public class EntityIronGolem extends EntityGolem {
@@ -2494,7 +2494,7 @@ index 7f6a567760..288a043fbd 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 ad474500e2..4049ab0273 100644
index 8efb646a0..77fe338a8 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -75,7 +75,7 @@ public abstract class EntityLiving extends Entity {
@@ -2567,7 +2567,7 @@ index ad474500e2..4049ab0273 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index 193dbfc5f6..5b87b245f7 100644
index 193dbfc5f..5b87b245f 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -16,7 +16,36 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -2661,7 +2661,7 @@ index 193dbfc5f6..5b87b245f7 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 4cebd67e85..283c1ac946 100644
index 4cebd67e8..283c1ac94 100644
--- a/src/main/java/net/minecraft/server/EntityLlamaTrader.java
+++ b/src/main/java/net/minecraft/server/EntityLlamaTrader.java
@@ -11,6 +11,13 @@ public class EntityLlamaTrader extends EntityLlama {
@@ -2692,7 +2692,7 @@ index 4cebd67e85..283c1ac946 100644
@Override
public GroupDataEntity prepare(GeneratorAccess generatoraccess, DifficultyDamageScaler difficultydamagescaler, EnumMobSpawn enummobspawn, @Nullable GroupDataEntity groupdataentity, @Nullable NBTTagCompound nbttagcompound) {
diff --git a/src/main/java/net/minecraft/server/EntityMagmaCube.java b/src/main/java/net/minecraft/server/EntityMagmaCube.java
index 1fdc248ba8..a5a36af217 100644
index 1fdc248ba..a5a36af21 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 {
@@ -2720,7 +2720,7 @@ index 1fdc248ba8..a5a36af217 100644
protected void initAttributes() {
super.initAttributes();
diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java
index 3706c31aad..b20f4afd3f 100644
index 3706c31aa..b20f4afd3 100644
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
@@ -20,6 +20,23 @@ public class EntityMushroomCow extends EntityCow {
@@ -2748,7 +2748,7 @@ index 3706c31aad..b20f4afd3f 100644
public float a(BlockPosition blockposition, IWorldReader iworldreader) {
return iworldreader.getType(blockposition.down()).getBlock() == Blocks.MYCELIUM ? 10.0F : iworldreader.w(blockposition) - 0.5F;
diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java
index d9a7b8ac1e..8fdf348573 100644
index d9a7b8ac1..8fdf34857 100644
--- a/src/main/java/net/minecraft/server/EntityOcelot.java
+++ b/src/main/java/net/minecraft/server/EntityOcelot.java
@@ -16,6 +16,23 @@ public class EntityOcelot extends EntityAnimal {
@@ -2791,7 +2791,7 @@ index d9a7b8ac1e..8fdf348573 100644
this.targetSelector.a(1, new PathfinderGoalNearestAttackableTarget<>(this, EntityTurtle.class, 10, false, false, EntityTurtle.bw));
}
diff --git a/src/main/java/net/minecraft/server/EntityPanda.java b/src/main/java/net/minecraft/server/EntityPanda.java
index f50ed19080..87ed9a8ca0 100644
index f50ed1908..87ed9a8ca 100644
--- a/src/main/java/net/minecraft/server/EntityPanda.java
+++ b/src/main/java/net/minecraft/server/EntityPanda.java
@@ -46,6 +46,23 @@ public class EntityPanda extends EntityAnimal {
@@ -2937,7 +2937,7 @@ index f50ed19080..87ed9a8ca0 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
index 94e57a2d85..7ba2f3a351 100644
index 94e57a2d8..7ba2f3a35 100644
--- a/src/main/java/net/minecraft/server/EntityParrot.java
+++ b/src/main/java/net/minecraft/server/EntityParrot.java
@@ -62,12 +62,83 @@ public class EntityParrot extends EntityPerchable implements EntityBird {
@@ -3038,7 +3038,7 @@ index 94e57a2d85..7ba2f3a351 100644
this.goalSelector.a(2, this.goalSit);
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 90eeddb1af..5ccbc341d2 100644
index 90eeddb1a..5ccbc341d 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -22,6 +22,40 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@@ -3198,7 +3198,7 @@ index 90eeddb1af..5ccbc341d2 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 8d277566e9..e6a7f8ef37 100644
index 8d277566e..e6a7f8ef3 100644
--- a/src/main/java/net/minecraft/server/EntityPig.java
+++ b/src/main/java/net/minecraft/server/EntityPig.java
@@ -19,9 +19,27 @@ public class EntityPig extends EntityAnimal {
@@ -3269,7 +3269,7 @@ index 8d277566e9..e6a7f8ef37 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java
index 9dd028b558..fb9ef88ea3 100644
index 9dd028b55..fb9ef88ea 100644
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java
+++ b/src/main/java/net/minecraft/server/EntityPigZombie.java
@@ -17,6 +17,23 @@ public class EntityPigZombie extends EntityZombie {
@@ -3297,7 +3297,7 @@ index 9dd028b558..fb9ef88ea3 100644
public void setLastDamager(@Nullable EntityLiving entityliving) {
super.setLastDamager(entityliving);
diff --git a/src/main/java/net/minecraft/server/EntityPillager.java b/src/main/java/net/minecraft/server/EntityPillager.java
index 0357c9da93..98a657cece 100644
index 0357c9da9..98a657cec 100644
--- a/src/main/java/net/minecraft/server/EntityPillager.java
+++ b/src/main/java/net/minecraft/server/EntityPillager.java
@@ -13,15 +13,34 @@ public class EntityPillager extends EntityIllagerAbstract implements ICrossbow,
@@ -3336,7 +3336,7 @@ index 0357c9da93..98a657cece 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/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index e7bfbc3307..c64cc69f3d 100644
index e7bfbc330..c64cc69f3 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1286,6 +1286,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -3356,7 +3356,7 @@ index e7bfbc3307..c64cc69f3d 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java
index f8e29a02d3..0a3906bde0 100644
index f8e29a02d..0a3906bde 100644
--- a/src/main/java/net/minecraft/server/EntityPolarBear.java
+++ b/src/main/java/net/minecraft/server/EntityPolarBear.java
@@ -17,6 +17,23 @@ public class EntityPolarBear extends EntityAnimal {
@@ -3448,7 +3448,7 @@ index f8e29a02d3..0a3906bde0 100644
public d() {
diff --git a/src/main/java/net/minecraft/server/EntityPufferFish.java b/src/main/java/net/minecraft/server/EntityPufferFish.java
index 98af9a2235..d0e3e251e1 100644
index 98af9a223..d0e3e251e 100644
--- a/src/main/java/net/minecraft/server/EntityPufferFish.java
+++ b/src/main/java/net/minecraft/server/EntityPufferFish.java
@@ -17,6 +17,23 @@ public class EntityPufferFish extends EntityFish {
@@ -3485,7 +3485,7 @@ index 98af9a2235..d0e3e251e1 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java
index 2ed2d0b6bb..9040ab1c54 100644
index 2ed2d0b6b..9040ab1c5 100644
--- a/src/main/java/net/minecraft/server/EntityRabbit.java
+++ b/src/main/java/net/minecraft/server/EntityRabbit.java
@@ -26,9 +26,27 @@ public class EntityRabbit extends EntityAnimal {
@@ -3640,7 +3640,7 @@ index 2ed2d0b6bb..9040ab1c54 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 fd25ce1026..98d182a4ce 100644
index fd25ce102..98d182a4c 100644
--- a/src/main/java/net/minecraft/server/EntityRavager.java
+++ b/src/main/java/net/minecraft/server/EntityRavager.java
@@ -20,14 +20,33 @@ public class EntityRavager extends EntityRaider {
@@ -3678,7 +3678,7 @@ index fd25ce1026..98d182a4ce 100644
this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true));
this.targetSelector.a(4, new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, true));
diff --git a/src/main/java/net/minecraft/server/EntitySalmon.java b/src/main/java/net/minecraft/server/EntitySalmon.java
index 6be29f3078..189515b0ff 100644
index 6be29f307..189515b0f 100644
--- a/src/main/java/net/minecraft/server/EntitySalmon.java
+++ b/src/main/java/net/minecraft/server/EntitySalmon.java
@@ -6,6 +6,23 @@ public class EntitySalmon extends EntityFishSchool {
@@ -3706,7 +3706,7 @@ index 6be29f3078..189515b0ff 100644
public int es() {
return 5;
diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java
index d5ffdc110d..d4f2642d3d 100644
index d5ffdc110..d4f2642d3 100644
--- a/src/main/java/net/minecraft/server/EntitySheep.java
+++ b/src/main/java/net/minecraft/server/EntitySheep.java
@@ -55,10 +55,28 @@ public class EntitySheep extends EntityAnimal {
@@ -3739,7 +3739,7 @@ index d5ffdc110d..d4f2642d3d 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 0d2ceff6f2..46379588c1 100644
index 0d2ceff6f..46379588c 100644
--- a/src/main/java/net/minecraft/server/EntityShulker.java
+++ b/src/main/java/net/minecraft/server/EntityShulker.java
@@ -32,6 +32,23 @@ public class EntityShulker extends EntityGolem implements IMonster {
@@ -3789,7 +3789,7 @@ index 0d2ceff6f2..46379588c1 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 08c2a22f7a..dff20567b3 100644
index 08c2a22f7..dff20567b 100644
--- a/src/main/java/net/minecraft/server/EntitySilverfish.java
+++ b/src/main/java/net/minecraft/server/EntitySilverfish.java
@@ -11,13 +11,32 @@ public class EntitySilverfish extends EntityMonster {
@@ -3834,7 +3834,7 @@ index 08c2a22f7a..dff20567b3 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 0e78d5c62c..8e6efeb7b7 100644
index 0e78d5c62..8e6efeb7b 100644
--- a/src/main/java/net/minecraft/server/EntitySkeleton.java
+++ b/src/main/java/net/minecraft/server/EntitySkeleton.java
@@ -6,6 +6,23 @@ public class EntitySkeleton extends EntitySkeletonAbstract {
@@ -3862,7 +3862,7 @@ index 0e78d5c62c..8e6efeb7b7 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 3c95c0428b..8bc4e85156 100644
index 3c95c0428..8bc4e8515 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
@@ -3881,7 +3881,7 @@ index 3c95c0428b..8bc4e85156 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 2eb53864f2..a930fb8401 100644
index 2eb53864f..a930fb840 100644
--- a/src/main/java/net/minecraft/server/EntitySkeletonStray.java
+++ b/src/main/java/net/minecraft/server/EntitySkeletonStray.java
@@ -8,6 +8,23 @@ public class EntitySkeletonStray extends EntitySkeletonAbstract {
@@ -3909,7 +3909,7 @@ index 2eb53864f2..a930fb8401 100644
return c(entitytypes, generatoraccess, enummobspawn, blockposition, random) && (enummobspawn == EnumMobSpawn.SPAWNER || generatoraccess.f(blockposition));
}
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonWither.java b/src/main/java/net/minecraft/server/EntitySkeletonWither.java
index 98e042424c..8aa0a6699f 100644
index 98e042424..8aa0a6699 100644
--- a/src/main/java/net/minecraft/server/EntitySkeletonWither.java
+++ b/src/main/java/net/minecraft/server/EntitySkeletonWither.java
@@ -9,6 +9,23 @@ public class EntitySkeletonWither extends EntitySkeletonAbstract {
@@ -3937,7 +3937,7 @@ index 98e042424c..8aa0a6699f 100644
protected SoundEffect getSoundAmbient() {
return SoundEffects.ENTITY_WITHER_SKELETON_AMBIENT;
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
index 2efc18df94..c15f7d9b24 100644
index 2efc18df9..c15f7d9b2 100644
--- a/src/main/java/net/minecraft/server/EntitySlime.java
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
@@ -32,12 +32,31 @@ public class EntitySlime extends EntityInsentient implements IMonster {
@@ -3973,7 +3973,7 @@ index 2efc18df94..c15f7d9b24 100644
return Math.abs(entityliving.locY() - this.locY()) <= 4.0D;
}));
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index 07ca1a4987..941873513f 100644
index 07ca1a498..941873513 100644
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
@@ -14,12 +14,31 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -4035,7 +4035,7 @@ index 07ca1a4987..941873513f 100644
}
diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java
index d02db56595..d3708a7b0e 100644
index d02db5659..d3708a7b0 100644
--- a/src/main/java/net/minecraft/server/EntitySpider.java
+++ b/src/main/java/net/minecraft/server/EntitySpider.java
@@ -11,14 +11,33 @@ public class EntitySpider extends EntityMonster {
@@ -4073,7 +4073,7 @@ index d02db56595..d3708a7b0e 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 92efe4e7f5..b967135ac3 100644
index 92efe4e7f..b967135ac 100644
--- a/src/main/java/net/minecraft/server/EntitySquid.java
+++ b/src/main/java/net/minecraft/server/EntitySquid.java
@@ -25,10 +25,28 @@ public class EntitySquid extends EntityWaterAnimal {
@@ -4182,7 +4182,7 @@ index 92efe4e7f5..b967135ac3 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityTameableAnimal.java b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
index 9b2eea71cc..d55c6cb339 100644
index 9b2eea71c..d55c6cb33 100644
--- a/src/main/java/net/minecraft/server/EntityTameableAnimal.java
+++ b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
@@ -135,6 +135,7 @@ public abstract class EntityTameableAnimal extends EntityAnimal {
@@ -4194,7 +4194,7 @@ index 9b2eea71cc..d55c6cb339 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 ef8f373bea..992978463d 100644
index ef8f373be..992978463 100644
--- a/src/main/java/net/minecraft/server/EntityTropicalFish.java
+++ b/src/main/java/net/minecraft/server/EntityTropicalFish.java
@@ -19,6 +19,23 @@ public class EntityTropicalFish extends EntityFishSchool {
@@ -4222,7 +4222,7 @@ index ef8f373bea..992978463d 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 b24a5100b4..4695492068 100644
index b24a5100b..469549206 100644
--- a/src/main/java/net/minecraft/server/EntityTurtle.java
+++ b/src/main/java/net/minecraft/server/EntityTurtle.java
@@ -27,6 +27,23 @@ public class EntityTurtle extends EntityAnimal {
@@ -4370,7 +4370,7 @@ index b24a5100b4..4695492068 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/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
index 4100e367a4..a0d932c403 100644
index 4100e367a..a0d932c40 100644
--- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
@@ -259,6 +259,12 @@ public class EntityTypes<T extends Entity> {
@@ -4387,7 +4387,7 @@ index 4100e367a4..a0d932c403 100644
if (this.bg == null) {
this.bg = SystemUtils.a("entity", IRegistry.ENTITY_TYPE.getKey(this));
diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java
index cf274666c7..d919f44ab8 100644
index cf274666c..d919f44ab 100644
--- a/src/main/java/net/minecraft/server/EntityVex.java
+++ b/src/main/java/net/minecraft/server/EntityVex.java
@@ -19,6 +19,50 @@ public class EntityVex extends EntityMonster {
@@ -4501,7 +4501,7 @@ index cf274666c7..d919f44ab8 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 6e0020ae0b..3eaac031fb 100644
index 6e0020ae0..3eaac031f 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -68,6 +68,28 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -4534,7 +4534,7 @@ index 6e0020ae0b..3eaac031fb 100644
public BehaviorController<EntityVillager> getBehaviorController() {
return (BehaviorController<EntityVillager>) super.getBehaviorController(); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
index 2ad8dba5c0..4e9c5e84a9 100644
index 2ad8dba5c..4e9c5e84a 100644
--- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java
+++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
@@ -20,6 +20,23 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
@@ -4570,7 +4570,7 @@ index 2ad8dba5c0..4e9c5e84a9 100644
this.goalSelector.a(1, new PathfinderGoalAvoidTarget<>(this, EntityZombie.class, 8.0F, 0.5D, 0.5D));
this.goalSelector.a(1, new PathfinderGoalAvoidTarget<>(this, EntityEvoker.class, 12.0F, 0.5D, 0.5D));
diff --git a/src/main/java/net/minecraft/server/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java
index c974c02e92..6ba920134a 100644
index c974c02e9..6ba920134 100644
--- a/src/main/java/net/minecraft/server/EntityVindicator.java
+++ b/src/main/java/net/minecraft/server/EntityVindicator.java
@@ -17,14 +17,33 @@ public class EntityVindicator extends EntityIllagerAbstract {
@@ -4608,7 +4608,7 @@ index c974c02e92..6ba920134a 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 1432d3f6bf..447387bd78 100644
index 1432d3f6b..447387bd7 100644
--- a/src/main/java/net/minecraft/server/EntityWitch.java
+++ b/src/main/java/net/minecraft/server/EntityWitch.java
@@ -24,6 +24,23 @@ public class EntityWitch extends EntityRaider implements IRangedEntity {
@@ -4651,7 +4651,7 @@ index 1432d3f6bf..447387bd78 100644
this.targetSelector.a(2, this.bz);
this.targetSelector.a(3, this.bA);
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index 8977c3516b..ad97fe7eaa 100644
index 8977c3516..ad97fe7ea 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -18,7 +18,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -4784,7 +4784,7 @@ index 8977c3516b..ad97fe7eaa 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java
index eec1e26b6e..47f0b2df6c 100644
index eec1e26b6..47f0b2df6 100644
--- a/src/main/java/net/minecraft/server/EntityWolf.java
+++ b/src/main/java/net/minecraft/server/EntityWolf.java
@@ -30,10 +30,28 @@ public class EntityWolf extends EntityTameableAnimal {
@@ -4958,7 +4958,7 @@ index eec1e26b6e..47f0b2df6c 100644
private final EntityWolf j;
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 07ebc1d816..8d1f04415e 100644
index 07ebc1d81..8d1f04415 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -44,11 +44,30 @@ public class EntityZombie extends EntityMonster {
@@ -4993,7 +4993,7 @@ index 07ebc1d816..8d1f04415e 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityZombieHusk.java b/src/main/java/net/minecraft/server/EntityZombieHusk.java
index da8446d05d..db252ba4e0 100644
index da8446d05..db252ba4e 100644
--- a/src/main/java/net/minecraft/server/EntityZombieHusk.java
+++ b/src/main/java/net/minecraft/server/EntityZombieHusk.java
@@ -8,6 +8,23 @@ public class EntityZombieHusk extends EntityZombie {
@@ -5021,7 +5021,7 @@ index da8446d05d..db252ba4e0 100644
return c(entitytypes, generatoraccess, enummobspawn, blockposition, random) && (enummobspawn == EnumMobSpawn.SPAWNER || generatoraccess.f(blockposition));
}
diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java
index 8082fa617a..ebbfcb75a4 100644
index 8082fa617..ebbfcb75a 100644
--- a/src/main/java/net/minecraft/server/EntityZombieVillager.java
+++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java
@@ -25,6 +25,23 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo
@@ -5049,7 +5049,7 @@ index 8082fa617a..ebbfcb75a4 100644
protected void initDatawatcher() {
super.initDatawatcher();
diff --git a/src/main/java/net/minecraft/server/FoodInfo.java b/src/main/java/net/minecraft/server/FoodInfo.java
index b35fe21a6d..5b0f35c730 100644
index b35fe21a6..5b0f35c73 100644
--- a/src/main/java/net/minecraft/server/FoodInfo.java
+++ b/src/main/java/net/minecraft/server/FoodInfo.java
@@ -30,6 +30,7 @@ public class FoodInfo {
@@ -5061,7 +5061,7 @@ index b35fe21a6d..5b0f35c730 100644
return this.c;
}
diff --git a/src/main/java/net/minecraft/server/ItemDye.java b/src/main/java/net/minecraft/server/ItemDye.java
index da49f6e5ae..7b5d602649 100644
index da49f6e5a..7b5d60264 100644
--- a/src/main/java/net/minecraft/server/ItemDye.java
+++ b/src/main/java/net/minecraft/server/ItemDye.java
@@ -42,6 +42,7 @@ public class ItemDye extends Item {
@@ -5073,7 +5073,7 @@ index da49f6e5ae..7b5d602649 100644
return this.b;
}
diff --git a/src/main/java/net/minecraft/server/MathHelper.java b/src/main/java/net/minecraft/server/MathHelper.java
index c4aa38ddf1..3d52a396e6 100644
index c4aa38ddf..3d52a396e 100644
--- a/src/main/java/net/minecraft/server/MathHelper.java
+++ b/src/main/java/net/minecraft/server/MathHelper.java
@@ -263,6 +263,7 @@ public class MathHelper {
@@ -5093,7 +5093,7 @@ index c4aa38ddf1..3d52a396e6 100644
return f1 + f * (f2 - f1);
}
diff --git a/src/main/java/net/minecraft/server/PathfinderGoal.java b/src/main/java/net/minecraft/server/PathfinderGoal.java
index bdb90a3466..e059930ba7 100644
index bdb90a346..e059930ba 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoal.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoal.java
@@ -27,6 +27,7 @@ public abstract class PathfinderGoal {
@@ -5105,7 +5105,7 @@ index bdb90a3466..e059930ba7 100644
this.a.clear();
this.a.addAll(enumset);
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSwell.java b/src/main/java/net/minecraft/server/PathfinderGoalSwell.java
index e07c7674a5..3c077b6870 100644
index e07c7674a..3c077b687 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalSwell.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalSwell.java
@@ -4,8 +4,8 @@ import java.util.EnumSet;
@@ -5128,7 +5128,7 @@ index e07c7674a5..3c077b6870 100644
this.a.a(-1);
} else if (this.a.h((Entity) this.b) > 49.0D) {
diff --git a/src/main/java/net/minecraft/server/ProjectileHelper.java b/src/main/java/net/minecraft/server/ProjectileHelper.java
index 1b796ba5b3..7dbe3500e9 100644
index 1b796ba5b..7dbe3500e 100644
--- a/src/main/java/net/minecraft/server/ProjectileHelper.java
+++ b/src/main/java/net/minecraft/server/ProjectileHelper.java
@@ -15,6 +15,7 @@ public final class ProjectileHelper {
@@ -5140,7 +5140,7 @@ index 1b796ba5b3..7dbe3500e9 100644
return a(entity, flag, false, (Entity) null, raytrace_blockcollisionoption, false, predicate, axisalignedbb);
}
diff --git a/src/main/java/net/minecraft/server/Vec3D.java b/src/main/java/net/minecraft/server/Vec3D.java
index 0c7f094e54..62a0810062 100644
index 0c7f094e5..62a081006 100644
--- a/src/main/java/net/minecraft/server/Vec3D.java
+++ b/src/main/java/net/minecraft/server/Vec3D.java
@@ -27,6 +27,7 @@ public class Vec3D implements IPosition {
@@ -5168,7 +5168,7 @@ index 0c7f094e54..62a0810062 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 1131d43269..7451b7fc4b 100644
index 1131d4326..7451b7fc4 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -975,6 +975,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -5191,7 +5191,7 @@ index 1131d43269..7451b7fc4b 100644
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index eda37fa43f..fafbea673e 100644
index eda37fa43..fafbea673 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -64,4 +64,595 @@ public class PurpurWorldConfig {
@@ -5792,7 +5792,7 @@ index eda37fa43f..fafbea673e 100644
}
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 0000000000..828e1b8730
index 000000000..828e1b873
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
@@ -0,0 +1,75 @@
@@ -5873,7 +5873,7 @@ index 0000000000..828e1b8730
+}
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 0000000000..0a5d6d46c2
index 000000000..0a5d6d46c
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
@@ -0,0 +1,86 @@
@@ -5965,7 +5965,7 @@ index 0000000000..0a5d6d46c2
+}
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 0000000000..3491250704
index 000000000..349125070
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
@@ -0,0 +1,53 @@
@@ -6024,7 +6024,7 @@ index 0000000000..3491250704
+}
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 0000000000..f753759361
index 000000000..f75375936
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java
@@ -0,0 +1,61 @@
@@ -6091,7 +6091,7 @@ index 0000000000..f753759361
+}
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 0000000000..e75e580670
index 000000000..e75e58067
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java
@@ -0,0 +1,43 @@
@@ -6140,7 +6140,7 @@ index 0000000000..e75e580670
+}
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 0000000000..7189cc569f
index 000000000..7189cc569
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java
@@ -0,0 +1,119 @@
@@ -6265,7 +6265,7 @@ index 0000000000..7189cc569f
+}
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 0000000000..6e50344c07
index 000000000..6e50344c0
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
@@ -0,0 +1,21 @@
@@ -6291,7 +6291,7 @@ index 0000000000..6e50344c07
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index dfa15372b8..350aa67549 100644
index dfa15372b..350aa6754 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1057,4 +1057,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View File

@@ -1,4 +1,4 @@
From f9bf73e2ad4c39eaba2194e3d0f70456d06cebe8 Mon Sep 17 00:00:00 2001
From 87993a8d2eb4fc82971127f1252c7abebeff1ee4 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 4 May 2019 01:10:30 -0500
Subject: [PATCH] Cows eat mushrooms
@@ -11,10 +11,10 @@ Subject: [PATCH] Cows eat mushrooms
4 files changed, 77 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 0b9112c1b4..f81ab954e2 100644
index 6e05cd094..765da25e6 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1038,6 +1038,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1039,6 +1039,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return false;
}
@@ -22,7 +22,7 @@ index 0b9112c1b4..f81ab954e2 100644
public void a(SoundEffect soundeffect, float f, float f1) {
if (!this.isSilent()) {
this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), soundeffect, this.getSoundCategory(), f, f1);
@@ -2577,6 +2578,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2578,6 +2579,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.invulnerable = flag;
}
@@ -31,7 +31,7 @@ index 0b9112c1b4..f81ab954e2 100644
this.setPositionRotation(entity.locX(), entity.locY(), entity.locZ(), entity.yaw, entity.pitch);
}
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
index 723a9fa1ee..f56fd7c012 100644
index 723a9fa1e..f56fd7c01 100644
--- a/src/main/java/net/minecraft/server/EntityCow.java
+++ b/src/main/java/net/minecraft/server/EntityCow.java
@@ -34,6 +34,7 @@ public class EntityCow extends EntityAnimal {
@@ -124,7 +124,7 @@ index 723a9fa1ee..f56fd7c012 100644
public EntityCow createChild(EntityAgeable entityageable) {
return (EntityCow) EntityTypes.COW.a(this.world);
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 4049ab0273..47b19b7754 100644
index 77fe338a8..592ccb81b 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2812,8 +2812,9 @@ public abstract class EntityLiving extends Entity {
@@ -140,7 +140,7 @@ index 4049ab0273..47b19b7754 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 8ecf47f25a..d160efa0fe 100644
index 8ecf47f25..d160efa0f 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -145,10 +145,12 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 112261ebf1719e21d66653658889e05f2f5b9bb1 Mon Sep 17 00:00:00 2001
From 4d4b7aeaac21cb69d8a5af476ca1f24f4d64be4e Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 9 May 2019 18:26:06 -0500
Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
@@ -13,7 +13,7 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
6 files changed, 228 insertions(+), 11 deletions(-)
diff --git a/src/main/java/net/minecraft/server/DamageSource.java b/src/main/java/net/minecraft/server/DamageSource.java
index f7344d3aec..f6c0165f94 100644
index f7344d3ae..f6c0165f9 100644
--- a/src/main/java/net/minecraft/server/DamageSource.java
+++ b/src/main/java/net/minecraft/server/DamageSource.java
@@ -82,6 +82,7 @@ public class DamageSource {
@@ -25,10 +25,10 @@ index f7344d3aec..f6c0165f94 100644
return (new EntityDamageSourceIndirect("indirectMagic", entity, entity1)).setIgnoreArmor().setMagic();
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index f81ab954e2..aa77bbed62 100644
index 765da25e6..ebb3d2055 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1384,6 +1384,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1385,6 +1385,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return d3 * d3 + d4 * d4 + d5 * d5;
}
@@ -36,7 +36,7 @@ index f81ab954e2..aa77bbed62 100644
public double h(Entity entity) {
return this.c(entity.getPositionVector());
}
@@ -1907,14 +1908,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1908,14 +1909,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.a(new ItemStack(imaterial), (float) i);
}
@@ -55,7 +55,7 @@ index f81ab954e2..aa77bbed62 100644
return null;
} else if (this.world.isClientSide) {
diff --git a/src/main/java/net/minecraft/server/EntityEnderCrystal.java b/src/main/java/net/minecraft/server/EntityEnderCrystal.java
index a57d0089d8..02952c3af8 100644
index a57d0089d..02952c3af 100644
--- a/src/main/java/net/minecraft/server/EntityEnderCrystal.java
+++ b/src/main/java/net/minecraft/server/EntityEnderCrystal.java
@@ -13,6 +13,12 @@ public class EntityEnderCrystal extends Entity {
@@ -123,7 +123,7 @@ index a57d0089d8..02952c3af8 100644
@Override
protected void b(NBTTagCompound nbttagcompound) {
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index cb5eed8785..580c48b34e 100644
index cb5eed878..580c48b34 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -8,9 +8,10 @@ import javax.annotation.Nullable;
@@ -352,7 +352,7 @@ index cb5eed8785..580c48b34e 100644
return entityliving != null ? EntityPhantom.this.a(EntityPhantom.this.getGoalTarget(), PathfinderTargetCondition.a) : false;
diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java
index 4157e50e4d..774ec96f0a 100644
index 4157e50e4..774ec96f0 100644
--- a/src/main/java/net/minecraft/server/IEntityAccess.java
+++ b/src/main/java/net/minecraft/server/IEntityAccess.java
@@ -34,6 +34,7 @@ public interface IEntityAccess {
@@ -364,7 +364,7 @@ index 4157e50e4d..774ec96f0a 100644
return this.a(oclass, axisalignedbb, IEntitySelector.f);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 9ae372d7d0..9aafb4616d 100644
index 9ae372d7d..9aafb4616 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -398,6 +398,9 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 5e5c5a45edec912c4df8a83027d0673f188202c6 Mon Sep 17 00:00:00 2001
From c2bf57f2035543b31164d4fd40b622a8cd1b1663 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 29 Jun 2019 02:32:40 -0500
Subject: [PATCH] Controllable Minecarts
@@ -11,10 +11,10 @@ Subject: [PATCH] Controllable Minecarts
4 files changed, 76 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index aa77bbed62..30bde05b84 100644
index ebb3d2055..44a7f2f60 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1285,6 +1285,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1286,6 +1286,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.inLava = true;
}
@@ -23,7 +23,7 @@ index aa77bbed62..30bde05b84 100644
return this.inLava;
}
diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
index 665bbe07fa..1f3e5bd288 100644
index 665bbe07f..1f3e5bd28 100644
--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
@@ -357,12 +357,50 @@ public abstract class EntityMinecartAbstract extends Entity {
@@ -78,7 +78,7 @@ index 665bbe07fa..1f3e5bd288 100644
this.setMot(new Vec3D(this.getMot().x * this.derailedX, this.getMot().y * this.derailedY, this.getMot().z * this.derailedZ));
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/ItemMinecart.java b/src/main/java/net/minecraft/server/ItemMinecart.java
index b73e317fbb..e1337a9c04 100644
index b73e317fb..e1337a9c0 100644
--- a/src/main/java/net/minecraft/server/ItemMinecart.java
+++ b/src/main/java/net/minecraft/server/ItemMinecart.java
@@ -103,8 +103,10 @@ public class ItemMinecart extends Item {
@@ -103,7 +103,7 @@ index b73e317fbb..e1337a9c04 100644
}
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 08cef8e645..086bd505cb 100644
index 08cef8e64..086bd505c 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -1,10 +1,16 @@

View File

@@ -1,4 +1,4 @@
From e0eb783eee593cb57e849a4172c487bb1139bf03 Mon Sep 17 00:00:00 2001
From 2b8669bfb0b78ce0cd452493fa5a1692735352e2 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 8 Aug 2019 15:29:15 -0500
Subject: [PATCH] Implement AFK API
@@ -18,10 +18,10 @@ Subject: [PATCH] Implement AFK API
11 files changed, 112 insertions(+), 25 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 30bde05b8..b6715862e 100644
index 44a7f2f60..819054106 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1377,6 +1377,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1378,6 +1378,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return MathHelper.c(f * f + f1 * f1 + f2 * f2);
}
@@ -276,10 +276,10 @@ index 60f62f19c..fa9fc940a 100644
+ // Purpur end
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 6e165a164..da5fef091 100644
index ecafbaa6b..cdd2f3ba2 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -137,6 +137,7 @@ public class ActivationRange
@@ -143,6 +143,7 @@ public class ActivationRange
{
player.activatedTick = MinecraftServer.currentTick;

View File

@@ -1,4 +1,4 @@
From 866d7a30d48d63cac43188f8b29f8719bb99d1d5 Mon Sep 17 00:00:00 2001
From fccd15c95e2e0e836a9b3520c728d9017c1e7df0 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 11 Jan 2020 23:12:52 -0600
Subject: [PATCH] Add EntityPortalReadyEvent
@@ -86,7 +86,7 @@ index 09c7c1318..6880cdd7f 100644
break;
// CraftBukkit start - add the block to our list
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index b6715862e..c0750a632 100644
index 819054106..39d84296f 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -168,9 +168,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -102,7 +102,7 @@ index b6715862e..c0750a632 100644
private boolean invulnerable;
protected UUID uniqueID;
protected String am;
@@ -2218,6 +2218,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2219,6 +2219,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.world.getMethodProfiler().enter("portal");
this.ag = i;
this.portalCooldown = this.ba();

View File

@@ -1,4 +1,4 @@
From 851975d35eac271f0640df0694048bbfbb8480cb Mon Sep 17 00:00:00 2001
From 171bfb411b7bef7d0f541501f8f68edab276c0bb Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 21 Jul 2019 18:06:20 -0500
Subject: [PATCH] Climbing should not bypass cramming gamerule
@@ -17,10 +17,10 @@ Subject: [PATCH] Climbing should not bypass cramming gamerule
10 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index c0750a632..e2df2adec 100644
index 39d84296f..b1bae6a1a 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1512,6 +1512,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1513,6 +1513,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
public boolean isCollidable() {
@@ -86,7 +86,7 @@ index e7ba83f32..55e18e4c7 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index e85a7526a..9f2b10073 100644
index a6af6695f..f78c6787e 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2673,7 +2673,7 @@ public abstract class EntityLiving extends Entity {

View File

@@ -1,4 +1,4 @@
From ac2c51e1f15d83d10f17e6601439a147b21ffe37 Mon Sep 17 00:00:00 2001
From 7193c81c229027af648a966bacd0417dc092a88c Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 18 Feb 2020 20:07:08 -0600
Subject: [PATCH] Add option to disable saving projectiles to disk
@@ -34,10 +34,10 @@ index 4349d22cc..eeff76ff4 100644
// Paper start
if ((int) Math.floor(entity.locX()) >> 4 != chunk.getPos().x || (int) Math.floor(entity.locZ()) >> 4 != chunk.getPos().z) {
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index e2df2adec..babd323f9 100644
index b1bae6a1a..e49881583 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1529,6 +1529,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1530,6 +1530,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}

View File

@@ -1,4 +1,4 @@
From 632418b1f33232fe52bc052977774609a65cf10e Mon Sep 17 00:00:00 2001
From de0240ce96479fdf0f668694f99c536a68177985 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 22 Feb 2020 15:54:08 -0600
Subject: [PATCH] Add item entity options
@@ -10,10 +10,10 @@ Subject: [PATCH] Add item entity options
3 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index d9fd5af425..e41b36ddcd 100644
index e49881583..2f1652005 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1260,6 +1260,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1261,6 +1261,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
@@ -22,7 +22,7 @@ index d9fd5af425..e41b36ddcd 100644
return this.a(tag, false);
}
diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
index bbb9ca1efc..262a7935e7 100644
index bbb9ca1ef..262a7935e 100644
--- a/src/main/java/net/minecraft/server/EntityItem.java
+++ b/src/main/java/net/minecraft/server/EntityItem.java
@@ -71,7 +71,7 @@ public class EntityItem extends Entity {
@@ -56,7 +56,7 @@ index bbb9ca1efc..262a7935e7 100644
if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, damagesource, f)) {
return false;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 865c73f388..24d9c699ac 100644
index 865c73f38..24d9c699a 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -5,6 +5,8 @@ import net.minecraft.server.Block;

View File

@@ -1,4 +1,4 @@
From b83378602c40947122087a3fbbb4cd3ed2b80790 Mon Sep 17 00:00:00 2001
From d1f04238a8f31d59b7ca1617200af06b47e23271 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 27 Feb 2020 21:42:19 -0600
Subject: [PATCH] Configurable void damage height
@@ -9,10 +9,10 @@ Subject: [PATCH] Configurable void damage height
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index e41b36ddcd..f9c0af5319 100644
index 2f1652005..0d47ca549 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -451,7 +451,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -452,7 +452,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
// Paper start
protected void performVoidDamage() {
@@ -22,7 +22,7 @@ index e41b36ddcd..f9c0af5319 100644
&& this.locY >= world.paperConfig.netherVoidTopDamageHeight)) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 24d9c699ac..08980a797b 100644
index 24d9c699a..08980a797 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -198,6 +198,7 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 5e2fd5f6fa0e2b735e60d5f36175ac371e7e68d5 Mon Sep 17 00:00:00 2001
From f8dadd1fd11472e6be5ed6d5f6dc1115a7adafd7 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 6 Mar 2020 13:37:26 -0600
Subject: [PATCH] Fix the dead lagging the server
@@ -9,10 +9,10 @@ Subject: [PATCH] Fix the dead lagging the server
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index f9c0af5319..2b4504c9ba 100644
index 0d47ca549..a26865601 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1346,7 +1346,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1347,7 +1347,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.pitch = MathHelper.a(f1, -90.0F, 90.0F) % 360.0F;
this.lastYaw = this.yaw;
this.lastPitch = this.pitch;
@@ -22,15 +22,15 @@ index f9c0af5319..2b4504c9ba 100644
public void setPositionRotation(BlockPosition blockposition, float f, float f1) {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 0405393f32..2769077bb4 100644
index b4d1ab191..f3aef6d13 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2385,7 +2385,7 @@ public abstract class EntityLiving extends Entity {
}
}
- this.movementTick();
+ if (!dead) this.movementTick(); // Purpur
- if (!this.isTemporarilyActive) this.movementTick(); // Paper - don't move if only temporarily active
+ if (!dead && !this.isTemporarilyActive) this.movementTick(); // Paper - don't move if only temporarily active // Purpur
double d0 = this.locX() - this.lastX;
double d1 = this.locZ() - this.lastZ;
float f = (float) (d0 * d0 + d1 * d1);

View File

@@ -1,4 +1,4 @@
From 1c4eae87ff8a5419afb945a8a76179a8700bb6c8 Mon Sep 17 00:00:00 2001
From 6cade3e0482093105b9c690bb34594d3a991ed74 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sun, 8 Mar 2020 20:54:44 -0500
Subject: [PATCH] Add flying mobs to entity activation range settings
@@ -9,27 +9,20 @@ Subject: [PATCH] Add flying mobs to entity activation range settings
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index da5fef091a..63b866924e 100644
index cdd2f3ba2..8864a59f7 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -8,6 +8,8 @@ import net.minecraft.server.Entity;
@@ -10,6 +10,9 @@ import net.minecraft.server.Entity;
import net.minecraft.server.EntityAmbient;
import net.minecraft.server.EntityAnimal;
import net.minecraft.server.EntityArrow;
+import net.minecraft.server.EntityBat; // Purpur
+import net.minecraft.server.EntityBird; // Purpur
+import net.minecraft.server.EntityBlaze; // Purpur
import net.minecraft.server.EntityComplexPart;
import net.minecraft.server.EntityCreature;
import net.minecraft.server.EntityCreeper;
@@ -16,6 +18,7 @@ import net.minecraft.server.EntityEnderDragon;
import net.minecraft.server.EntityFallingBlock; // Paper
import net.minecraft.server.EntityFireball;
import net.minecraft.server.EntityFireworks;
+import net.minecraft.server.EntityFlying; // Purpur
import net.minecraft.server.EntityHuman;
import net.minecraft.server.EntityLightning;
import net.minecraft.server.EntityLiving;
@@ -27,6 +30,7 @@ import net.minecraft.server.EntitySlice;
@@ -31,6 +34,7 @@ import net.minecraft.server.EntitySlice;
import net.minecraft.server.EntitySlime;
import net.minecraft.server.EntityTNTPrimed;
import net.minecraft.server.EntityThrownTrident;
@@ -37,7 +30,7 @@ index da5fef091a..63b866924e 100644
import net.minecraft.server.EntityVillager;
import net.minecraft.server.EntityWither;
import net.minecraft.server.MathHelper;
@@ -44,6 +48,7 @@ public class ActivationRange
@@ -49,6 +53,7 @@ public class ActivationRange
public enum ActivationType
{
@@ -45,7 +38,7 @@ index da5fef091a..63b866924e 100644
WATER, // Paper
MONSTER,
ANIMAL,
@@ -64,6 +69,7 @@ public class ActivationRange
@@ -69,6 +74,7 @@ public class ActivationRange
*/
public static ActivationType initializeEntityActivationType(Entity entity)
{
@@ -53,15 +46,15 @@ index da5fef091a..63b866924e 100644
if (entity instanceof EntityWaterAnimal) { return ActivationType.WATER; } // Paper
if ( entity instanceof EntityRaider )
{
@@ -127,6 +133,7 @@ public class ActivationRange
@@ -132,6 +138,7 @@ public class ActivationRange
final int animalActivationRange = world.spigotConfig.animalActivationRange;
final int monsterActivationRange = world.spigotConfig.monsterActivationRange;
final int waterActivationRange = world.spigotConfig.waterActivationRange; // Paper
+ final int flyingActivationRange = world.spigotConfig.flyingActivationRange; // Purpur
final ChunkProviderServer chunkProvider = (ChunkProviderServer) world.getChunkProvider(); // Paper
int maxRange = Math.max( monsterActivationRange, animalActivationRange );
maxRange = Math.max( maxRange, raiderActivationRange );
@@ -144,6 +151,7 @@ public class ActivationRange
@@ -150,6 +157,7 @@ public class ActivationRange
ActivationType.ANIMAL.boundingBox = player.getBoundingBox().grow( animalActivationRange, 256, animalActivationRange );
ActivationType.MONSTER.boundingBox = player.getBoundingBox().grow( monsterActivationRange, 256, monsterActivationRange );
ActivationType.WATER.boundingBox = player.getBoundingBox().grow( waterActivationRange, 256, waterActivationRange ); // Paper
@@ -69,28 +62,28 @@ index da5fef091a..63b866924e 100644
int i = MathHelper.floor( maxBB.minX / 16.0D );
@@ -209,7 +217,7 @@ public class ActivationRange
@@ -211,7 +219,7 @@ public class ActivationRange
}
if ( !( entity instanceof EntityArrow ) )
{
- if ( !entity.onGround || !entity.passengers.isEmpty() || entity.isPassenger() )
+ if ( (!entity.onGround && !isFlyingMob(entity)) || !entity.passengers.isEmpty() || entity.isPassenger() ) // Purpur
- if ( (!entity.onGround && !(entity instanceof EntityFlying)) || !entity.passengers.isEmpty() || entity.isPassenger() ) // Paper
+ if ( (!entity.onGround && !isFlyingMob(entity)) || !entity.passengers.isEmpty() || entity.isPassenger() ) // Paper // Purpur
{
return true;
return 10; // Paper
}
@@ -297,4 +305,10 @@ public class ActivationRange
@@ -310,4 +318,10 @@ public class ActivationRange
}
return isActive;
}
+
+ // Purpur start
+ public static boolean isFlyingMob(Entity entity) {
+ return entity instanceof EntityAmbient || entity instanceof EntityBird || entity instanceof EntityFlying || entity instanceof EntityBlaze || entity instanceof EntityVex;
+ return entity instanceof EntityBat || entity instanceof EntityBird || entity instanceof EntityFlying || entity instanceof EntityBlaze || entity instanceof EntityVex;
+ }
+ // Purpur end
}
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
index 3ceeed3f99..9a3f566a93 100644
index 3ceeed3f9..9a3f566a9 100644
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
@@ -181,6 +181,7 @@ public class SpigotWorldConfig