diff options
Diffstat (limited to 'nms-patches/Entity.patch')
-rw-r--r-- | nms-patches/Entity.patch | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/nms-patches/Entity.patch b/nms-patches/Entity.patch index fd248cfc..f73dae4b 100644 --- a/nms-patches/Entity.patch +++ b/nms-patches/Entity.patch @@ -273,9 +273,9 @@ } @@ -706,6 +884,7 @@ - this.locX = (axisalignedbb.a + axisalignedbb.d) / 2.0D; - this.locY = axisalignedbb.b; - this.locZ = (axisalignedbb.c + axisalignedbb.f) / 2.0D; + this.locX = (axisalignedbb.minX + axisalignedbb.maxX) / 2.0D; + this.locY = axisalignedbb.minY; + this.locZ = (axisalignedbb.minZ + axisalignedbb.maxZ) / 2.0D; + if (valid) world.entityJoinedWorld(this, false); // CraftBukkit } @@ -453,8 +453,8 @@ } this.vehicle = entity; -- this.vehicle.o(this); -+ if (!this.vehicle.o(this)) this.vehicle = null; // CraftBukkit +- this.vehicle.addPassenger(this); ++ if (!this.vehicle.addPassenger(this)) this.vehicle = null; // CraftBukkit return true; } } @@ -468,8 +468,8 @@ } -- protected void o(Entity entity) { -+ protected boolean o(Entity entity) { // CraftBukkit +- protected void addPassenger(Entity entity) { ++ protected boolean addPassenger(Entity entity) { // CraftBukkit if (entity.getVehicle() != this) { throw new IllegalStateException("Use x.startRiding(y), not y.addPassenger(x)"); } else { @@ -733,24 +733,24 @@ public void a(AxisAlignedBB axisalignedbb) { - this.boundingBox = axisalignedbb; + // CraftBukkit start - block invalid bounding boxes -+ double a = axisalignedbb.a, -+ b = axisalignedbb.b, -+ c = axisalignedbb.c, -+ d = axisalignedbb.d, -+ e = axisalignedbb.e, -+ f = axisalignedbb.f; -+ double len = axisalignedbb.d - axisalignedbb.a; -+ if (len < 0) d = a; -+ if (len > 64) d = a + 64.0; -+ -+ len = axisalignedbb.e - axisalignedbb.b; -+ if (len < 0) e = b; -+ if (len > 64) e = b + 64.0; -+ -+ len = axisalignedbb.f - axisalignedbb.c; -+ if (len < 0) f = c; -+ if (len > 64) f = c + 64.0; -+ this.boundingBox = new AxisAlignedBB(a, b, c, d, e, f); ++ double minX = axisalignedbb.minX, ++ minY = axisalignedbb.minY, ++ minZ = axisalignedbb.minZ, ++ maxX = axisalignedbb.maxX, ++ maxY = axisalignedbb.maxY, ++ maxZ = axisalignedbb.maxZ; ++ double len = axisalignedbb.maxX - axisalignedbb.minX; ++ if (len < 0) maxX = minX; ++ if (len > 64) maxX = minX + 64.0; ++ ++ len = axisalignedbb.maxY - axisalignedbb.minY; ++ if (len < 0) maxY = minY; ++ if (len > 64) maxY = minY + 64.0; ++ ++ len = axisalignedbb.maxZ - axisalignedbb.minZ; ++ if (len < 0) maxZ = minZ; ++ if (len > 64) maxZ = minZ + 64.0; ++ this.boundingBox = new AxisAlignedBB(minX, minY, minZ, maxX, maxY, maxZ); + // CraftBukkit end } |