diff --git a/patches/server/0011-Integrate-ridables.patch b/patches/server/0011-Integrate-ridables.patch index 4762d067d..a58c49b95 100644 --- a/patches/server/0011-Integrate-ridables.patch +++ b/patches/server/0011-Integrate-ridables.patch @@ -1,4 +1,4 @@ -From 97c7a12cb8b363b0d51dc2d80c9528718eb29e49 Mon Sep 17 00:00:00 2001 +From a062b19272098407c2b2de1e8796794a31c0627f Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 30 Apr 2019 19:17:21 -0500 Subject: [PATCH] Integrate ridables @@ -7,9 +7,9 @@ Subject: [PATCH] Integrate ridables .../server/ControllerLookDolphin.java | 4 +- .../java/net/minecraft/server/Entity.java | 28 +++- .../net/minecraft/server/EntityAgeable.java | 2 +- - .../java/net/minecraft/server/EntityBat.java | 22 +++ - .../net/minecraft/server/EntityBlaze.java | 15 +- - .../java/net/minecraft/server/EntityCat.java | 36 +++-- + .../java/net/minecraft/server/EntityBat.java | 22 ++++ + .../net/minecraft/server/EntityBlaze.java | 15 ++- + .../java/net/minecraft/server/EntityCat.java | 36 ++++-- .../minecraft/server/EntityCaveSpider.java | 1 + .../net/minecraft/server/EntityChicken.java | 3 +- .../java/net/minecraft/server/EntityCod.java | 1 + @@ -27,30 +27,22 @@ Subject: [PATCH] Integrate ridables .../minecraft/server/EntityGiantZombie.java | 2 + .../net/minecraft/server/EntityGuardian.java | 27 +++- .../minecraft/server/EntityGuardianElder.java | 1 + - .../net/minecraft/server/EntityHorse.java | 3 +- - .../minecraft/server/EntityHorseAbstract.java | 4 +- - .../server/EntityHorseChestedAbstract.java | 10 +- - .../minecraft/server/EntityHorseDonkey.java | 1 + - .../net/minecraft/server/EntityHorseMule.java | 1 + - .../minecraft/server/EntityHorseSkeleton.java | 7 +- - .../minecraft/server/EntityHorseZombie.java | 7 +- + .../minecraft/server/EntityHorseAbstract.java | 4 + .../net/minecraft/server/EntityHuman.java | 14 +- .../server/EntityIllagerIllusioner.java | 1 + - .../minecraft/server/EntityInsentient.java | 51 ++++++- + .../minecraft/server/EntityInsentient.java | 51 +++++++- .../net/minecraft/server/EntityIronGolem.java | 1 + .../net/minecraft/server/EntityLiving.java | 25 +++- - .../net/minecraft/server/EntityLlama.java | 37 ++++- - .../minecraft/server/EntityLlamaTrader.java | 1 + .../net/minecraft/server/EntityMagmaCube.java | 3 +- .../minecraft/server/EntityMushroomCow.java | 1 + .../net/minecraft/server/EntityOcelot.java | 1 + .../net/minecraft/server/EntityPanda.java | 1 + .../net/minecraft/server/EntityParrot.java | 3 +- .../net/minecraft/server/EntityPhantom.java | 32 ++++- - .../java/net/minecraft/server/EntityPig.java | 34 ++--- + .../java/net/minecraft/server/EntityPig.java | 34 +++-- .../net/minecraft/server/EntityPigZombie.java | 1 + .../net/minecraft/server/EntityPillager.java | 1 + - .../net/minecraft/server/EntityPolarBear.java | 29 ++++ + .../net/minecraft/server/EntityPolarBear.java | 29 +++++ .../minecraft/server/EntityPufferFish.java | 1 + .../net/minecraft/server/EntityRabbit.java | 3 +- .../net/minecraft/server/EntityRavager.java | 1 + @@ -64,7 +56,7 @@ Subject: [PATCH] Integrate ridables .../net/minecraft/server/EntitySlime.java | 3 +- .../net/minecraft/server/EntitySnowman.java | 2 + .../net/minecraft/server/EntitySpider.java | 3 + - .../net/minecraft/server/EntitySquid.java | 47 ++++++ + .../net/minecraft/server/EntitySquid.java | 47 +++++++ .../server/EntityTameableAnimal.java | 6 + .../minecraft/server/EntityTropicalFish.java | 1 + .../net/minecraft/server/EntityTurtle.java | 1 + @@ -134,15 +126,15 @@ Subject: [PATCH] Integrate ridables .../server/PathfinderGoalUseItem.java | 2 + .../minecraft/server/PathfinderGoalWater.java | 1 + .../server/PathfinderGoalWaterJump.java | 2 + - .../java/net/pl3x/purpur/PurpurConfig.java | 136 ++++++++++++++++++ - .../purpur/controller/ControllerLookWASD.java | 74 ++++++++++ - .../purpur/controller/ControllerMoveWASD.java | 77 ++++++++++ - .../controller/ControllerMoveWASDFlying.java | 62 ++++++++ - .../ControllerMoveWASDFlyingWithSpacebar.java | 65 +++++++++ + .../java/net/pl3x/purpur/PurpurConfig.java | 122 ++++++++++++++++++ + .../purpur/controller/ControllerLookWASD.java | 74 +++++++++++ + .../purpur/controller/ControllerMoveWASD.java | 77 +++++++++++ + .../controller/ControllerMoveWASDFlying.java | 62 +++++++++ + .../ControllerMoveWASDFlyingWithSpacebar.java | 65 ++++++++++ .../controller/ControllerMoveWASDWater.java | 42 ++++++ .../craftbukkit/entity/CraftLivingEntity.java | 10 ++ .../bukkit/craftbukkit/entity/CraftMob.java | 12 ++ - 138 files changed, 1145 insertions(+), 107 deletions(-) + 130 files changed, 1076 insertions(+), 95 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 @@ -1082,172 +1074,21 @@ index a85a7bf59..a32f6ee2a 100644 this.setPersistent(); if (this.goalRandomStroll != null) { this.goalRandomStroll.setTimeBetweenMovement(400); -diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java -index f727fb90c..3d6bab9fd 100644 ---- a/src/main/java/net/minecraft/server/EntityHorse.java -+++ b/src/main/java/net/minecraft/server/EntityHorse.java -@@ -16,6 +16,7 @@ public class EntityHorse extends EntityHorseAbstract { - - public EntityHorse(EntityTypes entitytypes, World world) { - super(entitytypes, world); -+ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableHorse; // Purpur - } - - @Override -@@ -201,7 +202,7 @@ public class EntityHorse extends EntityHorseAbstract { - } - } - -- if (this.isBaby()) { -+ if (false && this.isBaby()) { // Purpur - allow riding babies - return super.a(entityhuman, enumhand); - } else { - this.g(entityhuman); diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index 686bca4f2..3cc908955 100644 +index 686bca4f2..f82837bf0 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -@@ -81,7 +81,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven - } +@@ -38,6 +38,10 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven - public boolean isTamed() { -- return this.r(2); -+ return this.r(2) || isBaby(); // Purpur - allow riding babies - } - - @Nullable -@@ -280,6 +280,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven - return true; - } - -+ public boolean isSaddled() { return eq(); } // Purpur - OBFHELPER - public boolean eq() { - return this.r(4); - } -@@ -600,6 +601,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven - - } - -+ public void makeMad() { eu(); } // Purpur - OBFHELPER - public void eu() { - this.eB(); - SoundEffect soundeffect = this.getSoundAngry(); -diff --git a/src/main/java/net/minecraft/server/EntityHorseChestedAbstract.java b/src/main/java/net/minecraft/server/EntityHorseChestedAbstract.java -index e61d8f07d..17819fc92 100644 ---- a/src/main/java/net/minecraft/server/EntityHorseChestedAbstract.java -+++ b/src/main/java/net/minecraft/server/EntityHorseChestedAbstract.java -@@ -152,8 +152,12 @@ public abstract class EntityHorseChestedAbstract extends EntityHorseAbstract { - return true; - } - -- this.eu(); -- return true; -+ // Purpur start - don't make babies mad -+ if (!this.isBaby()) { -+ this.makeMad(); -+ return true; -+ } -+ // Purpur end - } - - if (!this.isCarryingChest() && itemstack.getItem() == Blocks.CHEST.getItem()) { -@@ -178,7 +182,7 @@ public abstract class EntityHorseChestedAbstract extends EntityHorseAbstract { - } - } - -- if (this.isBaby()) { -+ if (false && this.isBaby()) { // Purpur - allow riding babies - return super.a(entityhuman, enumhand); - } else { - this.g(entityhuman); -diff --git a/src/main/java/net/minecraft/server/EntityHorseDonkey.java b/src/main/java/net/minecraft/server/EntityHorseDonkey.java -index 46338f0f8..0a5814fa5 100644 ---- a/src/main/java/net/minecraft/server/EntityHorseDonkey.java -+++ b/src/main/java/net/minecraft/server/EntityHorseDonkey.java -@@ -4,6 +4,7 @@ public class EntityHorseDonkey extends EntityHorseChestedAbstract { - - public EntityHorseDonkey(EntityTypes entitytypes, World world) { + protected EntityHorseAbstract(EntityTypes entitytypes, World world) { super(entitytypes, world); -+ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableDonkey; // Purpur ++ // Purpur start ++ this.moveController = new ControllerMove(this); ++ this.lookController = new ControllerLook(this); ++ // Purpur end + this.K = 1.0F; + this.loadChest(); } - - @Override -diff --git a/src/main/java/net/minecraft/server/EntityHorseMule.java b/src/main/java/net/minecraft/server/EntityHorseMule.java -index ef930d194..a5ce8e4cf 100644 ---- a/src/main/java/net/minecraft/server/EntityHorseMule.java -+++ b/src/main/java/net/minecraft/server/EntityHorseMule.java -@@ -4,6 +4,7 @@ public class EntityHorseMule extends EntityHorseChestedAbstract { - - public EntityHorseMule(EntityTypes entitytypes, World world) { - super(entitytypes, world); -+ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableMule; // Purpur - } - - @Override -diff --git a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java -index b96726456..d4ab18cf2 100644 ---- a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java -+++ b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java -@@ -10,6 +10,7 @@ public class EntityHorseSkeleton extends EntityHorseAbstract { - - public EntityHorseSkeleton(EntityTypes entitytypes, World world) { - super(entitytypes, world); -+ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableSkeletonHorse; // Purpur - } - - @Override -@@ -156,16 +157,16 @@ public class EntityHorseSkeleton extends EntityHorseAbstract { - return super.a(entityhuman, enumhand); - } else if (!this.isTamed()) { - return false; -- } else if (this.isBaby()) { -+ } else if (false && this.isBaby()) { // Purpur - allow riding babies - return super.a(entityhuman, enumhand); -- } else if (entityhuman.isSneaking()) { -+ } else if (!this.isBaby() && entityhuman.isSneaking()) { // Purpur - don't open inventory on babies - this.e(entityhuman); - return true; - } else if (this.isVehicle()) { - return super.a(entityhuman, enumhand); - } else { - if (!itemstack.isEmpty()) { -- if (itemstack.getItem() == Items.SADDLE && !this.eq()) { -+ if (!this.isBaby() && itemstack.getItem() == Items.SADDLE && !this.isSaddled()) { // Purpur - don't open inventory on babies - this.e(entityhuman); - return true; - } -diff --git a/src/main/java/net/minecraft/server/EntityHorseZombie.java b/src/main/java/net/minecraft/server/EntityHorseZombie.java -index 1160929e1..32b3c1c58 100644 ---- a/src/main/java/net/minecraft/server/EntityHorseZombie.java -+++ b/src/main/java/net/minecraft/server/EntityHorseZombie.java -@@ -6,6 +6,7 @@ public class EntityHorseZombie extends EntityHorseAbstract { - - public EntityHorseZombie(EntityTypes entitytypes, World world) { - super(entitytypes, world); -+ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableZombieHorse; // Purpur - } - - @Override -@@ -53,16 +54,16 @@ public class EntityHorseZombie extends EntityHorseAbstract { - return super.a(entityhuman, enumhand); - } else if (!this.isTamed()) { - return false; -- } else if (this.isBaby()) { -+ } else if (false && this.isBaby()) { // Purpur - allow riding babies - return super.a(entityhuman, enumhand); -- } else if (entityhuman.isSneaking()) { -+ } else if (!this.isBaby() && entityhuman.isSneaking()) { // Purpur - don't open inventory on babies - this.e(entityhuman); - return true; - } else if (this.isVehicle()) { - return super.a(entityhuman, enumhand); - } else { - if (!itemstack.isEmpty()) { -- if (!this.eq() && itemstack.getItem() == Items.SADDLE) { -+ if (!this.isBaby() && itemstack.getItem() == Items.SADDLE && !this.isSaddled()) { // Purpur - don't open inventory on babies - this.e(entityhuman); - return true; - } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java index f709e7d87..b487f37ad 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java @@ -1471,80 +1312,6 @@ index 66813756d..08642e924 100644 @Override public void l(float f) { this.aK = f; -diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java -index f8a8da637..b782bda60 100644 ---- a/src/main/java/net/minecraft/server/EntityLlama.java -+++ b/src/main/java/net/minecraft/server/EntityLlama.java -@@ -16,6 +16,29 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn - - public EntityLlama(EntityTypes entitytypes, World world) { - super(entitytypes, world); -+ // Purpur start -+ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableLlama; -+ this.moveController = new net.pl3x.purpur.controller.ControllerMoveWASD(this) { -+ @Override -+ protected void tick(EntityHuman rider) { -+ if (EntityLlama.this.isSaddled()) { -+ super.tick(rider); -+ } else { -+ super.tick(); -+ } -+ } -+ }; -+ this.lookController = new net.pl3x.purpur.controller.ControllerLookWASD(this) { -+ @Override -+ protected void tick(EntityHuman rider) { -+ if (EntityLlama.this.isSaddled()) { -+ super.tick(rider); -+ } else { -+ super.tick(); -+ } -+ } -+ }; -+ // Purpur end - } - - public void setStrength(int i) { -@@ -371,6 +394,18 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn - } - } - -+ // Purpur start -+ @Override -+ public boolean isLeashed() { -+ return (getRider() != null && isSaddled()) || super.isLeashed(); -+ } -+ -+ @Override -+ public Entity getLeashHolder() { -+ return (getRider() != null && isSaddled()) ? getRider() : super.getLeashHolder(); -+ } -+ // Purpur end -+ - public void eG() { - if (this.bN != null) { - this.bN.bO = null; -@@ -385,7 +420,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn - } - - public boolean eH() { -- return this.bO != null; -+ return (getRider() != null && isSaddled()) || this.bO != null; // Purpur - } - - public boolean eI() { -diff --git a/src/main/java/net/minecraft/server/EntityLlamaTrader.java b/src/main/java/net/minecraft/server/EntityLlamaTrader.java -index b22221e3f..78d41e763 100644 ---- a/src/main/java/net/minecraft/server/EntityLlamaTrader.java -+++ b/src/main/java/net/minecraft/server/EntityLlamaTrader.java -@@ -9,6 +9,7 @@ public class EntityLlamaTrader extends EntityLlama { - - public EntityLlamaTrader(EntityTypes entitytypes, World world) { - super(entitytypes, world); -+ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableLlamaTrader; // Purpur - } - - @Override diff --git a/src/main/java/net/minecraft/server/EntityMagmaCube.java b/src/main/java/net/minecraft/server/EntityMagmaCube.java index 595884e37..113734bae 100644 --- a/src/main/java/net/minecraft/server/EntityMagmaCube.java @@ -3285,7 +3052,7 @@ index a2fc2cd80..8f064526b 100644 return (d0 * d0 >= 0.029999999329447746D || this.b.pitch == 0.0F || Math.abs(this.b.pitch) >= 10.0F || !this.b.isInWater()) && !this.b.onGround; diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index 8f3367ae1..1f8e83110 100644 +index 8f3367ae1..77c1d3e89 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -103,6 +103,11 @@ public class PurpurConfig { @@ -3300,7 +3067,7 @@ index 8f3367ae1..1f8e83110 100644 public static int feedMushroomsToCows = 5; private static void cowsSettings() { feedMushroomsToCows = getInt("settings.mobs.cow.feed-mushrooms-for-mooshroom", feedMushroomsToCows); -@@ -114,4 +119,135 @@ public class PurpurConfig { +@@ -114,4 +119,121 @@ public class PurpurConfig { snowmanDropsPumpkin = getBoolean("settings.mobs.snow_golem.drops-pumpkin-when-sheared", snowmanDropsPumpkin); snowmanPumpkinPutBack = getBoolean("settings.mobs.snow_golem.pumpkin-can-be-added-back", snowmanPumpkinPutBack); } @@ -3314,7 +3081,6 @@ index 8f3367ae1..1f8e83110 100644 + public static boolean ridableCow = true; + public static boolean ridableCreeper = true; + public static boolean ridableDolphin = true; -+ public static boolean ridableDonkey = true; + public static boolean ridableDrowned = true; + public static boolean ridableEnderDragon = true; + public static boolean ridableEnderman = true; @@ -3325,14 +3091,10 @@ index 8f3367ae1..1f8e83110 100644 + public static boolean ridableGiant = true; + public static boolean ridableGuardian = true; + public static boolean ridableElderGuardian = true; -+ public static boolean ridableHorse = true; + public static boolean ridableIllusioner = true; + public static boolean ridableIronGolem = true; -+ public static boolean ridableLlama = true; -+ public static boolean ridableLlamaTrader = true; + public static boolean ridableMagmaCube = true; + public static boolean ridableMooshroom = true; -+ public static boolean ridableMule = true; + public static boolean ridableOcelot = true; + public static boolean ridablePanda = true; + public static boolean ridableParrot = true; @@ -3349,7 +3111,6 @@ index 8f3367ae1..1f8e83110 100644 + public static boolean ridableShulker = true; + public static boolean ridableSilverfish = true; + public static boolean ridableSkeleton = true; -+ public static boolean ridableSkeletonHorse = true; + public static boolean ridableStray = true; + public static boolean ridableSlime = true; + public static boolean ridableSnowGolem = true; @@ -3366,7 +3127,6 @@ index 8f3367ae1..1f8e83110 100644 + public static boolean ridableWitherSkeleton = true; + public static boolean ridableWolf = true; + public static boolean ridableZombie = true; -+ public static boolean ridableZombieHorse = true; + public static boolean ridableHusk = true; + public static boolean ridableZombieVillager = true; + private static void enableRidableMobs() { @@ -3379,7 +3139,6 @@ index 8f3367ae1..1f8e83110 100644 + ridableCow = getBoolean("settings.ridable.cow", ridableCow); + ridableCreeper = getBoolean("settings.ridable.creeper", ridableCreeper); + ridableDolphin = getBoolean("settings.ridable.dolphin", ridableDolphin); -+ ridableDonkey = getBoolean("settings.ridable.donkey", ridableDonkey); + ridableDrowned = getBoolean("settings.ridable.drowned", ridableDrowned); + ridableElderGuardian = getBoolean("settings.ridable.elder_guardian", ridableElderGuardian); + ridableEnderDragon = getBoolean("settings.ridable.ender_dragon", ridableEnderDragon); @@ -3390,15 +3149,11 @@ index 8f3367ae1..1f8e83110 100644 + ridableGhast = getBoolean("settings.ridable.ghast", ridableGhast); + ridableGiant = getBoolean("settings.ridable.giant", ridableGiant); + ridableGuardian = getBoolean("settings.ridable.guardian", ridableGuardian); -+ ridableHorse = getBoolean("settings.ridable.horse", ridableHorse); + ridableHusk = getBoolean("settings.ridable.husk", ridableHusk); + ridableIllusioner = getBoolean("settings.ridable.illusioner", ridableIllusioner); + ridableIronGolem = getBoolean("settings.ridable.iron_golem", ridableIronGolem); -+ ridableLlama = getBoolean("settings.ridable.llama", ridableLlama); -+ ridableLlamaTrader = getBoolean("settings.ridable.trader_llama", ridableLlamaTrader); + ridableMagmaCube = getBoolean("settings.ridable.magma_cube", ridableMagmaCube); + ridableMooshroom = getBoolean("settings.ridable.mooshroom", ridableMooshroom); -+ ridableMule = getBoolean("settings.ridable.mule", ridableMule); + ridableOcelot = getBoolean("settings.ridable.ocelot", ridableOcelot); + ridablePanda = getBoolean("settings.ridable.panda", ridablePanda); + ridableParrot = getBoolean("settings.ridable.parrot", ridableParrot); @@ -3414,7 +3169,6 @@ index 8f3367ae1..1f8e83110 100644 + ridableShulker = getBoolean("settings.ridable.shulker", ridableShulker); + ridableSilverfish = getBoolean("settings.ridable.silverfish", ridableSilverfish); + ridableSkeleton = getBoolean("settings.ridable.skeleton", ridableSkeleton); -+ ridableSkeletonHorse = getBoolean("settings.ridable.skeleton_horse", ridableSkeletonHorse); + ridableSlime = getBoolean("settings.ridable.slime", ridableSlime); + ridableSnowGolem = getBoolean("settings.ridable.snow_golem", ridableSnowGolem); + ridableSpider = getBoolean("settings.ridable.spider", ridableSpider); @@ -3431,7 +3185,6 @@ index 8f3367ae1..1f8e83110 100644 + ridableWitherSkeleton = getBoolean("settings.ridable.skeleton", ridableWitherSkeleton); + ridableWolf = getBoolean("settings.ridable.wolf", ridableWolf); + ridableZombie = getBoolean("settings.ridable.zombie", ridableZombie); -+ ridableZombieHorse = getBoolean("settings.ridable.zombie_horse", ridableZombieHorse); + ridableZombiePigman = getBoolean("settings.ridable.zombie_pigman", ridableZombiePigman); + ridableZombieVillager = getBoolean("settings.ridable.zombie_villager", ridableZombieVillager); + }