diff --git a/patches/api/0006-Integrate-ridables.patch b/patches/api/0006-Integrate-ridables.patch index b7656dbff..efb149b3c 100644 --- a/patches/api/0006-Integrate-ridables.patch +++ b/patches/api/0006-Integrate-ridables.patch @@ -1,11 +1,12 @@ -From 71371455d2847adc6228a22c726a3fe05cfe68f0 Mon Sep 17 00:00:00 2001 +From 4926faa24f641cd5c916e86736812ab54e2ab2b8 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 3 May 2019 06:08:35 -0500 Subject: [PATCH] Integrate ridables --- - src/main/java/org/bukkit/entity/LivingEntity.java | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) + .../java/org/bukkit/entity/LivingEntity.java | 14 ++++++++++++++ + src/main/java/org/bukkit/entity/Mob.java | 16 ++++++++++++++++ + 2 files changed, 30 insertions(+) diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java index f47a6869..3a896185 100644 @@ -31,6 +32,31 @@ index f47a6869..3a896185 100644 + void setCanBeRiddenInWater(boolean canBeRiddenInWater); // Purpur end } +diff --git a/src/main/java/org/bukkit/entity/Mob.java b/src/main/java/org/bukkit/entity/Mob.java +index 784db447..b3a9c1a4 100644 +--- a/src/main/java/org/bukkit/entity/Mob.java ++++ b/src/main/java/org/bukkit/entity/Mob.java +@@ -42,4 +42,20 @@ public interface Mob extends LivingEntity, Lootable { + */ + @Nullable + public LivingEntity getTarget(); ++ ++ // Purpur start ++ /** ++ * Get if this mob is ridable ++ * ++ * @return True if ridable ++ */ ++ boolean isRidable(); ++ ++ /** ++ * Set if this mob is ridable ++ * ++ * @param ridable True to make ridable ++ */ ++ void setRidable(boolean ridable); ++ // Purpur end + } -- 2.20.1 diff --git a/patches/server/0011-Integrate-ridables.patch b/patches/server/0011-Integrate-ridables.patch index e14d8220c..a44985db1 100644 --- a/patches/server/0011-Integrate-ridables.patch +++ b/patches/server/0011-Integrate-ridables.patch @@ -1,49 +1,99 @@ -From 4c601788eff5bd34898c7075765b102311e45527 Mon Sep 17 00:00:00 2001 +From 245036aa7d09e688b1724035e820b2c9ec8a2779 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 30 Apr 2019 19:17:21 -0500 Subject: [PATCH] Integrate ridables --- - .../server/ControllerLookDolphin.java | 4 +- - .../java/net/minecraft/server/Entity.java | 10 ++- - .../net/minecraft/server/EntityAgeable.java | 2 +- - .../net/minecraft/server/EntityChicken.java | 2 +- - .../net/minecraft/server/EntityDolphin.java | 17 +++- - .../net/minecraft/server/EntityDrowned.java | 6 +- - .../net/minecraft/server/EntityEndermite.java | 2 +- - .../java/net/minecraft/server/EntityFish.java | 20 +++-- - .../minecraft/server/EntityGiantZombie.java | 1 + - .../net/minecraft/server/EntityGuardian.java | 26 +++++-- - .../net/minecraft/server/EntityHorse.java | 2 +- - .../minecraft/server/EntityHorseAbstract.java | 4 +- - .../server/EntityHorseChestedAbstract.java | 10 ++- - .../minecraft/server/EntityHorseSkeleton.java | 6 +- - .../minecraft/server/EntityHorseZombie.java | 6 +- - .../net/minecraft/server/EntityHuman.java | 14 +++- - .../minecraft/server/EntityInsentient.java | 54 ++++++++++++- - .../net/minecraft/server/EntityLiving.java | 24 ++++-- - .../net/minecraft/server/EntityLlama.java | 36 ++++++++- - .../net/minecraft/server/EntityPhantom.java | 31 ++++++-- - .../java/net/minecraft/server/EntityPig.java | 33 ++++---- - .../net/minecraft/server/EntityRabbit.java | 2 +- - .../net/minecraft/server/EntitySlime.java | 2 +- - .../net/minecraft/server/EntitySnowman.java | 1 + - .../net/minecraft/server/EntitySquid.java | 46 +++++++++++ - .../server/EntityTameableAnimal.java | 6 ++ - .../net/minecraft/server/EntityTypes.java | 4 + - .../purpur/controller/ControllerLookWASD.java | 74 ++++++++++++++++++ - .../purpur/controller/ControllerMoveWASD.java | 77 +++++++++++++++++++ - .../controller/ControllerMoveWASDFlying.java | 58 ++++++++++++++ - .../controller/ControllerMoveWASDWater.java | 42 ++++++++++ - .../craftbukkit/entity/CraftLivingEntity.java | 10 +++ - 32 files changed, 560 insertions(+), 72 deletions(-) + .../server/ControllerLookDolphin.java | 4 +- + .../java/net/minecraft/server/Entity.java | 10 +- + .../net/minecraft/server/EntityAgeable.java | 2 +- + .../java/net/minecraft/server/EntityBat.java | 2 + + .../net/minecraft/server/EntityBlaze.java | 3 +- + .../java/net/minecraft/server/EntityCat.java | 3 +- + .../minecraft/server/EntityCaveSpider.java | 1 + + .../net/minecraft/server/EntityChicken.java | 3 +- + .../java/net/minecraft/server/EntityCod.java | 1 + + .../java/net/minecraft/server/EntityCow.java | 1 + + .../net/minecraft/server/EntityCreeper.java | 1 + + .../net/minecraft/server/EntityDolphin.java | 18 ++- + .../net/minecraft/server/EntityDrowned.java | 7 +- + .../minecraft/server/EntityEnderDragon.java | 1 + + .../net/minecraft/server/EntityEnderman.java | 1 + + .../net/minecraft/server/EntityEndermite.java | 3 +- + .../net/minecraft/server/EntityEvoker.java | 3 +- + .../java/net/minecraft/server/EntityFish.java | 20 +-- + .../java/net/minecraft/server/EntityFox.java | 1 + + .../net/minecraft/server/EntityGhast.java | 1 + + .../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 +- + .../net/minecraft/server/EntityHuman.java | 14 +- + .../server/EntityIllagerIllusioner.java | 1 + + .../minecraft/server/EntityInsentient.java | 59 +++++++- + .../net/minecraft/server/EntityIronGolem.java | 1 + + .../net/minecraft/server/EntityLiving.java | 24 +++- + .../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 ++--- + .../net/minecraft/server/EntityPigZombie.java | 1 + + .../net/minecraft/server/EntityPillager.java | 1 + + .../net/minecraft/server/EntityPolarBear.java | 1 + + .../minecraft/server/EntityPufferFish.java | 1 + + .../net/minecraft/server/EntityRabbit.java | 3 +- + .../net/minecraft/server/EntityRavager.java | 1 + + .../net/minecraft/server/EntitySalmon.java | 1 + + .../net/minecraft/server/EntitySheep.java | 7 +- + .../net/minecraft/server/EntityShulker.java | 1 + + .../minecraft/server/EntitySilverfish.java | 1 + + .../net/minecraft/server/EntitySkeleton.java | 1 + + .../minecraft/server/EntitySkeletonStray.java | 1 + + .../server/EntitySkeletonWither.java | 1 + + .../net/minecraft/server/EntitySlime.java | 3 +- + .../net/minecraft/server/EntitySnowman.java | 2 + + .../net/minecraft/server/EntitySpider.java | 1 + + .../net/minecraft/server/EntitySquid.java | 47 +++++++ + .../server/EntityTameableAnimal.java | 6 + + .../minecraft/server/EntityTropicalFish.java | 1 + + .../net/minecraft/server/EntityTurtle.java | 1 + + .../net/minecraft/server/EntityTypes.java | 4 + + .../java/net/minecraft/server/EntityVex.java | 1 + + .../net/minecraft/server/EntityVillager.java | 1 + + .../server/EntityVillagerTrader.java | 1 + + .../minecraft/server/EntityVindicator.java | 1 + + .../net/minecraft/server/EntityWitch.java | 1 + + .../net/minecraft/server/EntityWither.java | 1 + + .../java/net/minecraft/server/EntityWolf.java | 1 + + .../net/minecraft/server/EntityZombie.java | 1 + + .../minecraft/server/EntityZombieHusk.java | 1 + + .../server/EntityZombieVillager.java | 1 + + .../java/net/pl3x/purpur/PurpurConfig.java | 131 ++++++++++++++++++ + .../purpur/controller/ControllerLookWASD.java | 74 ++++++++++ + .../purpur/controller/ControllerMoveWASD.java | 77 ++++++++++ + .../controller/ControllerMoveWASDFlying.java | 58 ++++++++ + .../controller/ControllerMoveWASDWater.java | 42 ++++++ + .../craftbukkit/entity/CraftLivingEntity.java | 10 ++ + .../bukkit/craftbukkit/entity/CraftMob.java | 12 ++ + 82 files changed, 780 insertions(+), 81 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 create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java diff --git a/src/main/java/net/minecraft/server/ControllerLookDolphin.java b/src/main/java/net/minecraft/server/ControllerLookDolphin.java -index 454627f65e..df3d6cf281 100644 +index 454627f65..df3d6cf28 100644 --- a/src/main/java/net/minecraft/server/ControllerLookDolphin.java +++ b/src/main/java/net/minecraft/server/ControllerLookDolphin.java @@ -1,6 +1,6 @@ @@ -64,7 +114,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 a7db5163e2..d0a13d14d0 100644 +index a7db5163e..d0a13d14d 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 @@ -113,7 +163,7 @@ index a7db5163e2..d0a13d14d0 100644 entity.j = 60; } diff --git a/src/main/java/net/minecraft/server/EntityAgeable.java b/src/main/java/net/minecraft/server/EntityAgeable.java -index e87754ef33..553245ebe9 100644 +index e87754ef3..553245ebe 100644 --- a/src/main/java/net/minecraft/server/EntityAgeable.java +++ b/src/main/java/net/minecraft/server/EntityAgeable.java @@ -70,7 +70,7 @@ public abstract class EntityAgeable extends EntityCreature { @@ -125,11 +175,93 @@ 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 4c283c33b..6a666ae05 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; + import java.time.temporal.ChronoField; + import javax.annotation.Nullable; ++ + import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit + + public class EntityBat extends EntityAmbient { +@@ -13,6 +14,7 @@ public class EntityBat extends EntityAmbient { + + public EntityBat(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableBat; // Purpur + this.setAsleep(true); + } + +diff --git a/src/main/java/net/minecraft/server/EntityBlaze.java b/src/main/java/net/minecraft/server/EntityBlaze.java +index 15db67de0..2e418ee14 100644 +--- a/src/main/java/net/minecraft/server/EntityBlaze.java ++++ b/src/main/java/net/minecraft/server/EntityBlaze.java +@@ -10,6 +10,7 @@ public class EntityBlaze extends EntityMonster { + + public EntityBlaze(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableBlaze; // Purpur + this.a(PathType.WATER, -1.0F); + this.a(PathType.LAVA, 8.0F); + this.a(PathType.DANGER_FIRE, 0.0F); +@@ -24,7 +25,7 @@ public class EntityBlaze extends EntityMonster { + this.goalSelector.a(7, new PathfinderGoalRandomStrollLand(this, 1.0D, 0.0F)); + this.goalSelector.a(8, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 8.0F)); + this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this)); +- this.targetSelector.a(1, (new PathfinderGoalHurtByTarget(this, new Class[0])).a()); ++ this.targetSelector.a(1, (new PathfinderGoalHurtByTarget(this)).a(new Class[0])); // Purpur - decompile error + this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); + } + +diff --git a/src/main/java/net/minecraft/server/EntityCat.java b/src/main/java/net/minecraft/server/EntityCat.java +index 719983077..dde268386 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 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 + 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")); +@@ -40,6 +40,7 @@ public class EntityCat extends EntityTameableAnimal { + + public EntityCat(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableCat; // Purpur + } + + public MinecraftKey ee() { +diff --git a/src/main/java/net/minecraft/server/EntityCaveSpider.java b/src/main/java/net/minecraft/server/EntityCaveSpider.java +index 89c9306df..e9ec28362 100644 +--- a/src/main/java/net/minecraft/server/EntityCaveSpider.java ++++ b/src/main/java/net/minecraft/server/EntityCaveSpider.java +@@ -6,6 +6,7 @@ public class EntityCaveSpider extends EntitySpider { + + public EntityCaveSpider(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableCaveSpider; // Purpur + } + + @Override diff --git a/src/main/java/net/minecraft/server/EntityChicken.java b/src/main/java/net/minecraft/server/EntityChicken.java -index a374c30519..9af1c2a096 100644 +index a374c3051..2ea87eee5 100644 --- a/src/main/java/net/minecraft/server/EntityChicken.java +++ b/src/main/java/net/minecraft/server/EntityChicken.java -@@ -65,7 +65,7 @@ public class EntityChicken extends EntityAnimal { +@@ -13,6 +13,7 @@ public class EntityChicken extends EntityAnimal { + + public EntityChicken(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableChicken; // Purpur + this.eggLayTime = this.random.nextInt(6000) + 6000; + this.a(PathType.WATER, 0.0F); + } +@@ -65,7 +66,7 @@ public class EntityChicken extends EntityAnimal { } this.bz += this.bE * 2.0F; @@ -138,11 +270,55 @@ index a374c30519..9af1c2a096 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); +diff --git a/src/main/java/net/minecraft/server/EntityCod.java b/src/main/java/net/minecraft/server/EntityCod.java +index 1e3782122..c0b066d18 100644 +--- a/src/main/java/net/minecraft/server/EntityCod.java ++++ b/src/main/java/net/minecraft/server/EntityCod.java +@@ -4,6 +4,7 @@ public class EntityCod extends EntityFishSchool { + + public EntityCod(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableCod; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java +index f053ff0e5..16a35418f 100644 +--- a/src/main/java/net/minecraft/server/EntityCow.java ++++ b/src/main/java/net/minecraft/server/EntityCow.java +@@ -14,6 +14,7 @@ public class EntityCow extends EntityAnimal { + + public EntityCow(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableCow; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java +index 0c2c3c730..2f4033b2c 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 { + + public EntityCreeper(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableCreeper; // Purpur + } + + @Override diff --git a/src/main/java/net/minecraft/server/EntityDolphin.java b/src/main/java/net/minecraft/server/EntityDolphin.java -index 04060bb3ef..503a845a2d 100644 +index 04060bb3e..d13d3309c 100644 --- a/src/main/java/net/minecraft/server/EntityDolphin.java +++ b/src/main/java/net/minecraft/server/EntityDolphin.java -@@ -524,7 +524,7 @@ public class EntityDolphin extends EntityWaterAnimal { +@@ -17,6 +17,7 @@ public class EntityDolphin extends EntityWaterAnimal { + + public EntityDolphin(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableDolphin; // Purpur + this.moveController = new EntityDolphin.a(this); + this.lookController = new ControllerLookDolphin(this, 10); + this.setCanPickupLoot(true); +@@ -524,7 +525,7 @@ public class EntityDolphin extends EntityWaterAnimal { } } @@ -151,7 +327,7 @@ index 04060bb3ef..503a845a2d 100644 private final EntityDolphin i; -@@ -533,8 +533,21 @@ public class EntityDolphin extends EntityWaterAnimal { +@@ -533,8 +534,21 @@ public class EntityDolphin extends EntityWaterAnimal { this.i = entitydolphin; } @@ -175,10 +351,18 @@ index 04060bb3ef..503a845a2d 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..004b167732 100644 +index 7f34cdbc3..542d828a9 100644 --- a/src/main/java/net/minecraft/server/EntityDrowned.java +++ b/src/main/java/net/minecraft/server/EntityDrowned.java -@@ -205,7 +205,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -12,6 +12,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { + + public EntityDrowned(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableDrowned; // Purpur + 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 { this.bz = flag; } @@ -187,7 +371,7 @@ index 7f34cdbc34..004b167732 100644 private final EntityDrowned i; -@@ -215,7 +215,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -215,7 +216,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { } @Override @@ -196,7 +380,7 @@ index 7f34cdbc34..004b167732 100644 EntityLiving entityliving = this.i.getGoalTarget(); if (this.i.eg() && this.i.isInWater()) { -@@ -248,7 +248,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { +@@ -248,7 +249,7 @@ public class EntityDrowned extends EntityZombie implements IRangedEntity { this.i.setMot(this.i.getMot().add(0.0D, -0.008D, 0.0D)); } @@ -205,11 +389,43 @@ index 7f34cdbc34..004b167732 100644 } } +diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java +index a248f63f1..b6dafb3cd 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 { + + public EntityEnderDragon(EntityTypes entitytypes, World world) { + super(EntityTypes.ENDER_DRAGON, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableEnderDragon; // Purpur + this.children = new EntityComplexPart[]{this.bA, this.bB, this.bC, this.bD, this.bE, this.bF, this.bG, this.bH}; + 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 d4c4dc2fd..8c35b93d6 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 { + + public EntityEnderman(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableEnderman; // Purpur + this.K = 1.0F; + this.a(PathType.WATER, -1.0F); + } diff --git a/src/main/java/net/minecraft/server/EntityEndermite.java b/src/main/java/net/minecraft/server/EntityEndermite.java -index 10b0f96531..9425a79980 100644 +index 10b0f9653..b191539d7 100644 --- a/src/main/java/net/minecraft/server/EntityEndermite.java +++ b/src/main/java/net/minecraft/server/EntityEndermite.java -@@ -18,7 +18,7 @@ public class EntityEndermite extends EntityMonster { +@@ -8,6 +8,7 @@ public class EntityEndermite extends EntityMonster { + + public EntityEndermite(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableEndermite; // Purpur + this.f = 3; + } + +@@ -18,7 +19,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)); @@ -218,8 +434,29 @@ index 10b0f96531..9425a79980 100644 this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)); } +diff --git a/src/main/java/net/minecraft/server/EntityEvoker.java b/src/main/java/net/minecraft/server/EntityEvoker.java +index 026847dff..bd143396a 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 { + + public EntityEvoker(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableEvoker; // Purpur + this.f = 10; + } + +@@ -24,7 +25,7 @@ public class EntityEvoker extends EntityIllagerWizard { + this.goalSelector.a(8, new PathfinderGoalRandomStroll(this, 0.6D)); + this.goalSelector.a(9, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 3.0F, 1.0F)); + this.goalSelector.a(10, new PathfinderGoalLookAtPlayer(this, EntityInsentient.class, 8.0F)); +- this.targetSelector.a(1, (new PathfinderGoalHurtByTarget(this, new Class[]{EntityRaider.class})).a()); ++ this.targetSelector.a(1, (new PathfinderGoalHurtByTarget(this, new Class[]{EntityRaider.class})).a(new Class[0])); // Purpur - decompile error + this.targetSelector.a(2, (new PathfinderGoalNearestAttackableTarget<>(this, EntityHuman.class, true)).a(300)); + this.targetSelector.a(3, (new PathfinderGoalNearestAttackableTarget<>(this, EntityVillagerAbstract.class, false)).a(300)); + this.targetSelector.a(3, new PathfinderGoalNearestAttackableTarget<>(this, EntityIronGolem.class, false)); diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java -index a28fbdf1e0..36229a2c4b 100644 +index a28fbdf1e..36229a2c4 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 { @@ -271,23 +508,49 @@ index a28fbdf1e0..36229a2c4b 100644 if (this.i.a(TagsFluid.WATER)) { this.i.setMot(this.i.getMot().add(0.0D, 0.005D, 0.0D)); } +diff --git a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java +index 14046c98d..a8597f593 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 { + + public EntityFox(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableFox; // Purpur + this.lookController = new EntityFox.k(); + this.moveController = new EntityFox.m(); + this.a(PathType.DANGER_OTHER, 0.0F); +diff --git a/src/main/java/net/minecraft/server/EntityGhast.java b/src/main/java/net/minecraft/server/EntityGhast.java +index 55b96c4d2..a05c3916f 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 { + + public EntityGhast(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableGhast; // Purpur + this.f = 5; + this.moveController = new EntityGhast.ControllerGhast(this); + } diff --git a/src/main/java/net/minecraft/server/EntityGiantZombie.java b/src/main/java/net/minecraft/server/EntityGiantZombie.java -index bcbade19ea..19b8312f26 100644 +index bcbade19e..b7e2022b1 100644 --- a/src/main/java/net/minecraft/server/EntityGiantZombie.java +++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java -@@ -6,6 +6,7 @@ public class EntityGiantZombie extends EntityMonster { +@@ -5,7 +5,9 @@ public class EntityGiantZombie extends EntityMonster { + public EntityGiantZombie(EntityTypes entitytypes, World world) { super(entitytypes, world); // Purpur start ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableGiant; this.safeFallDistance = 10.0F; + setStepHeight(2.0F); // Purpur end } diff --git a/src/main/java/net/minecraft/server/EntityGuardian.java b/src/main/java/net/minecraft/server/EntityGuardian.java -index 335416d962..6599bce9a1 100644 +index 335416d96..7835154ed 100644 --- a/src/main/java/net/minecraft/server/EntityGuardian.java +++ b/src/main/java/net/minecraft/server/EntityGuardian.java -@@ -22,8 +22,14 @@ public class EntityGuardian extends EntityMonster { +@@ -22,8 +22,15 @@ public class EntityGuardian extends EntityMonster { super(entitytypes, world); this.f = 10; this.moveController = new EntityGuardian.ControllerMoveGuardian(this); @@ -300,11 +563,12 @@ index 335416d962..6599bce9a1 100644 + super.setYawPitch(yaw, pitch * 0.35F); + } + }; ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableGuardian; + // Purpur end } @Override -@@ -77,6 +83,7 @@ public class EntityGuardian extends EntityMonster { +@@ -77,6 +84,7 @@ public class EntityGuardian extends EntityMonster { return (Boolean) this.datawatcher.get(EntityGuardian.b); } @@ -312,7 +576,7 @@ index 335416d962..6599bce9a1 100644 private void r(boolean flag) { this.datawatcher.set(EntityGuardian.b, flag); } -@@ -302,7 +309,7 @@ public class EntityGuardian extends EntityMonster { +@@ -302,7 +310,7 @@ public class EntityGuardian extends EntityMonster { @Override public void e(Vec3D vec3d) { if (this.de() && this.isInWater()) { @@ -321,7 +585,7 @@ index 335416d962..6599bce9a1 100644 this.move(EnumMoveType.SELF, this.getMot()); this.setMot(this.getMot().a(0.9D)); if (!this.dY() && this.getGoalTarget() == null) { -@@ -314,7 +321,7 @@ public class EntityGuardian extends EntityMonster { +@@ -314,7 +322,7 @@ public class EntityGuardian extends EntityMonster { } @@ -330,7 +594,7 @@ index 335416d962..6599bce9a1 100644 private final EntityGuardian i; -@@ -324,7 +331,16 @@ public class EntityGuardian extends EntityMonster { +@@ -324,7 +332,16 @@ public class EntityGuardian extends EntityMonster { } @Override @@ -348,11 +612,31 @@ index 335416d962..6599bce9a1 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(); +diff --git a/src/main/java/net/minecraft/server/EntityGuardianElder.java b/src/main/java/net/minecraft/server/EntityGuardianElder.java +index a85a7bf59..a32f6ee2a 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 { + + public EntityGuardianElder(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableElderGuardian; // Purpur + 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 f727fb90cc..068d84d1b0 100644 +index f727fb90c..3d6bab9fd 100644 --- a/src/main/java/net/minecraft/server/EntityHorse.java +++ b/src/main/java/net/minecraft/server/EntityHorse.java -@@ -201,7 +201,7 @@ public class EntityHorse extends EntityHorseAbstract { +@@ -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 { } } @@ -362,7 +646,7 @@ index f727fb90cc..068d84d1b0 100644 } 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 686bca4f2c..3cc9089553 100644 +index 686bca4f2..3cc908955 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 @@ -391,7 +675,7 @@ index 686bca4f2c..3cc9089553 100644 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 e61d8f07d8..17819fc92c 100644 +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 { @@ -418,11 +702,43 @@ index e61d8f07d8..17819fc92c 100644 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) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableDonkey; // Purpur + } + + @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 b967264562..b60bb4d173 100644 +index b96726456..d4ab18cf2 100644 --- a/src/main/java/net/minecraft/server/EntityHorseSkeleton.java +++ b/src/main/java/net/minecraft/server/EntityHorseSkeleton.java -@@ -156,16 +156,16 @@ public class EntityHorseSkeleton extends EntityHorseAbstract { +@@ -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; @@ -443,10 +759,18 @@ index b967264562..b60bb4d173 100644 return true; } diff --git a/src/main/java/net/minecraft/server/EntityHorseZombie.java b/src/main/java/net/minecraft/server/EntityHorseZombie.java -index 1160929e1b..d94063885e 100644 +index 1160929e1..32b3c1c58 100644 --- a/src/main/java/net/minecraft/server/EntityHorseZombie.java +++ b/src/main/java/net/minecraft/server/EntityHorseZombie.java -@@ -53,16 +53,16 @@ public class EntityHorseZombie extends EntityHorseAbstract { +@@ -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; @@ -467,7 +791,7 @@ index 1160929e1b..d94063885e 100644 return true; } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java -index 318c2b0dcf..9afc2b77ae 100644 +index 318c2b0dc..9afc2b77a 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 { @@ -493,11 +817,39 @@ index 318c2b0dcf..9afc2b77ae 100644 this.stopRiding(); this.setSneaking(false); } else { +diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java +index 76641682b..bab9431b3 100644 +--- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java ++++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java +@@ -9,6 +9,7 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan + + public EntityIllagerIllusioner(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableIllusioner; // Purpur + this.f = 5; + this.bA = new Vec3D[2][4]; + diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java -index 48ce154848..3f6b2c7ede 100644 +index 48ce15484..93dafd038 100644 --- a/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java -@@ -63,8 +63,11 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -9,6 +9,7 @@ import java.util.UUID; + import javax.annotation.Nullable; + + // CraftBukkit start ++import net.pl3x.purpur.PurpurConfig; + import org.bukkit.craftbukkit.event.CraftEventFactory; + import org.bukkit.craftbukkit.entity.CraftLivingEntity; + import org.bukkit.entity.LivingEntity; +@@ -27,6 +28,7 @@ public abstract class EntityInsentient extends EntityLiving { + protected int f; + protected ControllerLook lookController; + protected ControllerMove moveController; ++ public boolean isRidable = false;// Purpur + protected ControllerJump bt; + private final EntityAIBodyControl c; + protected NavigationAbstract navigation; +@@ -63,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); @@ -511,7 +863,7 @@ index 48ce154848..3f6b2c7ede 100644 this.bt = new ControllerJump(this); this.c = this.o(); this.navigation = this.b(world); -@@ -492,6 +495,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -492,6 +497,7 @@ public abstract class EntityInsentient extends EntityLiving { this.bb = f; } @@ -519,7 +871,7 @@ index 48ce154848..3f6b2c7ede 100644 @Override public void o(float f) { super.o(f); -@@ -1057,7 +1061,7 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1057,7 +1063,7 @@ public abstract class EntityInsentient extends EntityLiving { } protected boolean a(EntityHuman entityhuman, EnumHand enumhand) { @@ -528,7 +880,7 @@ index 48ce154848..3f6b2c7ede 100644 } public boolean dH() { -@@ -1355,4 +1359,48 @@ public abstract class EntityInsentient extends EntityLiving { +@@ -1355,4 +1361,51 @@ public abstract class EntityInsentient extends EntityLiving { public boolean a(Item item) { return this.getItemInMainHand().getItem() == item || this.getItemInOffHand().getItem() == item; } @@ -539,6 +891,9 @@ index 48ce154848..3f6b2c7ede 100644 + } + + public boolean tryRide(EntityHuman entityhuman, EnumHand enumhand) { ++ if (!isRidable) { ++ return false; ++ } + if (enumhand != EnumHand.MAIN_HAND) { + return false; + } @@ -577,8 +932,20 @@ index 48ce154848..3f6b2c7ede 100644 + } + // Purpur end } +diff --git a/src/main/java/net/minecraft/server/EntityIronGolem.java b/src/main/java/net/minecraft/server/EntityIronGolem.java +index bb06d12f6..41ad48c96 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 { + + public EntityIronGolem(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableIronGolem; // Purpur + this.K = 1.0F; + } + diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 9ba7a16102..d277281715 100644 +index 9ba7a1610..d27728171 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 { @@ -647,14 +1014,15 @@ index 9ba7a16102..d277281715 100644 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 f8a8da6372..cfb80b34c4 100644 +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,28 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -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) { @@ -679,7 +1047,7 @@ index f8a8da6372..cfb80b34c4 100644 } public void setStrength(int i) { -@@ -371,6 +393,18 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -371,6 +394,18 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn } } @@ -698,7 +1066,7 @@ index f8a8da6372..cfb80b34c4 100644 public void eG() { if (this.bN != null) { this.bN.bO = null; -@@ -385,7 +419,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -385,7 +420,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn } public boolean eH() { @@ -707,11 +1075,108 @@ index f8a8da6372..cfb80b34c4 100644 } 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 ++++ b/src/main/java/net/minecraft/server/EntityMagmaCube.java +@@ -4,6 +4,7 @@ public class EntityMagmaCube extends EntitySlime { + + public EntityMagmaCube(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableMagmaCube; // Purpur + } + + @Override +@@ -59,7 +60,7 @@ public class EntityMagmaCube extends EntitySlime { + } + + @Override +- protected void jump() { ++ public void jump() { // Purpur - protected -> public + Vec3D vec3d = this.getMot(); + + 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 31b306211..c918288e0 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 { + + public EntityMushroomCow(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableMooshroom; // Purpur + this.bC = Blocks.MYCELIUM; + } + +diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java +index 1713bead2..984121969 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 { + + public EntityOcelot(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableOcelot; // Purpur + this.dV(); + } + +diff --git a/src/main/java/net/minecraft/server/EntityPanda.java b/src/main/java/net/minecraft/server/EntityPanda.java +index b46ca388e..2c25439ab 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 { + + public EntityPanda(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridablePanda; // Purpur + this.moveController = new EntityPanda.i(this); + if (!this.isBaby()) { + this.setCanPickupLoot(true); +diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java +index 6173a86e0..a795047b6 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 + 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); +@@ -67,6 +67,7 @@ public class EntityParrot extends EntityPerchable implements EntityBird { + + public EntityParrot(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableParrot; // Purpur + this.moveController = new ControllerMoveFlying(this); + } + diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java -index 6aa116f4b8..033d8e05ac 100644 +index 6aa116f4b..238c68edf 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 { +@@ -16,12 +16,14 @@ public class EntityPhantom extends EntityFlying implements IMonster { + + public EntityPhantom(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridablePhantom; // Purpur + this.c = Vec3D.a; + this.d = BlockPosition.ZERO; + this.bz = EntityPhantom.AttackPhase.CIRCLE; this.f = 5; this.moveController = new EntityPhantom.g(this); this.lookController = new EntityPhantom.f(this); @@ -719,7 +1184,7 @@ index 6aa116f4b8..033d8e05ac 100644 } @Override -@@ -106,7 +107,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -106,7 +108,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { @Override public void movementTick() { @@ -728,7 +1193,7 @@ index 6aa116f4b8..033d8e05ac 100644 this.setOnFire(8); } -@@ -605,14 +606,23 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -605,14 +607,23 @@ public class EntityPhantom extends EntityFlying implements IMonster { } } @@ -754,7 +1219,7 @@ index 6aa116f4b8..033d8e05ac 100644 } class d extends EntityAIBodyControl { -@@ -628,7 +638,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -628,7 +639,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { } } @@ -763,7 +1228,7 @@ index 6aa116f4b8..033d8e05ac 100644 private float j = 0.1F; -@@ -636,8 +646,19 @@ public class EntityPhantom extends EntityFlying implements IMonster { +@@ -636,8 +647,19 @@ public class EntityPhantom extends EntityFlying implements IMonster { super(entityinsentient); } @@ -785,10 +1250,18 @@ index 6aa116f4b8..033d8e05ac 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..e51054b235 100644 +index 616075569..fd57e5bde 100644 --- a/src/main/java/net/minecraft/server/EntityPig.java +++ b/src/main/java/net/minecraft/server/EntityPig.java -@@ -111,27 +111,22 @@ public class EntityPig extends EntityAnimal { +@@ -18,6 +18,7 @@ public class EntityPig extends EntityAnimal { + + public EntityPig(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridablePig; // Purpur + } + + @Override +@@ -111,27 +112,22 @@ public class EntityPig extends EntityAnimal { @Override public boolean a(EntityHuman entityhuman, EnumHand enumhand) { @@ -829,12 +1302,68 @@ index 616075569f..e51054b235 100644 + // Purpur end } + @Override +diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java +index dc08a7c57..07504f736 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 { + + public EntityPigZombie(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableZombiePigman; // Purpur + this.a(PathType.LAVA, 8.0F); + } + +diff --git a/src/main/java/net/minecraft/server/EntityPillager.java b/src/main/java/net/minecraft/server/EntityPillager.java +index 845f7ac32..c945f52f2 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, + + public EntityPillager(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridablePillager; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntityPolarBear.java b/src/main/java/net/minecraft/server/EntityPolarBear.java +index 182a3195e..caae82e16 100644 +--- a/src/main/java/net/minecraft/server/EntityPolarBear.java ++++ b/src/main/java/net/minecraft/server/EntityPolarBear.java +@@ -14,6 +14,7 @@ public class EntityPolarBear extends EntityAnimal { + + public EntityPolarBear(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridablePolarBear; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntityPufferFish.java b/src/main/java/net/minecraft/server/EntityPufferFish.java +index bc26e651c..e2d43b4a5 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 { + + public EntityPufferFish(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridablePufferfish; // Purpur + } + @Override diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java -index f6fa871587..bd0679e74a 100644 +index f6fa87158..ffdb39725 100644 --- a/src/main/java/net/minecraft/server/EntityRabbit.java +++ b/src/main/java/net/minecraft/server/EntityRabbit.java -@@ -59,7 +59,7 @@ public class EntityRabbit extends EntityAnimal { +@@ -14,6 +14,7 @@ public class EntityRabbit extends EntityAnimal { + + public EntityRabbit(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableRabbit; // Purpur + 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 { } @Override @@ -843,11 +1372,135 @@ index f6fa871587..bd0679e74a 100644 super.jump(); double d0 = this.moveController.c(); +diff --git a/src/main/java/net/minecraft/server/EntityRavager.java b/src/main/java/net/minecraft/server/EntityRavager.java +index 9c22323c4..9162049c1 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 { + + public EntityRavager(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableRavager; // Purpur + this.K = 1.0F; + this.f = 20; + } +diff --git a/src/main/java/net/minecraft/server/EntitySalmon.java b/src/main/java/net/minecraft/server/EntitySalmon.java +index b600f30eb..8c60e26c7 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 { + + public EntitySalmon(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableSalmon; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java +index df1bfc94e..f7d7f417c 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; + public class EntitySheep extends EntityAnimal { + + private static final DataWatcherObject bz = DataWatcher.a(EntitySheep.class, DataWatcherRegistry.a); +- private static final Map bA = (Map) SystemUtils.a(Maps.newEnumMap(EnumColor.class), (enummap) -> { // CraftBukkit - decompile error ++ private static final Map bA = SystemUtils.a(Maps.newEnumMap(EnumColor.class), (enummap) -> { // CraftBukkit - decompile error // Purpur - _really_ fix decompile error + enummap.put(EnumColor.WHITE, Blocks.WHITE_WOOL); + enummap.put(EnumColor.ORANGE, Blocks.ORANGE_WOOL); + enummap.put(EnumColor.MAGENTA, Blocks.MAGENTA_WOOL); +@@ -36,9 +36,7 @@ public class EntitySheep extends EntityAnimal { + enummap.put(EnumColor.RED, Blocks.RED_WOOL); + enummap.put(EnumColor.BLACK, Blocks.BLACK_WOOL); + }); +- private static final Map bB = Maps.newEnumMap((Map) Arrays.stream(EnumColor.values()).collect(Collectors.toMap((enumcolor) -> { +- 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; + +@@ -55,6 +53,7 @@ public class EntitySheep extends EntityAnimal { + + public EntitySheep(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableSheep; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntityShulker.java b/src/main/java/net/minecraft/server/EntityShulker.java +index 1df311d85..e821efe62 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 { + + public EntityShulker(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableShulker; // Purpur + this.aL = 180.0F; + this.aK = 180.0F; + this.bE = null; +diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java +index d823c6b6d..0a7ec94d3 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 { + + public EntitySilverfish(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableSilverfish; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntitySkeleton.java b/src/main/java/net/minecraft/server/EntitySkeleton.java +index 0e78d5c62..908e51b63 100644 +--- a/src/main/java/net/minecraft/server/EntitySkeleton.java ++++ b/src/main/java/net/minecraft/server/EntitySkeleton.java +@@ -4,6 +4,7 @@ public class EntitySkeleton extends EntitySkeletonAbstract { + + public EntitySkeleton(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableSkeleton; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntitySkeletonStray.java b/src/main/java/net/minecraft/server/EntitySkeletonStray.java +index 4ca5024f3..57c7432ab 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 { + + public EntitySkeletonStray(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableStray; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntitySkeletonWither.java b/src/main/java/net/minecraft/server/EntitySkeletonWither.java +index 872f79cc6..ed03d3122 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 { + + public EntitySkeletonWither(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableWitherSkeleton; // Purpur + this.a(PathType.LAVA, 8.0F); + } + diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java -index e28c0673dd..f88cd9e948 100644 +index e28c0673d..bf0819e2e 100644 --- a/src/main/java/net/minecraft/server/EntitySlime.java +++ b/src/main/java/net/minecraft/server/EntitySlime.java -@@ -316,7 +316,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { +@@ -28,6 +28,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { + + public EntitySlime(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableSlime; // Purpur + this.moveController = new EntitySlime.ControllerMoveSlime(this); + } + +@@ -316,7 +317,7 @@ public class EntitySlime extends EntityInsentient implements IMonster { } @Override @@ -857,10 +1510,18 @@ index e28c0673dd..f88cd9e948 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..fb6287f507 100644 +index fb36306b9..271b952b2 100644 --- a/src/main/java/net/minecraft/server/EntitySnowman.java +++ b/src/main/java/net/minecraft/server/EntitySnowman.java -@@ -75,6 +75,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { +@@ -14,6 +14,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { + + public EntitySnowman(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableSnowGolem; // Purpur + } + + @Override +@@ -75,6 +76,7 @@ public class EntitySnowman extends EntityGolem implements IRangedEntity { return; } @@ -868,11 +1529,31 @@ index fb36306b90..fb6287f507 100644 IBlockData iblockdata = Blocks.SNOW.getBlockData(); 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 b560a8969..aa46cb7ea 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 { + + public EntitySpider(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableSpider; // Purpur + } + + @Override diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java -index 77c0ed42f4..a7434fbe12 100644 +index 77c0ed42f..e06282fdf 100644 --- a/src/main/java/net/minecraft/server/EntitySquid.java +++ b/src/main/java/net/minecraft/server/EntitySquid.java -@@ -174,6 +174,7 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -19,6 +19,7 @@ public class EntitySquid extends EntityWaterAnimal { + + public EntitySquid(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableSquid; // Purpur + //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 } @@ -880,7 +1561,7 @@ index 77c0ed42f4..a7434fbe12 100644 public void a(float f, float f1, float f2) { this.bH = f; this.bI = f1; -@@ -258,6 +259,39 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -258,6 +260,39 @@ public class EntitySquid extends EntityWaterAnimal { @Override public void e() { @@ -920,7 +1601,7 @@ index 77c0ed42f4..a7434fbe12 100644 int i = this.b.cv(); if (i > 100) { -@@ -272,5 +306,17 @@ public class EntitySquid extends EntityWaterAnimal { +@@ -272,5 +307,17 @@ public class EntitySquid extends EntityWaterAnimal { } } @@ -939,7 +1620,7 @@ index 77c0ed42f4..a7434fbe12 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 70bf06b94..2f41d8ade 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 { @@ -955,8 +1636,32 @@ index 70bf06b943..2f41d8ade3 100644 public void tame(EntityHuman entityhuman) { this.setTamed(true); this.setOwnerUUID(entityhuman.getUniqueID()); +diff --git a/src/main/java/net/minecraft/server/EntityTropicalFish.java b/src/main/java/net/minecraft/server/EntityTropicalFish.java +index 2e537c203..03b49a7c7 100644 +--- a/src/main/java/net/minecraft/server/EntityTropicalFish.java ++++ b/src/main/java/net/minecraft/server/EntityTropicalFish.java +@@ -17,6 +17,7 @@ public class EntityTropicalFish extends EntityFishSchool { + + public EntityTropicalFish(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableTropicalFish; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntityTurtle.java b/src/main/java/net/minecraft/server/EntityTurtle.java +index e4eecf568..80bd32b79 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 { + + public EntityTurtle(EntityTypes entitytypes, World world) { + 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; diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java -index fb0c6bce03..4979f77b7d 100644 +index fb0c6bce0..4979f77b7 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 { @@ -970,9 +1675,269 @@ index fb0c6bce03..4979f77b7d 100644 public String getTranslatedName() { return getNameComponent().getString(); } +diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java +index bcda21ba7..0fc3bce6f 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 { + + public EntityVex(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableVex; // Purpur + this.moveController = new EntityVex.c(this); + this.f = 3; + } +diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java +index fe9efa9da..6e6f9180c 100644 +--- a/src/main/java/net/minecraft/server/EntityVillager.java ++++ b/src/main/java/net/minecraft/server/EntityVillager.java +@@ -61,6 +61,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation + + public EntityVillager(EntityTypes entitytypes, World world, VillagerType villagertype) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableVillager; // Purpur + this.bI = Long.MIN_VALUE; + this.bL = new Reputation(); + ((Navigation) this.getNavigation()).a(true); +diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java +index 46a349e73..b029c38d2 100644 +--- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java ++++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java +@@ -17,6 +17,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract { + + public EntityVillagerTrader(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableWanderingTrader; // Purpur + this.attachedToPlayer = true; + } + +diff --git a/src/main/java/net/minecraft/server/EntityVindicator.java b/src/main/java/net/minecraft/server/EntityVindicator.java +index 130a2e4ff..88a2ace08 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 { + + public EntityVindicator(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableVindicator; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java +index f30ce9568..6a0d7a82f 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 { + + public EntityWitch(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableWitch; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java +index 5609fcfe0..51624ac8a 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 { + + public EntityWither(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableWither; // Purpur + this.bossBattle = (BossBattleServer) (new BossBattleServer(this.getScoreboardDisplayName(), BossBattle.BarColor.PURPLE, BossBattle.BarStyle.PROGRESS)).setDarkenSky(true); + this.setHealth(this.getMaxHealth()); + this.getNavigation().d(true); +diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java +index 0f4554c39..dd213c7d9 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 { + + public EntityWolf(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableWolf; // Purpur + this.setTamed(false); + } + +diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java +index 40a796384..a131d57b5 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 { + + public EntityZombie(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableZombie; // Purpur + this.bD = new PathfinderGoalBreakDoor(this, EntityZombie.bC); + } + +diff --git a/src/main/java/net/minecraft/server/EntityZombieHusk.java b/src/main/java/net/minecraft/server/EntityZombieHusk.java +index 1c0787429..0b5875e93 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 { + + public EntityZombieHusk(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableHusk; // Purpur + } + + @Override +diff --git a/src/main/java/net/minecraft/server/EntityZombieVillager.java b/src/main/java/net/minecraft/server/EntityZombieVillager.java +index 5cfda3160..ac460de59 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 + + public EntityZombieVillager(EntityTypes entitytypes, World world) { + super(entitytypes, world); ++ this.isRidable = net.pl3x.purpur.PurpurConfig.ridableZombieVillager; // Purpur + this.setVillagerData(this.getVillagerData().withProfession((VillagerProfession) IRegistry.VILLAGER_PROFESSION.a(this.random))); + } + +diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java +index 8f3367ae1..04f398965 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java +@@ -114,4 +114,135 @@ 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); + } ++ ++ public static boolean ridableBat = true; ++ public static boolean ridableBlaze = true; ++ public static boolean ridableCat = true; ++ public static boolean ridableCaveSpider = true; ++ public static boolean ridableChicken = true; ++ public static boolean ridableCod = true; ++ 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; ++ public static boolean ridableEndermite = true; ++ public static boolean ridableEvoker = true; ++ public static boolean ridableFox = true; ++ public static boolean ridableGhast = true; ++ 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; ++ public static boolean ridablePhantom = true; ++ public static boolean ridablePig = true; ++ public static boolean ridableZombiePigman = true; ++ public static boolean ridablePillager = true; ++ public static boolean ridablePolarBear = true; ++ public static boolean ridablePufferfish = true; ++ public static boolean ridableRabbit = true; ++ public static boolean ridableRavager = true; ++ public static boolean ridableSalmon = true; ++ public static boolean ridableSheep = true; ++ 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; ++ public static boolean ridableSpider = true; ++ public static boolean ridableSquid = true; ++ public static boolean ridableTropicalFish = true; ++ public static boolean ridableTurtle = true; ++ public static boolean ridableVex = true; ++ public static boolean ridableVillager = true; ++ public static boolean ridableVindicator = true; ++ public static boolean ridableWanderingTrader = true; ++ public static boolean ridableWitch = true; ++ public static boolean ridableWither = true; ++ 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() { ++ ridableBat = getBoolean("settings.ridable.bat", ridableBat); ++ ridableBlaze = getBoolean("settings.ridable.blaze", ridableBlaze); ++ ridableCat = getBoolean("settings.ridable.cat", ridableCat); ++ ridableCaveSpider = getBoolean("settings.ridable.cave_spider", ridableCaveSpider); ++ ridableChicken = getBoolean("settings.ridable.chicken", ridableChicken); ++ ridableCod = getBoolean("settings.ridable.cod", ridableCod); ++ 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); ++ ridableEnderman = getBoolean("settings.ridable.enderman", ridableEnderman); ++ ridableEndermite = getBoolean("settings.ridable.endermite", ridableEndermite); ++ ridableEvoker = getBoolean("settings.ridable.evoker", ridableEvoker); ++ ridableFox = getBoolean("settings.ridable.fox", ridableFox); ++ 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); ++ ridablePhantom = getBoolean("settings.ridable.phantom", ridablePhantom); ++ ridablePig = getBoolean("settings.ridable.pig", ridablePig); ++ ridablePillager = getBoolean("settings.ridable.pillager", ridablePillager); ++ ridablePolarBear = getBoolean("settings.ridable.polar_bear", ridablePolarBear); ++ ridablePufferfish = getBoolean("settings.ridable.pufferfish", ridablePufferfish); ++ ridableRabbit = getBoolean("settings.ridable.rabbit", ridableRabbit); ++ ridableRavager = getBoolean("settings.ridable.ravager", ridableRavager); ++ ridableSalmon = getBoolean("settings.ridable.salmon", ridableSalmon); ++ ridableSheep = getBoolean("settings.ridable.sheep", ridableSheep); ++ 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); ++ ridableSquid = getBoolean("settings.ridable.squid", ridableSquid); ++ ridableStray = getBoolean("settings.ridable.stray", ridableStray); ++ ridableTropicalFish = getBoolean("settings.ridable.tropical_fish", ridableTropicalFish); ++ ridableTurtle = getBoolean("settings.ridable.turtle", ridableTurtle); ++ ridableVex = getBoolean("settings.ridable.vex", ridableVex); ++ ridableVillager = getBoolean("settings.ridable.villager", ridableVillager); ++ ridableVindicator = getBoolean("settings.ridable.vindicator", ridableVindicator); ++ ridableWanderingTrader = getBoolean("settings.ridable.wandering_trader", ridableWanderingTrader); ++ ridableWitch = getBoolean("settings.ridable.witch", ridableWitch); ++ ridableWither = getBoolean("settings.ridable.wither", ridableWither); ++ 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); ++ } + } diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java new file mode 100644 -index 0000000000..99e184d36e +index 000000000..99e184d36 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java @@ -0,0 +1,74 @@ @@ -1052,7 +2017,7 @@ index 0000000000..99e184d36e +} diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java new file mode 100644 -index 0000000000..d64a66274b +index 000000000..d64a66274 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java @@ -0,0 +1,77 @@ @@ -1135,7 +2100,7 @@ index 0000000000..d64a66274b +} diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java new file mode 100644 -index 0000000000..1a5a0c04c8 +index 000000000..1a5a0c04c --- /dev/null +++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java @@ -0,0 +1,58 @@ @@ -1199,7 +2164,7 @@ index 0000000000..1a5a0c04c8 +} diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java new file mode 100644 -index 0000000000..74ff48259c +index 000000000..74ff48259 --- /dev/null +++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDWater.java @@ -0,0 +1,42 @@ @@ -1246,7 +2211,7 @@ index 0000000000..74ff48259c + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 98f62d7760..83eeab5c37 100644 +index 98f62d776..83eeab5c3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -710,5 +710,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @@ -1265,6 +2230,27 @@ index 98f62d7760..83eeab5c37 100644 + } // Purpur end } +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +index 56c233872..b19970c88 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java +@@ -75,4 +75,16 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob { + return getHandle().isInDaylight(); + } + // Paper end ++ ++ // Purpur start ++ @Override ++ public boolean isRidable() { ++ return getHandle().isRidable; ++ } ++ ++ @Override ++ public void setRidable(boolean ridable) { ++ getHandle().isRidable = ridable; ++ } ++ // Purpur end + } -- 2.20.1 diff --git a/patches/server/0012-Remove-useless-cooldown-in-Villagers.patch b/patches/server/0012-Remove-useless-cooldown-in-Villagers.patch index 8ba1f1822..257aef4af 100644 --- a/patches/server/0012-Remove-useless-cooldown-in-Villagers.patch +++ b/patches/server/0012-Remove-useless-cooldown-in-Villagers.patch @@ -1,4 +1,4 @@ -From f9785380f7c40f676ef7415b84a70c4bcb546f04 Mon Sep 17 00:00:00 2001 +From ed7f134dcbacd4a25abb40f60c373b632d95d183 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 10 May 2019 14:34:35 -0500 Subject: [PATCH] Remove useless cooldown in Villagers @@ -8,10 +8,10 @@ Subject: [PATCH] Remove useless cooldown in Villagers 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java -index f2b46d4e3..72701ef4a 100644 +index 6e6f9180c..9d94c1a82 100644 --- a/src/main/java/net/minecraft/server/EntityVillager.java +++ b/src/main/java/net/minecraft/server/EntityVillager.java -@@ -186,10 +186,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -187,10 +187,11 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation @Override public void tick() { super.tick(); @@ -27,7 +27,7 @@ index f2b46d4e3..72701ef4a 100644 } @Override -@@ -231,7 +232,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation +@@ -232,7 +233,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation } private void er() { 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 4a94d1830..e394688b9 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 482e52d5f3fd6ae5a8c4088174176d5a02a46da1 Mon Sep 17 00:00:00 2001 +From 6e6fe490ddc8c6801032601d94e589d9605b3aaa 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 @@ -11,7 +11,7 @@ Subject: [PATCH] Make giants naturally spawn and have AI 4 files changed, 62 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java -index 72eb669c50..f1500f7a0e 100644 +index 72eb669c5..f1500f7a0 100644 --- a/src/main/java/net/minecraft/server/BiomeBase.java +++ b/src/main/java/net/minecraft/server/BiomeBase.java @@ -97,6 +97,7 @@ public abstract class BiomeBase { @@ -23,7 +23,7 @@ index 72eb669c50..f1500f7a0e 100644 ((List) this.u.get(enumcreaturetype)).add(biomebase_biomemeta); } diff --git a/src/main/java/net/minecraft/server/Biomes.java b/src/main/java/net/minecraft/server/Biomes.java -index f4698a6809..3f7f7a2de8 100644 +index f4698a680..3f7f7a2de 100644 --- a/src/main/java/net/minecraft/server/Biomes.java +++ b/src/main/java/net/minecraft/server/Biomes.java @@ -92,5 +92,30 @@ public abstract class Biomes { @@ -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 19b8312f26..b58b681a92 100644 +index b7e2022b1..d618c23ef 100644 --- a/src/main/java/net/minecraft/server/EntityGiantZombie.java +++ b/src/main/java/net/minecraft/server/EntityGiantZombie.java @@ -1,5 +1,7 @@ @@ -69,7 +69,7 @@ index 19b8312f26..b58b681a92 100644 public class EntityGiantZombie extends EntityMonster { public EntityGiantZombie(EntityTypes entitytypes, World world) { -@@ -23,8 +25,34 @@ public class EntityGiantZombie extends EntityMonster { +@@ -24,8 +26,34 @@ public class EntityGiantZombie extends EntityMonster { this.getAttributeInstance(GenericAttributes.ATTACK_DAMAGE).setValue(50.0D); } @@ -106,7 +106,7 @@ index 19b8312f26..b58b681a92 100644 } } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index d552076b31..d7236ebd6c 100644 +index 6eedf2c40..02f28e5ee 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java @@ -115,6 +115,13 @@ public class PurpurConfig { diff --git a/patches/server/0016-Pigs-give-saddle-back.patch b/patches/server/0016-Pigs-give-saddle-back.patch index 0a4494688..07c127c54 100644 --- a/patches/server/0016-Pigs-give-saddle-back.patch +++ b/patches/server/0016-Pigs-give-saddle-back.patch @@ -1,4 +1,4 @@ -From 95c80f781546d30bbf63b8135e18e1a23933a3d8 Mon Sep 17 00:00:00 2001 +From e8384e7172b361a68945e8ffe04dc78e03c6f17f Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 12 May 2019 01:14:46 -0500 Subject: [PATCH] Pigs give saddle back @@ -8,10 +8,10 @@ Subject: [PATCH] Pigs give saddle back 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/EntityPig.java b/src/main/java/net/minecraft/server/EntityPig.java -index e51054b23..2b078211d 100644 +index fd57e5bde..e1e43cebf 100644 --- a/src/main/java/net/minecraft/server/EntityPig.java +++ b/src/main/java/net/minecraft/server/EntityPig.java -@@ -118,10 +118,20 @@ public class EntityPig extends EntityAnimal { +@@ -119,10 +119,20 @@ public class EntityPig extends EntityAnimal { return true; } if (hasSaddle() && !isVehicle()) { diff --git a/patches/server/0021-Packed-Barrels.patch b/patches/server/0021-Packed-Barrels.patch index ffae2f503..1f0b052d4 100644 --- a/patches/server/0021-Packed-Barrels.patch +++ b/patches/server/0021-Packed-Barrels.patch @@ -1,4 +1,4 @@ -From 2c7d33706f295b38b1f85df0e1e7bd2136df269b Mon Sep 17 00:00:00 2001 +From dbbaaaaa830f331707165d487bd1da9ce73940bb Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 23 May 2019 21:50:37 -0500 Subject: [PATCH] Packed Barrels @@ -9,7 +9,7 @@ Subject: [PATCH] Packed Barrels 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/TileEntityBarrel.java b/src/main/java/net/minecraft/server/TileEntityBarrel.java -index a4a5150ff..007d0cda5 100644 +index 4c71d8e1d..045bf3b6b 100644 --- a/src/main/java/net/minecraft/server/TileEntityBarrel.java +++ b/src/main/java/net/minecraft/server/TileEntityBarrel.java @@ -56,7 +56,7 @@ public class TileEntityBarrel extends TileEntityLootable { @@ -39,19 +39,21 @@ index a4a5150ff..007d0cda5 100644 } diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java -index a23f5d798..2f7d099ba 100644 +index 4c20a6f70..6889dcdde 100644 --- a/src/main/java/net/pl3x/purpur/PurpurConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java -@@ -135,4 +135,9 @@ public class PurpurConfig { - snowmanDropsPumpkin = getBoolean("settings.mobs.snow_golem.drops-pumpkin-when-sheared", snowmanDropsPumpkin); +@@ -136,6 +136,11 @@ public class PurpurConfig { snowmanPumpkinPutBack = getBoolean("settings.mobs.snow_golem.pumpkin-can-be-added-back", snowmanPumpkinPutBack); } -+ + + public static boolean packedBarrels = true; + private static void packedBarrels() { + packedBarrels = getBoolean("settings.packed-barrels", packedBarrels); + } - } ++ + public static boolean ridableBat = true; + public static boolean ridableBlaze = true; + public static boolean ridableCat = true; -- 2.20.1