Skip to content

Commit cdf7d39

Browse files
committed
only check horizontal and distance below the flight path for obstacle passer to avoid false flagging from bouncing
1 parent 98f787d commit cdf7d39

1 file changed

Lines changed: 19 additions & 6 deletions

File tree

  • src/main/kotlin/com/lambda/module/modules/movement

src/main/kotlin/com/lambda/module/modules/movement/ElytraFly.kt

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,8 @@ object ElytraFly : Module(
215215
if (!BaritoneHandler.isActive) passingToPos = null
216216

217217
val playerPos = player.pos
218-
if (passObstacles && playerPos.let { Vec3d(it.x, startPos.y, it.z) } dist startPos > 0.1) run obstacleChecks@{
218+
val validDistanceFromStart = Vec3d(playerPos.x, startPos.y, playerPos.z) dist startPos > 0.1
219+
if (passObstacles && validDistanceFromStart) run obstacleChecks@{
219220
val snappedDir = getSnappedDir()
220221
val closestLinePoint = playerPos.findClosestPointOnLine(snappedDir)
221222
passingToPos?.let { passingTo ->
@@ -224,11 +225,23 @@ object ElytraFly : Module(
224225
}
225226
return
226227
}
227-
if (playerPos dist closestLinePoint <= acceptableOffsetRange) {
228-
if (playerPos.let { Vec3d(it.x, closestLinePoint.y, it.z) }.isObstructed(snappedDir))
229-
pathToValidPoint(closestLinePoint, snappedDir)
230-
else return@obstacleChecks
231-
} else pathToValidPoint(closestLinePoint, snappedDir, true)
228+
// We only want to account for horizontal and below the line rather than total
229+
// distance as jumping from bounce might cause false positives
230+
val distanceToLine =
231+
Vec3d(
232+
playerPos.x,
233+
closestLinePoint.y,
234+
playerPos.z
235+
).dist(closestLinePoint) + (playerPos.y - closestLinePoint.y).coerceAtMost(0.0)
236+
if (distanceToLine > acceptableOffsetRange) {
237+
pathToValidPoint(closestLinePoint, snappedDir, true)
238+
return
239+
}
240+
241+
val isObstructed = Vec3d(playerPos.x, closestLinePoint.y, playerPos.z).isObstructed(snappedDir)
242+
if (isObstructed) {
243+
pathToValidPoint(closestLinePoint, snappedDir)
244+
} else return@obstacleChecks
232245

233246
return
234247
}

0 commit comments

Comments
 (0)