From a521c4e7cd1971f95fc7280fc986f663073b18ac Mon Sep 17 00:00:00 2001 From: Lorenz Wrobel <43410952+DasBabyPixel@users.noreply.github.com> Date: Thu, 22 Aug 2024 03:15:19 +0200 Subject: [PATCH] fix entity collisions (#2348) --- .../java/net/minestom/server/collision/EntityCollision.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minestom/server/collision/EntityCollision.java b/src/main/java/net/minestom/server/collision/EntityCollision.java index e2c1f87eb..e465e89e2 100644 --- a/src/main/java/net/minestom/server/collision/EntityCollision.java +++ b/src/main/java/net/minestom/server/collision/EntityCollision.java @@ -32,12 +32,13 @@ final class EntityCollision { if (e.getBoundingBox().intersectBox(e.getPosition().sub(point), boundingBox)) { var p = Pos.fromPoint(point); result.add(new EntityCollisionResult(p, e, Vec.ZERO, 0)); + continue; } // Check collisions with entity - e.getBoundingBox().intersectBoxSwept(point, entityVelocity, e.getPosition(), boundingBox, sweepResult); + boolean intersected = e.getBoundingBox().intersectBoxSwept(point, entityVelocity, e.getPosition(), boundingBox, sweepResult); - if (sweepResult.res < 1) { + if (intersected && sweepResult.res < 1) { var p = Pos.fromPoint(point).add(entityVelocity.mul(sweepResult.res)); Vec direction = new Vec(sweepResult.collidedPositionX, sweepResult.collidedPositionY, sweepResult.collidedPositionZ); result.add(new EntityCollisionResult(p, e, direction, sweepResult.res));