diff --git a/nms-patches/net/minecraft/world/entity/Entity.patch b/nms-patches/net/minecraft/world/entity/Entity.patch index 8f7a15da3..a51231077 100644 --- a/nms-patches/net/minecraft/world/entity/Entity.patch +++ b/nms-patches/net/minecraft/world/entity/Entity.patch @@ -662,7 +662,7 @@ } this.removeAfterChangingDimensions(); -@@ -2389,20 +2774,33 @@ +@@ -2389,20 +2774,34 @@ @Nullable protected ShapeDetectorShape findDimensionEntryPoint(WorldServer worldserver) { @@ -693,7 +693,8 @@ + return null; + } + final WorldServer worldserverFinal = worldserver = ((CraftWorld) event.getTo().getWorld()).getHandle(); -+ blockposition = new BlockPosition(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ()); ++ worldborder = worldserverFinal.getWorldBorder(); ++ blockposition = worldborder.clampToBounds(event.getTo().getX(), event.getTo().getY(), event.getTo().getZ()); - return (ShapeDetectorShape) this.getExitPortal(worldserver, blockposition, flag2, worldborder).map((blockutil_rectangle) -> { + return (ShapeDetectorShape) this.getExitPortal(worldserver, blockposition, flag2, worldborder, event.getSearchRadius(), event.getCanCreatePortal(), event.getCreationRadius()).map((blockutil_rectangle) -> { @@ -701,7 +702,7 @@ IBlockData iblockdata = this.level.getBlockState(this.portalEntrancePos); EnumDirection.EnumAxis enumdirection_enumaxis; Vec3D vec3d; -@@ -2419,8 +2817,8 @@ +@@ -2419,8 +2818,8 @@ vec3d = new Vec3D(0.5D, 0.0D, 0.0D); } @@ -712,7 +713,7 @@ } } else { BlockPosition blockposition1; -@@ -2430,8 +2828,15 @@ +@@ -2430,8 +2829,15 @@ } else { blockposition1 = worldserver.getHeightmapPos(HeightMap.Type.MOTION_BLOCKING_NO_LEAVES, worldserver.getSharedSpawnPos()); } @@ -729,7 +730,7 @@ } } -@@ -2439,8 +2844,23 @@ +@@ -2439,8 +2845,23 @@ return BlockPortalShape.getRelativePosition(blockutil_rectangle, enumdirection_enumaxis, this.position(), this.getDimensions(this.getPose())); } @@ -755,7 +756,7 @@ } public boolean canChangeDimensions() { -@@ -2649,7 +3069,26 @@ +@@ -2649,7 +3070,26 @@ } public final void setBoundingBox(AxisAlignedBB axisalignedbb) { @@ -783,7 +784,7 @@ } protected float getEyeHeight(EntityPose entitypose, EntitySize entitysize) { -@@ -2933,6 +3372,11 @@ +@@ -2933,6 +3373,11 @@ vec3d = vec3d.add(vec3d1); ++k1; }