Fix mounting and WASD controls on Ender Dragon

This commit is contained in:
William Blake Galbreath
2020-02-28 02:24:12 -06:00
parent 7bf318705f
commit 540ed9be87
7 changed files with 207 additions and 40 deletions

View File

@@ -1,4 +1,4 @@
From 39cab841087ade6937df4982bd2105ddc5878529 Mon Sep 17 00:00:00 2001
From 968974fd46af44aea280c9ae0a043c7d2c6d02b9 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 6 Feb 2020 19:53:59 -0600
Subject: [PATCH] Ridables
@@ -6,7 +6,7 @@ Subject: [PATCH] Ridables
---
.../server/ControllerLookDolphin.java | 4 +-
.../net/minecraft/server/ControllerMove.java | 6 +-
.../java/net/minecraft/server/Entity.java | 60 +-
.../java/net/minecraft/server/Entity.java | 63 +-
.../net/minecraft/server/EntityAgeable.java | 2 +-
.../java/net/minecraft/server/EntityBat.java | 40 ++
.../java/net/minecraft/server/EntityBee.java | 106 +++-
@@ -15,11 +15,12 @@ Subject: [PATCH] Ridables
.../minecraft/server/EntityCaveSpider.java | 17 +
.../net/minecraft/server/EntityChicken.java | 19 +
.../java/net/minecraft/server/EntityCod.java | 17 +
.../minecraft/server/EntityComplexPart.java | 7 +
.../java/net/minecraft/server/EntityCow.java | 18 +
.../net/minecraft/server/EntityCreeper.java | 76 +++
.../net/minecraft/server/EntityDolphin.java | 40 +-
.../net/minecraft/server/EntityDrowned.java | 24 +-
.../minecraft/server/EntityEnderDragon.java | 22 +
.../minecraft/server/EntityEnderDragon.java | 87 ++-
.../net/minecraft/server/EntityEnderman.java | 33 +-
.../net/minecraft/server/EntityEndermite.java | 19 +
.../net/minecraft/server/EntityEvoker.java | 22 +
@@ -76,7 +77,7 @@ Subject: [PATCH] Ridables
.../server/EntityVillagerTrader.java | 18 +
.../minecraft/server/EntityVindicator.java | 19 +
.../net/minecraft/server/EntityWitch.java | 21 +-
.../net/minecraft/server/EntityWither.java | 26 +-
.../net/minecraft/server/EntityWither.java | 28 +-
.../java/net/minecraft/server/EntityWolf.java | 121 ++--
.../net/minecraft/server/EntityZombie.java | 19 +
.../minecraft/server/EntityZombieHusk.java | 17 +
@@ -95,7 +96,7 @@ Subject: [PATCH] Ridables
.../controller/ControllerMoveWASDWater.java | 43 ++
.../pathfinder/PathfinderGoalHasRider.java | 21 +
.../craftbukkit/entity/CraftEntity.java | 27 +
91 files changed, 3026 insertions(+), 188 deletions(-)
92 files changed, 3095 insertions(+), 196 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
@@ -142,7 +143,7 @@ index a5c4cbb67f..efe6afde9b 100644
public ControllerMove(EntityInsentient entityinsentient) {
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 8974c16bf9..6acc65abfa 100644
index 8974c16bf9..1d5cbbf97d 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -78,7 +78,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -172,7 +173,24 @@ index 8974c16bf9..6acc65abfa 100644
public boolean noclip;
public float J;
protected final Random random;
@@ -2112,7 +2112,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -179,7 +179,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
private boolean aF;
private final double[] aG;
private long aH;
- private EntitySize size;
+ protected EntitySize size; // Purpur - private -> protected
private float headHeight;
// CraftBukkit start
public boolean persist = true;
@@ -1285,6 +1285,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.inLava;
}
+ public void moveRelative(float speed, Vec3D motion) { this.a(speed, motion); } // Purpur - OBFHELPER
public void a(float f, Vec3D vec3d) {
Vec3D vec3d1 = a(vec3d, f, this.yaw);
@@ -2112,7 +2113,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
} else {
this.passengers.add(entity);
}
@@ -187,7 +205,7 @@ index 8974c16bf9..6acc65abfa 100644
}
return true; // CraftBukkit
}
@@ -2147,6 +2153,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2147,6 +2154,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return false;
}
// Spigot end
@@ -200,7 +218,7 @@ index 8974c16bf9..6acc65abfa 100644
this.passengers.remove(entity);
entity.j = 60;
}
@@ -2533,6 +2545,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2533,6 +2546,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
public void setHeadRotation(float f) {}
@@ -208,7 +226,7 @@ index 8974c16bf9..6acc65abfa 100644
public void l(float f) {}
public boolean bA() {
@@ -3378,4 +3391,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -3378,4 +3392,43 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
void accept(Entity entity, double d0, double d1, double d2);
}
@@ -755,6 +773,22 @@ index 1e3782122a..0153a821ee 100644
@Override
protected ItemStack l() {
return new ItemStack(Items.COD_BUCKET);
diff --git a/src/main/java/net/minecraft/server/EntityComplexPart.java b/src/main/java/net/minecraft/server/EntityComplexPart.java
index a0b35c8699..144e89f224 100644
--- a/src/main/java/net/minecraft/server/EntityComplexPart.java
+++ b/src/main/java/net/minecraft/server/EntityComplexPart.java
@@ -47,4 +47,11 @@ public class EntityComplexPart extends Entity {
public EntitySize a(EntityPose entitypose) {
return this.d;
}
+
+ // Purpur start
+ @Override
+ public boolean b(EntityHuman entityhuman, EnumHand enumhand) {
+ return owner.isAlive() && owner.tryRide(entityhuman, enumhand);
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java
index 2c8bbf20ae..723a9fa1ee 100644
--- a/src/main/java/net/minecraft/server/EntityCow.java
@@ -1060,13 +1094,43 @@ index 77885f67ff..63f5969b10 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index af10fc36e0..9cba1b6c84 100644
index af10fc36e0..e08b731d2c 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -62,6 +62,28 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
this.bO = new DragonControllerManager(this);
}
@@ -46,6 +46,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
private final int[] bS = new int[24];
private final Path bT = new Path();
private Explosion explosionSource = new Explosion(null, this, Double.NaN, Double.NaN, Double.NaN, Float.NaN, true, Explosion.Effect.DESTROY); // CraftBukkit - reusable source for CraftTNTPrimed.getSource()
+ private boolean hadRider; // Purpur
public EntityEnderDragon(EntityTypes<? extends EntityEnderDragon> entitytypes, World world) {
super(EntityTypes.ENDER_DRAGON, world);
@@ -60,8 +61,50 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
}
this.bO = new DragonControllerManager(this);
+
+ // Purpur start
+ this.moveController = new net.pl3x.purpur.controller.ControllerMoveWASDFlying(this) {
+ @Override
+ public void tick() {
+ // dragon doesn't use the controller. do nothing
+ }
+ };
+ this.lookController = new net.pl3x.purpur.controller.ControllerLookWASD(this) {
+ @Override
+ public void tick() {
+ // dragon doesn't use the controller. do nothing
+ }
+
+ @Override
+ public void tick(EntityHuman rider) {
+ setYawPitch(rider.yaw - 180F, rider.pitch * 0.5F);
+ }
+ };
+ // Purpur end
+ }
+
+ // Purpur start
+ @Override
+ public boolean isRidable() {
@@ -1076,8 +1140,8 @@ index af10fc36e0..9cba1b6c84 100644
+ @Override
+ public boolean isRidableInWater() {
+ return world.purpurConfig.enderDragonRidableInWater;
+ }
+
}
+ @Override
+ public boolean requireShiftToMount() {
+ return world.purpurConfig.enderDragonRequireShiftToMount;
@@ -1092,6 +1156,100 @@ index af10fc36e0..9cba1b6c84 100644
@Override
protected void initAttributes() {
super.initAttributes();
@@ -96,6 +139,37 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@Override
public void movementTick() {
+ // Purpur start
+ boolean hasRider = getRider() != null;
+ if (hasRider) {
+ if (!hadRider) {
+ hadRider = true;
+ noclip = false;
+ this.size = EntitySize.b(4.0F, 2.0F);
+ }
+
+ // dragon doesn't use controllers, so must tick manually
+ moveController.a();
+ lookController.a();
+
+ moveRelative((float) getAttributeInstance(GenericAttributes.MOVEMENT_SPEED).getValue() * 0.1F, new Vec3D(-getStrafe(), getVertical(), -getForward()));
+ Vec3D mot = getMot();
+ setMot(mot);
+ move(EnumMoveType.PLAYER, mot);
+
+ mot = mot.multiply(0.9F, 0.9F, 0.9F);
+ setMot(mot);
+
+ // control wing flap speed on client
+ getDragonControllerManager().setControllerPhase(mot.getX() * mot.getX() + mot.getZ() * mot.getZ() < 0.005F ? DragonControllerPhase.HOVER : DragonControllerPhase.HOLDING_PATTERN);
+ } else if (hadRider) {
+ hadRider = false;
+ noclip = true;
+ this.size = EntitySize.b(16.0F, 8.0F);
+ getDragonControllerManager().setControllerPhase(DragonControllerPhase.HOLDING_PATTERN); // HoldingPattern
+ }
+ // Purpur end
+
float f;
float f1;
@@ -117,6 +191,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
this.bx = this.by;
if (this.getHealth() <= 0.0F) {
+ if (hasRider) ejectPassengers(); // Purpur
f = (this.random.nextFloat() - 0.5F) * 8.0F;
f1 = (this.random.nextFloat() - 0.5F) * 4.0F;
float f2 = (this.random.nextFloat() - 0.5F) * 8.0F;
@@ -128,9 +203,9 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
f1 = 0.2F / (MathHelper.sqrt(b(vec3d)) * 10.0F + 1.0F);
f1 *= (float) Math.pow(2.0D, vec3d.y);
- if (this.bO.a().a()) {
+ if (!hasRider && this.bO.a().a()) { // Purpur
this.by += 0.1F;
- } else if (this.bz) {
+ } else if (!hasRider && this.bz) { // Purpur
this.by += f1 * 0.5F;
} else {
this.by += f1;
@@ -174,7 +249,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
}
this.bO.a().b();
- } else {
+ } else if (!hasRider) { // Purpur
IDragonController idragoncontroller = this.bO.a();
idragoncontroller.c();
@@ -241,7 +316,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
this.a(this.bH, (double) (f11 * 0.5F), 0.0D, (double) (-f12 * 0.5F));
this.a(this.bL, (double) (f12 * 4.5F), 2.0D, (double) (f11 * 4.5F));
this.a(this.bM, (double) (f12 * -4.5F), 2.0D, (double) (f11 * -4.5F));
- if (!this.world.isClientSide && this.hurtTicks == 0) {
+ if (!hasRider && this.hurtTicks == 0) { // Purpur
this.a(this.world.getEntities(this, this.bL.getBoundingBox().grow(4.0D, 2.0D, 4.0D).d(0.0D, -2.0D, 0.0D), IEntitySelector.e));
this.a(this.world.getEntities(this, this.bM.getBoundingBox().grow(4.0D, 2.0D, 4.0D).d(0.0D, -2.0D, 0.0D), IEntitySelector.e));
this.b(this.world.getEntities(this, this.bw.getBoundingBox().g(1.0D), IEntitySelector.e));
@@ -284,7 +359,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
}
if (!this.world.isClientSide) {
- this.bz = this.b(this.bw.getBoundingBox()) | this.b(this.bG.getBoundingBox()) | this.b(this.bH.getBoundingBox());
+ this.bz = !hasRider && this.b(this.bw.getBoundingBox()) | this.b(this.bG.getBoundingBox()) | this.b(this.bH.getBoundingBox()); // Purpur
if (this.bN != null) {
this.bN.b(this);
}
@@ -950,7 +1025,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@Override
protected boolean n(Entity entity) {
- return false;
+ return getRideCooldown() <= 0; // Purpur
}
@Override
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index 212636dcb2..de30ce483f 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -4159,7 +4317,7 @@ index 1432d3f6bf..447387bd78 100644
this.targetSelector.a(2, this.bz);
this.targetSelector.a(3, this.bA);
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index 8977c3516b..f654f27010 100644
index 8977c3516b..12f97910e3 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -41,13 +41,37 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -4201,6 +4359,15 @@ index 8977c3516b..f654f27010 100644
this.targetSelector.a(1, new PathfinderGoalHurtByTarget(this, new Class[0]));
this.targetSelector.a(2, new PathfinderGoalNearestAttackableTarget<>(this, EntityInsentient.class, 0, false, false, EntityWither.bG));
}
@@ -541,7 +565,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@Override
protected boolean n(Entity entity) {
- return false;
+ return getRideCooldown() <= 0; // Purpur
}
@Override
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java
index eec1e26b6e..47f0b2df6c 100644
--- a/src/main/java/net/minecraft/server/EntityWolf.java

View File

@@ -1,4 +1,4 @@
From 684b9dd00a327e6f8470cb3e65d47e26f1d20357 Mon Sep 17 00:00:00 2001
From dcbc6628adfb40507e4ab140b0884d24fc5929d7 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 4 May 2019 01:10:30 -0500
Subject: [PATCH] Cows eat mushrooms
@@ -11,7 +11,7 @@ Subject: [PATCH] Cows eat mushrooms
4 files changed, 77 insertions(+), 2 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 6acc65abfa..1d96f0242a 100644
index 1d5cbbf97d..9e985e278d 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1037,6 +1037,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -22,7 +22,7 @@ index 6acc65abfa..1d96f0242a 100644
public void a(SoundEffect soundeffect, float f, float f1) {
if (!this.isSilent()) {
this.world.playSound((EntityHuman) null, this.locX(), this.locY(), this.locZ(), soundeffect, this.getSoundCategory(), f, f1);
@@ -2572,6 +2573,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2573,6 +2574,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.invulnerable = flag;
}
@@ -140,7 +140,7 @@ index 17ff8a9fc3..6ca11091c9 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index a1f0e659c2..c5c59a8c81 100644
index 9b60d17bdf..661dcce493 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -145,10 +145,12 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 66373970bd7f4ab4bcb8ea9bf1ceb75722fa1e07 Mon Sep 17 00:00:00 2001
From 364a040bfacb575c41cc1479436618390094af09 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 9 May 2019 18:26:06 -0500
Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
@@ -25,10 +25,10 @@ index 816d301f1c..0971f25b56 100644
return (new EntityDamageSourceIndirect("indirectMagic", entity, entity1)).setIgnoreArmor().setMagic();
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 1d96f0242a..a9b1ce4165 100644
index 9e985e278d..4400aa5066 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1380,6 +1380,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1381,6 +1381,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return d3 * d3 + d4 * d4 + d5 * d5;
}
@@ -36,7 +36,7 @@ index 1d96f0242a..a9b1ce4165 100644
public double h(Entity entity) {
return this.c(entity.getPositionVector());
}
@@ -1903,14 +1904,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1904,14 +1905,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return this.a(new ItemStack(imaterial), (float) i);
}

View File

@@ -1,4 +1,4 @@
From 9a2541adcd16702d7dca91e37e4616eb973339e9 Mon Sep 17 00:00:00 2001
From e28713985f2973e247ecd50ed0b4579cd377be50 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 24 Aug 2019 14:42:54 -0500
Subject: [PATCH] Ender dragon always drop full exp
@@ -9,10 +9,10 @@ Subject: [PATCH] Ender dragon always drop full exp
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index 9cba1b6c84..5aea402797 100644
index e08b731d2c..baab056eff 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -588,7 +588,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -641,7 +641,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
boolean flag = this.world.getGameRules().getBoolean(GameRules.DO_MOB_LOOT);
short short0 = 500;
@@ -22,7 +22,7 @@ index 9cba1b6c84..5aea402797 100644
}
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d69baa858c..5ed5276348 100644
index 77070e618a..cd4b4ee293 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -201,12 +201,14 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 8bca0822c07fd0b8f61319668c78a26c4c37eb98 Mon Sep 17 00:00:00 2001
From fe7a867041542145cc9fb41d1016040fe8f64800 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 8 Aug 2019 15:29:15 -0500
Subject: [PATCH] Implement AFK API
@@ -17,10 +17,10 @@ Subject: [PATCH] Implement AFK API
10 files changed, 112 insertions(+), 24 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 44ae05b8a2..4358505dc2 100644
index b8959e005f..d38bbf6a4e 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1373,6 +1373,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1374,6 +1374,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
return MathHelper.c(f * f + f1 * f1 + f2 * f2);
}
@@ -227,7 +227,7 @@ index 874b8c1292..567b297e05 100644
} else if (entityplayer.isSleeping()) {
++j;
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index c76363c529..c53b07adf6 100644
index 2bbbf30c0d..95f1dcf0d7 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -147,6 +147,21 @@ public class PurpurWorldConfig {

View File

@@ -1,4 +1,4 @@
From 3cb2c16e16925d3e7e036f3f9af9c9008af7f593 Mon Sep 17 00:00:00 2001
From 30f6de2f967a3536824c0ea811a24b3bc0cd22f9 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 11 Jan 2020 23:12:52 -0600
Subject: [PATCH] Add EntityPortalReadyEvent
@@ -86,7 +86,7 @@ index 09c7c13183..6880cdd7f9 100644
break;
// CraftBukkit start - add the block to our list
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 4358505dc2..2e151ebc19 100644
index d38bbf6a4e..3ba936b101 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -168,9 +168,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -102,7 +102,7 @@ index 4358505dc2..2e151ebc19 100644
private boolean invulnerable;
protected UUID uniqueID;
protected String am;
@@ -2214,6 +2214,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -2215,6 +2215,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
this.world.getMethodProfiler().enter("portal");
this.ag = i;
this.portalCooldown = this.ba();

View File

@@ -1,4 +1,4 @@
From 8ad4489bd0b08b22fdad0c2ac05a202351aeb0ad Mon Sep 17 00:00:00 2001
From 2a2790a02166f3d335a7577dcce637927244a33a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sun, 21 Jul 2019 18:06:20 -0500
Subject: [PATCH] Ladders should not bypass cramming gamerule
@@ -17,10 +17,10 @@ Subject: [PATCH] Ladders should not bypass cramming gamerule
10 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 2e151ebc19..f1c749c38f 100644
index 3ba936b101..e6575076dd 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1508,6 +1508,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1509,6 +1509,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
public boolean isCollidable() {
@@ -155,7 +155,7 @@ index 4665671ef6..037f14e010 100644
ScoreboardTeamBase.EnumTeamPush scoreboardteambase_enumteampush = scoreboardteambase == null ? ScoreboardTeamBase.EnumTeamPush.ALWAYS : scoreboardteambase.getCollisionRule();
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
index d39fc8d5d6..cfe3db96c1 100644
index 814ff59352..9319c3b74b 100644
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
@@ -145,6 +145,7 @@ public class PurpurWorldConfig {