Add eta command

This commit is contained in:
ZacSharp 2020-08-26 23:53:02 +02:00
parent b628d67961
commit 56f13d314a
2 changed files with 79 additions and 0 deletions

View File

@ -38,6 +38,7 @@ public final class DefaultCommands {
new GotoCommand(baritone),
new PathCommand(baritone),
new ProcCommand(baritone),
new EtaCommand(baritone),
new VersionCommand(baritone),
new RepackCommand(baritone),
new BuildCommand(baritone),

View File

@ -0,0 +1,78 @@
/*
* This file is part of Baritone.
*
* Baritone is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Baritone is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Baritone. If not, see <https://www.gnu.org/licenses/>.
*/
package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.pathing.calc.IPathingControlManager;
import baritone.api.process.IBaritoneProcess;
import baritone.api.behavior.IPathingBehavior;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class EtaCommand extends Command {
public EtaCommand(IBaritone baritone) {
super(baritone, "eta");
}
@Override
public void execute(String label, IArgConsumer args) throws CommandException {
args.requireMax(0);
IPathingControlManager pathingControlManager = baritone.getPathingControlManager();
IBaritoneProcess process = pathingControlManager.mostRecentInControl().orElse(null);
if (process == null) {
throw new CommandInvalidStateException("No process in control");
}
IPathingBehavior pathingBehavior = baritone.getPathingBehavior();
logDirect(String.format(
"Next segment: %.2f\n" +
"Goal: %.2f",
pathingBehavior.ticksRemainingInSegment().orElse(-1.0),
pathingBehavior.estimatedTicksToGoal().orElse(-1.0)
));
}
@Override
public Stream<String> tabComplete(String label, IArgConsumer args) {
return Stream.empty();
}
@Override
public String getShortDesc() {
return "View the current eta";
}
@Override
public List<String> getLongDesc() {
return Arrays.asList(
"The eta command provides information about the estimated time until the next segment.",
"and the goal",
"",
"Be aware that the eta to your goal is really unprecise",
"",
"Usage:",
"> proc - View eta, if present"
);
}
}