diff --git a/Paper b/Paper index 768b46ed6..dc841f337 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 768b46ed638a64e9700195179acd172030b43d47 +Subproject commit dc841f3379881af6b25ccdbe2073a2bf5799f69a diff --git a/current-paper b/current-paper index 19c25db2b..f79449399 100644 --- a/current-paper +++ b/current-paper @@ -1 +1 @@ -1.14.2--1a214f52c1eb403badd3ff9be853dcb3b0baf558 +1.14.3--1d5c0ba661303537aa487c2f2911c0719174e6ae diff --git a/patches/api/0001-Rebrand.patch b/patches/api/0001-Rebrand.patch index 8b8a7e0f0..a1d971a0b 100644 --- a/patches/api/0001-Rebrand.patch +++ b/patches/api/0001-Rebrand.patch @@ -1,17 +1,17 @@ -From e66647c96a1fe0ae4b24ba3c951c376e34a81ec5 Mon Sep 17 00:00:00 2001 +From e34025c2fa5e91b19fc492dc9f45d5a5367f5ef0 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 4 May 2019 00:57:16 -0500 Subject: [PATCH] Rebrand --- - pom.xml | 13 ++++++------- - 1 file changed, 6 insertions(+), 7 deletions(-) + pom.xml | 14 ++++++-------- + 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml -index 4b8334d62..b7a16cbaf 100644 +index df8fc5173..aa94a7c76 100644 --- a/pom.xml +++ b/pom.xml -@@ -3,18 +3,17 @@ +@@ -3,19 +3,17 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 @@ -25,7 +25,8 @@ index 4b8334d62..b7a16cbaf 100644 - com.destroystokyo.paper - paper-api + purpur-api - 1.14.2-R0.1-SNAPSHOT + 1.14.3-R0.1-SNAPSHOT +- jar - Paper-API @@ -35,7 +36,7 @@ index 4b8334d62..b7a16cbaf 100644 An enhanced plugin API for Minecraft servers. -@@ -150,7 +149,7 @@ +@@ -150,7 +148,7 @@ diff --git a/patches/server/0001-Rebrand.patch b/patches/server/0001-Rebrand.patch index fb467ad60..b3ce372dc 100644 --- a/patches/server/0001-Rebrand.patch +++ b/patches/server/0001-Rebrand.patch @@ -1,4 +1,4 @@ -From b80fe4e5e4bfaf7ff2035a1ceff661d2a7e30867 Mon Sep 17 00:00:00 2001 +From 375624ad813fe43f8902d8b90813d1d71b8f4678 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath 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 2cb84223e..58096a29e 100644 +index 1f3571dd0f..6dab6763da 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,11 @@ @@ -25,7 +25,7 @@ index 2cb84223e..58096a29e 100644 - paper + purpur jar - 1.14.2-R0.1-SNAPSHOT + 1.14.3-R0.1-SNAPSHOT - Paper - https://papermc.io + Purpur @@ -73,7 +73,7 @@ index 2cb84223e..58096a29e 100644 diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java -index cd6e25923..bb227bc0f 100644 +index cd6e259239..bb227bc0fb 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 { @@ -86,7 +86,7 @@ index cd6e25923..bb227bc0f 100644 ); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3dbe83c7e..fc57f154f 100644 +index 2b99fdc630..5ec9a980c9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1423,7 +1423,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Thu, 9 May 2019 18:09:43 -0500 Subject: [PATCH] Purpur config files @@ -15,10 +15,10 @@ Subject: [PATCH] Purpur config files create mode 100644 src/main/java/net/pl3x/purpur/PurpurWorldConfig.java diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java -index 3d452fe0e3..22e81ee105 100644 +index c1473330fa..3e32c211c7 100644 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java -@@ -172,6 +172,14 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer +@@ -174,6 +174,14 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer return false; } com.destroystokyo.paper.PaperConfig.registerCommands(); @@ -34,7 +34,7 @@ index 3d452fe0e3..22e81ee105 100644 // Paper end diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 1defbd9747..b37e081fc3 100644 +index a7a35d6a6f..c8f198fdf0 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -94,6 +94,8 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose @@ -243,7 +243,7 @@ index 0000000000..30f11fe261 + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 9f78e85438..e7d80fd58c 100644 +index c0ac212bc3..624ee90b68 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -788,6 +788,7 @@ public final class CraftServer implements Server { diff --git a/patches/server/0003-cows-to-mooshroom-when-fed-mushrooms.patch b/patches/server/0003-cows-to-mooshroom-when-fed-mushrooms.patch index d975cd7b6..b84e19cda 100644 --- a/patches/server/0003-cows-to-mooshroom-when-fed-mushrooms.patch +++ b/patches/server/0003-cows-to-mooshroom-when-fed-mushrooms.patch @@ -1,4 +1,4 @@ -From e5c8e31b455e9e54bd0f575a0f2f6af2e8840227 Mon Sep 17 00:00:00 2001 +From a0d76f3208f533582021f3a6333bff412464ecf4 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 4 May 2019 01:10:30 -0500 Subject: [PATCH] cows to mooshroom when fed mushrooms @@ -10,10 +10,10 @@ Subject: [PATCH] cows to mooshroom when fed mushrooms 3 files changed, 81 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index fae57a0998..352b6dfb3e 100644 +index c5198af94b..485da37a73 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java -@@ -999,6 +999,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -1048,6 +1048,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } diff --git a/patches/server/0004-PlayerFeedAnimalEvent.patch b/patches/server/0004-PlayerFeedAnimalEvent.patch index 625c92f27..efdd53135 100644 --- a/patches/server/0004-PlayerFeedAnimalEvent.patch +++ b/patches/server/0004-PlayerFeedAnimalEvent.patch @@ -1,4 +1,4 @@ -From 85502589238590465c50bdff0c2283ce3b021fa4 Mon Sep 17 00:00:00 2001 +From c104ebc514f96b6289079924d701f44951f29305 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 3 May 2019 23:39:38 -0500 Subject: [PATCH] PlayerFeedAnimalEvent @@ -8,10 +8,10 @@ Subject: [PATCH] PlayerFeedAnimalEvent 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityAnimal.java b/src/main/java/net/minecraft/server/EntityAnimal.java -index dbce8a866..8a4594654 100644 +index eab32ec041..38920dab9e 100644 --- a/src/main/java/net/minecraft/server/EntityAnimal.java +++ b/src/main/java/net/minecraft/server/EntityAnimal.java -@@ -110,6 +110,7 @@ public abstract class EntityAnimal extends EntityAgeable { +@@ -103,6 +103,7 @@ public abstract class EntityAnimal extends EntityAgeable { return 1 + this.world.random.nextInt(3); } @@ -19,13 +19,13 @@ index dbce8a866..8a4594654 100644 public boolean i(ItemStack itemstack) { return itemstack.getItem() == Items.WHEAT; } -@@ -118,7 +119,7 @@ public abstract class EntityAnimal extends EntityAgeable { +@@ -111,7 +112,7 @@ public abstract class EntityAnimal extends EntityAgeable { public boolean a(EntityHuman entityhuman, EnumHand enumhand) { ItemStack itemstack = entityhuman.b(enumhand); - if (this.i(itemstack)) { -+ if (this.isBreedingItem(itemstack) && new net.pl3x.purpur.event.PlayerFeedAnimalEvent((org.bukkit.entity.Animals) getBukkitEntity(), (org.bukkit.entity.Player) entityhuman.getBukkitEntity(), itemstack.asBukkitCopy()).callEvent()) { // Purpur - if (this.getAge() == 0 && this.ea()) { ++ if (this.i(itemstack) && new net.pl3x.purpur.event.PlayerFeedAnimalEvent((org.bukkit.entity.Animals) getBukkitEntity(), (org.bukkit.entity.Player) entityhuman.getBukkitEntity(), itemstack.asBukkitCopy()).callEvent()) { // Purpur + if (this.getAge() == 0 && this.eb()) { this.a(entityhuman, itemstack); this.f(entityhuman); -- diff --git a/patches/server/0006-Fix-cow-rotation-when-shearing-mooshroom.patch b/patches/server/0006-Fix-cow-rotation-when-shearing-mooshroom.patch index 171958f75..0c15ef052 100644 --- a/patches/server/0006-Fix-cow-rotation-when-shearing-mooshroom.patch +++ b/patches/server/0006-Fix-cow-rotation-when-shearing-mooshroom.patch @@ -1,4 +1,4 @@ -From 6e9f28ddbb366425610b4608758b4f256aa9dc4f Mon Sep 17 00:00:00 2001 +From 87a60fa232ee8a521f6d3b8e1d9b27f21ecec0af Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 3 May 2019 23:53:16 -0500 Subject: [PATCH] Fix cow rotation when shearing mooshroom @@ -8,10 +8,10 @@ Subject: [PATCH] Fix cow rotation when shearing mooshroom 1 file changed, 6 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java -index 76712996f..d2de3589a 100644 +index d1059355ad..6bfffb4077 100644 --- a/src/main/java/net/minecraft/server/EntityMushroomCow.java +++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java -@@ -92,7 +92,13 @@ public class EntityMushroomCow extends EntityCow { +@@ -101,7 +101,13 @@ public class EntityMushroomCow extends EntityCow { entitycow.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, this.pitch); entitycow.setHealth(this.getHealth()); diff --git a/patches/server/0008-Implement-LivingEntity-safeFallDistance.patch b/patches/server/0008-Implement-LivingEntity-safeFallDistance.patch index 23e88108e..332804a79 100644 --- a/patches/server/0008-Implement-LivingEntity-safeFallDistance.patch +++ b/patches/server/0008-Implement-LivingEntity-safeFallDistance.patch @@ -1,4 +1,4 @@ -From 88a11594846770c4b43a2c61019044db0c1303a2 Mon Sep 17 00:00:00 2001 +From 4197a16281fc9dfa77cd5f5ed098db1fe2fdfe79 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 5 May 2019 12:58:45 -0500 Subject: [PATCH] Implement LivingEntity safeFallDistance @@ -26,7 +26,7 @@ index d9e5eaad12..bcbade19ea 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index 8ce2fca806..686bca4f2c 100644 +index b06bbc45cf..e08eaddef3 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java @@ -179,7 +179,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @@ -39,7 +39,7 @@ index 8ce2fca806..686bca4f2c 100644 if (i > 0) { this.damageEntity(DamageSource.FALL, (float) i); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 17ee1c3eb7..9ba7a16102 100644 +index d44ea9ec5d..c2d83bf3eb 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -122,6 +122,7 @@ public abstract class EntityLiving extends Entity { @@ -50,7 +50,7 @@ index 17ee1c3eb7..9ba7a16102 100644 boolean forceDrops; ArrayList drops = new ArrayList(); public org.bukkit.craftbukkit.attribute.CraftAttributeMap craftAttributes; -@@ -1528,7 +1529,7 @@ public abstract class EntityLiving extends Entity { +@@ -1530,7 +1531,7 @@ public abstract class EntityLiving extends Entity { super.b(f, f1); MobEffect mobeffect = this.getEffect(MobEffects.JUMP); float f2 = mobeffect == null ? 0.0F : (float) (mobeffect.getAmplifier() + 1); @@ -60,7 +60,7 @@ index 17ee1c3eb7..9ba7a16102 100644 if (i > 0) { // CraftBukkit start diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java -index 6404b32b24..f8a8da6372 100644 +index 156a70a6cd..75616ac878 100644 --- a/src/main/java/net/minecraft/server/EntityLlama.java +++ b/src/main/java/net/minecraft/server/EntityLlama.java @@ -344,7 +344,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn diff --git a/patches/server/0009-Silk-touch-spawners.patch b/patches/server/0009-Silk-touch-spawners.patch index aa4987e05..cfdfef58b 100644 --- a/patches/server/0009-Silk-touch-spawners.patch +++ b/patches/server/0009-Silk-touch-spawners.patch @@ -1,4 +1,4 @@ -From c7c4b4cb423efb7af5bf71d0c2111a7b8adadf18 Mon Sep 17 00:00:00 2001 +From 38e634bad7487c17e998ca79edc18ca82da1dd1b Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 9 May 2019 14:27:37 -0500 Subject: [PATCH] Silk touch spawners @@ -13,7 +13,7 @@ Subject: [PATCH] Silk touch spawners create mode 100644 src/main/java/net/minecraft/server/ItemSpawner.java diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java -index 8f809a4ee4..44348130a2 100644 +index 5d8db912a6..8e16162a7b 100644 --- a/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java @@ -493,6 +493,7 @@ public class Block implements IMaterial { @@ -22,7 +22,7 @@ index 8f809a4ee4..44348130a2 100644 + public static void dropItem(World world, BlockPosition blockposition, ItemStack itemstack) { a(world, blockposition, itemstack); } // Purpur - OBFHELPER public static void a(World world, BlockPosition blockposition, ItemStack itemstack) { - if (!world.isClientSide && !itemstack.isEmpty() && world.getGameRules().getBoolean("doTileDrops")) { + if (!world.isClientSide && !itemstack.isEmpty() && world.getGameRules().getBoolean(GameRules.DO_TILE_DROPS)) { float f = 0.5F; diff --git a/src/main/java/net/minecraft/server/BlockMobSpawner.java b/src/main/java/net/minecraft/server/BlockMobSpawner.java index bb77d916ab..974a5d2816 100644 @@ -78,7 +78,7 @@ index bb77d916ab..974a5d2816 100644 return i; diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index 77d4bbce19..fb0c6bce03 100644 +index eaacc9bff8..ec63f1dbe1 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java @@ -137,6 +137,12 @@ public class EntityTypes { diff --git a/patches/server/0011-Integrate-ridables.patch b/patches/server/0011-Integrate-ridables.patch index ebb6ed1b8..5c30a59ce 100644 --- a/patches/server/0011-Integrate-ridables.patch +++ b/patches/server/0011-Integrate-ridables.patch @@ -1,4 +1,4 @@ -From b6ebb204ace8f0e1cf99dd9a7bb002a41ef5c096 Mon Sep 17 00:00:00 2001 +From b515e212f65d06776d89622a0a1ae9a4d19ab25a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 30 Apr 2019 19:17:21 -0500 Subject: [PATCH] Integrate ridables @@ -22,7 +22,7 @@ Subject: [PATCH] Integrate ridables .../net/minecraft/server/EntityEndermite.java | 3 +- .../net/minecraft/server/EntityEvoker.java | 6 +- .../java/net/minecraft/server/EntityFish.java | 21 ++-- - .../java/net/minecraft/server/EntityFox.java | 87 +++++++++++-- + .../java/net/minecraft/server/EntityFox.java | 85 +++++++++++-- .../net/minecraft/server/EntityGhast.java | 8 +- .../minecraft/server/EntityGiantZombie.java | 2 + .../net/minecraft/server/EntityGuardian.java | 29 ++++- @@ -37,13 +37,13 @@ Subject: [PATCH] Integrate ridables .../net/minecraft/server/EntityMagmaCube.java | 3 +- .../minecraft/server/EntityMushroomCow.java | 1 + .../net/minecraft/server/EntityOcelot.java | 3 + - .../net/minecraft/server/EntityPanda.java | 41 +++++- + .../net/minecraft/server/EntityPanda.java | 42 ++++++- .../net/minecraft/server/EntityParrot.java | 5 +- .../net/minecraft/server/EntityPhantom.java | 41 +++++- .../java/net/minecraft/server/EntityPig.java | 34 +++-- .../net/minecraft/server/EntityPigZombie.java | 4 +- .../net/minecraft/server/EntityPillager.java | 1 + - .../net/minecraft/server/EntityPolarBear.java | 31 +++++ + .../net/minecraft/server/EntityPolarBear.java | 28 +++++ .../minecraft/server/EntityPufferFish.java | 3 + .../net/minecraft/server/EntityRabbit.java | 3 +- .../net/minecraft/server/EntityRaider.java | 5 + @@ -134,7 +134,7 @@ Subject: [PATCH] Integrate ridables .../controller/ControllerMoveWASDWater.java | 42 +++++++ .../craftbukkit/entity/CraftLivingEntity.java | 10 ++ .../bukkit/craftbukkit/entity/CraftMob.java | 12 ++ - 130 files changed, 1240 insertions(+), 107 deletions(-) + 130 files changed, 1237 insertions(+), 106 deletions(-) create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java @@ -163,7 +163,7 @@ index 454627f65e..df3d6cf281 100644 this.d = false; this.a.aM = this.a(this.a.aM, this.h() + 20.0F, this.b); diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 352b6dfb3e..250fec699a 100644 +index 485da37a73..ca429be7db 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -78,6 +78,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke @@ -193,7 +193,7 @@ index 352b6dfb3e..250fec699a 100644 public boolean noclip; public float M; protected final Random random; -@@ -2075,7 +2078,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2124,7 +2127,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke } else { this.passengers.add(entity); } @@ -208,7 +208,7 @@ index 352b6dfb3e..250fec699a 100644 } return true; // CraftBukkit } -@@ -2110,6 +2119,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -2159,6 +2168,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke return false; } // Spigot end @@ -221,7 +221,7 @@ index 352b6dfb3e..250fec699a 100644 this.passengers.remove(entity); entity.j = 60; } -@@ -3221,4 +3236,20 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke +@@ -3272,4 +3287,20 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public void setMot(double d0, double d1, double d2) { this.setMot(new Vec3D(d0, d1, d2)); } @@ -256,18 +256,18 @@ index e87754ef33..553245ebe9 100644 } diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java -index 4c283c33b5..3175f6062b 100644 +index e5d8fe2534..7b9dff70e3 100644 --- a/src/main/java/net/minecraft/server/EntityBat.java +++ b/src/main/java/net/minecraft/server/EntityBat.java -@@ -3,6 +3,7 @@ package net.minecraft.server; - import java.time.LocalDate; +@@ -4,6 +4,7 @@ import java.time.LocalDate; import java.time.temporal.ChronoField; + import java.util.Random; import javax.annotation.Nullable; + import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit public class EntityBat extends EntityAmbient { -@@ -13,6 +14,10 @@ public class EntityBat extends EntityAmbient { +@@ -14,6 +15,10 @@ public class EntityBat extends EntityAmbient { public EntityBat(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -278,7 +278,7 @@ index 4c283c33b5..3175f6062b 100644 this.setAsleep(true); } -@@ -94,6 +99,13 @@ public class EntityBat extends EntityAmbient { +@@ -95,6 +100,13 @@ public class EntityBat extends EntityAmbient { @Override protected void mobTick() { @@ -292,7 +292,7 @@ index 4c283c33b5..3175f6062b 100644 super.mobTick(); BlockPosition blockposition = new BlockPosition(this); BlockPosition blockposition1 = blockposition.up(); -@@ -229,4 +241,14 @@ public class EntityBat extends EntityAmbient { +@@ -227,4 +239,14 @@ public class EntityBat extends EntityAmbient { protected float b(EntityPose entitypose, EntitySize entitysize) { return entitysize.height / 2.0F; } @@ -308,7 +308,7 @@ index 4c283c33b5..3175f6062b 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityBlaze.java b/src/main/java/net/minecraft/server/EntityBlaze.java -index 15db67de07..325c642f13 100644 +index 89f1bfa41d..6dba5eecc8 100644 --- a/src/main/java/net/minecraft/server/EntityBlaze.java +++ b/src/main/java/net/minecraft/server/EntityBlaze.java @@ -10,6 +10,10 @@ public class EntityBlaze extends EntityMonster { @@ -346,24 +346,24 @@ index 15db67de07..325c642f13 100644 --this.c; if (this.c <= 0) { this.c = 100; -@@ -147,6 +159,7 @@ public class EntityBlaze extends EntityMonster { +@@ -143,6 +155,7 @@ public class EntityBlaze extends EntityMonster { @Override public boolean a() { + if (this.a.getRider() != null) return false; // Purpur EntityLiving entityliving = this.a.getGoalTarget(); - return entityliving != null && entityliving.isAlive(); + return entityliving != null && entityliving.isAlive() && this.a.c(entityliving); diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java -index 7199830772..ed18dedd6d 100644 +index feb3e4b59d..51c1f30a47 100644 --- a/src/main/java/net/minecraft/server/EntityCat.java +++ b/src/main/java/net/minecraft/server/EntityCat.java @@ -16,7 +16,7 @@ public class EntityCat extends EntityTameableAnimal { + private static final DataWatcherObject bF = DataWatcher.a(EntityCat.class, DataWatcherRegistry.i); private static final DataWatcherObject bG = DataWatcher.a(EntityCat.class, DataWatcherRegistry.i); - private static final DataWatcherObject bH = DataWatcher.a(EntityCat.class, DataWatcherRegistry.i); - private static final DataWatcherObject bI = DataWatcher.a(EntityCat.class, DataWatcherRegistry.b); -- public static final Map bD = (Map) SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error -+ public static final Map bD = SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error + private static final DataWatcherObject bH = DataWatcher.a(EntityCat.class, DataWatcherRegistry.b); +- public static final Map bC = (Map) SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error ++ public static final Map bC = SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error hashmap.put(0, new MinecraftKey("textures/entity/cat/tabby.png")); hashmap.put(1, new MinecraftKey("textures/entity/cat/black.png")); hashmap.put(2, new MinecraftKey("textures/entity/cat/red.png")); @@ -374,7 +374,7 @@ index 7199830772..ed18dedd6d 100644 + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableCat; // Purpur } - public MinecraftKey ee() { + public MinecraftKey ef() { @@ -196,7 +197,7 @@ public class EntityCat extends EntityTameableAnimal { @Override @@ -489,7 +489,7 @@ index 89c9306df5..e9ec283625 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java -index a374c30519..2ea87eee5b 100644 +index f1dfdd4ff8..6342c4cd23 100644 --- a/src/main/java/net/minecraft/server/EntityChicken.java +++ b/src/main/java/net/minecraft/server/EntityChicken.java @@ -13,6 +13,7 @@ public class EntityChicken extends EntityAnimal { @@ -503,7 +503,7 @@ index a374c30519..2ea87eee5b 100644 @@ -65,7 +66,7 @@ public class EntityChicken extends EntityAnimal { } - this.bz += this.bE * 2.0F; + this.bz += this.bD * 2.0F; - if (!this.world.isClientSide && this.isAlive() && !this.isBaby() && !this.isChickenJockey() && --this.eggLayTime <= 0) { + if (!this.world.isClientSide && this.isAlive() && !this.isBaby() && !this.isChickenJockey() && --this.eggLayTime <= 0 && getRider() == null) { // Purpur this.a(SoundEffects.ENTITY_CHICKEN_EGG, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); @@ -534,7 +534,7 @@ index f053ff0e50..16a35418f2 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java -index 165b07e142..38ad629e47 100644 +index 6bb63b9f90..a8ef0c0223 100644 --- a/src/main/java/net/minecraft/server/EntityCreeper.java +++ b/src/main/java/net/minecraft/server/EntityCreeper.java @@ -20,6 +20,7 @@ public class EntityCreeper extends EntityMonster { @@ -545,7 +545,7 @@ index 165b07e142..38ad629e47 100644 } @Override -@@ -275,4 +276,59 @@ public class EntityCreeper extends EntityMonster { +@@ -274,4 +275,59 @@ public class EntityCreeper extends EntityMonster { public void setCausedHeadDrop() { ++this.bD; } @@ -606,10 +606,10 @@ index 165b07e142..38ad629e47 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java -index 04060bb3ef..091c2b2c4d 100644 +index 662624b727..9a3b46b4b9 100644 --- a/src/main/java/net/minecraft/server/EntityDolphin.java +++ b/src/main/java/net/minecraft/server/EntityDolphin.java -@@ -17,6 +17,7 @@ public class EntityDolphin extends EntityWaterAnimal { +@@ -18,6 +18,7 @@ public class EntityDolphin extends EntityWaterAnimal { public EntityDolphin(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -622,7 +622,7 @@ index 04060bb3ef..091c2b2c4d 100644 @Override public boolean a() { + if (this.a.getRider() != null) return false; // Purpur - return this.a.dV() && this.a.getAirTicks() >= 100; + return this.a.dW() && this.a.getAirTicks() >= 100; } @Override @@ -630,7 +630,7 @@ index 04060bb3ef..091c2b2c4d 100644 + if (this.a.getRider() != null) return false; // Purpur BlockPosition blockposition = this.a.l(); - return !(new BlockPosition((double) blockposition.getX(), this.a.locY, (double) blockposition.getZ())).a((IPosition) this.a.ch(), 4.0D) && !this.b && this.a.getAirTicks() >= 100; + return !(new BlockPosition((double) blockposition.getX(), this.a.locY, (double) blockposition.getZ())).a((IPosition) this.a.ci(), 4.0D) && !this.b && this.a.getAirTicks() >= 100; @@ -416,12 +419,14 @@ public class EntityDolphin extends EntityWaterAnimal { @Override @@ -687,7 +687,7 @@ index 04060bb3ef..091c2b2c4d 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 7f34cdbc34..d78eaaf1a2 100644 +index 158c05d1e1..4422d19751 100644 --- a/src/main/java/net/minecraft/server/EntityDrowned.java +++ b/src/main/java/net/minecraft/server/EntityDrowned.java @@ -12,6 +12,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { @@ -698,7 +698,7 @@ index 7f34cdbc34..d78eaaf1a2 100644 this.K = 1.0F; this.moveController = new EntityDrowned.d(this); this.a(PathType.WATER, 0.0F); -@@ -205,7 +206,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -200,7 +201,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { this.bz = flag; } @@ -707,7 +707,7 @@ index 7f34cdbc34..d78eaaf1a2 100644 private final EntityDrowned i; -@@ -215,7 +216,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -210,7 +211,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { } @Override @@ -715,8 +715,8 @@ index 7f34cdbc34..d78eaaf1a2 100644 + public void tick() { // Purpur EntityLiving entityliving = this.i.getGoalTarget(); - if (this.i.eg() && this.i.isInWater()) { -@@ -248,7 +249,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { + if (this.i.ef() && this.i.isInWater()) { +@@ -243,7 +244,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { this.i.setMot(this.i.getMot().add(0.0D, -0.008D, 0.0D)); } @@ -725,7 +725,7 @@ index 7f34cdbc34..d78eaaf1a2 100644 } } -@@ -265,11 +266,13 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -260,11 +261,13 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { @Override public boolean a() { @@ -739,7 +739,7 @@ index 7f34cdbc34..d78eaaf1a2 100644 return super.b() && this.d.h(this.d.getGoalTarget()); } } -@@ -292,6 +295,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -287,6 +290,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { @Override public boolean a() { @@ -747,7 +747,7 @@ index 7f34cdbc34..d78eaaf1a2 100644 if (!this.f.J()) { return false; } else if (this.a.isInWater()) { -@@ -312,6 +316,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -307,6 +311,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { @Override public boolean b() { @@ -755,7 +755,7 @@ index 7f34cdbc34..d78eaaf1a2 100644 return !this.a.getNavigation().n(); } -@@ -348,11 +353,13 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -343,11 +348,13 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { @Override public boolean a() { @@ -769,7 +769,7 @@ index 7f34cdbc34..d78eaaf1a2 100644 return super.b(); } -@@ -391,11 +398,13 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -386,11 +393,13 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { @Override public boolean a() { @@ -783,7 +783,7 @@ index 7f34cdbc34..d78eaaf1a2 100644 return this.a() && !this.d; } -@@ -437,6 +446,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -432,6 +441,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { @Override public boolean a() { @@ -792,7 +792,7 @@ index 7f34cdbc34..d78eaaf1a2 100644 } diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java -index 29fa1d1df1..484a4bc455 100644 +index bec173e411..72226d4c4d 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 { @@ -804,7 +804,7 @@ index 29fa1d1df1..484a4bc455 100644 this.setHealth(this.getMaxHealth()); this.noclip = true; diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java -index d4c4dc2fdc..75ea357a76 100644 +index 0989c07cf5..f551192a04 100644 --- a/src/main/java/net/minecraft/server/EntityEnderman.java +++ b/src/main/java/net/minecraft/server/EntityEnderman.java @@ -22,6 +22,7 @@ public class EntityEnderman extends EntityMonster { @@ -820,7 +820,7 @@ index d4c4dc2fdc..75ea357a76 100644 @Override public boolean a() { + if (this.enderman.getRider() != null) return false; // Purpur - return this.enderman.getCarried() != null ? false : (!this.enderman.world.getGameRules().getBoolean("mobGriefing") ? false : this.enderman.getRandom().nextInt(20) == 0); + return this.enderman.getCarried() != null ? false : (!this.enderman.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) ? false : this.enderman.getRandom().nextInt(20) == 0); } @@ -357,6 +359,7 @@ public class EntityEnderman extends EntityMonster { @@ -828,7 +828,7 @@ index d4c4dc2fdc..75ea357a76 100644 @Override public boolean a() { + if (this.a.getRider() != null) return false; // Purpur - return this.a.getCarried() == null ? false : (!this.a.world.getGameRules().getBoolean("mobGriefing") ? false : this.a.getRandom().nextInt(2000) == 0); + return this.a.getCarried() == null ? false : (!this.a.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) ? false : this.a.getRandom().nextInt(2000) == 0); } @@ -401,6 +404,7 @@ public class EntityEnderman extends EntityMonster { @@ -856,10 +856,10 @@ index d4c4dc2fdc..75ea357a76 100644 if (!this.i.f(this.j)) { return false; diff --git a/src/main/java/net/minecraft/server/EntityEndermite.java b/src/main/java/net/minecraft/server/EntityEndermite.java -index 10b0f96531..b191539d7a 100644 +index 41107e9784..6d04a4ee49 100644 --- a/src/main/java/net/minecraft/server/EntityEndermite.java +++ b/src/main/java/net/minecraft/server/EntityEndermite.java -@@ -8,6 +8,7 @@ public class EntityEndermite extends EntityMonster { +@@ -10,6 +10,7 @@ public class EntityEndermite extends EntityMonster { public EntityEndermite(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -867,7 +867,7 @@ index 10b0f96531..b191539d7a 100644 this.f = 3; } -@@ -18,7 +19,7 @@ public class EntityEndermite extends EntityMonster { +@@ -20,7 +21,7 @@ public class EntityEndermite extends EntityMonster { this.goalSelector.a(3, new PathfinderGoalRandomStrollLand(this, 1.0D)); this.goalSelector.a(7, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F)); this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this)); @@ -877,7 +877,7 @@ index 10b0f96531..b191539d7a 100644 } diff --git a/src/main/java/net/minecraft/server/EntityEvoker.java b/src/main/java/net/minecraft/server/EntityEvoker.java -index 026847dff2..0402af0bcd 100644 +index 96dab0a46b..ae0e134d9b 100644 --- a/src/main/java/net/minecraft/server/EntityEvoker.java +++ b/src/main/java/net/minecraft/server/EntityEvoker.java @@ -9,6 +9,7 @@ public class EntityEvoker extends EntityIllagerWizard { @@ -922,10 +922,10 @@ index 026847dff2..0402af0bcd 100644 return false; } else { diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java -index a28fbdf1e0..ee26648d8a 100644 +index 2b97e92eb4..b857b08821 100644 --- a/src/main/java/net/minecraft/server/EntityFish.java +++ b/src/main/java/net/minecraft/server/EntityFish.java -@@ -75,11 +75,7 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -73,11 +73,7 @@ public abstract class EntityFish extends EntityWaterAnimal { protected void initPathfinder() { super.initPathfinder(); this.goalSelector.a(0, new PathfinderGoalPanic(this, 1.25D)); @@ -938,16 +938,16 @@ index a28fbdf1e0..ee26648d8a 100644 this.goalSelector.a(4, new EntityFish.b(this)); } -@@ -91,7 +87,7 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -89,7 +85,7 @@ public abstract class EntityFish extends EntityWaterAnimal { @Override public void e(Vec3D vec3d) { - if (this.de() && this.isInWater()) { + if (this.df() && this.isInWater()) { - this.a(0.01F, vec3d); + this.a(getRider() == null ? 0.1F : getSpeed(), vec3d); // Purpur this.move(EnumMoveType.SELF, this.getMot()); this.setMot(this.getMot().a(0.9D)); if (this.getGoalTarget() == null) { -@@ -162,7 +158,7 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -160,7 +156,7 @@ public abstract class EntityFish extends EntityWaterAnimal { return SoundEffects.ENTITY_FISH_SWIM; } @@ -956,7 +956,7 @@ index a28fbdf1e0..ee26648d8a 100644 private final EntityFish i; -@@ -171,8 +167,16 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -169,8 +165,16 @@ public abstract class EntityFish extends EntityWaterAnimal { this.i = entityfish; } @@ -974,16 +974,16 @@ index a28fbdf1e0..ee26648d8a 100644 if (this.i.a(TagsFluid.WATER)) { this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D)); } -@@ -209,6 +213,7 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -207,6 +211,7 @@ public abstract class EntityFish extends EntityWaterAnimal { @Override public boolean a() { + if (this.h.getRider() != null) return false; // Purpur - return this.h.dV() && super.a(); + return this.h.dW() && super.a(); } } diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java -index b363e9ce99..0352e8da94 100644 +index f9ba3b8561..4876289992 100644 --- a/src/main/java/net/minecraft/server/EntityFox.java +++ b/src/main/java/net/minecraft/server/EntityFox.java @@ -48,6 +48,7 @@ public class EntityFox extends EntityAnimal { @@ -1019,7 +1019,7 @@ index b363e9ce99..0352e8da94 100644 Item item = itemstack.getItem(); ItemStack itemstack1 = this.getEquipment(EnumItemSlot.MAINHAND); - return itemstack1.isEmpty() || this.bP > 0 && item.isFood() && !itemstack1.getItem().isFood(); + return itemstack1.isEmpty() || this.bO > 0 && item.isFood() && !itemstack1.getItem().isFood(); } + public void spit(ItemStack itemstack) { k(itemstack); } // Purpur - OBFHELPER @@ -1027,7 +1027,7 @@ index b363e9ce99..0352e8da94 100644 if (!itemstack.isEmpty() && !this.world.isClientSide) { EntityItem entityitem = new EntityItem(this.world, this.locX + this.getLookDirection().x, this.locY + 1.0D, this.locZ + this.getLookDirection().z, itemstack); @@ -473,6 +477,7 @@ public class EntityFox extends EntityAnimal { - return this.r(16); + return this.s(16); } + public void setChasing(boolean flag) { s(flag); } // Purpur - OBFHELPER @@ -1038,16 +1038,16 @@ index b363e9ce99..0352e8da94 100644 this.setSleeping(false); } -+ public void stopActions() { en(); } // Purpur - OBFHELPER - private void en() { ++ public void stopActions() { eo(); } // Purpur - OBFHELPER + private void eo() { this.u(false); this.setCrouching(false); @@ -547,7 +553,7 @@ public class EntityFox extends EntityAnimal { } - private boolean eo() { -- return !this.isSleeping() && !this.isSitting() && !this.dX(); -+ return getRider() == null && !this.isSleeping() && !this.isSitting() && !this.dX(); // Purpur + private boolean ep() { +- return !this.isSleeping() && !this.isSitting() && !this.dY(); ++ return getRider() == null && !this.isSleeping() && !this.isSitting() && !this.dY(); // Purpur } @Override @@ -1057,8 +1057,8 @@ index b363e9ce99..0352e8da94 100644 + // Purpur start + @Override -+ public float cW() { -+ return getRider() == null ? super.cW() : 0.5F; ++ public float cX() { ++ return getRider() == null ? super.cX() : 0.5F; + } + + @Override @@ -1087,13 +1087,13 @@ index b363e9ce99..0352e8da94 100644 @Override public boolean a() { + if (EntityFox.this.getRider() != null) return false; // Purpur - return super.a() && !EntityFox.this.dX() && !EntityFox.this.eg(); + return super.a() && !EntityFox.this.dY() && !EntityFox.this.eh(); } @Override public boolean b() { + if (EntityFox.this.getRider() != null) return false; // Purpur - return super.b() && !EntityFox.this.dX() && !EntityFox.this.eg(); + return super.b() && !EntityFox.this.dY() && !EntityFox.this.eh(); } } @@ -666,11 +697,13 @@ public class EntityFox extends EntityAnimal { @@ -1101,13 +1101,13 @@ index b363e9ce99..0352e8da94 100644 @Override public boolean a() { + if (EntityFox.this.getRider() != null) return false; // Purpur - return !this.b.el() && super.a(); + return !this.b.em() && super.a(); } @Override public boolean b() { + if (EntityFox.this.getRider() != null) return false; // Purpur - return !this.b.el() && super.b(); + return !this.b.em() && super.b(); } @@ -681,16 +714,16 @@ public class EntityFox extends EntityAnimal { @@ -1135,7 +1135,7 @@ index b363e9ce99..0352e8da94 100644 @Override public boolean a() { + if (EntityFox.this.getRider() != null) return false; // Purpur - if (!EntityFox.this.ee()) { + if (!EntityFox.this.ef()) { return false; } else { @@ -734,6 +768,7 @@ public class EntityFox extends EntityAnimal { @@ -1165,7 +1165,7 @@ index b363e9ce99..0352e8da94 100644 @Override public boolean a() { + if (EntityFox.this.getRider() != null) return false; // Purpur - return !EntityFox.this.el() && super.a(); + return !EntityFox.this.em() && super.a(); } } @@ -872,6 +910,7 @@ public class EntityFox extends EntityAnimal { @@ -1173,7 +1173,7 @@ index b363e9ce99..0352e8da94 100644 @Override public boolean a() { + if (EntityFox.this.getRider() != null) return false; // Purpur - return EntityFox.this.dX(); + return EntityFox.this.dY(); } @@ -979,6 +1018,7 @@ public class EntityFox extends EntityAnimal { @@ -1188,9 +1188,8 @@ index b363e9ce99..0352e8da94 100644 @Override public boolean a() { -- return EntityFox.this.getLastDamager() == null && EntityFox.this.getRandom().nextFloat() < 0.02F && !EntityFox.this.isSleeping() && EntityFox.this.getGoalTarget() == null && EntityFox.this.getNavigation().n() && !this.h() && !EntityFox.this.dY() && !EntityFox.this.isCrouching(); + if (EntityFox.this.getRider() != null) return false; // Purpur -+ return getRider() == null && EntityFox.this.getLastDamager() == null && EntityFox.this.getRandom().nextFloat() < 0.02F && !EntityFox.this.isSleeping() && EntityFox.this.getGoalTarget() == null && EntityFox.this.getNavigation().n() && !this.h() && !EntityFox.this.dY() && !EntityFox.this.isCrouching(); // Purpur + return EntityFox.this.getLastDamager() == null && EntityFox.this.getRandom().nextFloat() < 0.02F && !EntityFox.this.isSleeping() && EntityFox.this.getGoalTarget() == null && EntityFox.this.getNavigation().n() && !this.h() && !EntityFox.this.dZ() && !EntityFox.this.isCrouching(); } @Override @@ -1255,7 +1254,7 @@ index b363e9ce99..0352e8da94 100644 @Override public boolean a() { + if (EntityFox.this.getRider() != null) return false; // Purpur - return !EntityFox.this.isSitting() && !EntityFox.this.isSleeping() && !EntityFox.this.isCrouching() && !EntityFox.this.dX() && super.a(); + return !EntityFox.this.isSitting() && !EntityFox.this.isSleeping() && !EntityFox.this.isCrouching() && !EntityFox.this.dY() && super.a(); } + + // Purpur start @@ -1288,7 +1287,7 @@ index b363e9ce99..0352e8da94 100644 @Override - public void a() { + public void tick() { // Purpur - if (EntityFox.this.eo()) { + if (EntityFox.this.ep()) { - super.a(); + super.tick(); // Purpur } @@ -1303,7 +1302,7 @@ index b363e9ce99..0352e8da94 100644 return false; } else if (EntityFox.this.getGoalTarget() == null && EntityFox.this.getLastDamager() == null) { diff --git a/src/main/java/net/minecraft/server/EntityGhast.java b/src/main/java/net/minecraft/server/EntityGhast.java -index 55b96c4d2e..10df4e5b07 100644 +index bf29faa8a3..54899d2990 100644 --- a/src/main/java/net/minecraft/server/EntityGhast.java +++ b/src/main/java/net/minecraft/server/EntityGhast.java @@ -10,6 +10,7 @@ public class EntityGhast extends EntityFlying implements IMonster { @@ -1314,7 +1313,7 @@ index 55b96c4d2e..10df4e5b07 100644 this.f = 5; this.moveController = new EntityGhast.ControllerGhast(this); } -@@ -132,6 +133,7 @@ public class EntityGhast extends EntityFlying implements IMonster { +@@ -131,6 +132,7 @@ public class EntityGhast extends EntityFlying implements IMonster { @Override public boolean a() { @@ -1322,7 +1321,7 @@ index 55b96c4d2e..10df4e5b07 100644 return this.ghast.getGoalTarget() != null; } -@@ -195,6 +197,7 @@ public class EntityGhast extends EntityFlying implements IMonster { +@@ -194,6 +196,7 @@ public class EntityGhast extends EntityFlying implements IMonster { @Override public boolean a() { @@ -1330,7 +1329,7 @@ index 55b96c4d2e..10df4e5b07 100644 return true; } -@@ -232,6 +235,7 @@ public class EntityGhast extends EntityFlying implements IMonster { +@@ -231,6 +234,7 @@ public class EntityGhast extends EntityFlying implements IMonster { @Override public boolean a() { @@ -1338,7 +1337,7 @@ index 55b96c4d2e..10df4e5b07 100644 ControllerMove controllermove = this.a.getControllerMove(); if (!controllermove.b()) { -@@ -262,7 +266,7 @@ public class EntityGhast extends EntityFlying implements IMonster { +@@ -261,7 +265,7 @@ public class EntityGhast extends EntityFlying implements IMonster { } } @@ -1347,7 +1346,7 @@ index 55b96c4d2e..10df4e5b07 100644 private final EntityGhast i; private int j; -@@ -273,7 +277,7 @@ public class EntityGhast extends EntityFlying implements IMonster { +@@ -272,7 +276,7 @@ public class EntityGhast extends EntityFlying implements IMonster { } @Override @@ -1371,10 +1370,10 @@ index bcbade19ea..b7e2022b19 100644 } diff --git a/src/main/java/net/minecraft/server/EntityGuardian.java b/src/main/java/net/minecraft/server/EntityGuardian.java -index 335416d962..03b536c48e 100644 +index 31db5b5254..6c46756d49 100644 --- a/src/main/java/net/minecraft/server/EntityGuardian.java +++ b/src/main/java/net/minecraft/server/EntityGuardian.java -@@ -22,8 +22,15 @@ public class EntityGuardian extends EntityMonster { +@@ -23,8 +23,15 @@ public class EntityGuardian extends EntityMonster { super(entitytypes, world); this.f = 10; this.moveController = new EntityGuardian.ControllerMoveGuardian(this); @@ -1392,7 +1391,7 @@ index 335416d962..03b536c48e 100644 } @Override -@@ -77,6 +84,7 @@ public class EntityGuardian extends EntityMonster { +@@ -78,6 +85,7 @@ public class EntityGuardian extends EntityMonster { return (Boolean) this.datawatcher.get(EntityGuardian.b); } @@ -1400,16 +1399,16 @@ index 335416d962..03b536c48e 100644 private void r(boolean flag) { this.datawatcher.set(EntityGuardian.b, flag); } -@@ -302,7 +310,7 @@ public class EntityGuardian extends EntityMonster { +@@ -292,7 +300,7 @@ public class EntityGuardian extends EntityMonster { @Override public void e(Vec3D vec3d) { - if (this.de() && this.isInWater()) { + if (this.df() && this.isInWater()) { - this.a(0.1F, vec3d); + this.a(getRider() == null ? 0.1F : getSpeed(), vec3d); // Purpur this.move(EnumMoveType.SELF, this.getMot()); this.setMot(this.getMot().a(0.9D)); if (!this.dY() && this.getGoalTarget() == null) { -@@ -314,7 +322,7 @@ public class EntityGuardian extends EntityMonster { +@@ -304,7 +312,7 @@ public class EntityGuardian extends EntityMonster { } @@ -1418,7 +1417,7 @@ index 335416d962..03b536c48e 100644 private final EntityGuardian i; -@@ -324,7 +332,16 @@ public class EntityGuardian extends EntityMonster { +@@ -314,7 +322,16 @@ public class EntityGuardian extends EntityMonster { } @Override @@ -1436,7 +1435,7 @@ index 335416d962..03b536c48e 100644 if (this.h == ControllerMove.Operation.MOVE_TO && !this.i.getNavigation().n()) { Vec3D vec3d = new Vec3D(this.b - this.i.locX, this.c - this.i.locY, this.d - this.i.locZ); double d0 = vec3d.f(); -@@ -382,6 +399,7 @@ public class EntityGuardian extends EntityMonster { +@@ -372,6 +389,7 @@ public class EntityGuardian extends EntityMonster { @Override public boolean a() { @@ -1444,7 +1443,7 @@ index 335416d962..03b536c48e 100644 EntityLiving entityliving = this.a.getGoalTarget(); return entityliving != null && entityliving.isAlive(); -@@ -389,6 +407,7 @@ public class EntityGuardian extends EntityMonster { +@@ -379,6 +397,7 @@ public class EntityGuardian extends EntityMonster { @Override public boolean b() { @@ -1453,7 +1452,7 @@ index 335416d962..03b536c48e 100644 } diff --git a/src/main/java/net/minecraft/server/EntityGuardianElder.java b/src/main/java/net/minecraft/server/EntityGuardianElder.java -index a85a7bf59e..a32f6ee2a3 100644 +index cf53c7a3a1..99eab220c2 100644 --- a/src/main/java/net/minecraft/server/EntityGuardianElder.java +++ b/src/main/java/net/minecraft/server/EntityGuardianElder.java @@ -9,6 +9,7 @@ public class EntityGuardianElder extends EntityGuardian { @@ -1465,7 +1464,7 @@ index a85a7bf59e..a32f6ee2a3 100644 if (this.goalRandomStroll != null) { this.goalRandomStroll.setTimeBetweenMovement(400); diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index 686bca4f2c..f82837bf0b 100644 +index e08eaddef3..6f4e9ed1af 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java @@ -38,6 +38,10 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @@ -1480,7 +1479,7 @@ index 686bca4f2c..f82837bf0b 100644 this.loadChest(); } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index f709e7d87a..b487f37ad4 100644 +index 61da5d365d..8b1f56acc2 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -347,9 +347,21 @@ public abstract class EntityHuman extends EntityLiving { @@ -1535,7 +1534,7 @@ index 76641682b1..8c33634726 100644 } diff --git a/src/main/java/net/minecraft/server/EntityIllagerWizard.java b/src/main/java/net/minecraft/server/EntityIllagerWizard.java -index f8627f818a..a27b14119e 100644 +index 7e0f55d725..0f498df5bd 100644 --- a/src/main/java/net/minecraft/server/EntityIllagerWizard.java +++ b/src/main/java/net/minecraft/server/EntityIllagerWizard.java @@ -115,6 +115,7 @@ public abstract class EntityIllagerWizard extends EntityIllagerAbstract { @@ -1563,10 +1562,10 @@ index f8627f818a..a27b14119e 100644 } diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 48ce154848..35bed55984 100644 +index c73d2ff5da..94f43b1e0d 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -9,6 +9,7 @@ import java.util.UUID; +@@ -10,6 +10,7 @@ import java.util.UUID; import javax.annotation.Nullable; // CraftBukkit start @@ -1574,7 +1573,7 @@ index 48ce154848..35bed55984 100644 import org.bukkit.craftbukkit.event.CraftEventFactory; import org.bukkit.craftbukkit.entity.CraftLivingEntity; import org.bukkit.entity.LivingEntity; -@@ -63,8 +64,11 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -64,8 +65,11 @@ public abstract class EntityInsentient extends EntityLiving { this.bL = -1.0F; this.goalSelector = new PathfinderGoalSelector(world != null && world.getMethodProfiler() != null ? world.getMethodProfiler() : null); this.targetSelector = new PathfinderGoalSelector(world != null && world.getMethodProfiler() != null ? world.getMethodProfiler() : null); @@ -1588,15 +1587,15 @@ index 48ce154848..35bed55984 100644 this.bt = new ControllerJump(this); this.c = this.o(); this.navigation = this.b(world); -@@ -480,6 +484,7 @@ public abstract class EntityInsentient extends EntityLiving { - return super.cF(); +@@ -481,6 +485,7 @@ public abstract class EntityInsentient extends EntityLiving { + return super.cG(); } + public void setForwardSpeed(float speed) { this.r(speed); } // Purpur - OBFHELPER public void r(float f) { this.bd = f; } -@@ -492,6 +497,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -493,6 +498,7 @@ public abstract class EntityInsentient extends EntityLiving { this.bb = f; } @@ -1604,7 +1603,7 @@ index 48ce154848..35bed55984 100644 @Override public void o(float f) { super.o(f); -@@ -1057,7 +1063,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1058,7 +1064,7 @@ public abstract class EntityInsentient extends EntityLiving { } protected boolean a(EntityHuman entityhuman, EnumHand enumhand) { @@ -1612,8 +1611,8 @@ index 48ce154848..35bed55984 100644 + return tryRide(entityhuman, enumhand); // Purpur } - public boolean dH() { -@@ -1355,4 +1361,43 @@ public abstract class EntityInsentient extends EntityLiving { + public boolean dI() { +@@ -1356,4 +1362,43 @@ public abstract class EntityInsentient extends EntityLiving { public boolean a(Item item) { return this.getItemInMainHand().getItem() == item || this.getItemInOffHand().getItem() == item; } @@ -1658,7 +1657,7 @@ index 48ce154848..35bed55984 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java -index bb06d12f6c..41ad48c963 100644 +index 8e463111bb..fd6a926cae 100644 --- a/src/main/java/net/minecraft/server/EntityIronGolem.java +++ b/src/main/java/net/minecraft/server/EntityIronGolem.java @@ -8,6 +8,7 @@ public class EntityIronGolem extends EntityGolem { @@ -1670,7 +1669,7 @@ index bb06d12f6c..41ad48c963 100644 } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 66813756d5..08642e9241 100644 +index c2d83bf3eb..694200deb2 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -87,10 +87,10 @@ public abstract class EntityLiving extends Entity { @@ -1700,15 +1699,15 @@ index 66813756d5..08642e9241 100644 + } + // Purpur end + -+ public boolean canBeRiddenInWater() { return be(); } // Purpur - OBFHELPER ++ public boolean canBeRiddenInWater() { return bf(); } // Purpur - OBFHELPER @Override - public boolean be() { + public boolean bf() { - return false; + return canBeRiddenInWater; // Purpur } - protected void cn() { -@@ -2033,7 +2042,7 @@ public abstract class EntityLiving extends Entity { + protected void co() { +@@ -2035,7 +2044,7 @@ public abstract class EntityLiving extends Entity { return 0.42F; } @@ -1717,7 +1716,7 @@ index 66813756d5..08642e9241 100644 float f; if (this.hasEffect(MobEffects.JUMP)) { -@@ -2044,6 +2053,7 @@ public abstract class EntityLiving extends Entity { +@@ -2046,6 +2055,7 @@ public abstract class EntityLiving extends Entity { Vec3D vec3d = this.getMot(); @@ -1725,12 +1724,12 @@ index 66813756d5..08642e9241 100644 this.setMot(vec3d.x, (double) f, vec3d.z); if (this.isSprinting()) { float f1 = this.yaw * 0.017453292F; -@@ -2262,10 +2272,12 @@ public abstract class EntityLiving extends Entity { - return this.onGround ? this.da() * (0.21600002F / (f * f * f)) : this.aO; +@@ -2264,10 +2274,12 @@ public abstract class EntityLiving extends Entity { + return this.onGround ? this.db() * (0.21600002F / (f * f * f)) : this.aO; } -+ public float getSpeed() { return da(); } // Purpur - OBFHELPER - public float da() { ++ public float getSpeed() { return db(); } // Purpur - OBFHELPER + public float db() { return this.bD; } @@ -1738,7 +1737,7 @@ index 66813756d5..08642e9241 100644 public void o(float f) { this.bD = f; } -@@ -2741,6 +2753,7 @@ public abstract class EntityLiving extends Entity { +@@ -2743,6 +2755,7 @@ public abstract class EntityLiving extends Entity { this.aM = f; } @@ -1747,10 +1746,10 @@ index 66813756d5..08642e9241 100644 public void l(float f) { this.aK = f; diff --git a/src/main/java/net/minecraft/server/EntityMagmaCube.java b/src/main/java/net/minecraft/server/EntityMagmaCube.java -index 595884e373..113734bae3 100644 +index a17316c77a..b34a258c22 100644 --- a/src/main/java/net/minecraft/server/EntityMagmaCube.java +++ b/src/main/java/net/minecraft/server/EntityMagmaCube.java -@@ -4,6 +4,7 @@ public class EntityMagmaCube extends EntitySlime { +@@ -6,6 +6,7 @@ public class EntityMagmaCube extends EntitySlime { public EntityMagmaCube(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -1758,7 +1757,7 @@ index 595884e373..113734bae3 100644 } @Override -@@ -59,7 +60,7 @@ public class EntityMagmaCube extends EntitySlime { +@@ -60,7 +61,7 @@ public class EntityMagmaCube extends EntitySlime { } @Override @@ -1768,27 +1767,27 @@ index 595884e373..113734bae3 100644 this.setMot(vec3d.x, (double) (0.42F + (float) this.getSize() * 0.1F), vec3d.z); diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java -index 31b3062112..c918288e08 100644 +index 6bfffb4077..b6d5fe3623 100644 --- a/src/main/java/net/minecraft/server/EntityMushroomCow.java +++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java -@@ -17,6 +17,7 @@ public class EntityMushroomCow extends EntityCow { +@@ -18,6 +18,7 @@ public class EntityMushroomCow extends EntityCow { public EntityMushroomCow(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableMooshroom; // Purpur - this.bC = Blocks.MYCELIUM; } + @Override diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java -index 1713bead27..e3a9a3f3d2 100644 +index 0f1c259595..4d9bf81bff 100644 --- a/src/main/java/net/minecraft/server/EntityOcelot.java +++ b/src/main/java/net/minecraft/server/EntityOcelot.java -@@ -13,6 +13,7 @@ public class EntityOcelot extends EntityAnimal { +@@ -14,6 +14,7 @@ public class EntityOcelot extends EntityAnimal { public EntityOcelot(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableOcelot; // Purpur - this.dV(); + this.dW(); } @@ -263,11 +264,13 @@ public class EntityOcelot extends EntityAnimal { @@ -1806,7 +1805,7 @@ index 1713bead27..e3a9a3f3d2 100644 } } diff --git a/src/main/java/net/minecraft/server/EntityPanda.java b/src/main/java/net/minecraft/server/EntityPanda.java -index b46ca388eb..1d6b9a226b 100644 +index 2bec33d8ad..cc729ef33e 100644 --- a/src/main/java/net/minecraft/server/EntityPanda.java +++ b/src/main/java/net/minecraft/server/EntityPanda.java @@ -37,6 +37,7 @@ public class EntityPanda extends EntityAnimal { @@ -1818,7 +1817,7 @@ index b46ca388eb..1d6b9a226b 100644 if (!this.isBaby()) { this.setCanPickupLoot(true); @@ -67,6 +68,7 @@ public class EntityPanda extends EntityAnimal { - return this.u(8); + return this.v(8); } + public void setScared(boolean scared) { this.r(scared); } // Purpur - OBFHELPER @@ -1826,7 +1825,7 @@ index b46ca388eb..1d6b9a226b 100644 this.d(8, flag); } @@ -75,6 +77,7 @@ public class EntityPanda extends EntityAnimal { - return this.u(16); + return this.v(16); } + public void setLayingOnBack(boolean layingOnBack) { this.s(layingOnBack); } // Purpur - OBFHELPER @@ -1834,31 +1833,31 @@ index b46ca388eb..1d6b9a226b 100644 this.d(16, flag); } @@ -83,6 +86,7 @@ public class EntityPanda extends EntityAnimal { - return (Integer) this.datawatcher.get(EntityPanda.bD) > 0; + return (Integer) this.datawatcher.get(EntityPanda.bC) > 0; } + public void setEating(boolean eating) { this.t(eating); } // Purpur - OBFHELPER public void t(boolean flag) { - this.datawatcher.set(EntityPanda.bD, flag ? 1 : 0); + this.datawatcher.set(EntityPanda.bC, flag ? 1 : 0); } @@ -541,7 +545,7 @@ public class EntityPanda extends EntityAnimal { if (itemstack.getItem() instanceof ItemMonsterEgg) { return super.a(entityhuman, enumhand); - } else if (this.eo()) { + } else if (this.ep()) { - return false; + return tryRide(entityhuman, enumhand); // Purpur - } else if (this.dY()) { + } else if (this.dZ()) { this.s(false); return true; @@ -558,7 +562,7 @@ public class EntityPanda extends EntityAnimal { this.f(entityhuman); } else { - if (this.world.isClientSide || this.dX() || this.isInWater()) { + if (this.world.isClientSide || this.dY() || this.isInWater()) { - return false; + return tryRide(entityhuman, enumhand); // Purpur } - this.eB(); + this.eC(); @@ -575,10 +579,22 @@ public class EntityPanda extends EntityAnimal { return true; @@ -1896,7 +1895,7 @@ index b46ca388eb..1d6b9a226b 100644 @Override public boolean b() { + if (this.f.getRider() != null) return false; // Purpur - if (this.f.dX()) { + if (this.f.dY()) { this.f.getNavigation().o(); return false; @@ -664,6 +682,7 @@ public class EntityPanda extends EntityAnimal { @@ -1904,7 +1903,7 @@ index b46ca388eb..1d6b9a226b 100644 @Override public boolean b() { + if (this.a.getRider() != null) return false; // Purpur - if (!this.a.bH && !this.a.bI) { + if (!this.a.bG && !this.a.bH) { return super.b(); } else { @@ -692,11 +711,13 @@ public class EntityPanda extends EntityAnimal { @@ -1912,13 +1911,13 @@ index b46ca388eb..1d6b9a226b 100644 @Override public boolean a() { + if (this.a.getRider() != null) return false; // Purpur - return this.b < this.a.ticksLived && this.a.ej() && this.a.eq() && this.a.random.nextInt(400) == 1; + return this.b < this.a.ticksLived && this.a.ek() && this.a.er() && this.a.random.nextInt(400) == 1; } @Override public boolean b() { + if (this.a.getRider() != null) return false; // Purpur - return !this.a.isInWater() && (this.a.ej() || this.a.random.nextInt(600) != 1) ? this.a.random.nextInt(2000) != 1 : false; + return !this.a.isInWater() && (this.a.ek() || this.a.random.nextInt(600) != 1) ? this.a.random.nextInt(2000) != 1 : false; } @@ -723,6 +744,7 @@ public class EntityPanda extends EntityAnimal { @@ -1926,7 +1925,7 @@ index b46ca388eb..1d6b9a226b 100644 @Override public boolean a() { + if (EntityPanda.this.getRider() != null) return false; // Purpur - if (this.b <= EntityPanda.this.ticksLived && !EntityPanda.this.isBaby() && !EntityPanda.this.isInWater() && EntityPanda.this.eq() && EntityPanda.this.dV() <= 0) { + if (this.b <= EntityPanda.this.ticksLived && !EntityPanda.this.isBaby() && !EntityPanda.this.isInWater() && EntityPanda.this.er() && EntityPanda.this.dW() <= 0) { List list = EntityPanda.this.world.a(EntityItem.class, EntityPanda.this.getBoundingBox().grow(6.0D, 6.0D, 6.0D), EntityPanda.PICKUP_PREDICATE); @@ -734,6 +756,7 @@ public class EntityPanda extends EntityAnimal { @@ -1934,7 +1933,7 @@ index b46ca388eb..1d6b9a226b 100644 @Override public boolean b() { + if (EntityPanda.this.getRider() != null) return false; // Purpur - return !EntityPanda.this.isInWater() && (EntityPanda.this.ej() || EntityPanda.this.random.nextInt(600) != 1) ? EntityPanda.this.random.nextInt(2000) != 1 : false; + return !EntityPanda.this.isInWater() && (EntityPanda.this.ek() || EntityPanda.this.random.nextInt(600) != 1) ? EntityPanda.this.random.nextInt(2000) != 1 : false; } @@ -787,6 +810,7 @@ public class EntityPanda extends EntityAnimal { @@ -1942,7 +1941,7 @@ index b46ca388eb..1d6b9a226b 100644 @Override public boolean a() { + if (this.i.getRider() != null) return false; // Purpur - return this.i.ek() && this.i.eq() && super.a(); + return this.i.el() && this.i.er() && super.a(); } } @@ -804,6 +828,7 @@ public class EntityPanda extends EntityAnimal { @@ -1950,7 +1949,7 @@ index b46ca388eb..1d6b9a226b 100644 @Override public boolean a() { + if (this.e.getRider() != null) return false; // Purpur - if (super.a() && this.e.dV() == 0) { + if (super.a() && this.e.dW() == 0) { if (!this.h()) { if (this.f <= this.e.ticksLived) { @@ -856,6 +881,7 @@ public class EntityPanda extends EntityAnimal { @@ -1958,7 +1957,7 @@ index b46ca388eb..1d6b9a226b 100644 @Override public boolean a() { + if (this.a.getRider() != null) return false; // Purpur - return this.a.isBaby() && this.a.eq() ? (this.a.en() && this.a.random.nextInt(500) == 1 ? true : this.a.random.nextInt(6000) == 1) : false; + return this.a.isBaby() && this.a.er() ? (this.a.eo() && this.a.random.nextInt(500) == 1 ? true : this.a.random.nextInt(6000) == 1) : false; } @@ -881,6 +907,7 @@ public class EntityPanda extends EntityAnimal { @@ -1966,26 +1965,28 @@ index b46ca388eb..1d6b9a226b 100644 @Override public boolean a() { + if (this.a.getRider() != null) return false; // Purpur - if ((this.a.isBaby() || this.a.el()) && this.a.onGround) { - if (!this.a.eq()) { + if ((this.a.isBaby() || this.a.em()) && this.a.onGround) { + if (!this.a.er()) { return false; @@ -933,6 +960,7 @@ public class EntityPanda extends EntityAnimal { @Override public boolean a() { + if (this.f.getRider() != null) return false; // Purpur - return this.f.eq() && super.a(); + return this.f.er() && super.a(); } } -@@ -948,6 +976,7 @@ public class EntityPanda extends EntityAnimal { +@@ -948,7 +976,9 @@ public class EntityPanda extends EntityAnimal { @Override public boolean a() { + if (this.d.getRider() != null) return false; // Purpur - return this.d.eq() && super.a(); + return this.d.er() && super.a(); ++ } } -@@ -957,7 +986,7 @@ public class EntityPanda extends EntityAnimal { + +@@ -957,7 +987,7 @@ public class EntityPanda extends EntityAnimal { private e() {} } @@ -1994,28 +1995,28 @@ index b46ca388eb..1d6b9a226b 100644 private final EntityPanda i; -@@ -967,9 +996,9 @@ public class EntityPanda extends EntityAnimal { +@@ -967,9 +997,9 @@ public class EntityPanda extends EntityAnimal { } @Override - public void a() { + public void tick() { // Purpur - if (this.i.eq()) { + if (this.i.er()) { - super.a(); + super.tick(); // Purpur } } } diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java -index 6173a86e09..c6c5f66b3c 100644 +index 94e973ffba..d743ddb9c5 100644 --- a/src/main/java/net/minecraft/server/EntityParrot.java +++ b/src/main/java/net/minecraft/server/EntityParrot.java @@ -21,7 +21,7 @@ public class EntityParrot extends EntityPerchable implements EntityBird { }; - private static final Item bK = Items.COOKIE; - private static final Set bL = Sets.newHashSet(new Item[]{Items.WHEAT_SEEDS, Items.MELON_SEEDS, Items.PUMPKIN_SEEDS, Items.BEETROOT_SEEDS}); -- private static final Map, SoundEffect> bM = (Map) SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error -+ private static final Map, SoundEffect> bM = SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error + private static final Item bJ = Items.COOKIE; + private static final Set bK = Sets.newHashSet(new Item[]{Items.WHEAT_SEEDS, Items.MELON_SEEDS, Items.PUMPKIN_SEEDS, Items.BEETROOT_SEEDS}); +- private static final Map, SoundEffect> bL = (Map) SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error ++ private static final Map, SoundEffect> bL = SystemUtils.a(Maps.newHashMap(), (hashmap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error hashmap.put(EntityTypes.BLAZE, SoundEffects.ENTITY_PARROT_IMITATE_BLAZE); hashmap.put(EntityTypes.CAVE_SPIDER, SoundEffects.ENTITY_PARROT_IMITATE_SPIDER); hashmap.put(EntityTypes.CREEPER, SoundEffects.ENTITY_PARROT_IMITATE_CREEPER); @@ -2030,7 +2031,7 @@ index 6173a86e09..c6c5f66b3c 100644 @Nullable diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java -index 6aa116f4b8..5808363b0f 100644 +index ea11de3cb3..8517fcf293 100644 --- a/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java @@ -16,12 +16,14 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -2052,7 +2053,7 @@ index 6aa116f4b8..5808363b0f 100644 @Override public void movementTick() { -- if (this.isAlive() && this.dS()) { +- if (this.isAlive() && this.dT()) { + if (this.isAlive() && getRider() == null && this.isInDaylight()) { // Purpur - do not set fire if being ridden this.setOnFire(8); } @@ -2185,7 +2186,7 @@ index 6aa116f4b8..5808363b0f 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 616075569f..fd57e5bde0 100644 +index 0d099d2fd6..fd7c5136f1 100644 --- a/src/main/java/net/minecraft/server/EntityPig.java +++ b/src/main/java/net/minecraft/server/EntityPig.java @@ -18,6 +18,7 @@ public class EntityPig extends EntityAnimal { @@ -2239,10 +2240,10 @@ index 616075569f..fd57e5bde0 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java -index dc08a7c576..77c370c0bc 100644 +index 151eef84ac..786592da12 100644 --- a/src/main/java/net/minecraft/server/EntityPigZombie.java +++ b/src/main/java/net/minecraft/server/EntityPigZombie.java -@@ -13,6 +13,7 @@ public class EntityPigZombie extends EntityZombie { +@@ -14,6 +14,7 @@ public class EntityPigZombie extends EntityZombie { public EntityPigZombie(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -2250,7 +2251,7 @@ index dc08a7c576..77c370c0bc 100644 this.a(PathType.LAVA, 8.0F); } -@@ -172,7 +173,7 @@ public class EntityPigZombie extends EntityZombie { +@@ -188,7 +189,7 @@ public class EntityPigZombie extends EntityZombie { @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { @@ -2259,16 +2260,16 @@ index dc08a7c576..77c370c0bc 100644 } @Override -@@ -198,6 +199,7 @@ public class EntityPigZombie extends EntityZombie { +@@ -214,6 +215,7 @@ public class EntityPigZombie extends EntityZombie { @Override public boolean a() { + if (this.e.getRider() != null) return false; // Purpur - return ((EntityPigZombie) this.e).ed() && super.a(); + return ((EntityPigZombie) this.e).eg() && super.a(); } } diff --git a/src/main/java/net/minecraft/server/EntityPillager.java b/src/main/java/net/minecraft/server/EntityPillager.java -index 845f7ac32a..c945f52f22 100644 +index 90a0464102..e7c31ff5af 100644 --- a/src/main/java/net/minecraft/server/EntityPillager.java +++ b/src/main/java/net/minecraft/server/EntityPillager.java @@ -11,6 +11,7 @@ public class EntityPillager extends EntityIllagerAbstract implements ICrossbow, @@ -2280,19 +2281,10 @@ index 845f7ac32a..c945f52f22 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java -index 182a3195ef..13621ee474 100644 +index 3516fe7645..8389ea1237 100644 --- a/src/main/java/net/minecraft/server/EntityPolarBear.java +++ b/src/main/java/net/minecraft/server/EntityPolarBear.java -@@ -1,5 +1,8 @@ - package net.minecraft.server; - -+import net.pl3x.purpur.controller.ControllerMoveWASD; -+import org.bukkit.scheduler.BukkitRunnable; -+ - import java.util.Iterator; - import java.util.List; - import java.util.function.Predicate; -@@ -14,6 +17,7 @@ public class EntityPolarBear extends EntityAnimal { +@@ -15,6 +15,7 @@ public class EntityPolarBear extends EntityAnimal { public EntityPolarBear(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -2300,8 +2292,8 @@ index 182a3195ef..13621ee474 100644 } @Override -@@ -116,6 +120,11 @@ public class EntityPolarBear extends EntityAnimal { - --this.bD; +@@ -112,6 +113,11 @@ public class EntityPolarBear extends EntityAnimal { + --this.bC; } + // Purpur start @@ -2312,12 +2304,12 @@ index 182a3195ef..13621ee474 100644 } @Override -@@ -141,11 +150,14 @@ public class EntityPolarBear extends EntityAnimal { +@@ -137,11 +143,14 @@ public class EntityPolarBear extends EntityAnimal { return flag; } -+ public boolean isStanding() { return dW(); } // Purpur - OBFHELPER - public boolean dW() { ++ public boolean isStanding() { return dX(); } // Purpur - OBFHELPER + public boolean dX() { return (Boolean) this.datawatcher.get(EntityPolarBear.bz); } @@ -2327,7 +2319,7 @@ index 182a3195ef..13621ee474 100644 this.datawatcher.set(EntityPolarBear.bz, flag); } -@@ -165,6 +177,23 @@ public class EntityPolarBear extends EntityAnimal { +@@ -161,6 +170,23 @@ public class EntityPolarBear extends EntityAnimal { return (GroupDataEntity) groupdataentity; } @@ -2351,7 +2343,7 @@ index 182a3195ef..13621ee474 100644 class e extends PathfinderGoalPanic { public e() { -@@ -173,6 +202,7 @@ public class EntityPolarBear extends EntityAnimal { +@@ -169,6 +195,7 @@ public class EntityPolarBear extends EntityAnimal { @Override public boolean a() { @@ -2359,7 +2351,7 @@ index 182a3195ef..13621ee474 100644 return !EntityPolarBear.this.isBaby() && !EntityPolarBear.this.isBurning() ? false : super.a(); } } -@@ -228,6 +258,7 @@ public class EntityPolarBear extends EntityAnimal { +@@ -224,6 +251,7 @@ public class EntityPolarBear extends EntityAnimal { @Override public boolean a() { @@ -2368,7 +2360,7 @@ index 182a3195ef..13621ee474 100644 return false; } else { diff --git a/src/main/java/net/minecraft/server/EntityPufferFish.java b/src/main/java/net/minecraft/server/EntityPufferFish.java -index 153d34120a..0189060bf8 100644 +index f5d384adda..175e43f7fe 100644 --- a/src/main/java/net/minecraft/server/EntityPufferFish.java +++ b/src/main/java/net/minecraft/server/EntityPufferFish.java @@ -15,6 +15,7 @@ public class EntityPufferFish extends EntityFish { @@ -2396,10 +2388,10 @@ index 153d34120a..0189060bf8 100644 return !list.isEmpty(); diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java -index f6fa871587..ffdb39725a 100644 +index 76394603c3..821f9300e2 100644 --- a/src/main/java/net/minecraft/server/EntityRabbit.java +++ b/src/main/java/net/minecraft/server/EntityRabbit.java -@@ -14,6 +14,7 @@ public class EntityRabbit extends EntityAnimal { +@@ -15,6 +15,7 @@ public class EntityRabbit extends EntityAnimal { public EntityRabbit(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -2407,7 +2399,7 @@ index f6fa871587..ffdb39725a 100644 this.bt = new EntityRabbit.ControllerJumpRabbit(this); this.moveController = new EntityRabbit.ControllerMoveRabbit(this); this.initializePathFinderGoals(); // CraftBukkit - moved code -@@ -59,7 +60,7 @@ public class EntityRabbit extends EntityAnimal { +@@ -60,7 +61,7 @@ public class EntityRabbit extends EntityAnimal { } @Override @@ -2417,10 +2409,10 @@ index f6fa871587..ffdb39725a 100644 double d0 = this.moveController.c(); diff --git a/src/main/java/net/minecraft/server/EntityRaider.java b/src/main/java/net/minecraft/server/EntityRaider.java -index 0c9927d078..7edcaf9230 100644 +index dccd098d41..709a4c77df 100644 --- a/src/main/java/net/minecraft/server/EntityRaider.java +++ b/src/main/java/net/minecraft/server/EntityRaider.java -@@ -277,6 +277,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling { +@@ -278,6 +278,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling { @Override public boolean a() { @@ -2428,23 +2420,23 @@ index 0c9927d078..7edcaf9230 100644 this.j(); return this.g() && this.h() && this.a.getGoalTarget() == null; } -@@ -302,6 +303,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling { +@@ -303,6 +304,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling { @Override public boolean b() { + if (this.a.getRider() != null) return false; // Purpur - return this.a.getNavigation().n() ? false : this.a.getGoalTarget() == null && !this.c.a((IPosition) this.a.ch(), (double) (this.a.getWidth() + (float) this.e)) && !this.f; + return this.a.getNavigation().n() ? false : this.a.getGoalTarget() == null && !this.c.a((IPosition) this.a.ci(), (double) (this.a.getWidth() + (float) this.e)) && !this.f; } -@@ -381,6 +383,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling { +@@ -382,6 +384,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling { @Override public boolean a() { + if (this.c.getRider() != null) return false; // Purpur EntityLiving entityliving = this.c.getLastDamager(); - return this.c.ek() == null && this.c.isPatrolling() && this.c.getGoalTarget() != null && !this.c.dR() && (entityliving == null || entityliving.getEntityType() != EntityTypes.PLAYER); -@@ -452,6 +455,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling { + return this.c.ek() == null && this.c.isPatrolling() && this.c.getGoalTarget() != null && !this.c.dS() && (entityliving == null || entityliving.getEntityType() != EntityTypes.PLAYER); +@@ -453,6 +456,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling { @Override public boolean a() { @@ -2452,16 +2444,16 @@ index 0c9927d078..7edcaf9230 100644 Raid raid = this.b.ek(); return this.b.isAlive() && this.b.getGoalTarget() == null && raid != null && raid.f(); -@@ -494,6 +498,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling { +@@ -495,6 +499,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling { @Override public boolean a() { + if (this.b.getRider() != null) return false; // Purpur Raid raid = this.b.ek(); - if (this.b.el() && !this.b.ek().a() && this.b.dY() && !ItemStack.matches(this.b.getEquipment(EnumItemSlot.HEAD), Raid.a)) { + if (this.b.el() && !this.b.ek().a() && this.b.dY() && !ItemStack.matches(this.b.getEquipment(EnumItemSlot.HEAD), Raid.s())) { diff --git a/src/main/java/net/minecraft/server/EntityRavager.java b/src/main/java/net/minecraft/server/EntityRavager.java -index 9c22323c47..9162049c12 100644 +index dc8bac5530..9a1ae546e3 100644 --- a/src/main/java/net/minecraft/server/EntityRavager.java +++ b/src/main/java/net/minecraft/server/EntityRavager.java @@ -16,6 +16,7 @@ public class EntityRavager extends EntityRaider { @@ -2473,7 +2465,7 @@ index 9c22323c47..9162049c12 100644 this.f = 20; } diff --git a/src/main/java/net/minecraft/server/EntitySalmon.java b/src/main/java/net/minecraft/server/EntitySalmon.java -index b600f30eb1..8c60e26c70 100644 +index 725806f163..4ee2b012fe 100644 --- a/src/main/java/net/minecraft/server/EntitySalmon.java +++ b/src/main/java/net/minecraft/server/EntitySalmon.java @@ -4,6 +4,7 @@ public class EntitySalmon extends EntityFishSchool { @@ -2485,7 +2477,7 @@ index b600f30eb1..8c60e26c70 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java -index df1bfc94e2..f7d7f417ce 100644 +index a3daceb856..1a6e934522 100644 --- a/src/main/java/net/minecraft/server/EntitySheep.java +++ b/src/main/java/net/minecraft/server/EntitySheep.java @@ -18,7 +18,7 @@ import org.bukkit.inventory.InventoryView; @@ -2505,8 +2497,8 @@ index df1bfc94e2..f7d7f417ce 100644 - return enumcolor; - }, EntitySheep::c))); + private static final Map bB = Arrays.stream(EnumColor.values()).collect(Collectors.toMap((enumcolor) -> enumcolor, EntitySheep::c)); // Purpur - fix decompile error - private int bD; - private PathfinderGoalEatTile bE; + private int bC; + private PathfinderGoalEatTile bD; @@ -55,6 +53,7 @@ public class EntitySheep extends EntityAnimal { @@ -2517,7 +2509,7 @@ index df1bfc94e2..f7d7f417ce 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityShulker.java b/src/main/java/net/minecraft/server/EntityShulker.java -index 1df311d852..e09ce366ca 100644 +index a1c018b14a..39b8591ae5 100644 --- a/src/main/java/net/minecraft/server/EntityShulker.java +++ b/src/main/java/net/minecraft/server/EntityShulker.java @@ -26,6 +26,7 @@ public class EntityShulker extends EntityGolem implements IMonster { @@ -2567,7 +2559,7 @@ index 1df311d852..e09ce366ca 100644 } diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java -index d823c6b6d9..3665381aa4 100644 +index 2979cc8b66..4bb086323d 100644 --- a/src/main/java/net/minecraft/server/EntitySilverfish.java +++ b/src/main/java/net/minecraft/server/EntitySilverfish.java @@ -10,6 +10,7 @@ public class EntitySilverfish extends EntityMonster { @@ -2578,7 +2570,7 @@ index d823c6b6d9..3665381aa4 100644 } @Override -@@ -129,6 +130,7 @@ public class EntitySilverfish extends EntityMonster { +@@ -123,6 +124,7 @@ public class EntitySilverfish extends EntityMonster { @Override public boolean a() { @@ -2586,7 +2578,7 @@ index d823c6b6d9..3665381aa4 100644 if (this.a.getGoalTarget() != null) { return false; } else if (!this.a.getNavigation().n()) { -@@ -154,6 +156,7 @@ public class EntitySilverfish extends EntityMonster { +@@ -148,6 +150,7 @@ public class EntitySilverfish extends EntityMonster { @Override public boolean b() { @@ -2594,7 +2586,7 @@ index d823c6b6d9..3665381aa4 100644 return this.i ? false : super.b(); } -@@ -199,6 +202,7 @@ public class EntitySilverfish extends EntityMonster { +@@ -193,6 +196,7 @@ public class EntitySilverfish extends EntityMonster { @Override public boolean a() { @@ -2615,19 +2607,19 @@ index 0e78d5c62c..908e51b636 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntitySkeletonStray.java b/src/main/java/net/minecraft/server/EntitySkeletonStray.java -index 4ca5024f36..57c7432abf 100644 +index de2a5240df..f094e285ad 100644 --- a/src/main/java/net/minecraft/server/EntitySkeletonStray.java +++ b/src/main/java/net/minecraft/server/EntitySkeletonStray.java -@@ -4,6 +4,7 @@ public class EntitySkeletonStray extends EntitySkeletonAbstract { +@@ -6,6 +6,7 @@ public class EntitySkeletonStray extends EntitySkeletonAbstract { public EntitySkeletonStray(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableStray; // Purpur } - @Override + public static boolean b(EntityTypes entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) { diff --git a/src/main/java/net/minecraft/server/EntitySkeletonWither.java b/src/main/java/net/minecraft/server/EntitySkeletonWither.java -index 872f79cc67..ed03d31221 100644 +index 9abc14a481..bc08bb6168 100644 --- a/src/main/java/net/minecraft/server/EntitySkeletonWither.java +++ b/src/main/java/net/minecraft/server/EntitySkeletonWither.java @@ -6,6 +6,7 @@ public class EntitySkeletonWither extends EntitySkeletonAbstract { @@ -2639,10 +2631,10 @@ index 872f79cc67..ed03d31221 100644 } diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java -index e28c0673dd..bf0819e2e2 100644 +index a59b66e663..2feb9d67b4 100644 --- a/src/main/java/net/minecraft/server/EntitySlime.java +++ b/src/main/java/net/minecraft/server/EntitySlime.java -@@ -28,6 +28,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { +@@ -29,6 +29,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { public EntitySlime(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -2650,7 +2642,7 @@ index e28c0673dd..bf0819e2e2 100644 this.moveController = new EntitySlime.ControllerMoveSlime(this); } -@@ -316,7 +317,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { +@@ -314,7 +315,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { } @Override @@ -2660,7 +2652,7 @@ index e28c0673dd..bf0819e2e2 100644 this.setMot(vec3d.x, 0.41999998688697815D, vec3d.z); diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java -index fb36306b90..271b952b21 100644 +index e106b1dce4..cee9bd6832 100644 --- a/src/main/java/net/minecraft/server/EntitySnowman.java +++ b/src/main/java/net/minecraft/server/EntitySnowman.java @@ -14,6 +14,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { @@ -2680,7 +2672,7 @@ index fb36306b90..271b952b21 100644 for (int l = 0; l < 4; ++l) { diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java -index b560a89694..76b2098dfd 100644 +index 3929c86f8b..a3b24cdc63 100644 --- a/src/main/java/net/minecraft/server/EntitySpider.java +++ b/src/main/java/net/minecraft/server/EntitySpider.java @@ -9,6 +9,7 @@ public class EntitySpider extends EntityMonster { @@ -2696,7 +2688,7 @@ index b560a89694..76b2098dfd 100644 @Override public boolean a() { + if (this.e.getRider() != null) return false; // Purpur - float f = this.e.aE(); + float f = this.e.aF(); return f >= 0.5F ? false : super.a(); @@ -174,11 +176,13 @@ public class EntitySpider extends EntityMonster { @@ -2710,14 +2702,14 @@ index b560a89694..76b2098dfd 100644 @Override public boolean b() { + if (this.a.getRider() != null) return false; // Purpur - float f = this.a.aE(); + float f = this.a.aF(); if (f >= 0.5F && this.a.getRandom().nextInt(100) == 0) { diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java -index 77c0ed42f4..54427bac64 100644 +index bcea73a40b..abc6210d7f 100644 --- a/src/main/java/net/minecraft/server/EntitySquid.java +++ b/src/main/java/net/minecraft/server/EntitySquid.java -@@ -19,6 +19,7 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -21,6 +21,7 @@ public class EntitySquid extends EntityWaterAnimal { public EntitySquid(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -2725,15 +2717,15 @@ index 77c0ed42f4..54427bac64 100644 //this.random.setSeed((long) this.getId()); // Paper this.bF = 1.0F / (this.random.nextFloat() + 1.0F) * 0.2F; } -@@ -174,6 +175,7 @@ public class EntitySquid extends EntityWaterAnimal { - return this.locY > this.world.spigotConfig.squidSpawnRangeMin && this.locY < maxHeight; // Spigot // Paper +@@ -175,6 +176,7 @@ public class EntitySquid extends EntityWaterAnimal { + return blockposition.getY() > generatoraccess.getMinecraftWorld().spigotConfig.squidSpawnRangeMin && blockposition.getY() < maxHeight; // Spigot // Paper } + public void setMovementVector(float x, float y, float z) { a(x, y, z); } // Purpur - OBFHELPER public void a(float f, float f1, float f2) { this.bH = f; this.bI = f1; -@@ -192,6 +194,7 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -193,6 +195,7 @@ public class EntitySquid extends EntityWaterAnimal { @Override public boolean a() { @@ -2741,7 +2733,7 @@ index 77c0ed42f4..54427bac64 100644 EntityLiving entityliving = EntitySquid.this.getLastDamager(); return EntitySquid.this.isInWater() && entityliving != null ? EntitySquid.this.h((Entity) entityliving) < 100.0D : false; -@@ -258,6 +261,39 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -259,6 +262,39 @@ public class EntitySquid extends EntityWaterAnimal { @Override public void e() { @@ -2778,10 +2770,10 @@ index 77c0ed42f4..54427bac64 100644 + } + // Purpur end + - int i = this.b.cv(); + int i = this.b.cw(); if (i > 100) { -@@ -272,5 +308,17 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -273,5 +309,17 @@ public class EntitySquid extends EntityWaterAnimal { } } @@ -2800,7 +2792,7 @@ index 77c0ed42f4..54427bac64 100644 } } diff --git a/src/main/java/net/minecraft/server/EntityTameableAnimal.java b/src/main/java/net/minecraft/server/EntityTameableAnimal.java -index 70bf06b943..2f41d8ade3 100644 +index 1c6b36769b..358a6edaf6 100644 --- a/src/main/java/net/minecraft/server/EntityTameableAnimal.java +++ b/src/main/java/net/minecraft/server/EntityTameableAnimal.java @@ -127,6 +127,12 @@ public abstract class EntityTameableAnimal extends EntityAnimal { @@ -2829,7 +2821,7 @@ index 2e537c2032..03b49a7c76 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityTurtle.java b/src/main/java/net/minecraft/server/EntityTurtle.java -index e4eecf5688..17998b9790 100644 +index 0037d13806..02a21641ca 100644 --- a/src/main/java/net/minecraft/server/EntityTurtle.java +++ b/src/main/java/net/minecraft/server/EntityTurtle.java @@ -22,6 +22,7 @@ public class EntityTurtle extends EntityAnimal { @@ -2838,9 +2830,9 @@ index e4eecf5688..17998b9790 100644 super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableTurtle; // Purpur this.moveController = new EntityTurtle.e(this); - this.bC = Blocks.SAND; this.K = 1.0F; -@@ -395,11 +396,13 @@ public class EntityTurtle extends EntityAnimal { + } +@@ -391,11 +392,13 @@ public class EntityTurtle extends EntityAnimal { @Override public boolean b() { @@ -2851,40 +2843,40 @@ index e4eecf5688..17998b9790 100644 @Override public boolean a() { + if (this.g.getRider() != null) return false; // Purpur - return this.g.isBaby() && !this.g.isInWater() ? super.a() : (!this.g.dZ() && !this.g.isInWater() && !this.g.dV() ? super.a() : false); + return this.g.isBaby() && !this.g.isInWater() ? super.a() : (!this.g.ea() && !this.g.isInWater() && !this.g.dW() ? super.a() : false); } -@@ -427,6 +430,7 @@ public class EntityTurtle extends EntityAnimal { +@@ -423,6 +426,7 @@ public class EntityTurtle extends EntityAnimal { @Override public boolean a() { + if (this.h.getRider() != null) return false; // Purpur - return !this.a.isInWater() && !this.h.dZ() && !this.h.dV() ? super.a() : false; + return !this.a.isInWater() && !this.h.ea() && !this.h.dW() ? super.a() : false; } } -@@ -442,11 +446,13 @@ public class EntityTurtle extends EntityAnimal { +@@ -438,11 +442,13 @@ public class EntityTurtle extends EntityAnimal { @Override public boolean a() { + if (this.g.getRider() != null) return false; // Purpur - return this.g.dV() && this.g.dX().a((IPosition) this.g.ch(), 9.0D) ? super.a() : false; + return this.g.dW() && this.g.dY().a((IPosition) this.g.ci(), 9.0D) ? super.a() : false; } @Override public boolean b() { + if (this.g.getRider() != null) return false; // Purpur - return super.b() && this.g.dV() && this.g.dX().a((IPosition) this.g.ch(), 9.0D); + return super.b() && this.g.dW() && this.g.dY().a((IPosition) this.g.ci(), 9.0D); } -@@ -506,6 +512,7 @@ public class EntityTurtle extends EntityAnimal { +@@ -502,6 +508,7 @@ public class EntityTurtle extends EntityAnimal { @Override public boolean a() { + if (this.d.getRider() != null) return false; // Purpur - return super.a() && !this.d.dV(); + return super.a() && !this.d.dW(); } -@@ -552,6 +559,7 @@ public class EntityTurtle extends EntityAnimal { +@@ -548,6 +555,7 @@ public class EntityTurtle extends EntityAnimal { @Override public boolean a() { @@ -2892,39 +2884,39 @@ index e4eecf5688..17998b9790 100644 if (this.e > 0) { --this.e; return false; -@@ -603,6 +611,7 @@ public class EntityTurtle extends EntityAnimal { +@@ -599,6 +607,7 @@ public class EntityTurtle extends EntityAnimal { @Override public boolean a() { + if (this.a.getRider() != null) return false; // Purpur - return this.a.isBaby() ? false : (this.a.dV() ? true : (this.a.getRandom().nextInt(700) != 0 ? false : !this.a.dX().a((IPosition) this.a.ch(), 64.0D))) && new com.destroystokyo.paper.event.entity.TurtleGoHomeEvent((org.bukkit.entity.Turtle) this.a.getBukkitEntity()).callEvent(); // Paper; + return this.a.isBaby() ? false : (this.a.dW() ? true : (this.a.getRandom().nextInt(700) != 0 ? false : !this.a.dY().a((IPosition) this.a.ci(), 64.0D))) && new com.destroystokyo.paper.event.entity.TurtleGoHomeEvent((org.bukkit.entity.Turtle) this.a.getBukkitEntity()).callEvent(); // Paper } -@@ -620,6 +629,7 @@ public class EntityTurtle extends EntityAnimal { +@@ -616,6 +625,7 @@ public class EntityTurtle extends EntityAnimal { @Override public boolean b() { + if (this.a.getRider() != null) return false; // Purpur - return !this.a.dX().a((IPosition) this.a.ch(), 7.0D) && !this.c && this.d <= 600; + return !this.a.dY().a((IPosition) this.a.ci(), 7.0D) && !this.c && this.d <= 600; } -@@ -667,6 +677,7 @@ public class EntityTurtle extends EntityAnimal { +@@ -663,6 +673,7 @@ public class EntityTurtle extends EntityAnimal { @Override public boolean a() { + if (this.a.getRider() != null) return false; // Purpur - return !this.a.dZ() && !this.a.dV() && this.a.isInWater(); + return !this.a.ea() && !this.a.dW() && this.a.isInWater(); } -@@ -722,6 +733,7 @@ public class EntityTurtle extends EntityAnimal { +@@ -718,6 +729,7 @@ public class EntityTurtle extends EntityAnimal { @Override public boolean b() { + if (this.a.getRider() != null) return false; // Purpur - return !this.a.getNavigation().n() && !this.c && !this.a.dZ() && !this.a.isInLove() && !this.a.dV(); + return !this.a.getNavigation().n() && !this.c && !this.a.ea() && !this.a.isInLove() && !this.a.dW(); } -@@ -740,6 +752,7 @@ public class EntityTurtle extends EntityAnimal { +@@ -736,6 +748,7 @@ public class EntityTurtle extends EntityAnimal { @Override public boolean a() { @@ -2933,7 +2925,7 @@ index e4eecf5688..17998b9790 100644 return false; } else { diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index 759e8b443c..3fd1f8f49d 100644 +index ec63f1dbe1..4aac81d3a5 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java @@ -262,6 +262,10 @@ public class EntityTypes { @@ -2948,7 +2940,7 @@ index 759e8b443c..3fd1f8f49d 100644 return getNameComponent().getString(); } diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java -index bcda21ba71..1fc6ad43ae 100644 +index 47fceb57ee..8c13c78b5f 100644 --- a/src/main/java/net/minecraft/server/EntityVex.java +++ b/src/main/java/net/minecraft/server/EntityVex.java @@ -15,6 +15,7 @@ public class EntityVex extends EntityMonster { @@ -3015,7 +3007,7 @@ index bcda21ba71..1fc6ad43ae 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/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java -index 130a2e4ffe..6590708efb 100644 +index 44531af417..7be42a4710 100644 --- a/src/main/java/net/minecraft/server/EntityVindicator.java +++ b/src/main/java/net/minecraft/server/EntityVindicator.java @@ -15,6 +15,7 @@ public class EntityVindicator extends EntityIllagerAbstract { @@ -3051,7 +3043,7 @@ index 130a2e4ffe..6590708efb 100644 return entityvindicator.el() && entityvindicator.random.nextInt(10) == 0 && super.a(); diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java -index f30ce95686..6a0d7a82f9 100644 +index 9fea750248..66b336ee6a 100644 --- a/src/main/java/net/minecraft/server/EntityWitch.java +++ b/src/main/java/net/minecraft/server/EntityWitch.java @@ -22,6 +22,7 @@ public class EntityWitch extends EntityRaider implements IRangedEntity { @@ -3063,7 +3055,7 @@ index f30ce95686..6a0d7a82f9 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java -index 5609fcfe00..bb5f9259c3 100644 +index b3c7f8814c..374ed9a3aa 100644 --- a/src/main/java/net/minecraft/server/EntityWither.java +++ b/src/main/java/net/minecraft/server/EntityWither.java @@ -35,6 +35,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity { @@ -3079,11 +3071,11 @@ index 5609fcfe00..bb5f9259c3 100644 @Override public boolean a() { + if (EntityWither.this.getRider() != null) return false; // Purpur - return EntityWither.this.dV() > 0; + return EntityWither.this.dW() > 0; } } diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java -index 0f4554c394..8156a81eeb 100644 +index 80354beb4d..f1561a927e 100644 --- a/src/main/java/net/minecraft/server/EntityWolf.java +++ b/src/main/java/net/minecraft/server/EntityWolf.java @@ -28,6 +28,7 @@ public class EntityWolf extends EntityTameableAnimal { @@ -3103,7 +3095,7 @@ index 0f4554c394..8156a81eeb 100644 } diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java -index 40a796384c..a131d57b5b 100644 +index 3396983adf..15a75c9404 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java @@ -35,6 +35,7 @@ public class EntityZombie extends EntityMonster { @@ -3115,19 +3107,19 @@ index 40a796384c..a131d57b5b 100644 } diff --git a/src/main/java/net/minecraft/server/EntityZombieHusk.java b/src/main/java/net/minecraft/server/EntityZombieHusk.java -index 1c07874294..0b5875e93f 100644 +index 26262bbcb6..7fd5825b59 100644 --- a/src/main/java/net/minecraft/server/EntityZombieHusk.java +++ b/src/main/java/net/minecraft/server/EntityZombieHusk.java -@@ -4,6 +4,7 @@ public class EntityZombieHusk extends EntityZombie { +@@ -6,6 +6,7 @@ public class EntityZombieHusk extends EntityZombie { public EntityZombieHusk(EntityTypes entitytypes, World world) { super(entitytypes, world); + this.isRidable = net.pl3x.purpur.PurpurConfig.ridableHusk; // Purpur } - @Override + public static boolean b(EntityTypes entitytypes, GeneratorAccess generatoraccess, EnumMobSpawn enummobspawn, BlockPosition blockposition, Random random) { diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java -index 5cfda3160b..ac460de59c 100644 +index 4d475d9633..f0ae05ea9d 100644 --- a/src/main/java/net/minecraft/server/EntityZombieVillager.java +++ b/src/main/java/net/minecraft/server/EntityZombieVillager.java @@ -20,6 +20,7 @@ public class EntityZombieVillager extends EntityZombie implements VillagerDataHo @@ -3159,7 +3151,7 @@ index 08aea9969d..c6e9b044f7 100644 } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalAvoidTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalAvoidTarget.java -index 6e299144c6..3571db9aaf 100644 +index 5626f551b5..3c47d74dc4 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalAvoidTarget.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalAvoidTarget.java @@ -18,12 +18,7 @@ public class PathfinderGoalAvoidTarget extends Pathfinde @@ -3212,7 +3204,7 @@ index d5935715f0..66216ea8ce 100644 } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalBowShoot.java b/src/main/java/net/minecraft/server/PathfinderGoalBowShoot.java -index 5bdc4b4b61..fd2c1dd59f 100644 +index b0559d3066..48db74c10b 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalBowShoot.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalBowShoot.java @@ -28,6 +28,7 @@ public class PathfinderGoalBowShoot ext @@ -3232,7 +3224,7 @@ index 5bdc4b4b61..fd2c1dd59f 100644 } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalBreakDoor.java b/src/main/java/net/minecraft/server/PathfinderGoalBreakDoor.java -index 7f12d92915..e8a161c3ed 100644 +index 373db5c608..6c536cac05 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalBreakDoor.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalBreakDoor.java @@ -27,6 +27,7 @@ public class PathfinderGoalBreakDoor extends PathfinderGoalDoorInteract { @@ -3240,7 +3232,7 @@ index 7f12d92915..e8a161c3ed 100644 @Override public boolean a() { + if (this.entity.getRider() != null) return false; // Purpur - return !super.a() ? false : (!this.entity.world.getGameRules().getBoolean("mobGriefing") ? false : this.a(this.entity.world.getDifficulty()) && !this.g()); + return !super.a() ? false : (!this.entity.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) ? false : this.a(this.entity.world.getDifficulty()) && !this.g()); } @@ -38,6 +39,7 @@ public class PathfinderGoalBreakDoor extends PathfinderGoalDoorInteract { @@ -3248,11 +3240,11 @@ index 7f12d92915..e8a161c3ed 100644 @Override public boolean b() { + if (this.entity.getRider() != null) return false; // Purpur - return this.a <= this.f() && !this.g() && this.door.a((IPosition) this.entity.ch(), 2.0D) && this.a(this.entity.world.getDifficulty()); + return this.a <= this.f() && !this.g() && this.door.a((IPosition) this.entity.ci(), 2.0D) && this.a(this.entity.world.getDifficulty()); } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java -index 9d0b1ffefa..88fcf41230 100644 +index 0cc34400be..db7048e7a4 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java @@ -29,16 +29,18 @@ public class PathfinderGoalBreed extends PathfinderGoal { @@ -3276,7 +3268,7 @@ index 9d0b1ffefa..88fcf41230 100644 } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalCatSitOnBed.java b/src/main/java/net/minecraft/server/PathfinderGoalCatSitOnBed.java -index 8a251cb00f..d4754a8c01 100644 +index 8707cb5afa..28b2aa2ce1 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalCatSitOnBed.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalCatSitOnBed.java @@ -15,6 +15,7 @@ public class PathfinderGoalCatSitOnBed extends PathfinderGoalGotoTarget { @@ -3284,11 +3276,11 @@ index 8a251cb00f..d4754a8c01 100644 @Override public boolean a() { + if (this.g.getRider() != null) return false; // Purpur - return this.g.isTamed() && !this.g.isSitting() && !this.g.eg() && super.a(); + return this.g.isTamed() && !this.g.isSitting() && !this.g.eh() && super.a(); } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalCrossbowAttack.java b/src/main/java/net/minecraft/server/PathfinderGoalCrossbowAttack.java -index 2e7e4f560c..dfd69b9988 100644 +index c834b99348..87b844a701 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalCrossbowAttack.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalCrossbowAttack.java @@ -21,6 +21,7 @@ public class PathfinderGoalCrossbowAttack list = this.a.world.getEntities(this.a, this.a.getBoundingBox().grow(9.0D, 4.0D, 9.0D), (entity) -> { EntityTypes entitytypes = entity.getEntityType(); @@ -77,6 +78,7 @@ public class PathfinderGoalLlamaFollow extends PathfinderGoal { @@ -3584,8 +3576,8 @@ index a46a985a65..7bc900b828 100644 @Override public boolean b() { + if (this.a.getRider() != null) return false; // Purpur - if (this.a.eI() && this.a.eJ().isAlive() && this.a(this.a, 0)) { - double d0 = this.a.h((Entity) this.a.eJ()); + if (this.a.eJ() && this.a.eK().isAlive() && this.a(this.a, 0)) { + double d0 = this.a.h((Entity) this.a.eK()); diff --git a/src/main/java/net/minecraft/server/PathfinderGoalLookAtPlayer.java b/src/main/java/net/minecraft/server/PathfinderGoalLookAtPlayer.java index 614a8471da..a57752bd24 100644 @@ -3608,7 +3600,7 @@ index 614a8471da..a57752bd24 100644 } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalLookAtTradingPlayer.java b/src/main/java/net/minecraft/server/PathfinderGoalLookAtTradingPlayer.java -index 4f1328cd38..85da00154b 100644 +index a4894853f4..10d5f20cfd 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalLookAtTradingPlayer.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalLookAtTradingPlayer.java @@ -11,6 +11,7 @@ public class PathfinderGoalLookAtTradingPlayer extends PathfinderGoalLookAtPlaye @@ -3616,7 +3608,7 @@ index 4f1328cd38..85da00154b 100644 @Override public boolean a() { + if (this.a.getRider() != null) return false; // Purpur - if (this.f.dY()) { + if (this.f.dZ()) { this.b = this.f.getTrader(); return true; diff --git a/src/main/java/net/minecraft/server/PathfinderGoalMeleeAttack.java b/src/main/java/net/minecraft/server/PathfinderGoalMeleeAttack.java @@ -3640,7 +3632,7 @@ index 702a75087c..6d49d8437d 100644 return entityliving == null ? false : (!entityliving.isAlive() ? false : (!this.e ? !this.a.getNavigation().n() : (!this.a.a(new BlockPosition(entityliving)) ? false : !(entityliving instanceof EntityHuman) || !entityliving.isSpectator() && !((EntityHuman) entityliving).isCreative()))); diff --git a/src/main/java/net/minecraft/server/PathfinderGoalMoveThroughVillage.java b/src/main/java/net/minecraft/server/PathfinderGoalMoveThroughVillage.java -index 51bb1d5de8..f57c4447ed 100644 +index 9dc89d9953..1d59744274 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalMoveThroughVillage.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalMoveThroughVillage.java @@ -33,6 +33,7 @@ public class PathfinderGoalMoveThroughVillage extends PathfinderGoal { @@ -3656,11 +3648,11 @@ index 51bb1d5de8..f57c4447ed 100644 @Override public boolean b() { + if (this.a.getRider() != null) return false; // Purpur - return this.a.getNavigation().n() ? false : !this.d.a((IPosition) this.a.ch(), (double) (this.a.getWidth() + (float) this.g)); + return this.a.getNavigation().n() ? false : !this.d.a((IPosition) this.a.ci(), (double) (this.a.getWidth() + (float) this.g)); } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalMoveTowardsRestriction.java b/src/main/java/net/minecraft/server/PathfinderGoalMoveTowardsRestriction.java -index 7954444a64..5c753ee7cf 100644 +index 294ea66799..eb2da34571 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalMoveTowardsRestriction.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalMoveTowardsRestriction.java @@ -18,6 +18,7 @@ public class PathfinderGoalMoveTowardsRestriction extends PathfinderGoal { @@ -3668,7 +3660,7 @@ index 7954444a64..5c753ee7cf 100644 @Override public boolean a() { + if (this.a.getRider() != null) return false; // Purpur - if (this.a.dH()) { + if (this.a.dI()) { return false; } else { @@ -37,6 +38,7 @@ public class PathfinderGoalMoveTowardsRestriction extends PathfinderGoal { @@ -3736,7 +3728,7 @@ index 90eed77e18..87b9df53b0 100644 if (!((EntityRaider) this.e).el()) { return false; diff --git a/src/main/java/net/minecraft/server/PathfinderGoalNearestVillage.java b/src/main/java/net/minecraft/server/PathfinderGoalNearestVillage.java -index 39789afcfc..68bf134c71 100644 +index 28b4b76ecd..37f2c06606 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalNearestVillage.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalNearestVillage.java @@ -19,6 +19,7 @@ public class PathfinderGoalNearestVillage extends PathfinderGoal { @@ -3796,7 +3788,7 @@ index 59822905a5..f35318926b 100644 } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalOwnerHurtByTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalOwnerHurtByTarget.java -index 3b3274ae5e..dcc8f04be5 100644 +index 5b99b0ddd9..4724d1b8c1 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalOwnerHurtByTarget.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalOwnerHurtByTarget.java @@ -16,6 +16,7 @@ public class PathfinderGoalOwnerHurtByTarget extends PathfinderGoalTarget { @@ -3808,7 +3800,7 @@ index 3b3274ae5e..dcc8f04be5 100644 EntityLiving entityliving = this.a.getOwner(); diff --git a/src/main/java/net/minecraft/server/PathfinderGoalOwnerHurtTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalOwnerHurtTarget.java -index eca8d32368..63cfd57d89 100644 +index eb99159c8f..14254931c3 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalOwnerHurtTarget.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalOwnerHurtTarget.java @@ -16,6 +16,7 @@ public class PathfinderGoalOwnerHurtTarget extends PathfinderGoalTarget { @@ -3840,7 +3832,7 @@ index f399683b74..33b616a601 100644 if ((this.a.ticksLived - this.a.hurtTimestamp) > 100) { this.a.setLastDamager((EntityLiving) null); diff --git a/src/main/java/net/minecraft/server/PathfinderGoalPerch.java b/src/main/java/net/minecraft/server/PathfinderGoalPerch.java -index af4dc4345d..de33a50aba 100644 +index 9fc3524369..3cad98d721 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalPerch.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalPerch.java @@ -12,6 +12,7 @@ public class PathfinderGoalPerch extends PathfinderGoal { @@ -3852,7 +3844,7 @@ index af4dc4345d..de33a50aba 100644 boolean flag = entityplayer != null && !entityplayer.isSpectator() && !entityplayer.abilities.isFlying && !entityplayer.isInWater(); diff --git a/src/main/java/net/minecraft/server/PathfinderGoalRaid.java b/src/main/java/net/minecraft/server/PathfinderGoalRaid.java -index 51d101f11c..7571448141 100644 +index dd498a7070..91a96e6e22 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalRaid.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalRaid.java @@ -18,11 +18,13 @@ public class PathfinderGoalRaid extends PathfinderGoal { @@ -3888,7 +3880,7 @@ index 316205ebfa..8cc9f4fe13 100644 } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalRandomStroll.java b/src/main/java/net/minecraft/server/PathfinderGoalRandomStroll.java -index e92eb3019d..4b7c33af57 100644 +index e74b169484..6688219cf6 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalRandomStroll.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalRandomStroll.java @@ -26,6 +26,7 @@ public class PathfinderGoalRandomStroll extends PathfinderGoal { @@ -3926,7 +3918,7 @@ index f572f33673..218c35bf77 100644 } } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java b/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java -index b1457526ec..c0dd24d338 100644 +index 31c4412012..ada48a7aa1 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalRemoveBlock.java @@ -23,6 +23,7 @@ public class PathfinderGoalRemoveBlock extends PathfinderGoalGotoTarget { @@ -3934,7 +3926,7 @@ index b1457526ec..c0dd24d338 100644 @Override public boolean a() { + if (this.entity.getRider() != null) return false; // Purpur - if (!this.entity.world.getGameRules().getBoolean("mobGriefing")) { + if (!this.entity.world.getGameRules().getBoolean(GameRules.MOB_GRIEFING)) { return false; } else if (this.c > 0) { diff --git a/src/main/java/net/minecraft/server/PathfinderGoalRestrictSun.java b/src/main/java/net/minecraft/server/PathfinderGoalRestrictSun.java @@ -3950,7 +3942,7 @@ index e964907b05..b8fa65560c 100644 } diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSit.java b/src/main/java/net/minecraft/server/PathfinderGoalSit.java -index 2116020832..cdb1393bfd 100644 +index 3bb38030cc..b766e7552e 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalSit.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalSit.java @@ -14,11 +14,13 @@ public class PathfinderGoalSit extends PathfinderGoal { @@ -3966,7 +3958,7 @@ index 2116020832..cdb1393bfd 100644 + if (this.entity.getRider() != null) return false; // Purpur if (!this.entity.isTamed()) { return this.willSit && this.entity.getGoalTarget() == null; // CraftBukkit - Allow sitting for wild animals - } else if (this.entity.au()) { + } else if (this.entity.av()) { diff --git a/src/main/java/net/minecraft/server/PathfinderGoalStrollVillage.java b/src/main/java/net/minecraft/server/PathfinderGoalStrollVillage.java index 3a081935fa..9e0c58629c 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalStrollVillage.java @@ -3980,7 +3972,7 @@ index 3a081935fa..9e0c58629c 100644 BlockPosition blockposition = new BlockPosition(this.a); diff --git a/src/main/java/net/minecraft/server/PathfinderGoalTame.java b/src/main/java/net/minecraft/server/PathfinderGoalTame.java -index fc426365d2..e98577f218 100644 +index 04acbc8250..5a8fd74df2 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalTame.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalTame.java @@ -18,6 +18,7 @@ public class PathfinderGoalTame extends PathfinderGoal { @@ -4012,7 +4004,7 @@ index 95afc8eeec..59a50e5499 100644 if (entityliving == null) { diff --git a/src/main/java/net/minecraft/server/PathfinderGoalTempt.java b/src/main/java/net/minecraft/server/PathfinderGoalTempt.java -index d1164dd682..26efba12b8 100644 +index 0b036f29cf..c12a3e6a6f 100644 --- a/src/main/java/net/minecraft/server/PathfinderGoalTempt.java +++ b/src/main/java/net/minecraft/server/PathfinderGoalTempt.java @@ -41,6 +41,7 @@ public class PathfinderGoalTempt extends PathfinderGoal { diff --git a/patches/server/0012-Villager-shops.patch b/patches/server/0012-Villager-shops.patch index a838a1fc5..6f8a2bfb2 100644 --- a/patches/server/0012-Villager-shops.patch +++ b/patches/server/0012-Villager-shops.patch @@ -1,4 +1,4 @@ -From 3b36f995d5ae145ef691c4d1cd2dcb900a7ca302 Mon Sep 17 00:00:00 2001 +From 81f64701611873719511ea2e2254cad9000789a7 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 11 May 2019 01:31:50 -0500 Subject: [PATCH] Villager shops @@ -13,7 +13,7 @@ Subject: [PATCH] Villager shops create mode 100644 src/main/java/net/minecraft/server/EntityVillagerShop.java diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index 4979f77b7..475c3ec63 100644 +index 4aac81d3a5..1c110c15ae 100644 --- a/src/main/java/net/minecraft/server/EntityTypes.java +++ b/src/main/java/net/minecraft/server/EntityTypes.java @@ -118,6 +118,7 @@ public class EntityTypes { @@ -38,20 +38,20 @@ index 4979f77b7..475c3ec63 100644 return IRegistry.ENTITY_TYPE.get(key); } diff --git a/src/main/java/net/minecraft/server/EntityVillagerAbstract.java b/src/main/java/net/minecraft/server/EntityVillagerAbstract.java -index f8ef10f90..6f3cee8c1 100644 +index d1a88960bd..fee6875274 100644 --- a/src/main/java/net/minecraft/server/EntityVillagerAbstract.java +++ b/src/main/java/net/minecraft/server/EntityVillagerAbstract.java @@ -68,6 +68,7 @@ public abstract class EntityVillagerAbstract extends EntityAgeable implements NP return this.tradingPlayer; } -+ public boolean hasTrader() { return dY(); } // Purpur - OBFHELPER - public boolean dY() { ++ public boolean hasTrader() { return dZ(); } // Purpur - OBFHELPER + public boolean dZ() { return this.tradingPlayer != null; } diff --git a/src/main/java/net/minecraft/server/EntityVillagerShop.java b/src/main/java/net/minecraft/server/EntityVillagerShop.java new file mode 100644 -index 000000000..eb7213217 +index 0000000000..0cb1b117fa --- /dev/null +++ b/src/main/java/net/minecraft/server/EntityVillagerShop.java @@ -0,0 +1,227 @@ @@ -137,12 +137,12 @@ index 000000000..eb7213217 + } + + @Override -+ public int dV() { // getExp ++ public int dW() { // getExp + return 0; + } + + @Override -+ public boolean ea() { // showProfessionProgressBar ++ public boolean eb() { // showProfessionProgressBar + return false; + } + @@ -153,7 +153,7 @@ index 000000000..eb7213217 + itemstack.a(entityhuman, this, enumhand); + return true; + } -+ if (itemstack.getItem() != Items.VILLAGER_SPAWN_EGG && this.isAlive() && !this.dY() && !this.isSleeping()) { ++ if (itemstack.getItem() != Items.VILLAGER_SPAWN_EGG && this.isAlive() && !this.hasTrader() && !this.isSleeping()) { + if (enumhand == EnumHand.MAIN_HAND) { + entityhuman.a(StatisticList.TALKED_TO_VILLAGER); + } @@ -188,7 +188,7 @@ index 000000000..eb7213217 + } + + @Override -+ protected void ef() { // setupTradeOffers ++ protected void ei() { // setupTradeOffers + // do not do anything + } + @@ -272,7 +272,7 @@ index 000000000..eb7213217 + return; // already on a path + } + BlockPosition home = villager.getHome(); -+ if (!home.a(villager.ch(), range)) { ++ if (!home.a(villager.getHome(), range)) { + Vec3D direction = new Vec3D(home).add(-villager.locX, -villager.locY, -villager.locZ).d(); // normalize + Vec3D target = direction.a(10.0D).add(villager.locX, villager.locY, villager.locZ); // scale + villager.navigation.setDestination(target.x, target.y, target.z, speed); @@ -283,7 +283,7 @@ index 000000000..eb7213217 + } +} diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java -index 856ff22b0..8ed86e25f 100644 +index d8da790aec..b044c82b14 100644 --- a/src/main/java/net/minecraft/server/NavigationAbstract.java +++ b/src/main/java/net/minecraft/server/NavigationAbstract.java @@ -123,6 +123,7 @@ public abstract class NavigationAbstract { @@ -294,7 +294,7 @@ index 856ff22b0..8ed86e25f 100644 public boolean a(double d0, double d1, double d2, double d3) { return this.a(this.a(d0, d1, d2), d3); } -@@ -255,6 +256,7 @@ public abstract class NavigationAbstract { +@@ -239,6 +240,7 @@ public abstract class NavigationAbstract { } @@ -303,7 +303,7 @@ index 856ff22b0..8ed86e25f 100644 return this.c == null || this.c.b(); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java -index 18520fec0..307331e37 100644 +index 18520fec05..307331e377 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractVillager.java @@ -20,7 +20,7 @@ public class CraftAbstractVillager extends CraftAgeable implements AbstractVilla diff --git a/patches/server/0013-Make-giants-naturally-spawn-and-have-AI.patch b/patches/server/0013-Make-giants-naturally-spawn-and-have-AI.patch index b2dac5689..a7a60a5a0 100644 --- a/patches/server/0013-Make-giants-naturally-spawn-and-have-AI.patch +++ b/patches/server/0013-Make-giants-naturally-spawn-and-have-AI.patch @@ -1,4 +1,4 @@ -From e527d46c950ca5654441e03dea8f583749779fa0 Mon Sep 17 00:00:00 2001 +From 677fc4c86d5a60ea81466d589965df52b7998c7c Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 12 May 2019 00:43:12 -0500 Subject: [PATCH] Make giants naturally spawn and have AI @@ -58,7 +58,7 @@ index f4698a6809..3f7f7a2de8 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java -index b7e2022b19..d618c23ef8 100644 +index b7e2022b19..28b93ce736 100644 --- a/src/main/java/net/minecraft/server/EntityGiantZombie.java +++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java @@ -1,5 +1,7 @@ @@ -92,7 +92,7 @@ index b7e2022b19..d618c23ef8 100644 + } + + @Override -+ public float cW() { // jump height ++ public float cX() { // jump height + // make giants jump as high as everything else relative to their size + // 1.0 makes bottom of feet about as high as their waist when they jump + return 1.0F; diff --git a/patches/server/0016-Add-regen-effect-to-campfires.patch b/patches/server/0016-Add-regen-effect-to-campfires.patch index fc4d31b56..36445b387 100644 --- a/patches/server/0016-Add-regen-effect-to-campfires.patch +++ b/patches/server/0016-Add-regen-effect-to-campfires.patch @@ -1,4 +1,4 @@ -From 74feb86c1e53deca4d2904bc49702263b5095f2d Mon Sep 17 00:00:00 2001 +From b6f682d729fd517aadd3e13ff1cd103df00aaa9a Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 19 May 2019 18:11:53 -0500 Subject: [PATCH] Add regen effect to campfires @@ -11,10 +11,10 @@ Subject: [PATCH] Add regen effect to campfires 4 files changed, 89 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 38a0e4978..b1372c71d 100644 +index 694200deb2..1704609a7d 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java -@@ -2713,10 +2713,19 @@ public abstract class EntityLiving extends Entity { +@@ -2715,10 +2715,19 @@ public abstract class EntityLiving extends Entity { } public boolean hasLineOfSight(Entity entity) { @@ -38,7 +38,7 @@ index 38a0e4978..b1372c71d 100644 @Override diff --git a/src/main/java/net/minecraft/server/EntityPotion.java b/src/main/java/net/minecraft/server/EntityPotion.java -index 47fc8b031..dff7568d2 100644 +index acf6082e7f..b0732da909 100644 --- a/src/main/java/net/minecraft/server/EntityPotion.java +++ b/src/main/java/net/minecraft/server/EntityPotion.java @@ -91,6 +91,7 @@ public class EntityPotion extends EntityProjectile { @@ -82,7 +82,7 @@ index 47fc8b031..dff7568d2 100644 AxisAlignedBB axisalignedbb = this.getBoundingBox().grow(4.0D, 2.0D, 4.0D); List list = this.world.a(EntityLiving.class, axisalignedbb, EntityPotion.e); diff --git a/src/main/java/net/minecraft/server/TileEntityCampfire.java b/src/main/java/net/minecraft/server/TileEntityCampfire.java -index 2317adde4..7360e462d 100644 +index 2317adde44..7360e462d9 100644 --- a/src/main/java/net/minecraft/server/TileEntityCampfire.java +++ b/src/main/java/net/minecraft/server/TileEntityCampfire.java @@ -14,6 +14,7 @@ public class TileEntityCampfire extends TileEntity implements Clearable, ITickab @@ -151,7 +151,7 @@ index 2317adde4..7360e462d 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 30f11fe26..5e9c633ac 100644 +index 30f11fe261..5e9c633ac8 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -60,4 +60,25 @@ public class PurpurWorldConfig { diff --git a/patches/server/0017-Tick-loop-config-options.patch b/patches/server/0017-Tick-loop-config-options.patch index b04c3f8b3..8019f6fec 100644 --- a/patches/server/0017-Tick-loop-config-options.patch +++ b/patches/server/0017-Tick-loop-config-options.patch @@ -1,4 +1,4 @@ -From 73b651b11025e6e1648f0443de1e6f7e946c1deb Mon Sep 17 00:00:00 2001 +From 097fb95e55092078634a4fa36161cf604a76a801 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Wed, 22 May 2019 22:30:08 -0500 Subject: [PATCH] Tick loop config options @@ -9,10 +9,10 @@ Subject: [PATCH] Tick loop config options 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fc57f154f5..0a4d37cd42 100644 +index 5ec9a980c9..0324a90ca5 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -865,16 +865,21 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant Date: Wed, 29 May 2019 23:39:04 -0500 Subject: [PATCH] Add village raid spawn reason --- - src/main/java/net/minecraft/server/Raid.java | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) + src/main/java/net/minecraft/server/Raid.java | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/Raid.java b/src/main/java/net/minecraft/server/Raid.java -index ba19b1d51..1484f39f1 100644 +index 58c33f1000..0a796a8264 100644 --- a/src/main/java/net/minecraft/server/Raid.java +++ b/src/main/java/net/minecraft/server/Raid.java -@@ -2,6 +2,8 @@ package net.minecraft.server; - - import com.google.common.collect.Maps; - import com.google.common.collect.Sets; -+import org.bukkit.event.entity.CreatureSpawnEvent; -+ - import java.util.Comparator; - import java.util.HashSet; - import java.util.Iterator; -@@ -512,7 +514,7 @@ public class Raid { - entityraider.prepare(this.l, this.l.getDamageScaler(blockposition), EnumMobSpawn.EVENT, (GroupDataEntity) null, (NBTTagCompound) null); +@@ -524,7 +524,7 @@ public class Raid { + entityraider.prepare(this.k, this.k.getDamageScaler(blockposition), EnumMobSpawn.EVENT, (GroupDataEntity) null, (NBTTagCompound) null); entityraider.a(i, false); entityraider.onGround = true; -- this.l.addEntity(entityraider); -+ this.l.addEntity(entityraider, CreatureSpawnEvent.SpawnReason.VILLAGE_RAID); // Purpur +- this.k.addEntity(entityraider); ++ this.k.addEntity(entityraider, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.VILLAGE_RAID); // Purpur } } diff --git a/patches/server/0025-Dont-spaz-out-startup-on-custom-world-generators.patch b/patches/server/0025-Dont-spaz-out-startup-on-custom-world-generators.patch index 843a519d3..092fa7da1 100644 --- a/patches/server/0025-Dont-spaz-out-startup-on-custom-world-generators.patch +++ b/patches/server/0025-Dont-spaz-out-startup-on-custom-world-generators.patch @@ -1,4 +1,4 @@ -From 7cf0027f0c5e4babd9f158bb9105c7fd60537516 Mon Sep 17 00:00:00 2001 +From 02de5da64c505229d1928fd4a429f75c1940f562 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 2 Jun 2019 02:36:59 -0500 Subject: [PATCH] Dont spaz out startup on custom world generators @@ -8,15 +8,15 @@ Subject: [PATCH] Dont spaz out startup on custom world generators 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/WorldData.java b/src/main/java/net/minecraft/server/WorldData.java -index d4b0cca23..ac8e23237 100644 +index ca4c314589..610637b46e 100644 --- a/src/main/java/net/minecraft/server/WorldData.java +++ b/src/main/java/net/minecraft/server/WorldData.java -@@ -300,7 +300,7 @@ public class WorldData { +@@ -299,7 +299,7 @@ public class WorldData { this.a(worldsettings); this.levelName = s; - this.G = WorldData.a; -- this.F = false; -+ this.F = true; // Purpur + this.F = WorldData.a; +- this.E = false; ++ this.E = true; // Purpur } public void a(WorldSettings worldsettings) { diff --git a/patches/server/0027-Allow-color-codes-on-signs.patch b/patches/server/0027-Allow-color-codes-on-signs.patch index ad5077db1..a3c06fcf8 100644 --- a/patches/server/0027-Allow-color-codes-on-signs.patch +++ b/patches/server/0027-Allow-color-codes-on-signs.patch @@ -1,4 +1,4 @@ -From 4eec5d1965f0c06f9c6823c8f00bc604527dfeac Mon Sep 17 00:00:00 2001 +From 7e414462234062bc6c9f42a832f59a3c51685801 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 6 Jun 2019 17:40:30 -0500 Subject: [PATCH] Allow color codes on signs @@ -11,10 +11,10 @@ Subject: [PATCH] Allow color codes on signs 4 files changed, 21 insertions(+) diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java -index d27354667..babbc4add 100644 +index 633fe836dd..160c03efd8 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java -@@ -1112,6 +1112,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { +@@ -1114,6 +1114,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { @Override public void openSign(TileEntitySign tileentitysign) { tileentitysign.a((EntityHuman) this); @@ -23,10 +23,10 @@ index d27354667..babbc4add 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java -index a0b644801..ae65231ce 100644 +index 6d6e50313e..671d1085e0 100644 --- a/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java -@@ -2593,6 +2593,7 @@ public class PlayerConnection implements PacketListenerPlayIn { +@@ -2592,6 +2592,7 @@ public class PlayerConnection implements PacketListenerPlayIn { } } // Paper end @@ -35,7 +35,7 @@ index a0b644801..ae65231ce 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 dd7889a4f..2f9db45a1 100644 +index dd7889a4f9..2f9db45a12 100644 --- a/src/main/java/net/minecraft/server/TileEntitySign.java +++ b/src/main/java/net/minecraft/server/TileEntitySign.java @@ -122,6 +122,20 @@ public class TileEntitySign extends TileEntity implements ICommandListener { // @@ -60,7 +60,7 @@ index dd7889a4f..2f9db45a1 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 7f996591f..490c2ede6 100644 +index 7f996591fa..490c2ede60 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -91,4 +91,9 @@ public class PurpurWorldConfig { diff --git a/patches/server/0029-Add-config-for-items-breaking-turtle-eggs.patch b/patches/server/0029-Add-config-for-items-breaking-turtle-eggs.patch index 913bd4fae..e162bd60c 100644 --- a/patches/server/0029-Add-config-for-items-breaking-turtle-eggs.patch +++ b/patches/server/0029-Add-config-for-items-breaking-turtle-eggs.patch @@ -1,4 +1,4 @@ -From 86ab92142299a1e2412d3aeebea99d4cabac9508 Mon Sep 17 00:00:00 2001 +From f2c0268badfcffd1e43a9fba97f02b4401c04173 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 6 Jun 2019 22:15:46 -0500 Subject: [PATCH] Add config for items breaking turtle eggs @@ -9,14 +9,14 @@ Subject: [PATCH] Add config for items breaking turtle eggs 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/BlockTurtleEgg.java b/src/main/java/net/minecraft/server/BlockTurtleEgg.java -index a32ea2a4f..37a394d92 100644 +index fd91785bfe..5bb645eb9c 100644 --- a/src/main/java/net/minecraft/server/BlockTurtleEgg.java +++ b/src/main/java/net/minecraft/server/BlockTurtleEgg.java @@ -163,6 +163,17 @@ public class BlockTurtleEgg extends Block { } private boolean a(World world, Entity entity) { -- return entity instanceof EntityTurtle ? false : (entity instanceof EntityLiving && !(entity instanceof EntityHuman) ? world.getGameRules().getBoolean("mobGriefing") : true); +- return entity instanceof EntityTurtle ? false : (entity instanceof EntityLiving && !(entity instanceof EntityHuman) ? world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) : true); + // Purpur start + if (entity instanceof EntityTurtle) { + return false; @@ -25,14 +25,14 @@ index a32ea2a4f..37a394d92 100644 + return false; + } + if (entity instanceof EntityLiving && !(entity instanceof EntityHuman)) { -+ return world.getGameRules().getBoolean("mobGriefing"); ++ return world.getGameRules().getBoolean(GameRules.MOB_GRIEFING); + } + return true; + // Purpur end } } diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java -index 7f1c3ccb6..a649a4c35 100644 +index 7f1c3ccb6c..a649a4c359 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -101,4 +101,9 @@ public class PurpurWorldConfig { diff --git a/patches/server/0030-Block-and-Fluid-Tick-Events.patch b/patches/server/0030-Block-and-Fluid-Tick-Events.patch index a7d7e0757..3efd77cd6 100644 --- a/patches/server/0030-Block-and-Fluid-Tick-Events.patch +++ b/patches/server/0030-Block-and-Fluid-Tick-Events.patch @@ -1,4 +1,4 @@ -From 1a31c3947216fa6cfe3893f00c5783e88b69e5fd Mon Sep 17 00:00:00 2001 +From c84db70f17617685b8f4386188ed65a63f96894e Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 6 Jun 2019 23:23:52 -0500 Subject: [PATCH] Block and Fluid Tick Events @@ -10,7 +10,7 @@ Subject: [PATCH] Block and Fluid Tick Events 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 135ec94c6f..a077859418 100644 +index ec3b6ec5cf..3b6b9b108c 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -446,13 +446,13 @@ public class WorldServer extends World { @@ -24,8 +24,8 @@ index 135ec94c6f..a077859418 100644 Fluid fluid = chunksection.b(blockposition2.getX() - j, blockposition2.getY() - j1, blockposition2.getZ() - k); -- if (fluid.g()) { -+ if (fluid.g() && (!purpurConfig.fluidTickEvent || new net.pl3x.purpur.event.block.FluidTickEvent(getWorld(), blockposition2.x, blockposition2.y, blockposition2.z, true).callEvent())) { // Purpur +- if (fluid.h()) { ++ if (fluid.h() && (!purpurConfig.fluidTickEvent || new net.pl3x.purpur.event.block.FluidTickEvent(getWorld(), blockposition2.x, blockposition2.y, blockposition2.z, true).callEvent())) { // Purpur fluid.b(this, blockposition2, this.random); } @@ -62,10 +62,10 @@ index a649a4c359..92eeaca428 100644 + } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 9bb1ad077a..c404c7ff44 100644 +index 3e55033d3c..748b817e90 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2174,6 +2174,24 @@ public class CraftWorld implements World { +@@ -2210,6 +2210,24 @@ public class CraftWorld implements World { } // Paper end diff --git a/patches/server/0032-Phantoms-spawn-naturally-in-the-end.patch b/patches/server/0032-Phantoms-spawn-naturally-in-the-end.patch index ac9e02988..3946a07ec 100644 --- a/patches/server/0032-Phantoms-spawn-naturally-in-the-end.patch +++ b/patches/server/0032-Phantoms-spawn-naturally-in-the-end.patch @@ -1,15 +1,14 @@ -From 25302a92dd438714b58ac0d0e2c97c626720e44c Mon Sep 17 00:00:00 2001 +From fd0bed9291b83e36b08ca54a76b99725bb9611fb Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 20 Jun 2019 18:48:58 -0500 Subject: [PATCH] Phantoms spawn naturally in the end --- - .../java/net/minecraft/server/BiomeTheEndHighIsland.java | 3 ++- - src/main/java/net/minecraft/server/EntityPhantom.java | 4 +++- - .../java/net/minecraft/server/EntityPositionTypes.java | 3 ++- - src/main/java/net/minecraft/server/SpawnerCreature.java | 7 +++++++ - src/main/java/net/pl3x/purpur/PurpurConfig.java | 5 +++++ - 5 files changed, 19 insertions(+), 3 deletions(-) + .../net/minecraft/server/BiomeTheEndHighIsland.java | 3 ++- + src/main/java/net/minecraft/server/EntityPhantom.java | 10 +++++++++- + .../java/net/minecraft/server/SpawnerCreature.java | 6 ++++++ + src/main/java/net/pl3x/purpur/PurpurConfig.java | 5 +++++ + 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/BiomeTheEndHighIsland.java b/src/main/java/net/minecraft/server/BiomeTheEndHighIsland.java index 6592d15291..67cb1520be 100644 @@ -29,7 +28,7 @@ index 6592d15291..67cb1520be 100644 } } diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java -index 5808363b0f..49ae359675 100644 +index 8517fcf293..124bcc884e 100644 --- a/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java @@ -10,7 +10,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -41,7 +40,20 @@ index 5808363b0f..49ae359675 100644 private EntityPhantom.AttackPhase bz; private BlockPosition crystalPosition; // Purpur -@@ -100,6 +100,8 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -26,6 +26,12 @@ public class EntityPhantom extends EntityFlying implements IMonster { + this.canBeRiddenInWater = false; // Purpur + } + ++ // Purpur start ++ public static boolean canSpawn(EntityTypes entitytypes, GeneratorAccess world, EnumMobSpawn enummobspawn, BlockPosition position, java.util.Random random) { ++ return world.getDifficulty() != EnumDifficulty.PEACEFUL && a(entitytypes, world, enummobspawn, position, random); ++ } ++ // Purpur end ++ + @Override + protected EntityAIBodyControl o() { + return new EntityPhantom.d(this); +@@ -100,6 +106,8 @@ public class EntityPhantom extends EntityFlying implements IMonster { this.world.addParticle(Particles.MYCELIUM, this.locX - (double) f2, this.locY + (double) f4, this.locZ - (double) f3, 0.0D, 0.0D, 0.0D); } @@ -50,29 +62,8 @@ index 5808363b0f..49ae359675 100644 if (!this.world.isClientSide && this.world.getDifficulty() == EnumDifficulty.PEACEFUL) { this.die(); } -diff --git a/src/main/java/net/minecraft/server/EntityPositionTypes.java b/src/main/java/net/minecraft/server/EntityPositionTypes.java -index c867b80b6c..a6b9e0e79a 100644 ---- a/src/main/java/net/minecraft/server/EntityPositionTypes.java -+++ b/src/main/java/net/minecraft/server/EntityPositionTypes.java -@@ -55,6 +55,7 @@ public class EntityPositionTypes { - a(EntityTypes.MULE, EntityPositionTypes.Surface.ON_GROUND, HeightMap.Type.MOTION_BLOCKING_NO_LEAVES); - a(EntityTypes.OCELOT, EntityPositionTypes.Surface.ON_GROUND, HeightMap.Type.MOTION_BLOCKING); - a(EntityTypes.PARROT, EntityPositionTypes.Surface.ON_GROUND, HeightMap.Type.MOTION_BLOCKING); -+ a(EntityTypes.PHANTOM, EntityPositionTypes.Surface.IN_AIR, HeightMap.Type.MOTION_BLOCKING_NO_LEAVES); // Purpur - a(EntityTypes.PIG, EntityPositionTypes.Surface.ON_GROUND, HeightMap.Type.MOTION_BLOCKING_NO_LEAVES); - a(EntityTypes.PILLAGER, EntityPositionTypes.Surface.ON_GROUND, HeightMap.Type.MOTION_BLOCKING_NO_LEAVES); - a(EntityTypes.POLAR_BEAR, EntityPositionTypes.Surface.ON_GROUND, HeightMap.Type.MOTION_BLOCKING_NO_LEAVES); -@@ -81,7 +82,7 @@ public class EntityPositionTypes { - - public static enum Surface { - -- ON_GROUND, IN_WATER; -+ ON_GROUND, IN_WATER, IN_AIR; // Purpur - - private Surface() {} - } diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index d7e1ed073d..7fd14b807f 100644 +index b442e09eb4..3e16cb2bc7 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -75,6 +75,12 @@ public final class SpawnerCreature { @@ -88,14 +79,6 @@ index d7e1ed073d..7fd14b807f 100644 if (entitytypes.b() && a(chunkgenerator, enumcreaturetype, biomebase_biomemeta, (BlockPosition) blockposition_mutableblockposition)) { EntityPositionTypes.Surface entitypositiontypes_surface = EntityPositionTypes.a(entitytypes); -@@ -196,6 +202,7 @@ public final class SpawnerCreature { - switch (entitypositiontypes_surface) { - case IN_WATER: - return fluid.a(TagsFluid.WATER) && iworldreader.getFluid(blockposition2).a(TagsFluid.WATER) && !iworldreader.getType(blockposition1).isOccluding(iworldreader, blockposition1); -+ case IN_AIR: return iworldreader.getType(blockposition2).getBlock() == Blocks.AIR; // Purpur - case ON_GROUND: - default: - IBlockData iblockdata1 = iworldreader.getType(blockposition2); diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java index c808ed50ef..afe16a7f55 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java diff --git a/patches/server/0034-Fix-errors-trying-to-spawn-negative-number-of-a-mob.patch b/patches/server/0034-Fix-errors-trying-to-spawn-negative-number-of-a-mob.patch index a8d07c5e1..6033430fa 100644 --- a/patches/server/0034-Fix-errors-trying-to-spawn-negative-number-of-a-mob.patch +++ b/patches/server/0034-Fix-errors-trying-to-spawn-negative-number-of-a-mob.patch @@ -1,4 +1,4 @@ -From 1a994b74ee7bd9e9389ec9c1705589f9b66d1426 Mon Sep 17 00:00:00 2001 +From 35d4853a95a87c5d392d83263ce924fb23a379d6 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sat, 22 Jun 2019 16:17:05 -0500 Subject: [PATCH] Fix errors trying to spawn negative number of a mob @@ -8,11 +8,11 @@ Subject: [PATCH] Fix errors trying to spawn negative number of a mob 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java -index 7fd14b807f..e27818d34f 100644 +index 3e16cb2bc7..af397dd1f7 100644 --- a/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java @@ -69,7 +69,10 @@ public final class SpawnerCreature { - break label96; + break label97; } - l1 = biomebase_biomemeta.c + world.random.nextInt(1 + biomebase_biomemeta.d - biomebase_biomemeta.c); diff --git a/patches/server/0036-Anti-Xray.patch b/patches/server/0036-Anti-Xray.patch index 924c31bd0..93e0d21f5 100644 --- a/patches/server/0036-Anti-Xray.patch +++ b/patches/server/0036-Anti-Xray.patch @@ -1,4 +1,4 @@ -From 7c79f28cea1dd116bb5426eb673c8a9d91cd5a6b Mon Sep 17 00:00:00 2001 +From 9723b774d584480d457b3777d8c8334572d9fbd8 Mon Sep 17 00:00:00 2001 From: stonar96 Date: Mon, 20 Aug 2018 03:03:58 +0200 Subject: [PATCH] Anti-Xray @@ -1107,7 +1107,7 @@ index 0000000000..37093419cf + } +} diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index d89ad4e390..aa70bbd31f 100644 +index e2a48695df..d19412f186 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -315,7 +315,7 @@ public class Chunk implements IChunkAccess { @@ -1120,11 +1120,11 @@ index d89ad4e390..aa70bbd31f 100644 } diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java -index 799c134e4b..80d18dc308 100644 +index 7a76db08fc..5c646c646b 100644 --- a/src/main/java/net/minecraft/server/ChunkMapDistance.java +++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java -@@ -196,10 +196,12 @@ public abstract class ChunkMapDistance { - this.f.b(i, this.a(objectsortedset), false); +@@ -177,10 +177,12 @@ public abstract class ChunkMapDistance { + this.e.b(i, this.a(objectsortedset), false); } + public void addTicketLevel(TicketType type, ChunkCoordIntPair chunkPos, int level, T reason) { this.a(type, chunkPos, level, reason); } // Paper - OBFHELPER @@ -1137,10 +1137,10 @@ index 799c134e4b..80d18dc308 100644 Ticket ticket = new Ticket<>(tickettype, i, t0, this.currentTick); diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java -index 459bd619ee..6e22632dec 100644 +index 42b97ba86b..88cd325313 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java -@@ -512,6 +512,16 @@ public class ChunkProviderServer extends IChunkProvider { +@@ -511,6 +511,16 @@ public class ChunkProviderServer extends IChunkProvider { }); } @@ -1158,7 +1158,7 @@ index 459bd619ee..6e22632dec 100644 this.chunkMapDistance.addTicket(tickettype, chunkcoordintpair, i, t0); } diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java -index 4906530d83..533562f6ab 100644 +index 287f113581..f88e3d957f 100644 --- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java +++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java @@ -74,7 +74,7 @@ public class ChunkRegionLoader { @@ -1180,7 +1180,7 @@ index 4906530d83..533562f6ab 100644 object = protochunk; protochunk.a(abiomebase); diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java -index 43f75fc837..01102f80ec 100644 +index c4c181c1d5..609ec29d6b 100644 --- a/src/main/java/net/minecraft/server/ChunkSection.java +++ b/src/main/java/net/minecraft/server/ChunkSection.java @@ -6,21 +6,32 @@ public class ChunkSection { @@ -1547,10 +1547,10 @@ index ef71a1feb3..c46a08a520 100644 } diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java -index 97040528a0..9898fab280 100644 +index 761cd1355b..cb3363a01e 100644 --- a/src/main/java/net/minecraft/server/PlayerChunk.java +++ b/src/main/java/net/minecraft/server/PlayerChunk.java -@@ -146,6 +146,9 @@ public class PlayerChunk { +@@ -150,6 +150,9 @@ public class PlayerChunk { } public void a(Chunk chunk) { @@ -1561,10 +1561,10 @@ index 97040528a0..9898fab280 100644 World world = chunk.getWorld(); diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java -index 89649e73e5..18ab79c7e3 100644 +index 8e16d6ac87..210a7e8206 100644 --- a/src/main/java/net/minecraft/server/PlayerChunkMap.java +++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java -@@ -493,7 +493,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -491,7 +491,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { PlayerChunkMap.LOGGER.error("Couldn't load chunk {}", chunkcoordintpair, exception); } @@ -1573,7 +1573,7 @@ index 89649e73e5..18ab79c7e3 100644 }, this.executor); } -@@ -1109,6 +1109,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { +@@ -1111,6 +1111,8 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { private void a(EntityPlayer entityplayer, Packet[] apacket, Chunk chunk) { if (apacket[0] == null) { @@ -1583,7 +1583,7 @@ index 89649e73e5..18ab79c7e3 100644 apacket[1] = new PacketPlayOutLightUpdate(chunk.getPos(), this.lightEngine); } diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java -index 7f90a617fe..e00d8ab3ef 100644 +index 83b36b3e7f..8fef6008d1 100644 --- a/src/main/java/net/minecraft/server/PlayerInteractManager.java +++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java @@ -207,6 +207,8 @@ public class PlayerInteractManager { @@ -1651,7 +1651,7 @@ index d2bf158a91..cac427fda7 100644 public static TicketType a(String s, Comparator comparator) { return new TicketType<>(s, comparator, 0L); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index e2a3ab0e62..3105353a48 100644 +index c8f198fdf0..c30d77be58 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -2,6 +2,8 @@ package net.minecraft.server;