Added the feature to only farm within range of a waypoint.
This commit is contained in:
parent
5d3522ca0a
commit
65a5677b33
@ -18,15 +18,23 @@
|
|||||||
package baritone.command.defaults;
|
package baritone.command.defaults;
|
||||||
|
|
||||||
import baritone.api.IBaritone;
|
import baritone.api.IBaritone;
|
||||||
|
import baritone.api.cache.IWaypoint;
|
||||||
import baritone.api.command.Command;
|
import baritone.api.command.Command;
|
||||||
|
import baritone.api.command.datatypes.ForWaypoints;
|
||||||
import baritone.api.command.exception.CommandException;
|
import baritone.api.command.exception.CommandException;
|
||||||
import baritone.api.command.argument.IArgConsumer;
|
import baritone.api.command.argument.IArgConsumer;
|
||||||
|
import baritone.api.command.exception.CommandInvalidStateException;
|
||||||
|
import baritone.api.command.helpers.Paginator;
|
||||||
|
import baritone.api.pathing.goals.Goal;
|
||||||
|
import baritone.api.pathing.goals.GoalBlock;
|
||||||
import baritone.api.utils.BetterBlockPos;
|
import baritone.api.utils.BetterBlockPos;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
import static baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX;
|
||||||
|
|
||||||
public class FarmCommand extends Command {
|
public class FarmCommand extends Command {
|
||||||
|
|
||||||
public FarmCommand(IBaritone baritone) {
|
public FarmCommand(IBaritone baritone) {
|
||||||
@ -35,12 +43,49 @@ public class FarmCommand extends Command {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute(String label, IArgConsumer args) throws CommandException {
|
public void execute(String label, IArgConsumer args) throws CommandException {
|
||||||
args.requireMax(1);
|
args.requireMax(2);
|
||||||
int range = 0;
|
int range = 0;
|
||||||
if (args.hasExactly(1)) {
|
BetterBlockPos origin;
|
||||||
|
//range
|
||||||
|
if (args.has(1)) {
|
||||||
range = args.getAs(Integer.class);
|
range = args.getAs(Integer.class);
|
||||||
}
|
}
|
||||||
BetterBlockPos origin = baritone.getPlayerContext().playerFeet();
|
//waypoint
|
||||||
|
if (args.hasExactly(1)){
|
||||||
|
IWaypoint[] waypoints = args.getDatatypeFor(ForWaypoints.INSTANCE);
|
||||||
|
IWaypoint waypoint = null;
|
||||||
|
if (args.hasAny() && args.peekString().equals("@")) {
|
||||||
|
long timestamp = args.getAs(Long.class);
|
||||||
|
for (IWaypoint iWaypoint : waypoints) {
|
||||||
|
if (iWaypoint.getCreationTimestamp() == timestamp) {
|
||||||
|
waypoint = iWaypoint;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (waypoint == null) {
|
||||||
|
throw new CommandInvalidStateException("Timestamp was specified but no waypoint was found");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch (waypoints.length) {
|
||||||
|
case 0:
|
||||||
|
throw new CommandInvalidStateException("No waypoints found");
|
||||||
|
case 1:
|
||||||
|
waypoint = waypoints[0];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (waypoint == null) {
|
||||||
|
throw new CommandInvalidStateException("Multiple waypoints were found");
|
||||||
|
} else {
|
||||||
|
origin = waypoint.getLocation();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
origin = baritone.getPlayerContext().playerFeet();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
baritone.getFarmProcess().farm(range, origin);
|
baritone.getFarmProcess().farm(range, origin);
|
||||||
logDirect("Farming");
|
logDirect("Farming");
|
||||||
}
|
}
|
||||||
@ -62,7 +107,8 @@ public class FarmCommand extends Command {
|
|||||||
"",
|
"",
|
||||||
"Usage:",
|
"Usage:",
|
||||||
"> farm - farms every crop it can find.",
|
"> farm - farms every crop it can find.",
|
||||||
"> farm 100 - farm crops within a 100 block radius from the starting position."
|
"> farm <range> - farm crops within range from the starting position.",
|
||||||
|
"> farm <range> <waypoint> - farm crops within range from waypoint."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user