Updated Upstream (Paper)

Upstream has released updates that appears to apply and compile correctly

Paper Changes:
d6eda567 Provide a useful PluginClassLoader#toString
a3fdafbd Restore Serialization Improvements again, wasn't an issue.
0e441c79 Revert "Improve Chat Component Legacy Serialization more"
53ef67b8 Improve Chat Component Legacy Serialization more
afc1fcfc Fix serialization of colors from components
eaa76a31 Add Villager Tasks to EAR inactive tick to keep behavior
357b52fd Improve Chunk Prioritization / Load Order
a76bc402 Improve Chunk Status Transition Speed
7a2b345b Synchronize DataPaletteBlock instead of ReentrantLock
This commit is contained in:
William Blake Galbreath
2020-05-31 18:20:17 -05:00
parent a032d548bf
commit c2c6a6efd9
13 changed files with 160 additions and 160 deletions

2
Paper

Submodule Paper updated: a8ef0a93b9...d6eda567ff

View File

@@ -1 +1 @@
1.15.2--f3c7076de22e62cc37044558163e341613072819
1.15.2--625ee23d39fa324caa05ebe166b95257153f4d5b

View File

@@ -1,4 +1,4 @@
From 2eebb2917735c5dbb2fee924861f3da007d84acf Mon Sep 17 00:00:00 2001
From 16fd129dea27af5866c4ff2281febb202873f9ac Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 26 Mar 2020 13:17:09 -0500
Subject: [PATCH] Add language asset purpur.lang
@@ -12,10 +12,10 @@ Subject: [PATCH] Add language asset purpur.lang
create mode 100644 src/main/resources/purpur.lang
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index d60f659b3..4b88a74ff 100644
index c88177b776..8c60e565ec 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1561,6 +1561,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1570,6 +1570,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
public void a(IChatBaseComponent ichatbasecomponent, ChatMessageType chatmessagetype) {
@@ -24,7 +24,7 @@ index d60f659b3..4b88a74ff 100644
if (!future.isSuccess() && (chatmessagetype == ChatMessageType.GAME_INFO || chatmessagetype == ChatMessageType.SYSTEM)) {
boolean flag = true;
diff --git a/src/main/java/net/minecraft/server/LocaleLanguage.java b/src/main/java/net/minecraft/server/LocaleLanguage.java
index 601273933..75707adcd 100644
index 6012739331..75707adcd7 100644
--- a/src/main/java/net/minecraft/server/LocaleLanguage.java
+++ b/src/main/java/net/minecraft/server/LocaleLanguage.java
@@ -15,18 +15,41 @@ import java.util.Map.Entry;
@@ -104,7 +104,7 @@ index 601273933..75707adcd 100644
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/command/PurpurCommand.java b/src/main/java/net/pl3x/purpur/command/PurpurCommand.java
index 7d983d9a5..36260e0ec 100644
index 7d983d9a54..36260e0ec8 100644
--- a/src/main/java/net/pl3x/purpur/command/PurpurCommand.java
+++ b/src/main/java/net/pl3x/purpur/command/PurpurCommand.java
@@ -1,5 +1,6 @@
@@ -125,7 +125,7 @@ index 7d983d9a5..36260e0ec 100644
for (WorldServer world : console.getWorlds()) {
diff --git a/src/main/resources/purpur.lang b/src/main/resources/purpur.lang
new file mode 100644
index 000000000..0967ef424
index 0000000000..0967ef424b
--- /dev/null
+++ b/src/main/resources/purpur.lang
@@ -0,0 +1 @@

View File

@@ -1,4 +1,4 @@
From f5c5f87d9228f604fb30397a473cd410001f3fce Mon Sep 17 00:00:00 2001
From 89312840b1523b425c3bd27c34bd0793db68eefc 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
@@ -116,7 +116,7 @@ Subject: [PATCH] Ridables
create mode 100644 src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java
diff --git a/src/main/java/net/minecraft/server/AxisAlignedBB.java b/src/main/java/net/minecraft/server/AxisAlignedBB.java
index 1a466e929..203c8fe8c 100644
index 1a466e9295..203c8fe8c0 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 {
@@ -136,7 +136,7 @@ index 1a466e929..203c8fe8c 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 1d9ba04da..2bade947e 100644
index 1d9ba04daa..2bade947ee 100644
--- a/src/main/java/net/minecraft/server/ControllerLookDolphin.java
+++ b/src/main/java/net/minecraft/server/ControllerLookDolphin.java
@@ -1,6 +1,6 @@
@@ -157,7 +157,7 @@ index 1d9ba04da..2bade947e 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 a5c4cbb67..efe6afde9 100644
index a5c4cbb67f..efe6afde9b 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 {
@@ -174,7 +174,7 @@ index a5c4cbb67..efe6afde9 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 816d301f1..f7344d3ae 100644
index 816d301f1c..f7344d3aec 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 {
@@ -199,7 +199,7 @@ index 816d301f1..f7344d3ae 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 e0ab058bf..1ef13ee78 100644
index e0ab058bf9..1ef13ee78e 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -79,7 +79,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -362,7 +362,7 @@ index e0ab058bf..1ef13ee78 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityAgeable.java b/src/main/java/net/minecraft/server/EntityAgeable.java
index 3d27f0964..822316a65 100644
index 3d27f0964a..822316a65f 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 {
@@ -375,7 +375,7 @@ index 3d27f0964..822316a65 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
index 34239160b..592408bac 100644
index 34239160be..592408bac9 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 {
@@ -466,7 +466,7 @@ index 34239160b..592408bac 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityBee.java b/src/main/java/net/minecraft/server/EntityBee.java
index dd1d246ae..f0f83baac 100644
index dd1d246aeb..f0f83baac8 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 {
@@ -647,7 +647,7 @@ index dd1d246ae..f0f83baac 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityBlaze.java b/src/main/java/net/minecraft/server/EntityBlaze.java
index da6a3fa2c..d02130e0d 100644
index da6a3fa2c8..d02130e0d1 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 {
@@ -737,7 +737,7 @@ index da6a3fa2c..d02130e0d 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 b3bdc194a..8b9222d77 100644
index b3bdc194ab..8b9222d778 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 {
@@ -831,7 +831,7 @@ index b3bdc194a..8b9222d77 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityCaveSpider.java b/src/main/java/net/minecraft/server/EntityCaveSpider.java
index 23ced2c7b..5b86b36f6 100644
index 23ced2c7bb..5b86b36f6a 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 {
@@ -859,7 +859,7 @@ index 23ced2c7b..5b86b36f6 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 65795fc89..5505b7ee9 100644
index 65795fc896..5505b7ee94 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 {
@@ -899,7 +899,7 @@ index 65795fc89..5505b7ee9 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 1e3782122..0153a821e 100644
index 1e3782122a..0153a821ee 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 {
@@ -927,7 +927,7 @@ index 1e3782122..0153a821e 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 a0b35c869..144e89f22 100644
index a0b35c8699..144e89f224 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 {
@@ -943,7 +943,7 @@ index a0b35c869..144e89f22 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
index 2c8bbf20a..723a9fa1e 100644
index 2c8bbf20ae..723a9fa1ee 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 {
@@ -975,7 +975,7 @@ index 2c8bbf20a..723a9fa1e 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 45dfc8104..48fd8e716 100644
index 45dfc8104a..48fd8e716b 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 {
@@ -1091,7 +1091,7 @@ index 45dfc8104..48fd8e716 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java
index ce78586ea..81570b37b 100644
index ce78586ea0..81570b37bb 100644
--- a/src/main/java/net/minecraft/server/EntityDolphin.java
+++ b/src/main/java/net/minecraft/server/EntityDolphin.java
@@ -1,5 +1,12 @@
@@ -1242,7 +1242,7 @@ index ce78586ea..81570b37b 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 77885f67f..63f5969b1 100644
index 77885f67ff..63f5969b10 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 {
@@ -1305,7 +1305,7 @@ index 77885f67f..63f5969b1 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index aecdaacfc..ab1747198 100644
index aecdaacfc7..ab1747198a 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 {
@@ -1462,7 +1462,7 @@ index aecdaacfc..ab1747198 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index 212636dcb..de30ce483 100644
index 212636dcb2..de30ce483f 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 {
@@ -1561,7 +1561,7 @@ index 212636dcb..de30ce483 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 e4bd2796a..5eaf1920b 100644
index e4bd2796a4..5eaf1920b2 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 {
@@ -1598,7 +1598,7 @@ index e4bd2796a..5eaf1920b 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 b030fe957..179a26129 100644
index b030fe9577..179a261296 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 {
@@ -1663,7 +1663,7 @@ index b030fe957..179a26129 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java
index b853fd0d9..b8d786fad 100644
index b853fd0d9b..b8d786fad5 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 {
@@ -1717,7 +1717,7 @@ index b853fd0d9..b8d786fad 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 82a32d5db..4f53090d3 100644
index 82a32d5dbf..4f53090d3d 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 {
@@ -1855,7 +1855,7 @@ index 82a32d5db..4f53090d3 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityGhast.java b/src/main/java/net/minecraft/server/EntityGhast.java
index e1c2540d1..46841df71 100644
index e1c2540d14..46841df718 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 {
@@ -1938,7 +1938,7 @@ index e1c2540d1..46841df71 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 d9e5eaad1..ff8a41a53 100644
index d9e5eaad12..ff8a41a539 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 {
@@ -1976,7 +1976,7 @@ index d9e5eaad1..ff8a41a53 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 e69cb334f..97040872b 100644
index e69cb334fb..97040872bc 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 {
@@ -2077,7 +2077,7 @@ index e69cb334f..97040872b 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 7484bfeea..f231340d9 100644
index 7484bfeea0..f231340d90 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 {
@@ -2105,7 +2105,7 @@ index 7484bfeea..f231340d9 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 a6fb4ba5b..98b1e9375 100644
index a6fb4ba5b9..98b1e93759 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 {
@@ -2123,7 +2123,7 @@ index a6fb4ba5b..98b1e9375 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 c56efe035..f31cb0554 100644
index c56efe035a..f31cb05542 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -38,12 +38,32 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -2169,7 +2169,7 @@ index c56efe035..f31cb0554 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityHorseDonkey.java b/src/main/java/net/minecraft/server/EntityHorseDonkey.java
index 9a52decdc..64d80081f 100644
index 9a52decdca..64d80081f7 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 {
@@ -2187,7 +2187,7 @@ index 9a52decdc..64d80081f 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 4dd4d91eb..a9f26efe6 100644
index 4dd4d91eba..a9f26efe66 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 {
@@ -2205,7 +2205,7 @@ index 4dd4d91eb..a9f26efe6 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 290cb9337..7bf76e5a0 100644
index 290cb9337c..7bf76e5a0b 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 {
@@ -2246,7 +2246,7 @@ index 290cb9337..7bf76e5a0 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityHorseZombie.java b/src/main/java/net/minecraft/server/EntityHorseZombie.java
index 5782a25ec..c87fc523f 100644
index 5782a25ecd..c87fc523f1 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 {
@@ -2276,7 +2276,7 @@ index 5782a25ec..c87fc523f 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 7df24be46..27cfc6654 100644
index 7df24be46e..27cfc6654e 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 {
@@ -2303,7 +2303,7 @@ index 7df24be46..27cfc6654 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 81b7cd06f..3e6722cfc 100644
index 81b7cd06f2..3e6722cfce 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
@@ -2344,7 +2344,7 @@ index 81b7cd06f..3e6722cfc 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 5aca7a913..cbbbc875b 100644
index 5aca7a9131..cbbbc875be 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 {
@@ -2436,7 +2436,7 @@ index 5aca7a913..cbbbc875b 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java
index 7f6a56776..288a043fb 100644
index 7f6a567760..288a043fbd 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 {
@@ -2491,7 +2491,7 @@ index 7f6a56776..288a043fb 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 3fc2360a1..58aa2a9a3 100644
index 3fc2360a10..58aa2a9a3e 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 {
@@ -2564,7 +2564,7 @@ index 3fc2360a1..58aa2a9a3 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index 193dbfc5f..c5f87cbdd 100644
index 193dbfc5f6..c5f87cbdd2 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -16,7 +16,46 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -2654,7 +2654,7 @@ index 193dbfc5f..c5f87cbdd 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 4cebd67e8..08c4ca3f3 100644
index 4cebd67e85..08c4ca3f36 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 {
@@ -2695,7 +2695,7 @@ index 4cebd67e8..08c4ca3f3 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 1fdc248ba..a5a36af21 100644
index 1fdc248ba8..a5a36af217 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 {
@@ -2723,7 +2723,7 @@ index 1fdc248ba..a5a36af21 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 8b199971b..53bc31287 100644
index 8b199971bd..53bc312870 100644
--- a/src/main/java/net/minecraft/server/EntityMushroomCow.java
+++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java
@@ -19,6 +19,23 @@ public class EntityMushroomCow extends EntityCow {
@@ -2751,7 +2751,7 @@ index 8b199971b..53bc31287 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 d9a7b8ac1..8fdf34857 100644
index d9a7b8ac1e..8fdf348573 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 {
@@ -2794,7 +2794,7 @@ index d9a7b8ac1..8fdf34857 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 f50ed1908..87ed9a8ca 100644
index f50ed19080..87ed9a8ca0 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 {
@@ -2940,7 +2940,7 @@ index f50ed1908..87ed9a8ca 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
index 94e57a2d8..7ba2f3a35 100644
index 94e57a2d85..7ba2f3a351 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 {
@@ -3041,7 +3041,7 @@ index 94e57a2d8..7ba2f3a35 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 96b4912c4..777bc95ee 100644
index 96b4912c48..777bc95eef 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 {
@@ -3228,7 +3228,7 @@ index 96b4912c4..777bc95ee 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 8d277566e..e6a7f8ef3 100644
index 8d277566e9..e6a7f8ef37 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 {
@@ -3299,7 +3299,7 @@ index 8d277566e..e6a7f8ef3 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java
index 9dd028b55..fb9ef88ea 100644
index 9dd028b558..fb9ef88ea3 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 {
@@ -3327,7 +3327,7 @@ index 9dd028b55..fb9ef88ea 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 0357c9da9..98a657cec 100644
index 0357c9da93..98a657cece 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,
@@ -3366,10 +3366,10 @@ index 0357c9da9..98a657cec 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 4b88a74ff..3970576cf 100644
index 8c60e565ec..dbdef3ad96 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1292,6 +1292,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1301,6 +1301,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
public void a(float f, float f1, boolean flag, boolean flag1) {
@@ -3377,7 +3377,7 @@ index 4b88a74ff..3970576cf 100644
if (this.isPassenger()) {
if (f >= -1.0F && f <= 1.0F) {
this.aZ = f;
@@ -1304,7 +1305,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1313,7 +1314,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
this.jumping = flag;
this.setSneaking(flag1);
}
@@ -3386,7 +3386,7 @@ index 4b88a74ff..3970576cf 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java
index f8e29a02d..0a3906bde 100644
index f8e29a02d3..0a3906bde0 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 {
@@ -3478,7 +3478,7 @@ index f8e29a02d..0a3906bde 100644
public d() {
diff --git a/src/main/java/net/minecraft/server/EntityPufferFish.java b/src/main/java/net/minecraft/server/EntityPufferFish.java
index 98af9a223..d0e3e251e 100644
index 98af9a2235..d0e3e251e1 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 {
@@ -3515,7 +3515,7 @@ index 98af9a223..d0e3e251e 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java
index 2ed2d0b6b..9040ab1c5 100644
index 2ed2d0b6bb..9040ab1c54 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 {
@@ -3670,7 +3670,7 @@ index 2ed2d0b6b..9040ab1c5 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 fd25ce102..98d182a4c 100644
index fd25ce1026..98d182a4ce 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 {
@@ -3708,7 +3708,7 @@ index fd25ce102..98d182a4c 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 6be29f307..189515b0f 100644
index 6be29f3078..189515b0ff 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 {
@@ -3736,7 +3736,7 @@ index 6be29f307..189515b0f 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 f63528ca3..43eefa46c 100644
index f63528ca3e..43eefa46c2 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 {
@@ -3769,7 +3769,7 @@ index f63528ca3..43eefa46c 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 0d2ceff6f..46379588c 100644
index 0d2ceff6f2..46379588c1 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 {
@@ -3819,7 +3819,7 @@ index 0d2ceff6f..46379588c 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 08c2a22f7..dff20567b 100644
index 08c2a22f7a..dff20567b3 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 {
@@ -3864,7 +3864,7 @@ index 08c2a22f7..dff20567b 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 0e78d5c62..8e6efeb7b 100644
index 0e78d5c62c..8e6efeb7b7 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 {
@@ -3892,7 +3892,7 @@ index 0e78d5c62..8e6efeb7b 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 3c95c0428..8bc4e8515 100644
index 3c95c0428b..8bc4e85156 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
@@ -3911,7 +3911,7 @@ index 3c95c0428..8bc4e8515 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 2eb53864f..a930fb840 100644
index 2eb53864f2..a930fb8401 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 {
@@ -3939,7 +3939,7 @@ index 2eb53864f..a930fb840 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 98e042424..8aa0a6699 100644
index 98e042424c..8aa0a6699f 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 {
@@ -3967,7 +3967,7 @@ index 98e042424..8aa0a6699 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 2efc18df9..1469e3b23 100644
index 2efc18df94..1469e3b23c 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 {
@@ -4044,7 +4044,7 @@ index 2efc18df9..1469e3b23 100644
} else {
this.h = ControllerMove.Operation.WAIT;
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index dee55c5de..65d746899 100644
index dee55c5dea..65d7468997 100644
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
@@ -13,12 +13,31 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity {
@@ -4106,7 +4106,7 @@ index dee55c5de..65d746899 100644
}
diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java
index d02db5659..d3708a7b0 100644
index d02db56595..d3708a7b0e 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 {
@@ -4144,7 +4144,7 @@ index d02db5659..d3708a7b0 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 92efe4e7f..b967135ac 100644
index 92efe4e7f5..b967135ac3 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 {
@@ -4253,7 +4253,7 @@ index 92efe4e7f..b967135ac 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityTameableAnimal.java b/src/main/java/net/minecraft/server/EntityTameableAnimal.java
index 9b2eea71c..d55c6cb33 100644
index 9b2eea71cc..d55c6cb339 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 {
@@ -4265,7 +4265,7 @@ index 9b2eea71c..d55c6cb33 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 ef8f373be..992978463 100644
index ef8f373bea..992978463d 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 {
@@ -4293,7 +4293,7 @@ index ef8f373be..992978463 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 b24a5100b..469549206 100644
index b24a5100b4..4695492068 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 {
@@ -4441,7 +4441,7 @@ index b24a5100b..469549206 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 0f04bcc8b..5a7494947 100644
index 0f04bcc8b7..5a7494947c 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> {
@@ -4458,7 +4458,7 @@ index 0f04bcc8b..5a7494947 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 cf274666c..d919f44ab 100644
index cf274666c7..d919f44ab8 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 {
@@ -4572,7 +4572,7 @@ index cf274666c..d919f44ab 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 1094324d0..ee6b133d1 100644
index 7da267d287..5b0de0d9d8 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
@@ -4605,7 +4605,7 @@ index 1094324d0..ee6b133d1 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 2ad8dba5c..4e9c5e84a 100644
index 2ad8dba5c0..4e9c5e84a9 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 {
@@ -4641,7 +4641,7 @@ index 2ad8dba5c..4e9c5e84a 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 c974c02e9..6ba920134 100644
index c974c02e92..6ba920134a 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 {
@@ -4679,7 +4679,7 @@ index c974c02e9..6ba920134 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 1432d3f6b..447387bd7 100644
index 1432d3f6bf..447387bd78 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 {
@@ -4722,7 +4722,7 @@ index 1432d3f6b..447387bd7 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 2f466af4d..8c1fa3717 100644
index 2f466af4d5..8c1fa37178 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 {
@@ -4855,7 +4855,7 @@ index 2f466af4d..8c1fa3717 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java
index eec1e26b6..47f0b2df6 100644
index eec1e26b6e..47f0b2df6c 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 {
@@ -5029,7 +5029,7 @@ index eec1e26b6..47f0b2df6 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 07ebc1d81..8d1f04415 100644
index 07ebc1d816..8d1f04415e 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 {
@@ -5064,7 +5064,7 @@ index 07ebc1d81..8d1f04415 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityZombieHusk.java b/src/main/java/net/minecraft/server/EntityZombieHusk.java
index da8446d05..db252ba4e 100644
index da8446d05d..db252ba4e0 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 {
@@ -5092,7 +5092,7 @@ index da8446d05..db252ba4e 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 8082fa617..ebbfcb75a 100644
index 8082fa617a..ebbfcb75a4 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
@@ -5120,7 +5120,7 @@ index 8082fa617..ebbfcb75a 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 b35fe21a6..5b0f35c73 100644
index b35fe21a6d..5b0f35c730 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 {
@@ -5132,7 +5132,7 @@ index b35fe21a6..5b0f35c73 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 da49f6e5a..7b5d60264 100644
index da49f6e5ae..7b5d602649 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 {
@@ -5144,7 +5144,7 @@ index da49f6e5a..7b5d60264 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 c4aa38ddf..3d52a396e 100644
index c4aa38ddf1..3d52a396e6 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 {
@@ -5164,7 +5164,7 @@ index c4aa38ddf..3d52a396e 100644
return f1 + f * (f2 - f1);
}
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSwell.java b/src/main/java/net/minecraft/server/PathfinderGoalSwell.java
index e07c7674a..3c077b687 100644
index e07c7674a5..3c077b6870 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;
@@ -5187,7 +5187,7 @@ index e07c7674a..3c077b687 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 1b796ba5b..7dbe3500e 100644
index 1b796ba5b3..7dbe3500e9 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 {
@@ -5199,7 +5199,7 @@ index 1b796ba5b..7dbe3500e 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 0c7f094e5..62a081006 100644
index 0c7f094e54..62a0810062 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 {
@@ -5227,7 +5227,7 @@ index 0c7f094e5..62a081006 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 6ada23918..c3a862fea 100644
index 6ada239185..c3a862fea0 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -995,6 +995,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -5250,7 +5250,7 @@ index 6ada23918..c3a862fea 100644
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index eda37fa43..69f99a993 100644
index eda37fa43f..69f99a993d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -64,4 +64,603 @@ public class PurpurWorldConfig {
@@ -5859,7 +5859,7 @@ index eda37fa43..69f99a993 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 000000000..828e1b873
index 0000000000..828e1b8730
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
@@ -0,0 +1,75 @@
@@ -5940,7 +5940,7 @@ index 000000000..828e1b873
+}
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..0a5d6d46c
index 0000000000..0a5d6d46c2
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
@@ -0,0 +1,86 @@
@@ -6032,7 +6032,7 @@ index 000000000..0a5d6d46c
+}
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..349125070
index 0000000000..3491250704
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
@@ -0,0 +1,53 @@
@@ -6091,7 +6091,7 @@ index 000000000..349125070
+}
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 @@
@@ -6158,7 +6158,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..e75e58067
index 0000000000..e75e580670
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java
@@ -0,0 +1,43 @@
@@ -6207,7 +6207,7 @@ index 000000000..e75e58067
+}
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..7189cc569
index 0000000000..7189cc569f
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java
@@ -0,0 +1,119 @@
@@ -6332,7 +6332,7 @@ index 000000000..7189cc569
+}
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..f9e680efd
index 0000000000..f9e680efd2
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java
@@ -0,0 +1,126 @@
@@ -6464,7 +6464,7 @@ index 000000000..f9e680efd
+}
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..6e50344c0
index 0000000000..6e50344c07
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
@@ -0,0 +1,21 @@
@@ -6491,7 +6491,7 @@ index 000000000..6e50344c0
+}
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..9bb9da22a
index 0000000000..9bb9da22aa
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java
@@ -0,0 +1,21 @@
@@ -6517,7 +6517,7 @@ index 000000000..9bb9da22a
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index ff60568ce..ef64cfade 100644
index ff60568ce4..ef64cfadec 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1059,4 +1059,31 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -6553,7 +6553,7 @@ index ff60568ce..ef64cfade 100644
+ // Purpur end
}
diff --git a/src/main/resources/purpur.lang b/src/main/resources/purpur.lang
index 0967ef424..7125c0477 100644
index 0967ef424b..7125c0477e 100644
--- a/src/main/resources/purpur.lang
+++ b/src/main/resources/purpur.lang
@@ -1 +1,3 @@

View File

@@ -1,4 +1,4 @@
From 8befdaeb526895946d1ac88ac55dada3011d2317 Mon Sep 17 00:00:00 2001
From 12574726d188132c0693a180083ff7b7370b46b8 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 6 Jun 2019 17:40:30 -0500
Subject: [PATCH] Signs allow color codes
@@ -11,10 +11,10 @@ Subject: [PATCH] Signs allow color codes
4 files changed, 25 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 3970576cf..b66f9cd2c 100644
index dbdef3ad96..f0603a575c 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1132,6 +1132,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1141,6 +1141,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public void openSign(TileEntitySign tileentitysign) {
tileentitysign.a((EntityHuman) this);
@@ -23,7 +23,7 @@ index 3970576cf..b66f9cd2c 100644
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index b25b3b481..ee961bc05 100644
index b25b3b4816..ee961bc05c 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2622,6 +2622,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -42,7 +42,7 @@ index b25b3b481..ee961bc05 100644
}
SignChangeEvent event = new SignChangeEvent((org.bukkit.craftbukkit.block.CraftBlock) player.getWorld().getBlockAt(x, y, z), this.server.getPlayer(this.player), lines);
diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java
index 099d98e04..19d76c8cc 100644
index 099d98e04c..19d76c8cce 100644
--- a/src/main/java/net/minecraft/server/TileEntitySign.java
+++ b/src/main/java/net/minecraft/server/TileEntitySign.java
@@ -89,6 +89,20 @@ public class TileEntitySign extends TileEntity implements ICommandListener { //
@@ -67,7 +67,7 @@ index 099d98e04..19d76c8cc 100644
@Override
public PacketPlayOutTileEntityData getUpdatePacket() {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index f8992136a..94744c78b 100644
index f8992136a7..94744c78ba 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -76,8 +76,10 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From daea9aea4038129c2b8b41593497c2da341f0c43 Mon Sep 17 00:00:00 2001
From 8cc701ec2d23eb18135b0914ba8c46d8051444c4 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
@@ -50,10 +50,10 @@ index 27cfc6654e..d62174e9c7 100644
super(EntityTypes.PLAYER, world);
this.bV = ItemStack.a;
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index b66f9cd2c4..0834ca328b 100644
index f0603a575c..534f08815e 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1625,8 +1625,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1634,8 +1634,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
public void resetIdleTimer() {
this.cj = SystemUtils.getMonotonicMillis();

View File

@@ -1,4 +1,4 @@
From 8ffeee36c43f81997d2494e86506bc642ff6b614 Mon Sep 17 00:00:00 2001
From 6983533f3725df31adc9fce5c7e3adc55485a42e Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 21 Jul 2019 18:01:46 -0500
Subject: [PATCH] Players should not cram to death
@@ -8,10 +8,10 @@ Subject: [PATCH] Players should not cram to death
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 0834ca328..5a64da6a3 100644
index 534f08815e..18a74607fc 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1105,7 +1105,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1114,7 +1114,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public boolean isInvulnerable(DamageSource damagesource) {

View File

@@ -1,4 +1,4 @@
From 08f168160b083510875cc5185945570fc706ada7 Mon Sep 17 00:00:00 2001
From 074446feb4df94dc7e1a086805c30953ba0e5888 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Tue, 23 Jul 2019 08:28:21 -0500
Subject: [PATCH] Implement configurable villager brain ticks
@@ -9,7 +9,7 @@ Subject: [PATCH] Implement configurable villager brain ticks
2 files changed, 10 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 3eaac031f..65cd5f53c 100644
index 5b0de0d9d8..843f22260b 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -53,6 +53,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -28,19 +28,19 @@ index 3eaac031f..65cd5f53c 100644
}
// Purpur start
@@ -167,6 +169,10 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@Override
protected void mobTick() {
@@ -180,6 +182,10 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
protected void mobTick(boolean inactive) {
// Paper end
this.world.getMethodProfiler().enter("brain");
+ // Purpur start
+ boolean tick = (world.getTime() + brainTickOffset) % world.purpurConfig.villagerBrainTicks == 0;
+ if (((WorldServer) world).getMinecraftServer().lagging ? tick : world.purpurConfig.villagerUseBrainTicksOnlyWhenLagging || tick)
+ // Purpur end
this.getBehaviorController().a((WorldServer) this.world, this); // CraftBukkit - decompile error
if (!inactive) this.getBehaviorController().a((WorldServer) this.world, this); // CraftBukkit - decompile error // Paper
this.world.getMethodProfiler().exit();
if (!this.et() && this.bB > 0) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 9c60855d6..f1ed653b3 100644
index 9c60855d66..f1ed653b3a 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -737,10 +737,14 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 40d9faf97a0bfc0e2b4a0fdba3f4018a5787663f Mon Sep 17 00:00:00 2001
From f6990233d70e6ac2e007d5428f08015f30dee685 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Mon, 7 Oct 2019 00:15:37 -0500
Subject: [PATCH] Add API for Villager#resetOffers()
@@ -9,10 +9,10 @@ Subject: [PATCH] Add API for Villager#resetOffers()
2 files changed, 15 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityVillagerAbstract.java b/src/main/java/net/minecraft/server/EntityVillagerAbstract.java
index 9b75c67c7..ddd19aa2f 100644
index 4635285320..5fbd13512f 100644
--- a/src/main/java/net/minecraft/server/EntityVillagerAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityVillagerAbstract.java
@@ -82,6 +82,13 @@ public abstract class EntityVillagerAbstract extends EntityAgeable implements NP
@@ -84,6 +84,13 @@ public abstract class EntityVillagerAbstract extends EntityAgeable implements NP
return this.tradingPlayer != null;
}
@@ -26,7 +26,7 @@ index 9b75c67c7..ddd19aa2f 100644
@Override
public MerchantRecipeList getOffers() {
if (this.trades == null) {
@@ -223,6 +230,7 @@ public abstract class EntityVillagerAbstract extends EntityAgeable implements NP
@@ -225,6 +232,7 @@ public abstract class EntityVillagerAbstract extends EntityAgeable implements NP
return this.world;
}
@@ -35,7 +35,7 @@ index 9b75c67c7..ddd19aa2f 100644
protected void a(MerchantRecipeList merchantrecipelist, VillagerTrades.IMerchantRecipeOption[] avillagertrades_imerchantrecipeoption, int i) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
index 19409c7a2..d9e19648f 100644
index 19409c7a25..d9e19648ff 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java
@@ -164,4 +164,11 @@ public class CraftVillager extends CraftAbstractVillager implements Villager {

View File

@@ -1,4 +1,4 @@
From bc95738e40b609fe775192630e50327feb046e79 Mon Sep 17 00:00:00 2001
From 14aebd18444a594133cc91ef49ff872e8134bcc4 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 3 Oct 2019 18:08:03 -0500
Subject: [PATCH] Allow leashing villagers
@@ -11,7 +11,7 @@ Subject: [PATCH] Allow leashing villagers
4 files changed, 19 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index bf9d044b0..3adc3434e 100644
index bf9d044b0b..3adc3434e1 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -1062,6 +1062,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -23,10 +23,10 @@ index bf9d044b0..3adc3434e 100644
if (CraftEventFactory.callPlayerUnleashEntityEvent(this, entityhuman).isCancelled()) {
((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutAttachEntity(this, this.getLeashHolder()));
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index d2680bb09..0abf72871 100644
index a30ac7cc0b..e3322fedd7 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -1016,4 +1016,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -1031,4 +1031,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
this.bL = restocksToday;
}
// Paper end
@@ -39,7 +39,7 @@ index d2680bb09..0abf72871 100644
+ // Purpur - end
}
diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
index 14ca5fc36..427c58907 100644
index 14ca5fc367..427c589075 100644
--- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java
+++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
@@ -283,4 +283,11 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
@@ -55,7 +55,7 @@ index 14ca5fc36..427c58907 100644
+ // Purpur - end
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index caf7f0e84..284054db4 100644
index caf7f0e84f..284054db42 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -780,6 +780,7 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 6c92ee4961a37a0a09521f8d0231b305f7efa90e Mon Sep 17 00:00:00 2001
From ca8de54be4a0841046f39331f7195585f3182389 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Mon, 22 Jul 2019 17:32:17 -0500
Subject: [PATCH] Implement configurable search radius for villagers to spawn
@@ -10,10 +10,10 @@ Subject: [PATCH] Implement configurable search radius for villagers to spawn
2 files changed, 5 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 315440b3f..fe0e646ea 100644
index e3322fedd7..2153b36a3c 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -903,6 +903,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@@ -918,6 +918,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@Nullable
private EntityIronGolem fb() {
@@ -22,7 +22,7 @@ index 315440b3f..fe0e646ea 100644
int i = 0;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 284054db4..f60c4b629 100644
index 284054db42..f60c4b6291 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -781,6 +781,8 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 4f5c6cd5333bd2f911b097d038ab0b87e0b5a166 Mon Sep 17 00:00:00 2001
From 749f0eda4c810b3a7071abfc8337322f9220c3d2 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 2 May 2020 20:55:44 -0500
Subject: [PATCH] Player invulnerabilities
@@ -12,7 +12,7 @@ Subject: [PATCH] Player invulnerabilities
5 files changed, 42 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 5a64da6a3..265bb0757 100644
index 18a74607fc..90305b61fc 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -131,6 +131,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -22,9 +22,9 @@ index 5a64da6a3..265bb0757 100644
+
+ this.invulnerableTicks = world.purpurConfig.playerSpawnInvulnerableTicks; // Purpur
}
// Yes, this doesn't match Vanilla, but it's the best we can do for now.
@@ -727,6 +729,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
// Paper start
public BlockPosition getPointInFront(double inFront) {
@@ -736,6 +738,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
@@ -37,7 +37,7 @@ index 5a64da6a3..265bb0757 100644
@Override
public boolean damageEntity(DamageSource damagesource, float f) {
if (this.isInvulnerable(damagesource)) {
@@ -734,7 +742,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -743,7 +751,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
} else {
boolean flag = this.server.m() && this.canPvP() && "fall".equals(damagesource.translationIndex);
@@ -46,7 +46,7 @@ index 5a64da6a3..265bb0757 100644
return false;
} else {
if (damagesource instanceof EntityDamageSource) {
@@ -1001,6 +1009,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1010,6 +1018,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
PlayerChangedWorldEvent changeEvent = new PlayerChangedWorldEvent(this.getBukkitEntity(), worldserver.getWorld());
this.world.getServer().getPluginManager().callEvent(changeEvent);
// CraftBukkit end
@@ -55,7 +55,7 @@ index 5a64da6a3..265bb0757 100644
return this;
}
}
@@ -1989,9 +1999,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1998,9 +2008,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public boolean isFrozen() { // Paper - protected > public
@@ -75,7 +75,7 @@ index 5a64da6a3..265bb0757 100644
public Scoreboard getScoreboard() {
return getBukkitEntity().getScoreboard().getHandle();
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index d3b4f0bea..2f047d8ec 100644
index d3b4f0beaf..2f047d8ec7 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1530,6 +1530,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -87,7 +87,7 @@ index d3b4f0bea..2f047d8ec 100644
this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus));
// Paper end
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 60f3df16e..274270c7a 100644
index 1b9d6b2ecb..f749f131f4 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -824,6 +824,8 @@ public abstract class PlayerList {
@@ -100,7 +100,7 @@ index 60f3df16e..274270c7a 100644
return entityplayer1;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index efdc176e6..81969d2dc 100644
index efdc176e64..81969d2dc9 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -209,6 +209,8 @@ public class PurpurWorldConfig {
@@ -122,7 +122,7 @@ index efdc176e6..81969d2dc 100644
playerSleepCondition = getString("gameplay-mechanics.player.sleep.condition", playerSleepCondition);
useBetterMending = getBoolean("gameplay-mechanics.use-better-mending", useBetterMending);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index c14493929..a3ffa34e0 100644
index c144939291..a3ffa34e0a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2095,5 +2095,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View File

@@ -1,4 +1,4 @@
From 0676e1e882ad34b6ea8cd6fc7455919c2d34ccc9 Mon Sep 17 00:00:00 2001
From 144050f232129d11c7b35d33d71b9a9951dab870 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Fri, 25 Oct 2019 02:11:30 -0700
Subject: [PATCH] Tuinity - Delay chunk unloads
@@ -35,7 +35,7 @@ index 55f9f4e6e7..ac21fdb4c9 100644
this.a(ChunkCoordIntPair.a, i, j, flag);
}
diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java
index 9805361e2d..3ad0177d2a 100644
index 8a319f6e60..6e7a1c3386 100644
--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java
+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java
@@ -31,7 +31,7 @@ public abstract class ChunkMapDistance {
@@ -134,7 +134,7 @@ index 9805361e2d..3ad0177d2a 100644
private static int a(ArraySetSorted<Ticket<?>> arraysetsorted) {
AsyncCatcher.catchOp("ChunkMapDistance::getHighestTicketLevel"); // Paper
return !arraysetsorted.isEmpty() ? ((Ticket) arraysetsorted.b()).b() : PlayerChunkMap.GOLDEN_TICKET + 1;
@@ -182,6 +241,11 @@ public abstract class ChunkMapDistance {
@@ -175,6 +234,11 @@ public abstract class ChunkMapDistance {
boolean removed = false; // CraftBukkit
if (arraysetsorted.remove(ticket)) {
removed = true; // CraftBukkit