diff --git a/src/main/java/baritone/process/ElytraProcess.java b/src/main/java/baritone/process/ElytraProcess.java index cfcf5373f..761ab78ea 100644 --- a/src/main/java/baritone/process/ElytraProcess.java +++ b/src/main/java/baritone/process/ElytraProcess.java @@ -164,10 +164,11 @@ public class ElytraProcess extends BaritoneProcessHelper implements IBaritonePro return new PathingCommand(null, PathingCommandType.CANCEL_AND_SET_GOAL); } else if (this.state == State.LANDING) { if (Math.sqrt(ctx.player().motionX * ctx.player().motionX + ctx.player().motionZ * ctx.player().motionZ) > 0.001) { - logDirect("Landed, but still moving, waiting for velocity to die down... " + ctx.player().motionX + " " + ctx.player().motionZ); + logDirect("Landed, but still moving, waiting for velocity to die down... "); baritone.getInputOverrideHandler().setInputForceState(Input.SNEAK, true); return new PathingCommand(null, PathingCommandType.REQUEST_PAUSE); } + logDirect("Done :)"); baritone.getInputOverrideHandler().clearAllKeys(); this.onLostControl(); return new PathingCommand(null, PathingCommandType.REQUEST_PAUSE); diff --git a/src/main/java/baritone/process/elytra/ElytraBehavior.java b/src/main/java/baritone/process/elytra/ElytraBehavior.java index 211835dda..503944981 100644 --- a/src/main/java/baritone/process/elytra/ElytraBehavior.java +++ b/src/main/java/baritone/process/elytra/ElytraBehavior.java @@ -634,7 +634,10 @@ public final class ElytraBehavior implements Helper { for (final Pair candidate : candidates) { final Integer augment = candidate.second(); - final Vec3d dest = candidate.first().add(0, augment, 0); + Vec3d dest = candidate.first().add(0, augment, 0); + if (landingMode) { + dest = dest.add(0.5, 0.5, 0.5); + } if (augment != 0) { if (i + lookahead >= path.size()) { @@ -1079,7 +1082,10 @@ public final class ElytraBehavior implements Helper { continue; } final Vec3d last = displacement.get(displacement.size() - 1); - final double goodness = goalDirection.dotProduct(last.normalize()); + double goodness = goalDirection.dotProduct(last.normalize()); + if (landingMode) { + goodness = -goalDelta.subtract(last).length(); + } final PitchResult bestSoFar = bestResults.peek(); if (bestSoFar == null || goodness > bestSoFar.dot) { bestResults.push(new PitchResult(pitch, goodness, displacement));