Fix enttiy move merge issues - fixes #1637

This commit is contained in:
Aikar 2018-11-02 10:08:57 -04:00
parent 4b59bce95d
commit ac14b72526

View file

@ -31,7 +31,7 @@ index eabb2c1bad..f6d4c476bc 100644
+
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 32b90f30d9..6023824e3d 100644
index 32b90f30d9..5031e4737d 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -92,8 +92,46 @@ index 32b90f30d9..6023824e3d 100644
AxisAlignedBB axisalignedbb = this.getBoundingBox();
if (d0 != 0.0D || d1 != 0.0D || d2 != 0.0D) {
diff --git a/src/main/java/net/minecraft/server/EntityOcelot.java b/src/main/java/net/minecraft/server/EntityOcelot.java
index 90a7e00a05..630e2407b3 100644
--- a/src/main/java/net/minecraft/server/EntityOcelot.java
+++ b/src/main/java/net/minecraft/server/EntityOcelot.java
@@ -0,0 +0,0 @@ public class EntityOcelot extends EntityTameableAnimal {
return !this.isTamed() && !this.hasCustomName() && !this.isLeashed() /*&& this.ticksLived > 2400*/; // CraftBukkit - Paper (honor name and leash)
}
+ // Paper start
+ @Override
+ public boolean shouldMergeMovement(double mergeMin, double d0, double d1, double d2) {
+ // Cats have weird movement bugs when a move is skipped, ideally we can fix this and fix that state
+ return false;
+ }
+ // Paper end
+
protected void initAttributes() {
super.initAttributes();
this.getAttributeInstance(GenericAttributes.maxHealth).setValue(10.0D);
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
index 86488e9709..e6348a2931 100644
--- a/src/main/java/net/minecraft/server/EntityParrot.java
+++ b/src/main/java/net/minecraft/server/EntityParrot.java
@@ -0,0 +0,0 @@ public class EntityParrot extends EntityPerchable implements EntityBird {
this.goalSelector.a(3, new PathfinderGoalFollowEntity(this, 1.0D, 3.0F, 7.0F));
}
+ // Paper start
+ @Override
+ public boolean shouldMergeMovement(double mergeMin, double d0, double d1, double d2) {
+ // Parrots have weird movement bugs when a move is skipped, ideally we can fix this and fix that state
+ return false;
+ }
+ // Paper end
+
protected void initAttributes() {
super.initAttributes();
this.getAttributeMap().b(GenericAttributes.e);
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
index e63f4afa9b..1941faaebd 100644
index e63f4afa9b..f1266c0ce1 100644
--- a/src/main/java/net/minecraft/server/EntitySlime.java
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
@@ -0,0 +0,0 @@ public class EntitySlime extends EntityInsentient implements IMonster {
@ -109,4 +147,23 @@ index e63f4afa9b..1941faaebd 100644
private boolean canWander = true;
public boolean canWander() {
return canWander;
diff --git a/src/main/java/net/minecraft/server/EntityWolf.java b/src/main/java/net/minecraft/server/EntityWolf.java
index 68db6af622..8ba3438f77 100644
--- a/src/main/java/net/minecraft/server/EntityWolf.java
+++ b/src/main/java/net/minecraft/server/EntityWolf.java
@@ -0,0 +0,0 @@ public class EntityWolf extends EntityTameableAnimal {
this.datawatcher.set(EntityWolf.bI, Integer.valueOf(enumcolor.getColorIndex()));
}
+ // Paper start
+ @Override
+ public boolean shouldMergeMovement(double mergeMin, double d0, double d1, double d2) {
+ // Wolf have weird movement bugs when a move is skipped, ideally we can fix this and fix that state
+ return false;
+ }
+ // Paper end
+
public EntityWolf b(EntityAgeable entityageable) {
EntityWolf entitywolf = EntityTypes.WOLF.create(world); // Paper
UUID uuid = this.getOwnerUUID();
--