Fix issues with minecarts not being collidable

This commit is contained in:
William Blake Galbreath
2019-08-01 12:15:25 -05:00
parent 60b855c374
commit 176ef08145
2 changed files with 69 additions and 32 deletions

View File

@@ -1,36 +1,37 @@
From be40fc6982105526eee626d0349da7168d6c20a6 Mon Sep 17 00:00:00 2001
From 205bdc6ed4cdfc2e6e2a55eb9f841fc7da58c697 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
---
src/main/java/net/minecraft/server/Entity.java | 6 ++++++
.../java/net/minecraft/server/EntityArmorStand.java | 2 +-
src/main/java/net/minecraft/server/EntityBoat.java | 2 +-
.../net/minecraft/server/EntityHorseAbstract.java | 2 +-
src/main/java/net/minecraft/server/EntityLiving.java | 11 +++++++++--
.../java/net/minecraft/server/IEntitySelector.java | 7 ++++++-
6 files changed, 24 insertions(+), 6 deletions(-)
src/main/java/net/minecraft/server/Entity.java | 4 ++++
src/main/java/net/minecraft/server/EntityArmorStand.java | 2 +-
src/main/java/net/minecraft/server/EntityBat.java | 2 +-
src/main/java/net/minecraft/server/EntityBoat.java | 2 +-
.../java/net/minecraft/server/EntityHorseAbstract.java | 2 +-
src/main/java/net/minecraft/server/EntityLiving.java | 8 +++++---
.../java/net/minecraft/server/EntityMinecartAbstract.java | 2 +-
src/main/java/net/minecraft/server/EntityParrot.java | 2 +-
src/main/java/net/minecraft/server/IEntitySelector.java | 7 ++++++-
9 files changed, 21 insertions(+), 10 deletions(-)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 26a30e1c0..00caabf3d 100644
index 26a30e1c..770d2146 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1522,6 +1522,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -1522,6 +1522,10 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
}
public boolean isCollidable() {
+ // Purpur start
+ return isCollidable(false);
+ }
+
+ public boolean isCollidable(boolean ignoreClimbing) {
+ // Purpur end
return false;
}
diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
index e516db270..2fb10f6c2 100644
index e516db27..2fb10f6c 100644
--- a/src/main/java/net/minecraft/server/EntityArmorStand.java
+++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
@@ -316,7 +316,7 @@ public class EntityArmorStand extends EntityLiving {
@@ -42,8 +43,21 @@ index e516db270..2fb10f6c2 100644
return false;
}
diff --git a/src/main/java/net/minecraft/server/EntityBat.java b/src/main/java/net/minecraft/server/EntityBat.java
index 8a8acf14..88b94505 100644
--- a/src/main/java/net/minecraft/server/EntityBat.java
+++ b/src/main/java/net/minecraft/server/EntityBat.java
@@ -54,7 +54,7 @@ public class EntityBat extends EntityAmbient {
}
@Override
- public boolean isCollidable() {
+ public boolean isCollidable(boolean ignoreClimbing) { // Purpur
return false;
}
diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java
index 32b7f7805..b5bcd1f80 100644
index 32b7f780..b5bcd1f8 100644
--- a/src/main/java/net/minecraft/server/EntityBoat.java
+++ b/src/main/java/net/minecraft/server/EntityBoat.java
@@ -98,7 +98,7 @@ public class EntityBoat extends Entity {
@@ -56,7 +70,7 @@ index 32b7f7805..b5bcd1f80 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index 2177a4370..05a5169c1 100644
index 2177a437..05a5169c 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -165,7 +165,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@@ -69,7 +83,7 @@ index 2177a4370..05a5169c1 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index aa60c0084..4e6598cf5 100644
index aa60c008..84aebb91 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2609,7 +2609,7 @@ public abstract class EntityLiving extends Entity {
@@ -81,24 +95,47 @@ index aa60c0084..4e6598cf5 100644
if (!list.isEmpty()) {
int i = this.world.getGameRules().getInt(GameRules.MAX_ENTITY_CRAMMING);
@@ -2748,7 +2748,14 @@ public abstract class EntityLiving extends Entity {
@@ -2747,8 +2747,10 @@ public abstract class EntityLiving extends Entity {
}
@Override
public boolean isCollidable() {
- public boolean isCollidable() {
- return this.isAlive() && !this.isClimbing() && this.collides; // CraftBukkit
+ // Purpur start
+ return isCollidable(false);
+ }
+
+ @Override
+ // Purpur start
+ public boolean isCollidable(boolean ignoreClimbing) {
+ return this.isAlive() && (ignoreClimbing || !isClimbing()) && this.collides; // CraftBukkit
+ // Purpur end
}
@Override
diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
index c5b4057c..d5a28392 100644
--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
@@ -82,7 +82,7 @@ public abstract class EntityMinecartAbstract extends Entity {
}
@Override
- public boolean isCollidable() {
+ public boolean isCollidable(boolean ignoreClimbing) { // Purpur
return true;
}
diff --git a/src/main/java/net/minecraft/server/EntityParrot.java b/src/main/java/net/minecraft/server/EntityParrot.java
index 0eeb1105..7c2c3119 100644
--- a/src/main/java/net/minecraft/server/EntityParrot.java
+++ b/src/main/java/net/minecraft/server/EntityParrot.java
@@ -351,7 +351,7 @@ public class EntityParrot extends EntityPerchable implements EntityBird {
}
@Override
- public boolean isCollidable() {
+ public boolean isCollidable(boolean ignoreClimbing) { // Purpur
return true;
}
diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java
index 56488b78d..7ef7fe228 100644
index 56488b78..7ef7fe22 100644
--- a/src/main/java/net/minecraft/server/IEntitySelector.java
+++ b/src/main/java/net/minecraft/server/IEntitySelector.java
@@ -32,11 +32,16 @@ public final class IEntitySelector {