Merge branch 'master' into builder

This commit is contained in:
Leijurv 2019-02-07 14:11:26 -08:00
commit d8348ad292
No known key found for this signature in database
GPG Key ID: 44A3EA646EADAC6A
3 changed files with 20 additions and 11 deletions

View File

@ -16,7 +16,7 @@
*/ */
group 'baritone' group 'baritone'
version '1.1.3' version '1.1.4'
buildscript { buildscript {
repositories { repositories {

View File

@ -65,6 +65,8 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior,
private boolean lastAutoJump; private boolean lastAutoJump;
private BlockPos expectedSegmentStart;
private final LinkedBlockingQueue<PathEvent> toDispatch = new LinkedBlockingQueue<>(); private final LinkedBlockingQueue<PathEvent> toDispatch = new LinkedBlockingQueue<>();
public PathingBehavior(Baritone baritone) { public PathingBehavior(Baritone baritone) {
@ -92,6 +94,7 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior,
baritone.getPathingControlManager().cancelEverything(); baritone.getPathingControlManager().cancelEverything();
return; return;
} }
expectedSegmentStart = pathStart();
baritone.getPathingControlManager().preTick(); baritone.getPathingControlManager().preTick();
tickPath(); tickPath();
dispatchEvents(); dispatchEvents();
@ -445,8 +448,12 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior,
Optional<PathExecutor> executor = calcResult.getPath().map(p -> new PathExecutor(PathingBehavior.this, p)); Optional<PathExecutor> executor = calcResult.getPath().map(p -> new PathExecutor(PathingBehavior.this, p));
if (current == null) { if (current == null) {
if (executor.isPresent()) { if (executor.isPresent()) {
queuePathEvent(PathEvent.CALC_FINISHED_NOW_EXECUTING); if (executor.get().getPath().getSrc().equals(expectedSegmentStart)) {
current = executor.get(); queuePathEvent(PathEvent.CALC_FINISHED_NOW_EXECUTING);
current = executor.get();
} else {
logDebug("Warning: discarding orphan path segment with incorrect start");
}
} else { } else {
if (calcResult.getType() != PathCalculationResult.Type.CANCELLATION && calcResult.getType() != PathCalculationResult.Type.EXCEPTION) { if (calcResult.getType() != PathCalculationResult.Type.CANCELLATION && calcResult.getType() != PathCalculationResult.Type.EXCEPTION) {
// don't dispatch CALC_FAILED on cancellation // don't dispatch CALC_FAILED on cancellation

View File

@ -25,7 +25,6 @@ import baritone.api.utils.input.Input;
import baritone.behavior.Behavior; import baritone.behavior.Behavior;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.settings.KeyBinding; import net.minecraft.client.settings.KeyBinding;
import net.minecraft.util.MovementInput;
import net.minecraft.util.MovementInputFromOptions; import net.minecraft.util.MovementInputFromOptions;
import java.util.HashMap; import java.util.HashMap;
@ -111,14 +110,17 @@ public final class InputOverrideHandler extends Behavior implements IInputOverri
} }
blockBreakHelper.tick(isInputForcedDown(Input.CLICK_LEFT)); blockBreakHelper.tick(isInputForcedDown(Input.CLICK_LEFT));
MovementInput desired = inControl() if (inControl()) {
? new PlayerMovementInput(this) if (ctx.player().movementInput.getClass() != PlayerMovementInput.class) {
: new MovementInputFromOptions(Minecraft.getMinecraft().gameSettings); ctx.player().movementInput = new PlayerMovementInput(this);
}
if (ctx.player().movementInput.getClass() != desired.getClass()) { } else {
ctx.player().movementInput = desired; // only set it if it was previously incorrect if (ctx.player().movementInput.getClass() == PlayerMovementInput.class) {
// gotta do it this way, or else it constantly thinks you're beginning a double tap W sprint lol ctx.player().movementInput = new MovementInputFromOptions(Minecraft.getMinecraft().gameSettings);
}
} }
// only set it if it was previously incorrect
// gotta do it this way, or else it constantly thinks you're beginning a double tap W sprint lol
} }
private boolean inControl() { private boolean inControl() {