Updated Upstream (Paper)

Upstream has released updates that appears to apply and compile correctly

Paper Changes:
cb15cfa4 Improve Async Login so pending connections dont get exposed
f275e9cb Optimize Hoppers - Major Boost - Got2GoFast!
0106485c Improvements to watchdog changes
65934b1f Fix build for last commit. 5am commits are great
3f436029 Don't process watchdog until server has fully started and ticked.
938bd972 Don't fire BlockFade on worldgen threads - Fixes #3208
509a828e Fix loading spawn chunks when async chunks is off
8a91bfd2 Improvements to async login
bf698865 Revert "Re-track players that dismount from other players"
82b98418 Fix some issues with async login as well another source of sync loads
aa241d2b Allow multiple callbacks to schedule for Callback Executor
a2064a41 Add PlayerAttackEntityCooldownResetEvent This event is called when processing a player's attack on an entity right before their attack strength cd is reset, there are no existing events that fire within this period of time so it was impossible to capture the players attack strength via API prior to this commit.
f48d4299 Allow sleeping players to float
eeb2f67d Fix Bed respawn deviating too far from vanilla (#3195)
68a7b9fe Move player to spawn point if spawn in unloaded world
This commit is contained in:
William Blake Galbreath
2020-04-24 08:22:02 -05:00
parent d02efdff6b
commit d085a5b222
21 changed files with 240 additions and 240 deletions

2
Paper

Submodule Paper updated: f29c7ebd84...cb15cfa4f8

View File

@@ -1 +1 @@
1.15.2--f16b96b262f8dd9d6c78384f087026a66fc0ed39
1.15.2--a7c28f72fefc928e28132ad32a50dfe316123df8

View File

@@ -1,4 +1,4 @@
From fd53dc3126e19880765279a940858612a2581dca Mon Sep 17 00:00:00 2001
From fdfa08dc4c29c6f1b999c5089b075172cd87ac00 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 4 May 2019 01:02:11 -0500
Subject: [PATCH] Rebrand
@@ -15,7 +15,7 @@ Subject: [PATCH] Rebrand
create mode 100644 src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java
diff --git a/pom.xml b/pom.xml
index 55679af926..a7ee9396a0 100644
index 55679af9..a7ee9396 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,11 +1,11 @@
@@ -94,7 +94,7 @@ index 55679af926..a7ee9396a0 100644
</configuration>
<executions>
diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
index cd6e259239..bb227bc0fb 100644
index cd6e2592..bb227bc0 100644
--- a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
+++ b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
@@ -17,7 +17,7 @@ public final class PaperConsole extends SimpleTerminalConsole {
@@ -107,10 +107,10 @@ index cd6e259239..bb227bc0fb 100644
);
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 99bc8da370..07fb62ab1e 100644
index 1086d1ca..fc5ded95 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1533,7 +1533,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1532,7 +1532,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {
@@ -121,7 +121,7 @@ index 99bc8da370..07fb62ab1e 100644
public CrashReport b(CrashReport crashreport) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java
new file mode 100644
index 0000000000..d8b408f061
index 00000000..d8b408f0
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/PurpurVersionFetcher.java
@@ -0,0 +1,115 @@
@@ -241,7 +241,7 @@ index 0000000000..d8b408f061
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index dcc44be613..146d40a6e6 100644
index dcc44be6..146d40a6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -203,7 +203,7 @@ import javax.annotation.Nullable; // Paper
@@ -254,7 +254,7 @@ index dcc44be613..146d40a6e6 100644
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 770375ed42..0e5da2a30d 100644
index 770375ed..0e5da2a3 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -306,7 +306,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
@@ -267,7 +267,7 @@ index 770375ed42..0e5da2a30d 100644
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 674096cab1..e9aee2d8a9 100644
index 674096ca..e9aee2d8 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
@@ -11,7 +11,7 @@ public final class Versioning {

View File

@@ -1,4 +1,4 @@
From 4063b9b2cfbe02d1f6b45b60ccf7204696616ebf Mon Sep 17 00:00:00 2001
From 70383ed7cde19a9d417b1c1f0defb4784ab5ef7f 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 75543ee6dc..fd5d62c050 100644
index 079ddc71..1d921212 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1563,6 +1563,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1558,6 +1558,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
public void a(IChatBaseComponent ichatbasecomponent, ChatMessageType chatmessagetype) {
@@ -24,7 +24,7 @@ index 75543ee6dc..fd5d62c050 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 6012739331..75707adcd7 100644
index 60127393..75707adc 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 6012739331..75707adcd7 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 7d983d9a54..36260e0ec8 100644
index 7d983d9a..36260e0e 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 7d983d9a54..36260e0ec8 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 0000000000..0967ef424b
index 00000000..0967ef42
--- /dev/null
+++ b/src/main/resources/purpur.lang
@@ -0,0 +1 @@

View File

@@ -1,4 +1,4 @@
From 091be5c528bce634c0829d9b28cb85c6562bc714 Mon Sep 17 00:00:00 2001
From f28759eebeaaab8c588d7ff5ede57a1a84330cfd 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
@@ -115,7 +115,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 3fdb52007a..7e67292c2e 100644
index 3fdb5200..7e67292c 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 {
@@ -135,7 +135,7 @@ index 3fdb52007a..7e67292c2e 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 1d9ba04d..2bade947 100644
--- a/src/main/java/net/minecraft/server/ControllerLookDolphin.java
+++ b/src/main/java/net/minecraft/server/ControllerLookDolphin.java
@@ -1,6 +1,6 @@
@@ -156,7 +156,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 a5c4cbb6..efe6afde 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 {
@@ -173,7 +173,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 816d301f..f7344d3a 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 {
@@ -198,7 +198,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 96a47dd1c2..a3bee7bf23 100644
index f973466b..e368fbc5 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
@@ -272,7 +272,7 @@ index 96a47dd1c2..a3bee7bf23 100644
public void a(float f, Vec3D vec3d) {
Vec3D vec3d1 = a(vec3d, f, this.yaw);
@@ -2159,7 +2163,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2161,7 +2165,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
} else {
this.passengers.add(entity);
}
@@ -287,7 +287,7 @@ index 96a47dd1c2..a3bee7bf23 100644
}
return true; // CraftBukkit
}
@@ -2194,6 +2204,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2196,6 +2206,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return false;
}
// Spigot end
@@ -300,7 +300,7 @@ index 96a47dd1c2..a3bee7bf23 100644
this.passengers.remove(entity);
entity.j = 60;
}
@@ -2362,6 +2378,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2364,6 +2380,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.setFlag(4, flag);
}
@@ -308,7 +308,7 @@ index 96a47dd1c2..a3bee7bf23 100644
public boolean bt() {
return this.glowing || this.world.isClientSide && this.getFlag(6);
}
@@ -2580,6 +2597,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2582,6 +2599,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public void setHeadRotation(float f) {}
@@ -316,7 +316,7 @@ index 96a47dd1c2..a3bee7bf23 100644
public void l(float f) {}
public boolean bA() {
@@ -3426,4 +3444,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -3428,4 +3446,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
void accept(Entity entity, double d0, double d1, double d2);
}
@@ -361,7 +361,7 @@ index 96a47dd1c2..a3bee7bf23 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 3d27f096..822316a6 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 {
@@ -374,7 +374,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 34239160..592408ba 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 {
@@ -465,7 +465,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 dd1d246aeb..f0f83baac8 100644
index dd1d246a..f0f83baa 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 {
@@ -646,7 +646,7 @@ index dd1d246aeb..f0f83baac8 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 da6a3fa2..d02130e0 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 {
@@ -736,7 +736,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 b3bdc194..8b9222d7 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 {
@@ -830,7 +830,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 23ced2c7..5b86b36f 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 {
@@ -858,7 +858,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 65795fc8..5505b7ee 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 {
@@ -898,7 +898,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 1e378212..0153a821 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 {
@@ -926,7 +926,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 a0b35c86..144e89f2 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 {
@@ -942,7 +942,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 2c8bbf20..723a9fa1 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 {
@@ -974,7 +974,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 45dfc810..48fd8e71 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 {
@@ -1090,7 +1090,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 ce78586e..81570b37 100644
--- a/src/main/java/net/minecraft/server/EntityDolphin.java
+++ b/src/main/java/net/minecraft/server/EntityDolphin.java
@@ -1,5 +1,12 @@
@@ -1241,7 +1241,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 77885f67..63f5969b 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 {
@@ -1304,7 +1304,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 2887cb14e4..a6a79f5e9a 100644
index 2887cb14..a6a79f5e 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 {
@@ -1461,7 +1461,7 @@ index 2887cb14e4..a6a79f5e9a 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 212636dc..de30ce48 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 {
@@ -1560,7 +1560,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 e4bd2796..5eaf1920 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 {
@@ -1597,7 +1597,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 b030fe95..179a2612 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 {
@@ -1662,7 +1662,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 b853fd0d..b8d786fa 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 {
@@ -1716,7 +1716,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 82a32d5d..4f53090d 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 {
@@ -1854,7 +1854,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 e1c2540d..46841df7 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 {
@@ -1937,7 +1937,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 d9e5eaad..ff8a41a5 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 {
@@ -1975,7 +1975,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 e69cb334..97040872 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 {
@@ -2076,7 +2076,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 7484bfee..f231340d 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 {
@@ -2104,7 +2104,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 a6fb4ba5..98b1e937 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 {
@@ -2122,7 +2122,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 c56efe03..e7ba83f3 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
@@ -2175,7 +2175,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 9a52decd..64d80081 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 {
@@ -2193,7 +2193,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 4dd4d91e..a9f26efe 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 {
@@ -2211,7 +2211,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 290cb933..7bf76e5a 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 {
@@ -2252,7 +2252,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 5782a25e..c87fc523 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 {
@@ -2282,7 +2282,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 8a3f2b5e40..4cf420de0b 100644
index 2e186134..16ccabfd 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 {
@@ -2309,7 +2309,7 @@ index 8a3f2b5e40..4cf420de0b 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 81b7cd06..3e6722cf 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
@@ -2350,7 +2350,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..d0a5687f03 100644
index 1991cee4..d0a5687f 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 {
@@ -2442,7 +2442,7 @@ index 1991cee43d..d0a5687f03 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 7f6a5677..288a043f 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 {
@@ -2497,7 +2497,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 dfb9421a15..53925d526e 100644
index dfb9421a..53925d52 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 {
@@ -2570,7 +2570,7 @@ index dfb9421a15..53925d526e 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index 193dbfc5f6..7a4e64a3d0 100644
index 193dbfc5..7a4e64a3 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -16,8 +16,47 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@@ -2675,7 +2675,7 @@ index 193dbfc5f6..7a4e64a3d0 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..08c4ca3f36 100644
index 4cebd67e..08c4ca3f 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 {
@@ -2716,7 +2716,7 @@ index 4cebd67e85..08c4ca3f36 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 1fdc248b..a5a36af2 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 {
@@ -2744,7 +2744,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 3706c31a..b20f4afd 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 {
@@ -2772,7 +2772,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 d9a7b8ac..8fdf3485 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 {
@@ -2815,7 +2815,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 f50ed190..87ed9a8c 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 {
@@ -2961,7 +2961,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 94e57a2d..7ba2f3a3 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 {
@@ -3062,7 +3062,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..c392085d0b 100644
index 90eeddb1..c392085d 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 {
@@ -3249,7 +3249,7 @@ index 90eeddb1af..c392085d0b 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 8d277566..e6a7f8ef 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 {
@@ -3320,7 +3320,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 9dd028b5..fb9ef88e 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 {
@@ -3348,7 +3348,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 0357c9da..98a657ce 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,
@@ -3387,10 +3387,10 @@ 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 fd5d62c050..81c1a9a045 100644
index 1d921212..8404fc4e 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1294,6 +1294,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1289,6 +1289,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
public void a(float f, float f1, boolean flag, boolean flag1) {
@@ -3398,7 +3398,7 @@ index fd5d62c050..81c1a9a045 100644
if (this.isPassenger()) {
if (f >= -1.0F && f <= 1.0F) {
this.aZ = f;
@@ -1306,7 +1307,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1301,7 +1302,6 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
this.jumping = flag;
this.setSneaking(flag1);
}
@@ -3407,7 +3407,7 @@ index fd5d62c050..81c1a9a045 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 f8e29a02..0a3906bd 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 {
@@ -3499,7 +3499,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 98af9a22..d0e3e251 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 {
@@ -3536,7 +3536,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 2ed2d0b6..9040ab1c 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 {
@@ -3691,7 +3691,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 fd25ce10..98d182a4 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 {
@@ -3729,7 +3729,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 6be29f30..189515b0 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 {
@@ -3757,7 +3757,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 d5ffdc11..d4f2642d 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 {
@@ -3790,7 +3790,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 0d2ceff6..46379588 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 {
@@ -3840,7 +3840,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 08c2a22f..dff20567 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 {
@@ -3885,7 +3885,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 0e78d5c6..8e6efeb7 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 {
@@ -3913,7 +3913,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 3c95c042..8bc4e851 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
@@ -3932,7 +3932,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 2eb53864..a930fb84 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 {
@@ -3960,7 +3960,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 98e04242..8aa0a669 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 {
@@ -3988,7 +3988,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..1469e3b23c 100644
index 2efc18df..1469e3b2 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 {
@@ -4065,7 +4065,7 @@ index 2efc18df94..1469e3b23c 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 07ca1a4987..941873513f 100644
index 07ca1a49..94187351 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 {
@@ -4127,7 +4127,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 d02db565..d3708a7b 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 {
@@ -4165,7 +4165,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 92efe4e7..b967135a 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 {
@@ -4274,7 +4274,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 9b2eea71..d55c6cb3 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 {
@@ -4286,7 +4286,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 ef8f373b..99297846 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 {
@@ -4314,7 +4314,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 b24a5100..46954920 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 {
@@ -4462,7 +4462,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 0f04bcc8b7..5a7494947c 100644
index 0f04bcc8..5a749494 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> {
@@ -4479,7 +4479,7 @@ index 0f04bcc8b7..5a7494947c 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 cf274666..d919f44a 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 {
@@ -4593,7 +4593,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 6e0020ae..3eaac031 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
@@ -4626,7 +4626,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 2ad8dba5..4e9c5e84 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 {
@@ -4662,7 +4662,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 c974c02e..6ba92013 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 {
@@ -4700,7 +4700,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 1432d3f6..447387bd 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 {
@@ -4743,7 +4743,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 8977c351..ad97fe7e 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 {
@@ -4876,7 +4876,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 eec1e26b..47f0b2df 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 {
@@ -5050,7 +5050,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 07ebc1d8..8d1f0441 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 {
@@ -5085,7 +5085,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 da8446d0..db252ba4 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 {
@@ -5113,7 +5113,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 8082fa61..ebbfcb75 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
@@ -5141,7 +5141,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 b35fe21a..5b0f35c7 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 {
@@ -5153,7 +5153,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 da49f6e5..7b5d6026 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 {
@@ -5165,7 +5165,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 c4aa38dd..3d52a396 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 {
@@ -5185,7 +5185,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 134f7d0013..d659796737 100644
index 134f7d00..d6597967 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoal.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoal.java
@@ -28,6 +28,7 @@ public abstract class PathfinderGoal {
@@ -5197,7 +5197,7 @@ index 134f7d0013..d659796737 100644
// Paper start - remove streams from pathfindergoalselector
this.goalTypes.clear();
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 e07c7674..3c077b68 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;
@@ -5220,7 +5220,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 1b796ba5..7dbe3500 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 {
@@ -5232,7 +5232,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 0c7f094e..62a08100 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 {
@@ -5260,7 +5260,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 d468a8076a..ba08855b1c 100644
index 5a8271e3..2735b525 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -977,6 +977,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -5283,7 +5283,7 @@ index d468a8076a..ba08855b1c 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..69f99a993d 100644
index eda37fa4..69f99a99 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 {
@@ -5892,7 +5892,7 @@ index eda37fa43f..69f99a993d 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 00000000..828e1b87
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
@@ -0,0 +1,75 @@
@@ -5973,7 +5973,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 00000000..0a5d6d46
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
@@ -0,0 +1,86 @@
@@ -6065,7 +6065,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 00000000..34912507
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
@@ -0,0 +1,53 @@
@@ -6124,7 +6124,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 00000000..f7537593
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlyingWithSpacebar.java
@@ -0,0 +1,61 @@
@@ -6191,7 +6191,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 00000000..e75e5806
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java
@@ -0,0 +1,43 @@
@@ -6240,7 +6240,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 00000000..7189cc56
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/entity/DolphinSpit.java
@@ -0,0 +1,119 @@
@@ -6365,7 +6365,7 @@ index 0000000000..7189cc569f
+}
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 0000000000..f9e680efd2
index 00000000..f9e680ef
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/entity/PhantomFlames.java
@@ -0,0 +1,126 @@
@@ -6497,7 +6497,7 @@ index 0000000000..f9e680efd2
+}
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 00000000..6e50344c
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java
@@ -0,0 +1,21 @@
@@ -6523,7 +6523,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 dfa15372..350aa675 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 {
@@ -6559,7 +6559,7 @@ index dfa15372b8..350aa67549 100644
+ // Purpur end
}
diff --git a/src/main/resources/purpur.lang b/src/main/resources/purpur.lang
index 0967ef424b..7125c0477e 100644
index 0967ef42..7125c047 100644
--- a/src/main/resources/purpur.lang
+++ b/src/main/resources/purpur.lang
@@ -1 +1,3 @@

View File

@@ -1,4 +1,4 @@
From 005f622f55341fd77c959ae0cd0286f161070ecf Mon Sep 17 00:00:00 2001
From 707495df9c96f138d460f413d17bf17916d02d8b 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,7 +11,7 @@ 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 a3bee7bf2..ce9552375 100644
index e368fbc5..585ebc37 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1081,6 +1081,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -22,7 +22,7 @@ index a3bee7bf2..ce9552375 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);
@@ -2624,6 +2625,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2626,6 +2627,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.invulnerable = flag;
}
@@ -31,7 +31,7 @@ index a3bee7bf2..ce9552375 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 723a9fa1e..f56fd7c01 100644
index 723a9fa1..f56fd7c0 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 723a9fa1e..f56fd7c01 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 53925d526..01c0919f6 100644
index 53925d52..01c0919f 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2818,8 +2818,9 @@ public abstract class EntityLiving extends Entity {
@@ -140,7 +140,7 @@ index 53925d526..01c0919f6 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 12fbdf65c..091f30727 100644
index 12fbdf65..091f3072 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 {
@@ -157,5 +157,5 @@ index 12fbdf65c..091f30727 100644
public boolean creeperRidable = false;
--
2.25.0.windows.1
2.24.0

View File

@@ -1,4 +1,4 @@
From 1bc85a1770aca2643f9cf22d26f2a8ee0dc3d1c5 Mon Sep 17 00:00:00 2001
From 6e163b10eb444f0fc0573636727586bf44298e98 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, 226 insertions(+), 11 deletions(-)
diff --git a/src/main/java/net/minecraft/server/DamageSource.java b/src/main/java/net/minecraft/server/DamageSource.java
index f7344d3ae..f6c0165f9 100644
index f7344d3a..f6c0165f 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,7 +25,7 @@ index f7344d3ae..f6c0165f9 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 ce9552375..c730974ee 100644
index 585ebc37..217ab1be 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1427,6 +1427,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -36,7 +36,7 @@ index ce9552375..c730974ee 100644
public double h(Entity entity) {
return this.c(entity.getPositionVector());
}
@@ -1954,14 +1955,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1956,14 +1957,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.a(new ItemStack(imaterial), (float) i);
}
@@ -55,7 +55,7 @@ index ce9552375..c730974ee 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 a57d0089d..02952c3af 100644
index a57d0089..02952c3a 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 a57d0089d..02952c3af 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 9d331f9ad..77b69cd36 100644
index 9d331f9a..77b69cd3 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;
@@ -350,7 +350,7 @@ index 9d331f9ad..77b69cd36 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 5135308fb..899619009 100644
index 5135308f..89961900 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 {
@@ -362,7 +362,7 @@ index 5135308fb..899619009 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 12cd81963..e341c492e 100644
index 12cd8196..e341c492 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -404,6 +404,9 @@ public class PurpurWorldConfig {
@@ -386,5 +386,5 @@ index 12cd81963..e341c492e 100644
public boolean pigRidable = false;
--
2.25.0.windows.1
2.24.0

View File

@@ -1,4 +1,4 @@
From abe8e5ddf2923cb0bd3b4baa90f0ea4c46f49897 Mon Sep 17 00:00:00 2001
From 5bb0a2beb7da572024b6526ed816483b03d0a8f1 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 81c1a9a045..f0639c23c4 100644
index 8404fc4e..51933a49 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1134,6 +1134,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1129,6 +1129,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public void openSign(TileEntitySign tileentitysign) {
tileentitysign.a((EntityHuman) this);
@@ -23,10 +23,10 @@ index 81c1a9a045..f0639c23c4 100644
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 7929fcc800..895e34ed34 100644
index b62535ba..3c37d032 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2580,6 +2580,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -2581,6 +2581,14 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
}
// Paper end
@@ -42,7 +42,7 @@ index 7929fcc800..895e34ed34 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 099d98e04c..19d76c8cce 100644
index 099d98e0..19d76c8c 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 099d98e04c..19d76c8cce 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 0894523d72..3c7f545e2e 100644
index 0894523d..3c7f545e 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 d8129cb81a8dc728e5b962b7bddc345db3281bcc Mon Sep 17 00:00:00 2001
From abb33f41016157ea033dade6e81f3e7a87afe74e 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,7 +18,7 @@ Subject: [PATCH] Implement AFK API
11 files changed, 111 insertions(+), 25 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 3bc4327a10..8a2fcb37f9 100644
index c211073e..9ff3e68e 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1420,6 +1420,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -30,7 +30,7 @@ index 3bc4327a10..8a2fcb37f9 100644
double d3 = this.locX() - d0;
double d4 = this.locY() - d1;
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 4cf420de0b..1ffe38e151 100644
index 16ccabfd..5ac3c464 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -86,6 +86,15 @@ public abstract class EntityHuman extends EntityLiving {
@@ -50,10 +50,10 @@ index 4cf420de0b..1ffe38e151 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 f0639c23c4..2ef9130cb1 100644
index 51933a49..a021c111 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1627,8 +1627,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1622,8 +1622,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
public void resetIdleTimer() {
this.cj = SystemUtils.getMonotonicMillis();
@@ -106,7 +106,7 @@ index f0639c23c4..2ef9130cb1 100644
return this.serverStatisticManager;
}
diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java
index 8996190090..d9f246b874 100644
index 89961900..d9f246b8 100644
--- a/src/main/java/net/minecraft/server/IEntityAccess.java
+++ b/src/main/java/net/minecraft/server/IEntityAccess.java
@@ -125,28 +125,18 @@ public interface IEntityAccess {
@@ -151,7 +151,7 @@ index 8996190090..d9f246b874 100644
@Nullable
diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java
index e1fdee2794..4665671ef6 100644
index e1fdee27..4665671e 100644
--- a/src/main/java/net/minecraft/server/IEntitySelector.java
+++ b/src/main/java/net/minecraft/server/IEntitySelector.java
@@ -7,6 +7,7 @@ import javax.annotation.Nullable;
@@ -171,10 +171,10 @@ index e1fdee2794..4665671ef6 100644
public static Predicate<Entity> a(double d0, double d1, double d2, double d3) {
double d4 = d3 * d3;
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 895e34ed34..f92516069a 100644
index 3c37d032..c1a4697a 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -223,6 +223,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -224,6 +224,12 @@ public class PlayerConnection implements PacketListenerPlayIn {
}
if (this.player.F() > 0L && this.minecraftServer.getIdleTimeout() > 0 && SystemUtils.getMonotonicMillis() - this.player.F() > (long) (this.minecraftServer.getIdleTimeout() * 1000 * 60)) {
@@ -187,7 +187,7 @@ index 895e34ed34..f92516069a 100644
this.player.resetIdleTimer(); // CraftBukkit - SPIGOT-854
this.disconnect(new ChatMessage("multiplayer.disconnect.idling", new Object[0]));
}
@@ -439,6 +445,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -440,6 +446,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -196,7 +196,7 @@ index 895e34ed34..f92516069a 100644
// Skip the first time we do this
if (true) { // Spigot - don't skip any move events
Location oldTo = to.clone();
@@ -1108,6 +1116,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -1109,6 +1117,8 @@ public class PlayerConnection implements PacketListenerPlayIn {
this.lastYaw = to.getYaw();
this.lastPitch = to.getPitch();
@@ -206,7 +206,7 @@ index 895e34ed34..f92516069a 100644
if (from.getX() != Double.MAX_VALUE) {
Location oldTo = to.clone();
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 67448b6e10..4f69818a6b 100644
index fe81529a..9b873948 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -393,7 +393,7 @@ public class WorldServer extends World {
@@ -228,7 +228,7 @@ index 67448b6e10..4f69818a6b 100644
} else if (entityplayer.isSleeping()) {
++j;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index c6bf9395c1..76f8c8fed1 100644
index c6bf9395..76f8c8fe 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -138,6 +138,17 @@ public class PurpurWorldConfig {
@@ -250,7 +250,7 @@ index c6bf9395c1..76f8c8fed1 100644
public boolean batRidableInWater = false;
public boolean batRequireShiftToMount = true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index b76379a17c..b7571d0866 100644
index b76379a1..b7571d08 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2079,4 +2079,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -276,7 +276,7 @@ index b76379a17c..b7571d0866 100644
+ // Purpur end
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 795817177a..17c4d7ec9b 100644
index 79581717..17c4d7ec 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -146,6 +146,7 @@ public class ActivationRange
@@ -288,7 +288,7 @@ index 795817177a..17c4d7ec9b 100644
ActivationType.MISC.boundingBox = player.getBoundingBox().grow( miscActivationRange, 256, miscActivationRange );
ActivationType.RAIDER.boundingBox = player.getBoundingBox().grow( raiderActivationRange, 256, raiderActivationRange );
diff --git a/src/main/resources/purpur.lang b/src/main/resources/purpur.lang
index 7125c0477e..e925e1374d 100644
index 7125c047..e925e137 100644
--- a/src/main/resources/purpur.lang
+++ b/src/main/resources/purpur.lang
@@ -1,3 +1,5 @@

View File

@@ -1,4 +1,4 @@
From f756e914abeb3344caa5ba2c58c9cc442fe7d4cd Mon Sep 17 00:00:00 2001
From 03e79b62ec17cbe47c25460050c1921bc401f1d7 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 16 Jan 2020 14:59:16 -0600
Subject: [PATCH] Make the GUI better
@@ -40,7 +40,7 @@ Subject: [PATCH] Make the GUI better
create mode 100644 src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 018def64aa..fe474e4eba 100644
index 018def64..fe474e4e 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -8,6 +8,8 @@ import com.mojang.authlib.GameProfileRepository;
@@ -88,10 +88,10 @@ index 018def64aa..fe474e4eba 100644
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 07fb62ab1e..6c99c328b3 100644
index fc5ded95..bf8461ea 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1340,6 +1340,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1339,6 +1339,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
return true;
}
@@ -101,7 +101,7 @@ index 07fb62ab1e..6c99c328b3 100644
}
diff --git a/src/main/java/net/pl3x/purpur/gui/ServerGUI.java b/src/main/java/net/pl3x/purpur/gui/ServerGUI.java
new file mode 100644
index 0000000000..973b5efef5
index 00000000..973b5efe
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/ServerGUI.java
@@ -0,0 +1,123 @@
@@ -230,7 +230,7 @@ index 0000000000..973b5efef5
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java b/src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java
new file mode 100644
index 0000000000..55feec811f
index 00000000..55feec81
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/console/JColorTextPane.java
@@ -0,0 +1,81 @@
@@ -317,7 +317,7 @@ index 0000000000..55feec811f
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java b/src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java
new file mode 100644
index 0000000000..fb017a0708
index 00000000..fb017a07
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/console/JConsolePanel.java
@@ -0,0 +1,128 @@
@@ -451,7 +451,7 @@ index 0000000000..fb017a0708
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/DetailsListSelectionModel.java b/src/main/java/net/pl3x/purpur/gui/info/DetailsListSelectionModel.java
new file mode 100644
index 0000000000..4e0b80fddb
index 00000000..4e0b80fd
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/DetailsListSelectionModel.java
@@ -0,0 +1,21 @@
@@ -478,7 +478,7 @@ index 0000000000..4e0b80fddb
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/JInfoPanel.java b/src/main/java/net/pl3x/purpur/gui/info/JInfoPanel.java
new file mode 100644
index 0000000000..c4903c7db6
index 00000000..c4903c7d
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/JInfoPanel.java
@@ -0,0 +1,42 @@
@@ -526,7 +526,7 @@ index 0000000000..c4903c7db6
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/RAMDetails.java b/src/main/java/net/pl3x/purpur/gui/info/RAMDetails.java
new file mode 100644
index 0000000000..1e049d575b
index 00000000..1e049d57
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/RAMDetails.java
@@ -0,0 +1,59 @@
@@ -591,7 +591,7 @@ index 0000000000..1e049d575b
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/graph/GraphColor.java b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphColor.java
new file mode 100644
index 0000000000..2fdb9bdd0d
index 00000000..2fdb9bdd
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphColor.java
@@ -0,0 +1,44 @@
@@ -641,7 +641,7 @@ index 0000000000..2fdb9bdd0d
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/graph/GraphData.java b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphData.java
new file mode 100644
index 0000000000..85babad9cd
index 00000000..85babad9
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/graph/GraphData.java
@@ -0,0 +1,47 @@
@@ -694,7 +694,7 @@ index 0000000000..85babad9cd
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/info/graph/RAMGraph.java b/src/main/java/net/pl3x/purpur/gui/info/graph/RAMGraph.java
new file mode 100644
index 0000000000..0c0c73beeb
index 00000000..0c0c73be
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/info/graph/RAMGraph.java
@@ -0,0 +1,144 @@
@@ -844,7 +844,7 @@ index 0000000000..0c0c73beeb
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/JPlayerList.java b/src/main/java/net/pl3x/purpur/gui/playerlist/JPlayerList.java
new file mode 100644
index 0000000000..17e75a2070
index 00000000..17e75a20
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/JPlayerList.java
@@ -0,0 +1,57 @@
@@ -907,7 +907,7 @@ index 0000000000..17e75a2070
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListCellRenderer.java b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListCellRenderer.java
new file mode 100644
index 0000000000..2f02e9adc7
index 00000000..2f02e9ad
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListCellRenderer.java
@@ -0,0 +1,22 @@
@@ -935,7 +935,7 @@ index 0000000000..2f02e9adc7
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListModel.java b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListModel.java
new file mode 100644
index 0000000000..edbf454163
index 00000000..edbf4541
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListModel.java
@@ -0,0 +1,47 @@
@@ -988,7 +988,7 @@ index 0000000000..edbf454163
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListMouseAdapter.java b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListMouseAdapter.java
new file mode 100644
index 0000000000..13a5eb3ad3
index 00000000..13a5eb3a
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/playerlist/PlayerListMouseAdapter.java
@@ -0,0 +1,32 @@
@@ -1026,7 +1026,7 @@ index 0000000000..13a5eb3ad3
+}
diff --git a/src/main/java/net/pl3x/purpur/gui/util/GUIColor.java b/src/main/java/net/pl3x/purpur/gui/util/GUIColor.java
new file mode 100644
index 0000000000..973c8ddf93
index 00000000..973c8ddf
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/gui/util/GUIColor.java
@@ -0,0 +1,54 @@
@@ -1086,7 +1086,7 @@ index 0000000000..973c8ddf93
+}
diff --git a/src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java b/src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java
new file mode 100644
index 0000000000..4b340b88a2
index 00000000..4b340b88
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/util/HighlightErrorConverter.java
@@ -0,0 +1,86 @@
@@ -1177,7 +1177,7 @@ index 0000000000..4b340b88a2
+
+}
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index a9bb987652..4be7613d0f 100644
index a9bb9876..4be7613d 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -1,8 +1,17 @@

View File

@@ -1,4 +1,4 @@
From 3a472997b11b770bd30b14bfc4a8edc33b3f2eba Mon Sep 17 00:00:00 2001
From 9fd719981b32ad81017b22ff1f3d3991b4ef27df 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 2ef9130cb1..22572640b8 100644
index a021c111..28bbed56 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1108,7 +1108,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1102,7 +1102,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@Override
public boolean isInvulnerable(DamageSource damagesource) {

View File

@@ -1,4 +1,4 @@
From 9044e19ed6ab20ef0e977469c2a997fe9c85687c Mon Sep 17 00:00:00 2001
From 23c78ca9813b04abf15dc7020eb3ace7e1245505 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
@@ -11,7 +11,7 @@ Subject: [PATCH] Add EntityPortalReadyEvent
4 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/src/main/java/net/minecraft/server/BlockPortal.java b/src/main/java/net/minecraft/server/BlockPortal.java
index 09c7c1318..6880cdd7f 100644
index 09c7c131..6880cdd7 100644
--- a/src/main/java/net/minecraft/server/BlockPortal.java
+++ b/src/main/java/net/minecraft/server/BlockPortal.java
@@ -54,6 +54,7 @@ public class BlockPortal extends Block {
@@ -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 8a2fcb37f..1aadd8802 100644
index 9ff3e68e..1f48643e 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -169,9 +169,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -102,7 +102,7 @@ index 8a2fcb37f..1aadd8802 100644
private boolean invulnerable;
protected UUID uniqueID;
protected String am;
@@ -2265,6 +2265,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2267,6 +2267,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.world.getMethodProfiler().enter("portal");
this.ag = i;
this.portalCooldown = this.ba();
@@ -111,7 +111,7 @@ index 8a2fcb37f..1aadd8802 100644
if (this instanceof EntityPlayer) {
((EntityPlayer) this).a(this.world.worldProvider.getDimensionManager().getType() == DimensionManager.NETHER ? DimensionManager.OVERWORLD : DimensionManager.NETHER, PlayerTeleportEvent.TeleportCause.NETHER_PORTAL);
diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java
index f84dd6d9b..f50e9670b 100644
index f84dd6d9..f50e9670 100644
--- a/src/main/java/net/minecraft/server/PortalTravelAgent.java
+++ b/src/main/java/net/minecraft/server/PortalTravelAgent.java
@@ -11,6 +11,7 @@ public class PortalTravelAgent {
@@ -141,7 +141,7 @@ index f84dd6d9b..f50e9670b 100644
}
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 0e30dcb87..d8fad3a06 100644
index 9b873948..e1387ddc 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -75,7 +75,7 @@ public class WorldServer extends World {
@@ -154,5 +154,5 @@ index 0e30dcb87..d8fad3a06 100644
private final TickListServer<FluidType> nextTickListFluid;
private final Set<NavigationAbstract> navigators;
--
2.25.0.windows.1
2.24.0

View File

@@ -1,4 +1,4 @@
From 7c1f60cee753f6b992262cde23a649037fd80235 Mon Sep 17 00:00:00 2001
From ba1dd951e2191a25587df2d0c2a1e69cedfb2946 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 11 Oct 2019 00:17:39 -0500
Subject: [PATCH] Alternative Keepalive Handling
@@ -10,7 +10,7 @@ Subject: [PATCH] Alternative Keepalive Handling
3 files changed, 33 insertions(+)
diff --git a/src/main/java/net/minecraft/server/PacketPlayInKeepAlive.java b/src/main/java/net/minecraft/server/PacketPlayInKeepAlive.java
index 8e93f1540b..470f92c4fb 100644
index 8e93f154..470f92c4 100644
--- a/src/main/java/net/minecraft/server/PacketPlayInKeepAlive.java
+++ b/src/main/java/net/minecraft/server/PacketPlayInKeepAlive.java
@@ -22,6 +22,7 @@ public class PacketPlayInKeepAlive implements Packet<PacketListenerPlayIn> {
@@ -22,7 +22,7 @@ index 8e93f1540b..470f92c4fb 100644
return this.a;
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index f92516069a..b60b71a15d 100644
index c1a4697a..7616d345 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -74,6 +74,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -33,7 +33,7 @@ index f92516069a..b60b71a15d 100644
// CraftBukkit start - multithreaded fields
private volatile int chatThrottle;
private static final AtomicIntegerFieldUpdater chatSpamField = AtomicIntegerFieldUpdater.newUpdater(PlayerConnection.class, "chatThrottle");
@@ -191,6 +192,21 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -192,6 +193,21 @@ public class PlayerConnection implements PacketListenerPlayIn {
long currentTime = SystemUtils.getMonotonicMillis();
long elapsedTime = currentTime - this.getLastPing();
@@ -55,7 +55,7 @@ index f92516069a..b60b71a15d 100644
if (this.isPendingPing()) {
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
PlayerConnection.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getName()); // more info
@@ -2617,6 +2633,17 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -2618,6 +2634,17 @@ public class PlayerConnection implements PacketListenerPlayIn {
@Override
public void a(PacketPlayInKeepAlive packetplayinkeepalive) {
@@ -74,7 +74,7 @@ index f92516069a..b60b71a15d 100644
if (this.awaitingKeepAlive && packetplayinkeepalive.b() == this.h) {
int i = (int) (SystemUtils.getMonotonicMillis() - this.lastKeepAlive);
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index 391fe7a512..bcd6837d46 100644
index 391fe7a5..bcd6837d 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -148,6 +148,11 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From dbd534d892b2d6b41560de30811efe76665dafea Mon Sep 17 00:00:00 2001
From 13de5fcae50a95059fdc72e167bdf5e7d53202b9 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 30 Nov 2019 03:30:17 -0600
Subject: [PATCH] Add sleep options
@@ -9,7 +9,7 @@ Subject: [PATCH] Add sleep options
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index d69854b5c1..0e16e03bb1 100644
index 5ac3c464..ed0a559f 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -143,6 +143,21 @@ public abstract class EntityHuman extends EntityLiving {
@@ -43,7 +43,7 @@ index d69854b5c1..0e16e03bb1 100644
this.wakeup(false, true);
}
} else if (this.sleepTicks > 0) {
@@ -1334,7 +1349,7 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1338,7 +1353,7 @@ public abstract class EntityHuman extends EntityLiving {
return Either.left(EntityHuman.EnumBedResult.NOT_POSSIBLE_HERE);
}
@@ -53,7 +53,7 @@ index d69854b5c1..0e16e03bb1 100644
return Either.left(EntityHuman.EnumBedResult.NOT_POSSIBLE_NOW);
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 71872a3fe7..44786e1fc9 100644
index 71872a3f..44786e1f 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -150,6 +150,8 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 420773360e59f43603f79cdb386308c08a56bd94 Mon Sep 17 00:00:00 2001
From 78d2895b762b6a40bb6f1a23ff62f699155aa69c Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 26 Dec 2019 22:08:37 -0600
Subject: [PATCH] Add player death exp control options
@@ -9,10 +9,10 @@ Subject: [PATCH] Add player death exp control options
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 0e16e03bb1..477d5c00b4 100644
index ed0a559f..8c6556fe 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -1862,9 +1862,18 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1866,9 +1866,18 @@ public abstract class EntityHuman extends EntityLiving {
@Override
protected int getExpValue(EntityHuman entityhuman) {
if (!this.world.getGameRules().getBoolean(GameRules.KEEP_INVENTORY) && !this.isSpectator()) {
@@ -35,7 +35,7 @@ index 0e16e03bb1..477d5c00b4 100644
return 0;
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index 3cb3bcfe13..1fcdb4e28d 100644
index 3cb3bcfe..1fcdb4e2 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -155,6 +155,8 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 0ea379e7daea0f5a1629d72e46659f95b54cbe09 Mon Sep 17 00:00:00 2001
From 2c7a0df6ac9e889dfc14b8d8871efe457a8f9cd1 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 28 Dec 2019 04:21:54 -0600
Subject: [PATCH] Add permission for F3+N debug
@@ -8,10 +8,10 @@ Subject: [PATCH] Add permission for F3+N debug
1 file changed, 1 insertion(+)
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 704994cb81..2e036524c8 100644
index eaba3cbf..8178fa96 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -919,6 +919,7 @@ public abstract class PlayerList {
@@ -969,6 +969,7 @@ public abstract class PlayerList {
} else {
b0 = (byte) (24 + i);
}

View File

@@ -1,4 +1,4 @@
From 5b6105785f4193955d46d5a7ccedd757cdb2deb8 Mon Sep 17 00:00:00 2001
From 09a7023bcaeafc983433f31b0865c37af3942fb6 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,20 +9,20 @@ 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 68a951002..d140ffcf9 100644
index a6875245..bcb08c3a 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1389,7 +1389,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;
- world.getChunkAt((int) Math.floor(this.locX) >> 4, (int) Math.floor(this.locZ) >> 4); // CraftBukkit
+ if (!dead) world.getChunkAt((int) Math.floor(this.locX) >> 4, (int) Math.floor(this.locZ) >> 4); // CraftBukkit // Purpur
- if (valid) world.getChunkAt((int) Math.floor(this.locX) >> 4, (int) Math.floor(this.locZ) >> 4); // CraftBukkit // Paper
+ if (valid && !dead) world.getChunkAt((int) Math.floor(this.locX) >> 4, (int) Math.floor(this.locZ) >> 4); // CraftBukkit // Paper // Purpur
}
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 e69b09aa1..19e281bec 100644
index e69b09aa..19e281be 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 {
@@ -35,5 +35,5 @@ index e69b09aa1..19e281bec 100644
double d1 = this.locZ() - this.lastZ;
float f = (float) (d0 * d0 + d1 * d1);
--
2.25.0.windows.1
2.24.0

View File

@@ -1,4 +1,4 @@
From 8dff020c638fc5c4718e14dd71cfb48be8f4348f Mon Sep 17 00:00:00 2001
From e1257e7646fd997b2c636aba9ecaac80d29c70a7 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 21 Mar 2020 11:47:39 -0500
Subject: [PATCH] Configurable server mod name
@@ -9,10 +9,10 @@ Subject: [PATCH] Configurable server mod name
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 0ae6a9760e..7015611dc4 100644
index 1b27382c..f7c82f51 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1551,7 +1551,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1550,7 +1550,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
public String getServerModName() {
@@ -22,7 +22,7 @@ index 0ae6a9760e..7015611dc4 100644
public CrashReport b(CrashReport crashreport) {
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
index c4ec515557..dd3afd4a57 100644
index c4ec5155..dd3afd4a 100644
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
@@ -185,6 +185,11 @@ public class PurpurConfig {

View File

@@ -1,4 +1,4 @@
From 8a5c3bee5c877ec56a7a53faeb4acbedb7ae75dd Mon Sep 17 00:00:00 2001
From 6ac96e503a4993027ace192acf75b252b81c3dab Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 2 Apr 2020 00:28:06 -0500
Subject: [PATCH] Optimize Chunk Ticks
@@ -10,10 +10,10 @@ Subject: [PATCH] Optimize Chunk Ticks
3 files changed, 51 insertions(+), 63 deletions(-)
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index fd84807a5b..1fae431469 100644
index 2d4d7250..b7dadb1b 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -735,11 +735,12 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -737,11 +737,12 @@ public class ChunkProviderServer extends IChunkProvider {
int k = this.world.getGameRules().getInt(GameRules.RANDOM_TICK_SPEED);
BlockPosition blockposition = this.world.getSpawn();
// CraftBukkit start - Other mob type spawn tick rate
@@ -31,7 +31,7 @@ index fd84807a5b..1fae431469 100644
// CraftBukkit end
this.world.getMethodProfiler().enter("naturalSpawnCount");
@@ -765,15 +766,17 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -767,15 +768,17 @@ public class ChunkProviderServer extends IChunkProvider {
this.world.timings.countNaturalMobs.stopTiming(); // Paper - timings
this.world.getMethodProfiler().exit();
@@ -58,7 +58,7 @@ index fd84807a5b..1fae431469 100644
final int[] chunksTicked = {0}; this.playerChunkMap.forEachVisibleChunk((playerchunk) -> { // Paper - safe iterator incase chunk loads, also no wrapping
Optional<Chunk> optional = ((Either) playerchunk.b().getNow(PlayerChunk.UNLOADED_CHUNK)).left();
@@ -793,40 +796,11 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -795,40 +798,11 @@ public class ChunkProviderServer extends IChunkProvider {
if (flag1 && (this.allowMonsters || this.allowAnimals) && this.world.getWorldBorder().isInBounds(chunk.getPos()) && !this.playerChunkMap.isOutsideOfRange(chunkcoordintpair, true)) { // Spigot
this.world.getMethodProfiler().enter("spawner");
this.world.timings.mobSpawn.startTiming(); // Spigot
@@ -105,7 +105,7 @@ index fd84807a5b..1fae431469 100644
// Paper start - only allow spawns upto the limit per chunk and update count afterwards
diff --git a/src/main/java/net/minecraft/server/EnumCreatureType.java b/src/main/java/net/minecraft/server/EnumCreatureType.java
index 3ed7fa324f..7f236585db 100644
index 3ed7fa32..7f236585 100644
--- a/src/main/java/net/minecraft/server/EnumCreatureType.java
+++ b/src/main/java/net/minecraft/server/EnumCreatureType.java
@@ -31,11 +31,25 @@ public enum EnumCreatureType {
@@ -135,10 +135,10 @@ index 3ed7fa324f..7f236585db 100644
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 8b2eed1051..8d70cacee9 100644
index ee0cabad..5b9647c8 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -1374,28 +1374,28 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -1371,28 +1371,28 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
}
boolean isOutsideOfRange(ChunkCoordIntPair chunkcoordintpair, boolean reducedRange) {

View File

@@ -1,4 +1,4 @@
From 36dab1ca8492e3b84c18556e6a02c0e31dfd10cb Mon Sep 17 00:00:00 2001
From cd86fc965766b1c066b2eeacc366357c63c586c9 Mon Sep 17 00:00:00 2001
From: Spottedleaf <spottedleaf@spottedleaf.dev>
Date: Fri, 3 Apr 2020 02:21:13 -0700
Subject: [PATCH] Tuinity - Always able to execute tasks on the main server
@@ -12,10 +12,10 @@ chunks.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 51fc57100e..1ef742fd6b 100644
index 5606e080..b27d1389 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1086,7 +1086,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1085,7 +1085,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
protected boolean canExecute(TickTask ticktask) {

View File

@@ -1,4 +1,4 @@
From 106272c3f804e9edb2956ca90b3858b95ef2824b Mon Sep 17 00:00:00 2001
From d5f1d879bfcd359045ee89a6c3da3148dbaee4f4 Mon Sep 17 00:00:00 2001
From: tr7zw <tr7zw@live.de>
Date: Thu, 5 Mar 2020 23:08:01 +0100
Subject: [PATCH] YAPFA - Disable mojang profiler
@@ -13,7 +13,7 @@ Subject: [PATCH] YAPFA - Disable mojang profiler
create mode 100644 src/main/java/net/pl3x/purpur/GameProfilerNoop.java
diff --git a/src/main/java/net/minecraft/server/CommandDebug.java b/src/main/java/net/minecraft/server/CommandDebug.java
index f0d72ea39d..e38a684060 100644
index f0d72ea3..e38a6840 100644
--- a/src/main/java/net/minecraft/server/CommandDebug.java
+++ b/src/main/java/net/minecraft/server/CommandDebug.java
@@ -22,6 +22,7 @@ public class CommandDebug {
@@ -43,7 +43,7 @@ index f0d72ea39d..e38a684060 100644
throw CommandDebug.b.create();
} else {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 1ef742fd6b..92859c4322 100644
index b27d1389..e61740eb 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -80,7 +80,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -55,7 +55,7 @@ index 1ef742fd6b..92859c4322 100644
private ServerConnection serverConnection;
public final WorldLoadListenerFactory worldLoadListenerFactory;
private final ServerPing serverPing = new ServerPing();
@@ -1434,6 +1434,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1433,6 +1433,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
String s1 = (String) Optional.ofNullable(optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName);
final DedicatedServer dedicatedserver = new DedicatedServer(optionset, dedicatedserversettings, DataConverterRegistry.a(), yggdrasilauthenticationservice, minecraftsessionservice, gameprofilerepository, usercache, WorldLoadListenerLogger::new, s1);
@@ -64,7 +64,7 @@ index 1ef742fd6b..92859c4322 100644
/*
dedicatedserver.i((String) optionset.valueOf(optionspec7));
dedicatedserver.setPort((Integer) optionset.valueOf(optionspec10));
@@ -1859,6 +1861,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1858,6 +1860,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
public abstract boolean a(EnumGamemode enumgamemode, boolean flag, int i);
@@ -74,7 +74,7 @@ index 1ef742fd6b..92859c4322 100644
}
diff --git a/src/main/java/net/pl3x/purpur/GameProfilerNoop.java b/src/main/java/net/pl3x/purpur/GameProfilerNoop.java
new file mode 100644
index 0000000000..b32a5418f2
index 00000000..b32a5418
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/GameProfilerNoop.java
@@ -0,0 +1,68 @@
@@ -147,7 +147,7 @@ index 0000000000..b32a5418f2
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 7b7e1475b3..1136a0a26d 100644
index 7b7e1475..1136a0a2 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -144,6 +144,8 @@ public class Main {
@@ -160,7 +160,7 @@ index 7b7e1475b3..1136a0a26d 100644
// Paper start
diff --git a/src/main/resources/purpur.lang b/src/main/resources/purpur.lang
index e81beea7fa..5c3536b26b 100644
index e81beea7..5c3536b2 100644
--- a/src/main/resources/purpur.lang
+++ b/src/main/resources/purpur.lang
@@ -1,5 +1,6 @@