diff --git a/patches/server/0011-Integrate-ridables.patch b/patches/server/0011-Integrate-ridables.patch index 967c8661d..e7dfede88 100644 --- a/patches/server/0011-Integrate-ridables.patch +++ b/patches/server/0011-Integrate-ridables.patch @@ -1,4 +1,4 @@ -From d75244e75c3a3b9932e56ee42ea7bce24a332f36 Mon Sep 17 00:00:00 2001 +From 00b6ffb99f648b7920bfdcf2a896820f116108c6 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 30 Apr 2019 19:17:21 -0500 Subject: [PATCH] Integrate ridables @@ -6,16 +6,16 @@ Subject: [PATCH] Integrate ridables --- .../server/ControllerLookDolphin.java | 4 +- .../java/net/minecraft/server/Entity.java | 15 +++- - .../net/minecraft/server/EntityChicken.java | 17 +++- - .../java/net/minecraft/server/EntityCow.java | 14 ++++ - .../net/minecraft/server/EntityCreeper.java | 14 ++++ - .../net/minecraft/server/EntityDolphin.java | 27 ++++++- - .../net/minecraft/server/EntityDrowned.java | 9 ++- - .../net/minecraft/server/EntityEnderman.java | 15 ++++ - .../net/minecraft/server/EntityEndermite.java | 17 +++- - .../java/net/minecraft/server/EntityFish.java | 33 ++++++-- - .../minecraft/server/EntityGiantZombie.java | 13 ++++ - .../net/minecraft/server/EntityGuardian.java | 37 +++++++-- + .../net/minecraft/server/EntityChicken.java | 14 +++- + .../java/net/minecraft/server/EntityCow.java | 11 +++ + .../net/minecraft/server/EntityCreeper.java | 11 +++ + .../net/minecraft/server/EntityDolphin.java | 24 +++++- + .../net/minecraft/server/EntityDrowned.java | 6 +- + .../net/minecraft/server/EntityEnderman.java | 12 +++ + .../net/minecraft/server/EntityEndermite.java | 14 +++- + .../java/net/minecraft/server/EntityFish.java | 30 ++++++-- + .../minecraft/server/EntityGiantZombie.java | 11 +++ + .../net/minecraft/server/EntityGuardian.java | 34 ++++++-- .../net/minecraft/server/EntityHorse.java | 10 ++- .../minecraft/server/EntityHorseAbstract.java | 4 +- .../server/EntityHorseChestedAbstract.java | 18 +++-- @@ -25,32 +25,32 @@ Subject: [PATCH] Integrate ridables .../minecraft/server/EntityHorseZombie.java | 12 +-- .../net/minecraft/server/EntityHuman.java | 14 +++- .../minecraft/server/EntityInsentient.java | 39 ++++++++++ - .../net/minecraft/server/EntityIronGolem.java | 15 ++++ + .../net/minecraft/server/EntityIronGolem.java | 12 +++ .../net/minecraft/server/EntityLiving.java | 28 +++++-- .../net/minecraft/server/EntityLlama.java | 37 ++++++++- - .../minecraft/server/EntityMushroomCow.java | 14 ++++ - .../net/minecraft/server/EntityOcelot.java | 14 ++++ - .../net/minecraft/server/EntityPhantom.java | 39 ++++++++-- - .../java/net/minecraft/server/EntityPig.java | 25 ++++++ - .../net/minecraft/server/EntityPolarBear.java | 15 ++++ + .../minecraft/server/EntityMushroomCow.java | 11 +++ + .../net/minecraft/server/EntityOcelot.java | 11 +++ + .../net/minecraft/server/EntityPhantom.java | 36 +++++++-- + .../java/net/minecraft/server/EntityPig.java | 11 +++ + .../net/minecraft/server/EntityPolarBear.java | 12 +++ .../net/minecraft/server/EntityRabbit.java | 2 +- - .../net/minecraft/server/EntitySheep.java | 14 ++++ - .../minecraft/server/EntitySilverfish.java | 15 ++++ - .../server/EntitySkeletonAbstract.java | 15 ++++ + .../net/minecraft/server/EntitySheep.java | 11 +++ + .../minecraft/server/EntitySilverfish.java | 12 +++ + .../server/EntitySkeletonAbstract.java | 12 +++ .../net/minecraft/server/EntitySlime.java | 2 +- - .../net/minecraft/server/EntitySnowman.java | 15 ++++ - .../net/minecraft/server/EntitySpider.java | 15 ++++ - .../net/minecraft/server/EntitySquid.java | 57 ++++++++++++++ + .../net/minecraft/server/EntitySnowman.java | 12 +++ + .../net/minecraft/server/EntitySpider.java | 12 +++ + .../net/minecraft/server/EntitySquid.java | 54 +++++++++++++ .../server/EntityTameableAnimal.java | 6 ++ .../net/minecraft/server/EntityTypes.java | 6 ++ - .../java/net/minecraft/server/EntityWolf.java | 14 ++++ - .../net/minecraft/server/EntityZombie.java | 15 ++++ + .../java/net/minecraft/server/EntityWolf.java | 11 +++ + .../net/minecraft/server/EntityZombie.java | 12 +++ .../purpur/controller/ControllerLookWASD.java | 46 +++++++++++ .../purpur/controller/ControllerMoveWASD.java | 77 +++++++++++++++++++ .../controller/ControllerMoveWASDFlying.java | 58 ++++++++++++++ .../controller/ControllerMoveWASDWater.java | 42 ++++++++++ .../craftbukkit/entity/CraftLivingEntity.java | 10 +++ - 46 files changed, 870 insertions(+), 59 deletions(-) + 46 files changed, 789 insertions(+), 58 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 @@ -132,7 +132,7 @@ index 9834a8928..1b38ac55c 100644 entity.j = 60; } diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java -index a374c3051..4ab6b4fc4 100644 +index a374c3051..600eb1335 100644 --- a/src/main/java/net/minecraft/server/EntityChicken.java +++ b/src/main/java/net/minecraft/server/EntityChicken.java @@ -15,6 +15,11 @@ public class EntityChicken extends EntityAnimal { @@ -156,17 +156,14 @@ index a374c3051..4ab6b4fc4 100644 this.a(SoundEffects.ENTITY_CHICKEN_EGG, 1.0F, (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); this.forceDrops = true; // CraftBukkit this.a((IMaterial) Items.EGG); -@@ -75,6 +80,16 @@ public class EntityChicken extends EntityAnimal { +@@ -75,6 +80,13 @@ public class EntityChicken extends EntityAnimal { } + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end + @@ -174,7 +171,7 @@ index a374c3051..4ab6b4fc4 100644 public void b(float f, float f1) {} diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java -index 4b460a0a7..754133c72 100644 +index 4b460a0a7..aa1335b68 100644 --- a/src/main/java/net/minecraft/server/EntityCow.java +++ b/src/main/java/net/minecraft/server/EntityCow.java @@ -13,6 +13,11 @@ public class EntityCow extends EntityAnimal { @@ -189,15 +186,12 @@ index 4b460a0a7..754133c72 100644 } @Override -@@ -61,6 +66,15 @@ public class EntityCow extends EntityAnimal { +@@ -61,6 +66,12 @@ public class EntityCow extends EntityAnimal { @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { + // Purpur start - processInteract -+ if (processInteract(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return processInteract(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + + private boolean processInteract(EntityHuman entityhuman, EnumHand enumhand) { @@ -206,7 +200,7 @@ index 4b460a0a7..754133c72 100644 if (itemstack.getItem() == Items.BUCKET && !entityhuman.abilities.canInstantlyBuild && !this.isBaby()) { diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java -index 0c2c3c730..e0bfe0345 100644 +index 0c2c3c730..fa92d23a8 100644 --- a/src/main/java/net/minecraft/server/EntityCreeper.java +++ b/src/main/java/net/minecraft/server/EntityCreeper.java @@ -20,6 +20,11 @@ public class EntityCreeper extends EntityMonster { @@ -221,15 +215,12 @@ index 0c2c3c730..e0bfe0345 100644 } @Override -@@ -184,6 +189,15 @@ public class EntityCreeper extends EntityMonster { +@@ -184,6 +189,12 @@ public class EntityCreeper extends EntityMonster { @Override protected boolean a(EntityHuman entityhuman, EnumHand enumhand) { + // Purpur start - processInteract -+ if (processInteract(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return processInteract(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + + private boolean processInteract(EntityHuman entityhuman, EnumHand enumhand) { @@ -238,7 +229,7 @@ index 0c2c3c730..e0bfe0345 100644 if (itemstack.getItem() == Items.FLINT_AND_STEEL) { diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java -index 56394ccdc..07fe13619 100644 +index 56394ccdc..e42c16603 100644 --- a/src/main/java/net/minecraft/server/EntityDolphin.java +++ b/src/main/java/net/minecraft/server/EntityDolphin.java @@ -20,6 +20,7 @@ public class EntityDolphin extends EntityWaterAnimal { @@ -249,15 +240,12 @@ index 56394ccdc..07fe13619 100644 } @Nullable -@@ -224,6 +225,15 @@ public class EntityDolphin extends EntityWaterAnimal { +@@ -224,6 +225,12 @@ public class EntityDolphin extends EntityWaterAnimal { @Override protected boolean a(EntityHuman entityhuman, EnumHand enumhand) { + // Purpur start - processInteract -+ if (processInteract(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return processInteract(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + + protected boolean processInteract(EntityHuman entityhuman, EnumHand enumhand) { @@ -265,7 +253,7 @@ index 56394ccdc..07fe13619 100644 ItemStack itemstack = entityhuman.b(enumhand); if (!itemstack.isEmpty() && itemstack.getItem().a(TagsItem.FISHES)) { -@@ -519,7 +529,7 @@ public class EntityDolphin extends EntityWaterAnimal { +@@ -519,7 +526,7 @@ public class EntityDolphin extends EntityWaterAnimal { } } @@ -274,7 +262,7 @@ index 56394ccdc..07fe13619 100644 private final EntityDolphin i; -@@ -528,8 +538,21 @@ public class EntityDolphin extends EntityWaterAnimal { +@@ -528,8 +535,21 @@ public class EntityDolphin extends EntityWaterAnimal { this.i = entitydolphin; } @@ -298,27 +286,10 @@ index 56394ccdc..07fe13619 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 449fbee60..52571bada 100644 +index 449fbee60..c692ea296 100644 --- a/src/main/java/net/minecraft/server/EntityDrowned.java +++ b/src/main/java/net/minecraft/server/EntityDrowned.java -@@ -6,7 +6,7 @@ import javax.annotation.Nullable; - - public class EntityDrowned extends EntityZombie implements IRangedEntity { - -- private boolean bz; -+ private boolean bz; public boolean isSwimmingUp() { return this.bz; } // Purpur - OBFHELPER - protected final NavigationGuardian b; - protected final Navigation c; - -@@ -134,6 +134,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { - return !this.isSwimming(); - } - -+ public boolean isSwimmingUpOrTargetIsInWater() { return eg(); } // Purpur - OBFHELPER - private boolean eg() { - if (this.bz) { - return true; -@@ -205,7 +206,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -205,7 +205,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { this.bz = flag; } @@ -327,7 +298,7 @@ index 449fbee60..52571bada 100644 private final EntityDrowned i; -@@ -215,7 +216,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -215,7 +215,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { } @Override @@ -336,7 +307,7 @@ index 449fbee60..52571bada 100644 EntityLiving entityliving = this.i.getGoalTarget(); if (this.i.eg() && this.i.isInWater()) { -@@ -248,7 +249,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -248,7 +248,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { this.i.setMot(this.i.getMot().add(0.0D, -0.008D, 0.0D)); } @@ -346,7 +317,7 @@ index 449fbee60..52571bada 100644 } diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java -index f08f139e9..434ffc0f4 100644 +index f08f139e9..1a8b3392e 100644 --- a/src/main/java/net/minecraft/server/EntityEnderman.java +++ b/src/main/java/net/minecraft/server/EntityEnderman.java @@ -24,6 +24,11 @@ public class EntityEnderman extends EntityMonster { @@ -361,17 +332,14 @@ index f08f139e9..434ffc0f4 100644 } @Override -@@ -256,6 +261,16 @@ public class EntityEnderman extends EntityMonster { +@@ -256,6 +261,13 @@ public class EntityEnderman extends EntityMonster { } + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end + @@ -379,7 +347,7 @@ index f08f139e9..434ffc0f4 100644 this.datawatcher.set(EntityEnderman.d, Optional.ofNullable(iblockdata)); } diff --git a/src/main/java/net/minecraft/server/EntityEndermite.java b/src/main/java/net/minecraft/server/EntityEndermite.java -index 10b0f9653..09c9be025 100644 +index 10b0f9653..a3f01d3af 100644 --- a/src/main/java/net/minecraft/server/EntityEndermite.java +++ b/src/main/java/net/minecraft/server/EntityEndermite.java @@ -9,6 +9,11 @@ public class EntityEndermite extends EntityMonster { @@ -403,7 +371,7 @@ index 10b0f9653..09c9be025 100644 this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); } -@@ -138,4 +143,14 @@ public class EntityEndermite extends EntityMonster { +@@ -138,4 +143,11 @@ public class EntityEndermite extends EntityMonster { public EnumMonsterType getMonsterType() { return EnumMonsterType.ARTHROPOD; } @@ -411,15 +379,12 @@ index 10b0f9653..09c9be025 100644 + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java -index a28fbdf1e..c014c6f6c 100644 +index a28fbdf1e..607386791 100644 --- a/src/main/java/net/minecraft/server/EntityFish.java +++ b/src/main/java/net/minecraft/server/EntityFish.java @@ -9,6 +9,10 @@ public abstract class EntityFish extends EntityWaterAnimal { @@ -455,15 +420,12 @@ index a28fbdf1e..c014c6f6c 100644 this.move(EnumMoveType.SELF, this.getMot()); this.setMot(this.getMot().a(0.9D)); if (this.getGoalTarget() == null) { -@@ -117,6 +117,15 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -117,6 +117,12 @@ public abstract class EntityFish extends EntityWaterAnimal { @Override protected boolean a(EntityHuman entityhuman, EnumHand enumhand) { + // Purpur start - processInteract -+ if (processInteract(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return processInteract(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + + protected boolean processInteract(EntityHuman entityhuman, EnumHand enumhand) { @@ -471,7 +433,7 @@ index a28fbdf1e..c014c6f6c 100644 ItemStack itemstack = entityhuman.b(enumhand); if (itemstack.getItem() == Items.WATER_BUCKET && this.isAlive()) { -@@ -162,7 +171,7 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -162,7 +168,7 @@ public abstract class EntityFish extends EntityWaterAnimal { return SoundEffects.ENTITY_FISH_SWIM; } @@ -480,7 +442,7 @@ index a28fbdf1e..c014c6f6c 100644 private final EntityFish i; -@@ -171,8 +180,16 @@ public abstract class EntityFish extends EntityWaterAnimal { +@@ -171,8 +177,16 @@ public abstract class EntityFish extends EntityWaterAnimal { this.i = entityfish; } @@ -499,7 +461,7 @@ index a28fbdf1e..c014c6f6c 100644 this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D)); } diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java -index bcbade19e..f45a5c2c7 100644 +index bcbade19e..e9962c2a7 100644 --- a/src/main/java/net/minecraft/server/EntityGiantZombie.java +++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java @@ -5,7 +5,11 @@ public class EntityGiantZombie extends EntityMonster { @@ -514,25 +476,22 @@ index bcbade19e..f45a5c2c7 100644 // Purpur end } -@@ -22,7 +26,16 @@ public class EntityGiantZombie extends EntityMonster { +@@ -22,6 +26,13 @@ public class EntityGiantZombie extends EntityMonster { this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue(50.0D); } + // Purpur start - @Override ++ @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { // processInteract -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end + + @Override public float a(BlockPosition blockposition, IWorldReader iworldreader) { return iworldreader.w(blockposition) - 0.5F; - } diff --git a/src/main/java/net/minecraft/server/EntityGuardian.java b/src/main/java/net/minecraft/server/EntityGuardian.java -index 335416d96..6c41730eb 100644 +index 335416d96..62d1f2536 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 { @@ -570,7 +529,7 @@ index 335416d96..6c41730eb 100644 this.move(EnumMoveType.SELF, this.getMot()); this.setMot(this.getMot().a(0.9D)); if (!this.dY() && this.getGoalTarget() == null) { -@@ -314,7 +322,17 @@ public class EntityGuardian extends EntityMonster { +@@ -314,7 +322,14 @@ public class EntityGuardian extends EntityMonster { } @@ -578,10 +537,7 @@ index 335416d96..6c41730eb 100644 + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end + @@ -589,7 +545,7 @@ index 335416d96..6c41730eb 100644 private final EntityGuardian i; -@@ -324,7 +342,16 @@ public class EntityGuardian extends EntityMonster { +@@ -324,7 +339,16 @@ public class EntityGuardian extends EntityMonster { } @Override @@ -878,7 +834,7 @@ index a0c089477..db5284f48 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java -index 7aebc90af..97a5dcfd0 100644 +index 7aebc90af..d9d77ab44 100644 --- a/src/main/java/net/minecraft/server/EntityIronGolem.java +++ b/src/main/java/net/minecraft/server/EntityIronGolem.java @@ -9,6 +9,11 @@ public class EntityIronGolem extends EntityGolem { @@ -893,7 +849,7 @@ index 7aebc90af..97a5dcfd0 100644 } @Override -@@ -175,4 +180,14 @@ public class EntityIronGolem extends EntityGolem { +@@ -175,4 +180,11 @@ public class EntityIronGolem extends EntityGolem { return SpawnerCreature.a((IBlockAccess) iworldreader, blockposition2, iblockdata1, iblockdata1.p()) && SpawnerCreature.a((IBlockAccess) iworldreader, blockposition, iworldreader.getType(blockposition), FluidTypes.EMPTY.i()) && iworldreader.i(this); } } @@ -901,10 +857,7 @@ index 7aebc90af..97a5dcfd0 100644 + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end } @@ -1052,7 +1005,7 @@ index f8a8da637..6870fb875 100644 public boolean eI() { diff --git a/src/main/java/net/minecraft/server/EntityMushroomCow.java b/src/main/java/net/minecraft/server/EntityMushroomCow.java -index d2de3589a..5c113e35c 100644 +index d2de3589a..9aa7a8adb 100644 --- a/src/main/java/net/minecraft/server/EntityMushroomCow.java +++ b/src/main/java/net/minecraft/server/EntityMushroomCow.java @@ -18,6 +18,11 @@ public class EntityMushroomCow extends EntityCow { @@ -1067,15 +1020,12 @@ index d2de3589a..5c113e35c 100644 } @Override -@@ -40,6 +45,15 @@ public class EntityMushroomCow extends EntityCow { +@@ -40,6 +45,12 @@ public class EntityMushroomCow extends EntityCow { @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { + // Purpur start - processInteract -+ if (processInteract(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return processInteract(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + + public boolean processInteract(EntityHuman entityhuman, EnumHand enumhand) { @@ -1084,7 +1034,7 @@ index d2de3589a..5c113e35c 100644 if (itemstack.getItem() == Items.BOWL && this.getAge() >= 0 && !entityhuman.abilities.canInstantlyBuild) { diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java -index 1713bead2..21fa1579b 100644 +index 1713bead2..3200ac91b 100644 --- a/src/main/java/net/minecraft/server/EntityOcelot.java +++ b/src/main/java/net/minecraft/server/EntityOcelot.java @@ -14,6 +14,11 @@ public class EntityOcelot extends EntityAnimal { @@ -1099,15 +1049,12 @@ index 1713bead2..21fa1579b 100644 } private boolean isTrusting() { -@@ -127,6 +132,15 @@ public class EntityOcelot extends EntityAnimal { +@@ -127,6 +132,12 @@ public class EntityOcelot extends EntityAnimal { @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { + // Purpur start - processInteract -+ if (processInteract(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return processInteract(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + + public boolean processInteract(EntityHuman entityhuman, EnumHand enumhand) { @@ -1116,7 +1063,7 @@ index 1713bead2..21fa1579b 100644 if ((this.bD == null || this.bD.h()) && !this.isTrusting() && this.i(itemstack) && entityhuman.h((Entity) this) < 9.0D) { diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java -index 6aa116f4b..d475cc97e 100644 +index 6aa116f4b..15f6d612d 100644 --- a/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java @@ -22,6 +22,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -1132,26 +1079,23 @@ index 6aa116f4b..d475cc97e 100644 @Override public void movementTick() { - if (this.isAlive() && this.dS()) { -+ if (this.isAlive() && getRider() == null && this.dS()) { // Purpur - do not set fire if being ridden ++ if (this.isAlive() && getRider() == null && this.isInDaylight()) { // Purpur - do not set fire if being ridden this.setOnFire(8); } -@@ -227,6 +228,14 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -227,6 +228,11 @@ public class EntityPhantom extends EntityFlying implements IMonster { // Paper end // Purpur start + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + class FindCrystalGoal extends PathfinderGoal { private final EntityPhantom phantom; private EntityEnderCrystal crystal; -@@ -605,14 +614,23 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -605,14 +611,23 @@ public class EntityPhantom extends EntityFlying implements IMonster { } } @@ -1177,7 +1121,7 @@ index 6aa116f4b..d475cc97e 100644 } class d extends EntityAIBodyControl { -@@ -628,7 +646,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -628,7 +643,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { } } @@ -1186,7 +1130,7 @@ index 6aa116f4b..d475cc97e 100644 private float j = 0.1F; -@@ -636,8 +654,19 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -636,8 +651,19 @@ public class EntityPhantom extends EntityFlying implements IMonster { super(entityinsentient); } @@ -1208,7 +1152,7 @@ index 6aa116f4b..d475cc97e 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 616075569..f44bbfcb3 100644 +index 616075569..50906c5bd 100644 --- a/src/main/java/net/minecraft/server/EntityPig.java +++ b/src/main/java/net/minecraft/server/EntityPig.java @@ -18,6 +18,11 @@ public class EntityPig extends EntityAnimal { @@ -1223,15 +1167,12 @@ index 616075569..f44bbfcb3 100644 } @Override -@@ -111,6 +116,15 @@ public class EntityPig extends EntityAnimal { +@@ -111,6 +116,12 @@ public class EntityPig extends EntityAnimal { @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { + // Purpur start - processInteract -+ if (processInteract(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return processInteract(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + + public boolean processInteract(EntityHuman entityhuman, EnumHand enumhand) { @@ -1239,26 +1180,8 @@ index 616075569..f44bbfcb3 100644 if (!super.a(entityhuman, enumhand)) { ItemStack itemstack = entityhuman.b(enumhand); -@@ -126,6 +140,17 @@ public class EntityPig extends EntityAnimal { - } else if (itemstack.getItem() == Items.SADDLE) { - itemstack.a(entityhuman, (EntityLiving) this, enumhand); - return true; -+ // Purpur start - get saddle back -+ } else if (hasSaddle() && entityhuman.isSneaking() && itemstack.getItem() == Items.AIR) { -+ setSaddle(false); -+ if (!entityhuman.abilities.canInstantlyBuild) { -+ ItemStack saddle = new ItemStack(Items.SADDLE); -+ if (!entityhuman.inventory.pickup(saddle)) { -+ entityhuman.drop(saddle, false); -+ } -+ } -+ return true; -+ // Purpur end - } else { - return false; - } diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java -index 182a3195e..94f561a9d 100644 +index 182a3195e..7458f3ff6 100644 --- a/src/main/java/net/minecraft/server/EntityPolarBear.java +++ b/src/main/java/net/minecraft/server/EntityPolarBear.java @@ -14,6 +14,11 @@ public class EntityPolarBear extends EntityAnimal { @@ -1273,17 +1196,14 @@ index 182a3195e..94f561a9d 100644 } @Override -@@ -154,6 +159,16 @@ public class EntityPolarBear extends EntityAnimal { +@@ -154,6 +159,13 @@ public class EntityPolarBear extends EntityAnimal { return 0.98F; } + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end + @@ -1304,7 +1224,7 @@ index f6fa87158..bd0679e74 100644 double d0 = this.moveController.c(); diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java -index f0cd951ac..311cdb58b 100644 +index f0cd951ac..d52a320a6 100644 --- a/src/main/java/net/minecraft/server/EntitySheep.java +++ b/src/main/java/net/minecraft/server/EntitySheep.java @@ -55,6 +55,11 @@ public class EntitySheep extends EntityAnimal { @@ -1319,15 +1239,12 @@ index f0cd951ac..311cdb58b 100644 } @Override -@@ -144,6 +149,15 @@ public class EntitySheep extends EntityAnimal { +@@ -144,6 +149,12 @@ public class EntitySheep extends EntityAnimal { @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { + // Purpur start - processInteract -+ if (processInteract(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return processInteract(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + + public boolean processInteract(EntityHuman entityhuman, EnumHand enumhand) { @@ -1336,7 +1253,7 @@ index f0cd951ac..311cdb58b 100644 if (itemstack.getItem() == Items.SHEARS && !this.isSheared() && !this.isBaby()) { diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java -index d823c6b6d..4bc91b19f 100644 +index d823c6b6d..e0a52dbe9 100644 --- a/src/main/java/net/minecraft/server/EntitySilverfish.java +++ b/src/main/java/net/minecraft/server/EntitySilverfish.java @@ -10,6 +10,11 @@ public class EntitySilverfish extends EntityMonster { @@ -1351,17 +1268,14 @@ index d823c6b6d..4bc91b19f 100644 } @Override -@@ -117,6 +122,16 @@ public class EntitySilverfish extends EntityMonster { +@@ -117,6 +122,13 @@ public class EntitySilverfish extends EntityMonster { return EnumMonsterType.ARTHROPOD; } + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end + @@ -1369,7 +1283,7 @@ index d823c6b6d..4bc91b19f 100644 private EnumDirection h; diff --git a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java -index 85157e80d..94dca9e48 100644 +index 85157e80d..4317d9703 100644 --- a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java +++ b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java @@ -24,6 +24,11 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR @@ -1384,7 +1298,7 @@ index 85157e80d..94dca9e48 100644 } @Override -@@ -199,4 +204,14 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR +@@ -199,4 +204,11 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR public double aN() { return -0.6D; } @@ -1392,10 +1306,7 @@ index 85157e80d..94dca9e48 100644 + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end } @@ -1413,7 +1324,7 @@ index d720d0fae..e4f7797ed 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 c13dfc6cc..930b4673e 100644 +index c13dfc6cc..9997ef494 100644 --- a/src/main/java/net/minecraft/server/EntitySnowman.java +++ b/src/main/java/net/minecraft/server/EntitySnowman.java @@ -13,6 +13,11 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { @@ -1436,15 +1347,12 @@ index c13dfc6cc..930b4673e 100644 IBlockData iblockdata = Blocks.SNOW.getBlockData(); for (int l = 0; l < 4; ++l) { -@@ -111,6 +117,15 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { +@@ -111,6 +117,12 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { @Override protected boolean a(EntityHuman entityhuman, EnumHand enumhand) { + // Purpur start - processInteract -+ if (processInteract(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return processInteract(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + + public boolean processInteract(EntityHuman entityhuman, EnumHand enumhand) { @@ -1453,7 +1361,7 @@ index c13dfc6cc..930b4673e 100644 if (this.hasPumpkin()) { if (itemstack.getItem() == Items.SHEARS) { // Purpur diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java -index b560a8969..41374df4f 100644 +index b560a8969..3089314a8 100644 --- a/src/main/java/net/minecraft/server/EntitySpider.java +++ b/src/main/java/net/minecraft/server/EntitySpider.java @@ -9,6 +9,11 @@ public class EntitySpider extends EntityMonster { @@ -1468,17 +1376,14 @@ index b560a8969..41374df4f 100644 } @Override -@@ -115,6 +120,16 @@ public class EntitySpider extends EntityMonster { +@@ -115,6 +120,13 @@ public class EntitySpider extends EntityMonster { this.datawatcher.set(EntitySpider.b, b0); } + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end + @@ -1486,7 +1391,7 @@ index b560a8969..41374df4f 100644 @Override public GroupDataEntity prepare(GeneratorAccess generatoraccess, DifficultyDamageScaler difficultydamagescaler, EnumMobSpawn enummobspawn, @Nullable GroupDataEntity groupdataentity, @Nullable NBTTagCompound nbttagcompound) { diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java -index 77c0ed42f..e82d4e643 100644 +index 77c0ed42f..8dff2065c 100644 --- a/src/main/java/net/minecraft/server/EntitySquid.java +++ b/src/main/java/net/minecraft/server/EntitySquid.java @@ -21,6 +21,7 @@ public class EntitySquid extends EntityWaterAnimal { @@ -1505,24 +1410,21 @@ index 77c0ed42f..e82d4e643 100644 public void a(float f, float f1, float f2) { this.bH = f; this.bI = f1; -@@ -184,6 +186,16 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -184,6 +186,13 @@ public class EntitySquid extends EntityWaterAnimal { return this.bH != 0.0F || this.bI != 0.0F || this.bJ != 0.0F; } + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end + class a extends PathfinderGoal { private int b; -@@ -258,6 +270,39 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -258,6 +267,39 @@ public class EntitySquid extends EntityWaterAnimal { @Override public void e() { @@ -1562,7 +1464,7 @@ index 77c0ed42f..e82d4e643 100644 int i = this.b.cv(); if (i > 100) { -@@ -272,5 +317,17 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -272,5 +314,17 @@ public class EntitySquid extends EntityWaterAnimal { } } @@ -1615,7 +1517,7 @@ index 483c97692..181e92980 100644 if (this.be == null) { this.be = SystemUtils.a("entity", IRegistry.ENTITY_TYPE.getKey(this)); diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java -index 4167ce8f8..0222399b4 100644 +index 4167ce8f8..245d36084 100644 --- a/src/main/java/net/minecraft/server/EntityWolf.java +++ b/src/main/java/net/minecraft/server/EntityWolf.java @@ -29,6 +29,11 @@ public class EntityWolf extends EntityTameableAnimal { @@ -1630,15 +1532,12 @@ index 4167ce8f8..0222399b4 100644 } @Override -@@ -275,6 +280,15 @@ public class EntityWolf extends EntityTameableAnimal { +@@ -275,6 +280,12 @@ public class EntityWolf extends EntityTameableAnimal { @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { + // Purpur start - processInteract -+ if (processInteract(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return (!isTamed() && isOwner(entityhuman)) || tryRide(entityhuman, enumhand); ++ return processInteract(entityhuman, enumhand) || ((!isTamed() || isOwner(entityhuman)) && tryRide(entityhuman, enumhand)); + } + + public boolean processInteract(EntityHuman entityhuman, EnumHand enumhand) { @@ -1647,7 +1546,7 @@ index 4167ce8f8..0222399b4 100644 Item item = itemstack.getItem(); diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java -index b06235d46..cff6fb1fb 100644 +index b06235d46..f013cfe5b 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java @@ -36,6 +36,11 @@ public class EntityZombie extends EntityMonster { @@ -1662,17 +1561,14 @@ index b06235d46..cff6fb1fb 100644 } public EntityZombie(World world) { -@@ -460,6 +465,16 @@ public class EntityZombie extends EntityMonster { +@@ -460,6 +465,13 @@ public class EntityZombie extends EntityMonster { return itemstack.getItem() == Items.EGG && this.isBaby() && this.isPassenger() ? false : super.g(itemstack); } + // Purpur start - processInteract + @Override + public boolean a(EntityHuman entityhuman, EnumHand enumhand) { -+ if (super.a(entityhuman, enumhand)) { -+ return true; // vanilla action handled -+ } -+ return tryRide(entityhuman, enumhand); ++ return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); + } + // Purpur end + diff --git a/patches/server/0015-Make-giants-naturally-spawn-and-have-AI.patch b/patches/server/0015-Make-giants-naturally-spawn-and-have-AI.patch index bb2379bc5..e2e9eee54 100644 --- a/patches/server/0015-Make-giants-naturally-spawn-and-have-AI.patch +++ b/patches/server/0015-Make-giants-naturally-spawn-and-have-AI.patch @@ -1,4 +1,4 @@ -From 563416526b8844dbd95d748c683fe8cdf31611cd Mon Sep 17 00:00:00 2001 +From 2c8f624c37b9234a4c5f213a2f311dbc46fd6729 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 @@ -55,7 +55,7 @@ index 317db4b12..69ba98b66 100644 + // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java -index f45a5c2c7..3cfbc5c49 100644 +index e9962c2a7..f4e087890 100644 --- a/src/main/java/net/minecraft/server/EntityGiantZombie.java +++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java @@ -27,6 +27,26 @@ public class EntityGiantZombie extends EntityMonster { @@ -84,10 +84,10 @@ index f45a5c2c7..3cfbc5c49 100644 + @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { // processInteract - if (super.a(entityhuman, enumhand)) { -@@ -37,6 +57,6 @@ public class EntityGiantZombie extends EntityMonster { - // Purpur end + return super.a(entityhuman, enumhand) || tryRide(entityhuman, enumhand); +@@ -35,6 +55,6 @@ public class EntityGiantZombie extends EntityMonster { + @Override public float a(BlockPosition blockposition, IWorldReader iworldreader) { - return iworldreader.w(blockposition) - 0.5F; + return super.a(blockposition, iworldreader); // Purpur - fix light requirements for natural spawns