demolish goto, fixes #182

This commit is contained in:
Leijurv 2018-09-24 16:21:14 -07:00
parent 8ee7446517
commit 6829bc920e
No known key found for this signature in database
GPG Key ID: 44A3EA646EADAC6A

View File

@ -383,15 +383,19 @@ public class ExampleBaritoneControl extends Behavior implements Helper {
waypointType = waypointType.substring(0, waypointType.length() - 1); waypointType = waypointType.substring(0, waypointType.length() - 1);
} }
Waypoint.Tag tag = Waypoint.Tag.fromString(waypointType); Waypoint.Tag tag = Waypoint.Tag.fromString(waypointType);
IWaypoint waypoint;
if (tag == null) { if (tag == null) {
String mining = waypointType; String mining = waypointType;
Block block = ChunkPacker.stringToBlock(mining); Block block = ChunkPacker.stringToBlock(mining);
//logDirect("Not a valid tag. Tags are: " + Arrays.asList(Waypoint.Tag.values()).toString().toLowerCase()); //logDirect("Not a valid tag. Tags are: " + Arrays.asList(Waypoint.Tag.values()).toString().toLowerCase());
event.cancel(); event.cancel();
if (block == null) { if (block == null) {
waypoint = WorldProvider.INSTANCE.getCurrentWorld().getWaypoints().getAllWaypoints().stream().filter(w -> w.getName().equalsIgnoreCase(mining)).max(Comparator.comparingLong(IWaypoint::getCreationTimestamp)).orElse(null);
if (waypoint == null) {
logDirect("No locations for " + mining + " known, cancelling"); logDirect("No locations for " + mining + " known, cancelling");
return; return;
} }
} else {
List<BlockPos> locs = MineBehavior.INSTANCE.scanFor(Collections.singletonList(block), 64); List<BlockPos> locs = MineBehavior.INSTANCE.scanFor(Collections.singletonList(block), 64);
if (locs.isEmpty()) { if (locs.isEmpty()) {
logDirect("No locations for " + mining + " known, cancelling"); logDirect("No locations for " + mining + " known, cancelling");
@ -401,12 +405,14 @@ public class ExampleBaritoneControl extends Behavior implements Helper {
PathingBehavior.INSTANCE.path(); PathingBehavior.INSTANCE.path();
return; return;
} }
IWaypoint waypoint = WorldProvider.INSTANCE.getCurrentWorld().getWaypoints().getMostRecentByTag(tag); } else {
waypoint = WorldProvider.INSTANCE.getCurrentWorld().getWaypoints().getMostRecentByTag(tag);
if (waypoint == null) { if (waypoint == null) {
logDirect("None saved for tag " + tag); logDirect("None saved for tag " + tag);
event.cancel(); event.cancel();
return; return;
} }
}
Goal goal = new GoalBlock(waypoint.getLocation()); Goal goal = new GoalBlock(waypoint.getLocation());
PathingBehavior.INSTANCE.setGoal(goal); PathingBehavior.INSTANCE.setGoal(goal);
if (!PathingBehavior.INSTANCE.path()) { if (!PathingBehavior.INSTANCE.path()) {