diff --git a/src/api/java/baritone/api/IBaritoneProvider.java b/src/api/java/baritone/api/IBaritoneProvider.java
index 2fd648d32..d6e3d93ba 100644
--- a/src/api/java/baritone/api/IBaritoneProvider.java
+++ b/src/api/java/baritone/api/IBaritoneProvider.java
@@ -18,7 +18,7 @@
package baritone.api;
import baritone.api.cache.IWorldScanner;
-import baritone.api.command.Command;
+import baritone.api.command.ICommand;
import baritone.api.command.ICommandSystem;
import net.minecraft.client.entity.player.ClientPlayerEntity;
@@ -77,7 +77,7 @@ public interface IBaritoneProvider {
/**
* Returns the {@link ICommandSystem} instance. This is not bound to a specific {@link IBaritone}
- * instance because {@link ICommandSystem} itself controls global behavior for {@link Command}s.
+ * instance because {@link ICommandSystem} itself controls global behavior for {@link ICommand}s.
*
* @return The {@link ICommandSystem} instance.
*/
diff --git a/src/api/java/baritone/api/command/Command.java b/src/api/java/baritone/api/command/Command.java
index cd8fa5de3..4db5c0f3f 100644
--- a/src/api/java/baritone/api/command/Command.java
+++ b/src/api/java/baritone/api/command/Command.java
@@ -18,10 +18,7 @@
package baritone.api.command;
import baritone.api.IBaritone;
-import baritone.api.utils.Helper;
import baritone.api.utils.IPlayerContext;
-import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
import java.util.Collections;
import java.util.List;
@@ -29,7 +26,19 @@ import java.util.Locale;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-public abstract class Command implements Helper {
+/**
+ * A default implementation of {@link ICommand} which provides easy access to the
+ * command's bound {@link IBaritone} instance, {@link IPlayerContext} and an easy
+ * way to provide multiple valid command execution names through the default constructor.
+ *
+ * So basically, you should use it because it provides a small amount of boilerplate,
+ * but you're not forced to use it.
+ *
+ * @see ICommand
+ *
+ * @author LoganDark
+ */
+public abstract class Command implements ICommand {
protected IBaritone baritone;
protected IPlayerContext ctx;
@@ -52,34 +61,7 @@ public abstract class Command implements Helper {
this.ctx = baritone.getPlayerContext();
}
- /**
- * Called when this command is executed.
- */
- public abstract void execute(String label, IArgConsumer args) throws CommandException;
-
- /**
- * Called when the command needs to tab complete. Return a Stream representing the entries to put in the completions
- * list.
- */
- public abstract Stream tabComplete(String label, IArgConsumer args) throws CommandException;
-
- /**
- * @return A single-line string containing a short description of this command's purpose.
- */
- public abstract String getShortDesc();
-
- /**
- * @return A list of lines that will be printed by the help command when the user wishes to view them.
- */
- public abstract List getLongDesc();
-
- /**
- * @return {@code true} if this command should be hidden from the help menu
- */
- public boolean hiddenFromHelp() {
- return false;
- }
-
+ @Override
public final List getNames() {
return this.names;
}
diff --git a/src/api/java/baritone/api/command/ICommand.java b/src/api/java/baritone/api/command/ICommand.java
new file mode 100644
index 000000000..792de7c73
--- /dev/null
+++ b/src/api/java/baritone/api/command/ICommand.java
@@ -0,0 +1,67 @@
+/*
+ * 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 .
+ */
+
+package baritone.api.command;
+
+import baritone.api.command.argument.IArgConsumer;
+import baritone.api.command.exception.CommandException;
+import baritone.api.utils.Helper;
+
+import java.util.List;
+import java.util.stream.Stream;
+
+/**
+ * The base for a command.
+ *
+ * @author Brady
+ * @since 10/7/2019
+ */
+public interface ICommand extends Helper {
+
+ /**
+ * Called when this command is executed.
+ */
+ void execute(String label, IArgConsumer args) throws CommandException;
+
+ /**
+ * Called when the command needs to tab complete. Return a Stream representing the entries to put in the completions
+ * list.
+ */
+ Stream tabComplete(String label, IArgConsumer args) throws CommandException;
+
+ /**
+ * @return A single-line string containing a short description of this command's purpose.
+ */
+ String getShortDesc();
+
+ /**
+ * @return A list of lines that will be printed by the help command when the user wishes to view them.
+ */
+ List getLongDesc();
+
+ /**
+ * @return A list of the names that can be accepted to have arguments passed to this command
+ */
+ List getNames();
+
+ /**
+ * @return {@code true} if this command should be hidden from the help menu
+ */
+ default boolean hiddenFromHelp() {
+ return false;
+ }
+}
diff --git a/src/api/java/baritone/api/command/argparser/IArgParserManager.java b/src/api/java/baritone/api/command/argparser/IArgParserManager.java
index fe819150a..f38b4624d 100644
--- a/src/api/java/baritone/api/command/argparser/IArgParserManager.java
+++ b/src/api/java/baritone/api/command/argparser/IArgParserManager.java
@@ -22,6 +22,10 @@ import baritone.api.command.exception.CommandInvalidTypeException;
import baritone.api.command.registry.Registry;
/**
+ * Used to retrieve {@link IArgParser} instances from the registry, by their target class.
+ * It can be assumed that a {@link IArgParser} exists for {@link Integer}, {@link Long},
+ * {@link Float}, {@link Double} and {@link Boolean}.
+ *
* @author Brady
* @since 10/4/2019
*/
diff --git a/src/api/java/baritone/api/command/helpers/arguments/IArgConsumer.java b/src/api/java/baritone/api/command/argument/IArgConsumer.java
similarity index 99%
rename from src/api/java/baritone/api/command/helpers/arguments/IArgConsumer.java
rename to src/api/java/baritone/api/command/argument/IArgConsumer.java
index 637fcd674..0a028daa7 100644
--- a/src/api/java/baritone/api/command/helpers/arguments/IArgConsumer.java
+++ b/src/api/java/baritone/api/command/argument/IArgConsumer.java
@@ -15,13 +15,12 @@
* along with Baritone. If not, see .
*/
-package baritone.api.command.helpers.arguments;
+package baritone.api.command.argument;
-import baritone.api.command.Command;
+import baritone.api.command.ICommand;
import baritone.api.command.exception.CommandTooManyArgumentsException;
import baritone.api.utils.Helper;
import baritone.api.command.argparser.IArgParser;
-import baritone.api.command.argument.ICommandArgument;
import baritone.api.command.datatypes.IDatatype;
import baritone.api.command.datatypes.IDatatypeFor;
import baritone.api.command.datatypes.IDatatypePost;
@@ -35,7 +34,7 @@ import java.util.LinkedList;
import java.util.stream.Stream;
/**
- * The {@link IArgConsumer} is how {@link Command}s read the arguments passed to them. This class has many benefits:
+ * The {@link IArgConsumer} is how {@link ICommand}s read the arguments passed to them. This class has many benefits:
*
*
* - Mutability. The whole concept of the {@link IArgConsumer}} is to let you gradually consume arguments in any way
diff --git a/src/api/java/baritone/api/command/argument/ICommandArgument.java b/src/api/java/baritone/api/command/argument/ICommandArgument.java
index fb5a45770..42a3622ea 100644
--- a/src/api/java/baritone/api/command/argument/ICommandArgument.java
+++ b/src/api/java/baritone/api/command/argument/ICommandArgument.java
@@ -17,7 +17,6 @@
package baritone.api.command.argument;
-import baritone.api.command.helpers.arguments.IArgConsumer;
import baritone.api.command.argparser.IArgParser;
import baritone.api.command.exception.CommandInvalidTypeException;
import net.minecraft.util.Direction;
diff --git a/src/api/java/baritone/api/command/datatypes/BlockById.java b/src/api/java/baritone/api/command/datatypes/BlockById.java
index 150eb004f..113238df0 100644
--- a/src/api/java/baritone/api/command/datatypes/BlockById.java
+++ b/src/api/java/baritone/api/command/datatypes/BlockById.java
@@ -18,7 +18,7 @@
package baritone.api.command.datatypes;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.helpers.TabCompleteHelper;
import net.minecraft.block.Block;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.registry.Registry;
diff --git a/src/api/java/baritone/api/command/datatypes/EntityClassById.java b/src/api/java/baritone/api/command/datatypes/EntityClassById.java
index b0d9bc08f..763815f0f 100644
--- a/src/api/java/baritone/api/command/datatypes/EntityClassById.java
+++ b/src/api/java/baritone/api/command/datatypes/EntityClassById.java
@@ -18,7 +18,7 @@
package baritone.api.command.datatypes;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.helpers.TabCompleteHelper;
import net.minecraft.entity.EntityType;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.registry.Registry;
diff --git a/src/api/java/baritone/api/command/datatypes/ForDirection.java b/src/api/java/baritone/api/command/datatypes/ForDirection.java
index 9bb6f3683..cbfce3f20 100644
--- a/src/api/java/baritone/api/command/datatypes/ForDirection.java
+++ b/src/api/java/baritone/api/command/datatypes/ForDirection.java
@@ -17,7 +17,7 @@
package baritone.api.command.datatypes;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.helpers.TabCompleteHelper;
import baritone.api.command.exception.CommandException;
import net.minecraft.util.Direction;
diff --git a/src/api/java/baritone/api/command/datatypes/ForWaypoints.java b/src/api/java/baritone/api/command/datatypes/ForWaypoints.java
index db5068392..208786987 100644
--- a/src/api/java/baritone/api/command/datatypes/ForWaypoints.java
+++ b/src/api/java/baritone/api/command/datatypes/ForWaypoints.java
@@ -20,7 +20,7 @@ package baritone.api.command.datatypes;
import baritone.api.IBaritone;
import baritone.api.cache.IWaypoint;
import baritone.api.cache.IWaypointCollection;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.helpers.TabCompleteHelper;
import baritone.api.command.exception.CommandException;
import java.util.Comparator;
diff --git a/src/api/java/baritone/api/command/datatypes/IDatatype.java b/src/api/java/baritone/api/command/datatypes/IDatatype.java
index 385154bc4..60bf0c383 100644
--- a/src/api/java/baritone/api/command/datatypes/IDatatype.java
+++ b/src/api/java/baritone/api/command/datatypes/IDatatype.java
@@ -18,7 +18,7 @@
package baritone.api.command.datatypes;
import baritone.api.command.argparser.IArgParser;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.command.exception.CommandException;
import java.util.stream.Stream;
diff --git a/src/api/java/baritone/api/command/datatypes/IDatatypeContext.java b/src/api/java/baritone/api/command/datatypes/IDatatypeContext.java
index 4b8269c3c..78358a262 100644
--- a/src/api/java/baritone/api/command/datatypes/IDatatypeContext.java
+++ b/src/api/java/baritone/api/command/datatypes/IDatatypeContext.java
@@ -18,7 +18,7 @@
package baritone.api.command.datatypes;
import baritone.api.IBaritone;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
/**
* Provides an {@link IDatatype} with contextual information so
diff --git a/src/api/java/baritone/api/command/datatypes/NearbyPlayer.java b/src/api/java/baritone/api/command/datatypes/NearbyPlayer.java
index 4aff75c41..c4095ae40 100644
--- a/src/api/java/baritone/api/command/datatypes/NearbyPlayer.java
+++ b/src/api/java/baritone/api/command/datatypes/NearbyPlayer.java
@@ -19,7 +19,7 @@ package baritone.api.command.datatypes;
import baritone.api.IBaritone;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.helpers.TabCompleteHelper;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.text.ITextComponent;
diff --git a/src/api/java/baritone/api/command/datatypes/RelativeBlockPos.java b/src/api/java/baritone/api/command/datatypes/RelativeBlockPos.java
index 513ef41f3..082b649eb 100644
--- a/src/api/java/baritone/api/command/datatypes/RelativeBlockPos.java
+++ b/src/api/java/baritone/api/command/datatypes/RelativeBlockPos.java
@@ -17,7 +17,7 @@
package baritone.api.command.datatypes;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.utils.BetterBlockPos;
import baritone.api.command.exception.CommandException;
diff --git a/src/api/java/baritone/api/command/datatypes/RelativeCoordinate.java b/src/api/java/baritone/api/command/datatypes/RelativeCoordinate.java
index dc4d56304..7d77a96c7 100644
--- a/src/api/java/baritone/api/command/datatypes/RelativeCoordinate.java
+++ b/src/api/java/baritone/api/command/datatypes/RelativeCoordinate.java
@@ -17,7 +17,7 @@
package baritone.api.command.datatypes;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.command.exception.CommandException;
import java.util.regex.Matcher;
diff --git a/src/api/java/baritone/api/command/datatypes/RelativeFile.java b/src/api/java/baritone/api/command/datatypes/RelativeFile.java
index f886a1c65..2c7adf98f 100644
--- a/src/api/java/baritone/api/command/datatypes/RelativeFile.java
+++ b/src/api/java/baritone/api/command/datatypes/RelativeFile.java
@@ -17,7 +17,7 @@
package baritone.api.command.datatypes;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.command.exception.CommandException;
import java.io.File;
diff --git a/src/api/java/baritone/api/command/datatypes/RelativeGoal.java b/src/api/java/baritone/api/command/datatypes/RelativeGoal.java
index 73bc6e0d3..cda0ad665 100644
--- a/src/api/java/baritone/api/command/datatypes/RelativeGoal.java
+++ b/src/api/java/baritone/api/command/datatypes/RelativeGoal.java
@@ -17,7 +17,7 @@
package baritone.api.command.datatypes;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.pathing.goals.Goal;
import baritone.api.pathing.goals.GoalBlock;
import baritone.api.pathing.goals.GoalXZ;
diff --git a/src/api/java/baritone/api/command/datatypes/RelativeGoalBlock.java b/src/api/java/baritone/api/command/datatypes/RelativeGoalBlock.java
index 19621b952..ae05c6ade 100644
--- a/src/api/java/baritone/api/command/datatypes/RelativeGoalBlock.java
+++ b/src/api/java/baritone/api/command/datatypes/RelativeGoalBlock.java
@@ -17,7 +17,7 @@
package baritone.api.command.datatypes;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.pathing.goals.GoalBlock;
import baritone.api.utils.BetterBlockPos;
import baritone.api.command.exception.CommandException;
diff --git a/src/api/java/baritone/api/command/datatypes/RelativeGoalXZ.java b/src/api/java/baritone/api/command/datatypes/RelativeGoalXZ.java
index 83d52de86..cd3977b6f 100644
--- a/src/api/java/baritone/api/command/datatypes/RelativeGoalXZ.java
+++ b/src/api/java/baritone/api/command/datatypes/RelativeGoalXZ.java
@@ -17,7 +17,7 @@
package baritone.api.command.datatypes;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.pathing.goals.GoalXZ;
import baritone.api.utils.BetterBlockPos;
import baritone.api.command.exception.CommandException;
diff --git a/src/api/java/baritone/api/command/datatypes/RelativeGoalYLevel.java b/src/api/java/baritone/api/command/datatypes/RelativeGoalYLevel.java
index 4dd195a4d..58d093f1b 100644
--- a/src/api/java/baritone/api/command/datatypes/RelativeGoalYLevel.java
+++ b/src/api/java/baritone/api/command/datatypes/RelativeGoalYLevel.java
@@ -17,7 +17,7 @@
package baritone.api.command.datatypes;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.pathing.goals.GoalYLevel;
import baritone.api.utils.BetterBlockPos;
import baritone.api.command.exception.CommandException;
diff --git a/src/api/java/baritone/api/command/exception/CommandNotFoundException.java b/src/api/java/baritone/api/command/exception/CommandNotFoundException.java
index 123661c83..49ac69777 100644
--- a/src/api/java/baritone/api/command/exception/CommandNotFoundException.java
+++ b/src/api/java/baritone/api/command/exception/CommandNotFoundException.java
@@ -17,7 +17,7 @@
package baritone.api.command.exception;
-import baritone.api.command.Command;
+import baritone.api.command.ICommand;
import baritone.api.command.argument.ICommandArgument;
import java.util.List;
@@ -34,7 +34,7 @@ public class CommandNotFoundException extends CommandException {
}
@Override
- public void handle(Command command, List args) {
+ public void handle(ICommand command, List args) {
HELPER.logDirect(getMessage());
}
}
diff --git a/src/api/java/baritone/api/command/exception/CommandUnhandledException.java b/src/api/java/baritone/api/command/exception/CommandUnhandledException.java
index 394dd65e9..fe0b09fad 100644
--- a/src/api/java/baritone/api/command/exception/CommandUnhandledException.java
+++ b/src/api/java/baritone/api/command/exception/CommandUnhandledException.java
@@ -17,7 +17,7 @@
package baritone.api.command.exception;
-import baritone.api.command.Command;
+import baritone.api.command.ICommand;
import baritone.api.command.argument.ICommandArgument;
import net.minecraft.util.text.TextFormatting;
@@ -36,7 +36,7 @@ public class CommandUnhandledException extends RuntimeException implements IComm
}
@Override
- public void handle(Command command, List args) {
+ public void handle(ICommand command, List args) {
HELPER.logDirect("An unhandled exception occurred." +
"The error is in your game's log, please report this at https://github.com/cabaletta/baritone/issues",
TextFormatting.RED);
diff --git a/src/api/java/baritone/api/command/exception/ICommandException.java b/src/api/java/baritone/api/command/exception/ICommandException.java
index 3c96cb520..58d130496 100644
--- a/src/api/java/baritone/api/command/exception/ICommandException.java
+++ b/src/api/java/baritone/api/command/exception/ICommandException.java
@@ -17,7 +17,7 @@
package baritone.api.command.exception;
-import baritone.api.command.Command;
+import baritone.api.command.ICommand;
import baritone.api.command.argument.ICommandArgument;
import net.minecraft.util.text.TextFormatting;
@@ -27,7 +27,7 @@ import static baritone.api.utils.Helper.HELPER;
/**
* The base for a Baritone Command Exception, checked or unchecked. Provides a
- * {@link #handle(Command, List)} method that is used to provide useful output
+ * {@link #handle(ICommand, List)} method that is used to provide useful output
* to the user for diagnosing issues that may have occurred during execution.
*
* Anything implementing this interface should be assignable to {@link Exception}.
@@ -49,7 +49,7 @@ public interface ICommandException {
* @param command The command that threw it.
* @param args The arguments the command was called with.
*/
- default void handle(Command command, List args) {
+ default void handle(ICommand command, List args) {
HELPER.logDirect(this.getMessage(), TextFormatting.RED);
}
}
diff --git a/src/api/java/baritone/api/command/helpers/pagination/Paginator.java b/src/api/java/baritone/api/command/helpers/Paginator.java
similarity index 98%
rename from src/api/java/baritone/api/command/helpers/pagination/Paginator.java
rename to src/api/java/baritone/api/command/helpers/Paginator.java
index e8931f492..a97d38dfa 100644
--- a/src/api/java/baritone/api/command/helpers/pagination/Paginator.java
+++ b/src/api/java/baritone/api/command/helpers/Paginator.java
@@ -15,12 +15,12 @@
* along with Baritone. If not, see .
*/
-package baritone.api.command.helpers.pagination;
+package baritone.api.command.helpers;
import baritone.api.utils.Helper;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidTypeException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextFormatting;
diff --git a/src/api/java/baritone/api/command/helpers/tabcomplete/TabCompleteHelper.java b/src/api/java/baritone/api/command/helpers/TabCompleteHelper.java
similarity index 98%
rename from src/api/java/baritone/api/command/helpers/tabcomplete/TabCompleteHelper.java
rename to src/api/java/baritone/api/command/helpers/TabCompleteHelper.java
index 57192f0c2..6274c6836 100644
--- a/src/api/java/baritone/api/command/helpers/tabcomplete/TabCompleteHelper.java
+++ b/src/api/java/baritone/api/command/helpers/TabCompleteHelper.java
@@ -15,13 +15,13 @@
* along with Baritone. If not, see .
*/
-package baritone.api.command.helpers.tabcomplete;
+package baritone.api.command.helpers;
import baritone.api.BaritoneAPI;
import baritone.api.Settings;
import baritone.api.event.events.TabCompleteEvent;
import baritone.api.utils.SettingsUtil;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.command.manager.ICommandManager;
import net.minecraft.util.ResourceLocation;
diff --git a/src/api/java/baritone/api/command/manager/ICommandManager.java b/src/api/java/baritone/api/command/manager/ICommandManager.java
index f74a3c268..3f2d81f24 100644
--- a/src/api/java/baritone/api/command/manager/ICommandManager.java
+++ b/src/api/java/baritone/api/command/manager/ICommandManager.java
@@ -18,7 +18,7 @@
package baritone.api.command.manager;
import baritone.api.IBaritone;
-import baritone.api.command.Command;
+import baritone.api.command.ICommand;
import baritone.api.command.argument.ICommandArgument;
import baritone.api.command.registry.Registry;
import net.minecraft.util.Tuple;
@@ -34,13 +34,13 @@ public interface ICommandManager {
IBaritone getBaritone();
- Registry getRegistry();
+ Registry getRegistry();
/**
* @param name The command name to search for.
* @return The command, if found.
*/
- Command getCommand(String name);
+ ICommand getCommand(String name);
boolean execute(String string);
diff --git a/src/api/java/baritone/api/event/events/TabCompleteEvent.java b/src/api/java/baritone/api/event/events/TabCompleteEvent.java
index fea1da292..2a0ef87ba 100644
--- a/src/api/java/baritone/api/event/events/TabCompleteEvent.java
+++ b/src/api/java/baritone/api/event/events/TabCompleteEvent.java
@@ -23,31 +23,13 @@ import baritone.api.event.events.type.Overrideable;
/**
* @author LoganDark
*/
-public abstract class TabCompleteEvent extends Cancellable {
+public final class TabCompleteEvent extends Cancellable {
- public final Overrideable prefix;
- public final Overrideable completions;
+ public final String prefix;
+ public String[] completions;
- TabCompleteEvent(String prefix, String[] completions) {
- this.prefix = new Overrideable<>(prefix);
- this.completions = new Overrideable<>(completions);
- }
-
- public boolean wasModified() {
- return prefix.wasModified() || completions.wasModified();
- }
-
- public static final class Pre extends TabCompleteEvent {
-
- public Pre(String prefix) {
- super(prefix, null);
- }
- }
-
- public static final class Post extends TabCompleteEvent {
-
- public Post(String prefix, String[] completions) {
- super(prefix, completions);
- }
+ public TabCompleteEvent(String prefix) {
+ this.prefix = prefix;
+ this.completions = null;
}
}
diff --git a/src/api/java/baritone/api/event/listener/AbstractGameEventListener.java b/src/api/java/baritone/api/event/listener/AbstractGameEventListener.java
index e7d4dc292..9eac8de46 100644
--- a/src/api/java/baritone/api/event/listener/AbstractGameEventListener.java
+++ b/src/api/java/baritone/api/event/listener/AbstractGameEventListener.java
@@ -40,10 +40,7 @@ public interface AbstractGameEventListener extends IGameEventListener {
default void onSendChatMessage(ChatEvent event) {}
@Override
- default void onPreTabComplete(TabCompleteEvent.Pre event) {}
-
- @Override
- default void onPostTabComplete(TabCompleteEvent.Post event) {}
+ default void onPreTabComplete(TabCompleteEvent event) {}
@Override
default void onChunkEvent(ChunkEvent event) {}
diff --git a/src/api/java/baritone/api/event/listener/IGameEventListener.java b/src/api/java/baritone/api/event/listener/IGameEventListener.java
index 37427323c..21474fb54 100644
--- a/src/api/java/baritone/api/event/listener/IGameEventListener.java
+++ b/src/api/java/baritone/api/event/listener/IGameEventListener.java
@@ -60,15 +60,7 @@ public interface IGameEventListener {
*
* @param event The event
*/
- void onPreTabComplete(TabCompleteEvent.Pre event);
-
- /**
- * Runs whenever the client player tries to tab complete in chat once completions have been recieved from the
- * server. This will only be called if the {@link TabCompleteEvent#cancel()} method was not called.
- *
- * @param event The event
- */
- void onPostTabComplete(TabCompleteEvent.Post event);
+ void onPreTabComplete(TabCompleteEvent event);
/**
* Runs before and after whenever a chunk is either loaded, unloaded, or populated.
diff --git a/src/api/java/baritone/api/process/IBuilderProcess.java b/src/api/java/baritone/api/process/IBuilderProcess.java
index fdf2fbfeb..7b98c56b5 100644
--- a/src/api/java/baritone/api/process/IBuilderProcess.java
+++ b/src/api/java/baritone/api/process/IBuilderProcess.java
@@ -17,7 +17,7 @@
package baritone.api.process;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import net.minecraft.block.BlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.util.math.BlockPos;
diff --git a/src/api/java/baritone/api/schematic/AbstractSchematic.java b/src/api/java/baritone/api/schematic/AbstractSchematic.java
index 7a24e803f..3cd14747d 100644
--- a/src/api/java/baritone/api/schematic/AbstractSchematic.java
+++ b/src/api/java/baritone/api/schematic/AbstractSchematic.java
@@ -17,8 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
-
public abstract class AbstractSchematic implements ISchematic {
protected int x;
diff --git a/src/api/java/baritone/api/schematic/CompositeSchematic.java b/src/api/java/baritone/api/schematic/CompositeSchematic.java
index 971ebd48c..22df6a4ee 100644
--- a/src/api/java/baritone/api/schematic/CompositeSchematic.java
+++ b/src/api/java/baritone/api/schematic/CompositeSchematic.java
@@ -17,7 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
import net.minecraft.block.BlockState;
import java.util.ArrayList;
diff --git a/src/api/java/baritone/api/schematic/CompositeSchematicEntry.java b/src/api/java/baritone/api/schematic/CompositeSchematicEntry.java
index a26f356bf..10260542f 100644
--- a/src/api/java/baritone/api/schematic/CompositeSchematicEntry.java
+++ b/src/api/java/baritone/api/schematic/CompositeSchematicEntry.java
@@ -17,8 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
-
public class CompositeSchematicEntry {
public final ISchematic schematic;
diff --git a/src/api/java/baritone/api/utils/ISchematic.java b/src/api/java/baritone/api/schematic/ISchematic.java
similarity index 99%
rename from src/api/java/baritone/api/utils/ISchematic.java
rename to src/api/java/baritone/api/schematic/ISchematic.java
index 3a6fb25f8..88ce4cf7d 100644
--- a/src/api/java/baritone/api/utils/ISchematic.java
+++ b/src/api/java/baritone/api/schematic/ISchematic.java
@@ -15,7 +15,7 @@
* along with Baritone. If not, see .
*/
-package baritone.api.utils;
+package baritone.api.schematic;
import net.minecraft.block.BlockState;
import net.minecraft.util.Direction;
diff --git a/src/api/java/baritone/api/schematic/MaskSchematic.java b/src/api/java/baritone/api/schematic/MaskSchematic.java
index 9bf54cba6..95629b7c9 100644
--- a/src/api/java/baritone/api/schematic/MaskSchematic.java
+++ b/src/api/java/baritone/api/schematic/MaskSchematic.java
@@ -17,7 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
import net.minecraft.block.BlockState;
import java.util.List;
diff --git a/src/api/java/baritone/api/schematic/ReplaceSchematic.java b/src/api/java/baritone/api/schematic/ReplaceSchematic.java
index c4d225839..3e102cbba 100644
--- a/src/api/java/baritone/api/schematic/ReplaceSchematic.java
+++ b/src/api/java/baritone/api/schematic/ReplaceSchematic.java
@@ -18,7 +18,6 @@
package baritone.api.schematic;
import baritone.api.utils.BlockOptionalMetaLookup;
-import baritone.api.utils.ISchematic;
import net.minecraft.block.BlockState;
public class ReplaceSchematic extends MaskSchematic {
diff --git a/src/api/java/baritone/api/schematic/ShellSchematic.java b/src/api/java/baritone/api/schematic/ShellSchematic.java
index fa923335e..e9808ad73 100644
--- a/src/api/java/baritone/api/schematic/ShellSchematic.java
+++ b/src/api/java/baritone/api/schematic/ShellSchematic.java
@@ -17,7 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
import net.minecraft.block.BlockState;
public class ShellSchematic extends MaskSchematic {
diff --git a/src/api/java/baritone/api/schematic/WallsSchematic.java b/src/api/java/baritone/api/schematic/WallsSchematic.java
index 87d8bb8a3..c48a08552 100644
--- a/src/api/java/baritone/api/schematic/WallsSchematic.java
+++ b/src/api/java/baritone/api/schematic/WallsSchematic.java
@@ -17,7 +17,6 @@
package baritone.api.schematic;
-import baritone.api.utils.ISchematic;
import net.minecraft.block.BlockState;
public class WallsSchematic extends MaskSchematic {
diff --git a/src/api/java/baritone/api/utils/BlockOptionalMeta.java b/src/api/java/baritone/api/utils/BlockOptionalMeta.java
index 49d597234..1af94e354 100644
--- a/src/api/java/baritone/api/utils/BlockOptionalMeta.java
+++ b/src/api/java/baritone/api/utils/BlockOptionalMeta.java
@@ -17,7 +17,7 @@
package baritone.api.utils;
-import baritone.api.accessor.IItemStack;
+import baritone.api.utils.accessor.IItemStack;
import com.google.common.collect.ImmutableSet;
import io.netty.util.concurrent.ThreadPerTaskExecutor;
import net.minecraft.block.*;
diff --git a/src/api/java/baritone/api/utils/Helper.java b/src/api/java/baritone/api/utils/Helper.java
index 3357eb8fe..17bafdd65 100755
--- a/src/api/java/baritone/api/utils/Helper.java
+++ b/src/api/java/baritone/api/utils/Helper.java
@@ -27,6 +27,9 @@ import java.util.Arrays;
import java.util.stream.Stream;
/**
+ * An ease-of-access interface to provide the {@link Minecraft} game instance,
+ * chat and console logging mechanisms, and the Baritone chat prefix.
+ *
* @author Brady
* @since 8/1/2018
*/
diff --git a/src/api/java/baritone/api/accessor/IItemStack.java b/src/api/java/baritone/api/utils/accessor/IItemStack.java
similarity index 95%
rename from src/api/java/baritone/api/accessor/IItemStack.java
rename to src/api/java/baritone/api/utils/accessor/IItemStack.java
index 480c713fa..229027794 100644
--- a/src/api/java/baritone/api/accessor/IItemStack.java
+++ b/src/api/java/baritone/api/utils/accessor/IItemStack.java
@@ -15,7 +15,7 @@
* along with Baritone. If not, see .
*/
-package baritone.api.accessor;
+package baritone.api.utils.accessor;
public interface IItemStack {
diff --git a/src/launch/java/baritone/launch/mixins/MixinBitArray.java b/src/launch/java/baritone/launch/mixins/MixinBitArray.java
index 9383c9aa5..bece3e3bf 100644
--- a/src/launch/java/baritone/launch/mixins/MixinBitArray.java
+++ b/src/launch/java/baritone/launch/mixins/MixinBitArray.java
@@ -43,30 +43,6 @@ public abstract class MixinBitArray implements IBitArray {
@Final
private int arraySize;
- /**
- * why did mojang divide by 64 instead of shifting right by 6 (2^6=64)?
- * why did mojang modulo by 64 instead of ANDing with 63?
- * also removed validation check
- *
- * @author LoganDark
- */
- @Override
- @Unique
- public int getAtFast(int index) {
- final int b = bitsPerEntry;
- final long mev = maxEntryValue;
- final int i = index * b;
- final int j = i >> 6;
- final int l = i & 63;
- final int k = ((index + 1) * b - 1) >> 6;
-
- if (j == k) {
- return (int) (this.longArray[j] >>> l & mev);
- } else {
- return (int) ((this.longArray[j] >>> l | longArray[k] << (64 - l)) & mev);
- }
- }
-
@Override
@Unique
public int[] toArray() {
diff --git a/src/launch/java/baritone/launch/mixins/MixinBlockStateContainer.java b/src/launch/java/baritone/launch/mixins/MixinBlockStateContainer.java
index a07e9cdff..d6e223d99 100644
--- a/src/launch/java/baritone/launch/mixins/MixinBlockStateContainer.java
+++ b/src/launch/java/baritone/launch/mixins/MixinBlockStateContainer.java
@@ -25,8 +25,6 @@ import net.minecraft.world.chunk.BlockStateContainer;
import net.minecraft.world.chunk.IBlockStatePalette;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.Unique;
-import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(BlockStateContainer.class)
public abstract class MixinBlockStateContainer implements IBlockStateContainer {
@@ -37,20 +35,6 @@ public abstract class MixinBlockStateContainer implements IBlockStateContainer {
@Shadow
protected IBlockStatePalette palette;
- @Override
- @Accessor
- public abstract BitArray getStorage();
-
- @Override
- @Accessor
- public abstract IBlockStatePalette getPalette();
-
- @Override
- @Unique
- public BlockState getFast(int index) {
- return palette.get(((IBitArray) storage).getAtFast(index));
- }
-
@Override
public BlockState getAtPalette(int index) {
return palette.get(index);
diff --git a/src/launch/java/baritone/launch/mixins/MixinChatScreen.java b/src/launch/java/baritone/launch/mixins/MixinChatScreen.java
new file mode 100644
index 000000000..fe52723df
--- /dev/null
+++ b/src/launch/java/baritone/launch/mixins/MixinChatScreen.java
@@ -0,0 +1,99 @@
+/*
+ * 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 .
+ */
+
+package baritone.launch.mixins;
+
+import baritone.api.BaritoneAPI;
+import baritone.api.event.events.TabCompleteEvent;
+import com.mojang.brigadier.context.StringRange;
+import com.mojang.brigadier.suggestion.Suggestion;
+import com.mojang.brigadier.suggestion.Suggestions;
+import net.minecraft.client.gui.screen.ChatScreen;
+import net.minecraft.client.gui.widget.TextFieldWidget;
+import org.spongepowered.asm.mixin.Final;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+import java.util.List;
+import java.util.concurrent.CompletableFuture;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @author Brady
+ * @since 10/9/2019
+ */
+@Mixin(ChatScreen.class)
+public class MixinChatScreen {
+
+ @Shadow
+ protected TextFieldWidget inputField;
+
+ @Shadow
+ @Final
+ protected List commandUsage;
+
+ @Shadow
+ private CompletableFuture pendingSuggestions;
+
+ @Inject(
+ method = "updateSuggestion",
+ at = @At("HEAD"),
+ cancellable = true
+ )
+ private void preUpdateSuggestion(CallbackInfo ci) {
+ // Anything that is present in the input text before the cursor position
+ String prefix = this.inputField.getText().substring(0, Math.min(this.inputField.getText().length(), this.inputField.getCursorPosition()));
+
+ TabCompleteEvent event = new TabCompleteEvent(prefix);
+ BaritoneAPI.getProvider().getPrimaryBaritone().getGameEventHandler().onPreTabComplete(event);
+
+ if (event.isCancelled()) {
+ ci.cancel();
+ return;
+ }
+
+ if (event.completions != null) {
+ ci.cancel();
+
+ // TODO: Support populating the command usage
+ this.commandUsage.clear();
+
+ if (event.completions.length == 0) {
+ this.pendingSuggestions = Suggestions.empty();
+ } else {
+ int offset = this.inputField.getText().endsWith(" ")
+ ? this.inputField.getCursorPosition()
+ : this.inputField.getText().lastIndexOf(" ") + 1; // If there is no space this is still 0 haha yes
+
+ List suggestionList = Stream.of(event.completions)
+ .map(s -> new Suggestion(StringRange.between(offset, offset + s.length()), s))
+ .collect(Collectors.toList());
+
+ Suggestions suggestions = new Suggestions(
+ StringRange.between(offset, offset + suggestionList.stream().mapToInt(s -> s.getText().length()).max().orElse(0)),
+ suggestionList);
+
+ this.pendingSuggestions = new CompletableFuture<>();
+ this.pendingSuggestions.complete(suggestions);
+ }
+ }
+ }
+}
diff --git a/src/launch/java/baritone/launch/mixins/MixinItemStack.java b/src/launch/java/baritone/launch/mixins/MixinItemStack.java
index 12cda8b3f..dd6af902a 100644
--- a/src/launch/java/baritone/launch/mixins/MixinItemStack.java
+++ b/src/launch/java/baritone/launch/mixins/MixinItemStack.java
@@ -17,7 +17,7 @@
package baritone.launch.mixins;
-import baritone.api.accessor.IItemStack;
+import baritone.api.utils.accessor.IItemStack;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import org.spongepowered.asm.mixin.Final;
diff --git a/src/launch/java/baritone/launch/mixins/MixinScreen.java b/src/launch/java/baritone/launch/mixins/MixinScreen.java
index e2bc86ae5..ee7defec0 100644
--- a/src/launch/java/baritone/launch/mixins/MixinScreen.java
+++ b/src/launch/java/baritone/launch/mixins/MixinScreen.java
@@ -17,7 +17,7 @@
package baritone.launch.mixins;
-import baritone.api.accessor.IGuiScreen;
+import baritone.utils.accessor.IGuiScreen;
import net.minecraft.client.gui.screen.Screen;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
diff --git a/src/launch/resources/mixins.baritone.json b/src/launch/resources/mixins.baritone.json
index 2f3c348a2..9d0d1b600 100644
--- a/src/launch/resources/mixins.baritone.json
+++ b/src/launch/resources/mixins.baritone.json
@@ -10,6 +10,7 @@
"client": [
"MixinBitArray",
"MixinBlockStateContainer",
+ "MixinChatScreen",
"MixinChunkArray",
"MixinClientChunkProvider",
"MixinClientPlayerEntity",
diff --git a/src/main/java/baritone/behavior/InventoryBehavior.java b/src/main/java/baritone/behavior/InventoryBehavior.java
index 1a4ae8fa3..97172d309 100644
--- a/src/main/java/baritone/behavior/InventoryBehavior.java
+++ b/src/main/java/baritone/behavior/InventoryBehavior.java
@@ -154,7 +154,7 @@ public final class InventoryBehavior extends Behavior {
public boolean throwaway(boolean select, Predicate super ItemStack> desired) {
ClientPlayerEntity p = ctx.player();
NonNullList inv = p.inventory.mainInventory;
- for (byte i = 0; i < 9; i++) {
+ for (int i = 0; i < 9; i++) {
ItemStack item = inv.get(i);
// this usage of settings() is okay because it's only called once during pathing
// (while creating the CalculationContext at the very beginning)
@@ -174,7 +174,7 @@ public final class InventoryBehavior extends Behavior {
// we've already checked above ^ and the main hand can't possible have an acceptablethrowawayitem
// so we need to select in the main hand something that doesn't right click
// so not a shovel, not a hoe, not a block, etc
- for (byte i = 0; i < 9; i++) {
+ for (int i = 0; i < 9; i++) {
ItemStack item = inv.get(i);
if (item.isEmpty() || item.getItem() instanceof PickaxeItem) {
if (select) {
diff --git a/src/main/java/baritone/command/BaritoneChatControl.java b/src/main/java/baritone/command/BaritoneChatControl.java
index 9ad2bd6e2..b48502bc1 100644
--- a/src/main/java/baritone/command/BaritoneChatControl.java
+++ b/src/main/java/baritone/command/BaritoneChatControl.java
@@ -20,7 +20,7 @@ package baritone.command;
import baritone.api.BaritoneAPI;
import baritone.api.IBaritone;
import baritone.api.Settings;
-import baritone.api.accessor.IGuiScreen;
+import baritone.utils.accessor.IGuiScreen;
import baritone.api.event.events.ChatEvent;
import baritone.api.event.events.TabCompleteEvent;
import baritone.api.event.listener.AbstractGameEventListener;
@@ -29,8 +29,8 @@ import baritone.api.utils.SettingsUtil;
import baritone.api.command.argument.ICommandArgument;
import baritone.api.command.exception.CommandNotEnoughArgumentsException;
import baritone.api.command.exception.CommandNotFoundException;
-import baritone.command.helpers.arguments.ArgConsumer;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.command.argument.ArgConsumer;
+import baritone.api.command.helpers.TabCompleteHelper;
import baritone.api.command.manager.ICommandManager;
import baritone.command.argument.CommandArguments;
import baritone.command.manager.CommandManager;
@@ -146,11 +146,11 @@ public class BaritoneChatControl implements Helper, AbstractGameEventListener {
}
@Override
- public void onPreTabComplete(TabCompleteEvent.Pre event) {
+ public void onPreTabComplete(TabCompleteEvent event) {
if (!settings.prefixControl.value) {
return;
}
- String prefix = event.prefix.get();
+ String prefix = event.prefix;
String commandPrefix = settings.prefix.value;
if (!prefix.startsWith(commandPrefix)) {
return;
@@ -161,7 +161,7 @@ public class BaritoneChatControl implements Helper, AbstractGameEventListener {
if (args.size() == 1) {
stream = stream.map(x -> commandPrefix + x);
}
- event.completions.set(stream.toArray(String[]::new));
+ event.completions = stream.toArray(String[]::new);
}
public Stream tabComplete(String msg) {
diff --git a/src/main/java/baritone/command/helpers/arguments/ArgConsumer.java b/src/main/java/baritone/command/argument/ArgConsumer.java
similarity index 98%
rename from src/main/java/baritone/command/helpers/arguments/ArgConsumer.java
rename to src/main/java/baritone/command/argument/ArgConsumer.java
index c6a4fb0c7..651ca50bc 100644
--- a/src/main/java/baritone/command/helpers/arguments/ArgConsumer.java
+++ b/src/main/java/baritone/command/argument/ArgConsumer.java
@@ -15,7 +15,7 @@
* along with Baritone. If not, see .
*/
-package baritone.command.helpers.arguments;
+package baritone.command.argument;
import baritone.api.IBaritone;
import baritone.api.command.argument.ICommandArgument;
@@ -27,9 +27,8 @@ import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidTypeException;
import baritone.api.command.exception.CommandNotEnoughArgumentsException;
import baritone.api.command.exception.CommandTooManyArgumentsException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.command.manager.ICommandManager;
-import baritone.command.argument.CommandArguments;
import java.util.ArrayList;
import java.util.Deque;
diff --git a/src/main/java/baritone/command/defaults/AxisCommand.java b/src/main/java/baritone/command/defaults/AxisCommand.java
index 09d00ae79..0a92ac6e7 100644
--- a/src/main/java/baritone/command/defaults/AxisCommand.java
+++ b/src/main/java/baritone/command/defaults/AxisCommand.java
@@ -22,7 +22,7 @@ import baritone.api.pathing.goals.Goal;
import baritone.api.pathing.goals.GoalAxis;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/BlacklistCommand.java b/src/main/java/baritone/command/defaults/BlacklistCommand.java
index 5069f4348..a383e0a79 100644
--- a/src/main/java/baritone/command/defaults/BlacklistCommand.java
+++ b/src/main/java/baritone/command/defaults/BlacklistCommand.java
@@ -22,7 +22,7 @@ import baritone.api.process.IGetToBlockProcess;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/BuildCommand.java b/src/main/java/baritone/command/defaults/BuildCommand.java
index 01f6fd82a..6ff90e1db 100644
--- a/src/main/java/baritone/command/defaults/BuildCommand.java
+++ b/src/main/java/baritone/command/defaults/BuildCommand.java
@@ -24,7 +24,7 @@ import baritone.api.command.datatypes.RelativeBlockPos;
import baritone.api.command.datatypes.RelativeFile;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import net.minecraft.client.Minecraft;
import java.io.File;
diff --git a/src/main/java/baritone/command/defaults/CancelCommand.java b/src/main/java/baritone/command/defaults/CancelCommand.java
index aff839ae8..3b4c63670 100644
--- a/src/main/java/baritone/command/defaults/CancelCommand.java
+++ b/src/main/java/baritone/command/defaults/CancelCommand.java
@@ -20,7 +20,7 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/ChestsCommand.java b/src/main/java/baritone/command/defaults/ChestsCommand.java
index c3755b5a2..fd084ad17 100644
--- a/src/main/java/baritone/command/defaults/ChestsCommand.java
+++ b/src/main/java/baritone/command/defaults/ChestsCommand.java
@@ -23,7 +23,7 @@ import baritone.api.utils.BetterBlockPos;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.ITextComponent;
diff --git a/src/main/java/baritone/command/defaults/ClickCommand.java b/src/main/java/baritone/command/defaults/ClickCommand.java
index 95b04f52c..b882c5879 100644
--- a/src/main/java/baritone/command/defaults/ClickCommand.java
+++ b/src/main/java/baritone/command/defaults/ClickCommand.java
@@ -20,7 +20,7 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/ComeCommand.java b/src/main/java/baritone/command/defaults/ComeCommand.java
index 9b336a252..b8033c3fb 100644
--- a/src/main/java/baritone/command/defaults/ComeCommand.java
+++ b/src/main/java/baritone/command/defaults/ComeCommand.java
@@ -22,7 +22,7 @@ import baritone.api.pathing.goals.GoalBlock;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.BlockPos;
diff --git a/src/main/java/baritone/command/defaults/CommandAlias.java b/src/main/java/baritone/command/defaults/CommandAlias.java
index 08b1ca05d..71c322fe3 100644
--- a/src/main/java/baritone/command/defaults/CommandAlias.java
+++ b/src/main/java/baritone/command/defaults/CommandAlias.java
@@ -19,7 +19,7 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Collections;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/DefaultCommands.java b/src/main/java/baritone/command/defaults/DefaultCommands.java
index dd1a3004e..c48644e3b 100644
--- a/src/main/java/baritone/command/defaults/DefaultCommands.java
+++ b/src/main/java/baritone/command/defaults/DefaultCommands.java
@@ -18,7 +18,7 @@
package baritone.command.defaults;
import baritone.api.IBaritone;
-import baritone.api.command.Command;
+import baritone.api.command.ICommand;
import java.util.*;
@@ -26,9 +26,9 @@ public final class DefaultCommands {
private DefaultCommands() {}
- public static List createAll(IBaritone baritone) {
+ public static List createAll(IBaritone baritone) {
Objects.requireNonNull(baritone);
- List commands = new ArrayList<>(Arrays.asList(
+ List commands = new ArrayList<>(Arrays.asList(
new HelpCommand(baritone),
new SetCommand(baritone),
new CommandAlias(baritone, Arrays.asList("modified", "mod", "baritone", "modifiedsettings"), "List modified settings", "set modified"),
diff --git a/src/main/java/baritone/command/defaults/ExploreCommand.java b/src/main/java/baritone/command/defaults/ExploreCommand.java
index a2054cc78..9d27bbbe9 100644
--- a/src/main/java/baritone/command/defaults/ExploreCommand.java
+++ b/src/main/java/baritone/command/defaults/ExploreCommand.java
@@ -22,7 +22,7 @@ import baritone.api.pathing.goals.GoalXZ;
import baritone.api.command.Command;
import baritone.api.command.datatypes.RelativeGoalXZ;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/ExploreFilterCommand.java b/src/main/java/baritone/command/defaults/ExploreFilterCommand.java
index a1c5074a3..b4ee393a9 100644
--- a/src/main/java/baritone/command/defaults/ExploreFilterCommand.java
+++ b/src/main/java/baritone/command/defaults/ExploreFilterCommand.java
@@ -23,7 +23,7 @@ import baritone.api.command.datatypes.RelativeFile;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
import baritone.api.command.exception.CommandInvalidTypeException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import com.google.gson.JsonSyntaxException;
import java.io.File;
diff --git a/src/main/java/baritone/command/defaults/FarmCommand.java b/src/main/java/baritone/command/defaults/FarmCommand.java
index 9151852c1..786d01249 100644
--- a/src/main/java/baritone/command/defaults/FarmCommand.java
+++ b/src/main/java/baritone/command/defaults/FarmCommand.java
@@ -20,7 +20,7 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/FindCommand.java b/src/main/java/baritone/command/defaults/FindCommand.java
index 04cf541ba..28c461912 100644
--- a/src/main/java/baritone/command/defaults/FindCommand.java
+++ b/src/main/java/baritone/command/defaults/FindCommand.java
@@ -22,7 +22,7 @@ import baritone.api.utils.BetterBlockPos;
import baritone.api.command.Command;
import baritone.api.command.datatypes.BlockById;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import net.minecraft.block.Block;
import net.minecraft.util.registry.Registry;
diff --git a/src/main/java/baritone/command/defaults/FollowCommand.java b/src/main/java/baritone/command/defaults/FollowCommand.java
index d76cf44ba..f74a4a064 100644
--- a/src/main/java/baritone/command/defaults/FollowCommand.java
+++ b/src/main/java/baritone/command/defaults/FollowCommand.java
@@ -23,8 +23,8 @@ import baritone.api.command.datatypes.EntityClassById;
import baritone.api.command.datatypes.IDatatypeFor;
import baritone.api.command.datatypes.NearbyPlayer;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.argument.IArgConsumer;
+import baritone.api.command.helpers.TabCompleteHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.LivingEntity;
diff --git a/src/main/java/baritone/command/defaults/ForceCancelCommand.java b/src/main/java/baritone/command/defaults/ForceCancelCommand.java
index f92134822..8344f4f9f 100644
--- a/src/main/java/baritone/command/defaults/ForceCancelCommand.java
+++ b/src/main/java/baritone/command/defaults/ForceCancelCommand.java
@@ -21,7 +21,7 @@ import baritone.api.IBaritone;
import baritone.api.behavior.IPathingBehavior;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/GcCommand.java b/src/main/java/baritone/command/defaults/GcCommand.java
index c64703e91..143da5792 100644
--- a/src/main/java/baritone/command/defaults/GcCommand.java
+++ b/src/main/java/baritone/command/defaults/GcCommand.java
@@ -20,7 +20,7 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/GoalCommand.java b/src/main/java/baritone/command/defaults/GoalCommand.java
index 46b506959..a75af077b 100644
--- a/src/main/java/baritone/command/defaults/GoalCommand.java
+++ b/src/main/java/baritone/command/defaults/GoalCommand.java
@@ -25,8 +25,8 @@ import baritone.api.command.Command;
import baritone.api.command.datatypes.RelativeCoordinate;
import baritone.api.command.datatypes.RelativeGoal;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.argument.IArgConsumer;
+import baritone.api.command.helpers.TabCompleteHelper;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/GotoCommand.java b/src/main/java/baritone/command/defaults/GotoCommand.java
index 9659fff87..427e67b2a 100644
--- a/src/main/java/baritone/command/defaults/GotoCommand.java
+++ b/src/main/java/baritone/command/defaults/GotoCommand.java
@@ -24,7 +24,7 @@ import baritone.api.command.datatypes.ForBlockOptionalMeta;
import baritone.api.command.datatypes.RelativeCoordinate;
import baritone.api.command.datatypes.RelativeGoal;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.pathing.goals.Goal;
import baritone.api.utils.BetterBlockPos;
import baritone.api.utils.BlockOptionalMeta;
diff --git a/src/main/java/baritone/command/defaults/HelpCommand.java b/src/main/java/baritone/command/defaults/HelpCommand.java
index 3c5fc1360..f92039860 100644
--- a/src/main/java/baritone/command/defaults/HelpCommand.java
+++ b/src/main/java/baritone/command/defaults/HelpCommand.java
@@ -19,11 +19,12 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
+import baritone.api.command.ICommand;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandNotFoundException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
-import baritone.api.command.helpers.pagination.Paginator;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.argument.IArgConsumer;
+import baritone.api.command.helpers.Paginator;
+import baritone.api.command.helpers.TabCompleteHelper;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextFormatting;
@@ -79,7 +80,7 @@ public class HelpCommand extends Command {
);
} else {
String commandName = args.getString().toLowerCase();
- Command command = this.baritone.getCommandManager().getCommand(commandName);
+ ICommand command = this.baritone.getCommandManager().getCommand(commandName);
if (command == null) {
throw new CommandNotFoundException(commandName);
}
diff --git a/src/main/java/baritone/command/defaults/InvertCommand.java b/src/main/java/baritone/command/defaults/InvertCommand.java
index ba79a4a94..9e3e859eb 100644
--- a/src/main/java/baritone/command/defaults/InvertCommand.java
+++ b/src/main/java/baritone/command/defaults/InvertCommand.java
@@ -24,7 +24,7 @@ import baritone.api.process.ICustomGoalProcess;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/MineCommand.java b/src/main/java/baritone/command/defaults/MineCommand.java
index d2846e0ae..2baf982af 100644
--- a/src/main/java/baritone/command/defaults/MineCommand.java
+++ b/src/main/java/baritone/command/defaults/MineCommand.java
@@ -23,7 +23,7 @@ import baritone.api.command.Command;
import baritone.api.command.datatypes.BlockById;
import baritone.api.command.datatypes.ForBlockOptionalMeta;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.cache.WorldScanner;
import java.util.ArrayList;
diff --git a/src/main/java/baritone/command/defaults/PathCommand.java b/src/main/java/baritone/command/defaults/PathCommand.java
index fff61a70a..0add64080 100644
--- a/src/main/java/baritone/command/defaults/PathCommand.java
+++ b/src/main/java/baritone/command/defaults/PathCommand.java
@@ -20,7 +20,7 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.api.process.ICustomGoalProcess;
import baritone.cache.WorldScanner;
diff --git a/src/main/java/baritone/command/defaults/PauseResumeCommands.java b/src/main/java/baritone/command/defaults/PauseResumeCommands.java
index 11e678820..54718e9b7 100644
--- a/src/main/java/baritone/command/defaults/PauseResumeCommands.java
+++ b/src/main/java/baritone/command/defaults/PauseResumeCommands.java
@@ -24,7 +24,7 @@ import baritone.api.process.PathingCommandType;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/ProcCommand.java b/src/main/java/baritone/command/defaults/ProcCommand.java
index 794a44802..cf9371bc8 100644
--- a/src/main/java/baritone/command/defaults/ProcCommand.java
+++ b/src/main/java/baritone/command/defaults/ProcCommand.java
@@ -24,7 +24,7 @@ import baritone.api.process.PathingCommand;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/ReloadAllCommand.java b/src/main/java/baritone/command/defaults/ReloadAllCommand.java
index 9f4ddd83d..fa8d51175 100644
--- a/src/main/java/baritone/command/defaults/ReloadAllCommand.java
+++ b/src/main/java/baritone/command/defaults/ReloadAllCommand.java
@@ -20,7 +20,7 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/RenderCommand.java b/src/main/java/baritone/command/defaults/RenderCommand.java
index d872228a0..64c9e4fb3 100644
--- a/src/main/java/baritone/command/defaults/RenderCommand.java
+++ b/src/main/java/baritone/command/defaults/RenderCommand.java
@@ -21,7 +21,7 @@ import baritone.api.IBaritone;
import baritone.api.utils.BetterBlockPos;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/RepackCommand.java b/src/main/java/baritone/command/defaults/RepackCommand.java
index d42bd95ae..6366fbc92 100644
--- a/src/main/java/baritone/command/defaults/RepackCommand.java
+++ b/src/main/java/baritone/command/defaults/RepackCommand.java
@@ -20,7 +20,7 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import baritone.cache.WorldScanner;
import java.util.Arrays;
diff --git a/src/main/java/baritone/command/defaults/SaveAllCommand.java b/src/main/java/baritone/command/defaults/SaveAllCommand.java
index 7df2e320c..5f064a72f 100644
--- a/src/main/java/baritone/command/defaults/SaveAllCommand.java
+++ b/src/main/java/baritone/command/defaults/SaveAllCommand.java
@@ -20,7 +20,7 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/SchematicaCommand.java b/src/main/java/baritone/command/defaults/SchematicaCommand.java
index 5f659d1fd..8279b1dc5 100644
--- a/src/main/java/baritone/command/defaults/SchematicaCommand.java
+++ b/src/main/java/baritone/command/defaults/SchematicaCommand.java
@@ -20,7 +20,7 @@ package baritone.command.defaults;
import baritone.api.IBaritone;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/SelCommand.java b/src/main/java/baritone/command/defaults/SelCommand.java
index 9c6f9f407..773b6812d 100644
--- a/src/main/java/baritone/command/defaults/SelCommand.java
+++ b/src/main/java/baritone/command/defaults/SelCommand.java
@@ -27,7 +27,7 @@ import baritone.api.selection.ISelectionManager;
import baritone.api.utils.BetterBlockPos;
import baritone.api.utils.BlockOptionalMeta;
import baritone.api.utils.BlockOptionalMetaLookup;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import baritone.api.command.Command;
import baritone.api.command.datatypes.ForBlockOptionalMeta;
import baritone.api.command.datatypes.ForDirection;
@@ -35,8 +35,8 @@ import baritone.api.command.datatypes.RelativeBlockPos;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
import baritone.api.command.exception.CommandInvalidTypeException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.argument.IArgConsumer;
+import baritone.api.command.helpers.TabCompleteHelper;
import baritone.utils.IRenderer;
import net.minecraft.block.Blocks;
import net.minecraft.util.Direction;
diff --git a/src/main/java/baritone/command/defaults/SetCommand.java b/src/main/java/baritone/command/defaults/SetCommand.java
index db3fb6033..06e443bcb 100644
--- a/src/main/java/baritone/command/defaults/SetCommand.java
+++ b/src/main/java/baritone/command/defaults/SetCommand.java
@@ -24,9 +24,9 @@ import baritone.api.utils.SettingsUtil;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidTypeException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
-import baritone.api.command.helpers.pagination.Paginator;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.argument.IArgConsumer;
+import baritone.api.command.helpers.Paginator;
+import baritone.api.command.helpers.TabCompleteHelper;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextFormatting;
diff --git a/src/main/java/baritone/command/defaults/ThisWayCommand.java b/src/main/java/baritone/command/defaults/ThisWayCommand.java
index 9ff42f42e..6073d82be 100644
--- a/src/main/java/baritone/command/defaults/ThisWayCommand.java
+++ b/src/main/java/baritone/command/defaults/ThisWayCommand.java
@@ -21,7 +21,7 @@ import baritone.api.IBaritone;
import baritone.api.pathing.goals.GoalXZ;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/TunnelCommand.java b/src/main/java/baritone/command/defaults/TunnelCommand.java
index e7830c05d..991a7ff81 100644
--- a/src/main/java/baritone/command/defaults/TunnelCommand.java
+++ b/src/main/java/baritone/command/defaults/TunnelCommand.java
@@ -22,7 +22,7 @@ import baritone.api.pathing.goals.Goal;
import baritone.api.pathing.goals.GoalStrictDirection;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/VersionCommand.java b/src/main/java/baritone/command/defaults/VersionCommand.java
index 6e063b0f2..b7882d7d7 100644
--- a/src/main/java/baritone/command/defaults/VersionCommand.java
+++ b/src/main/java/baritone/command/defaults/VersionCommand.java
@@ -21,7 +21,7 @@ import baritone.api.IBaritone;
import baritone.api.command.Command;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
+import baritone.api.command.argument.IArgConsumer;
import java.util.Arrays;
import java.util.List;
diff --git a/src/main/java/baritone/command/defaults/WaypointsCommand.java b/src/main/java/baritone/command/defaults/WaypointsCommand.java
index bcd1bcd84..5d3f937fb 100644
--- a/src/main/java/baritone/command/defaults/WaypointsCommand.java
+++ b/src/main/java/baritone/command/defaults/WaypointsCommand.java
@@ -29,9 +29,9 @@ import baritone.api.command.datatypes.RelativeBlockPos;
import baritone.api.command.exception.CommandException;
import baritone.api.command.exception.CommandInvalidStateException;
import baritone.api.command.exception.CommandInvalidTypeException;
-import baritone.api.command.helpers.arguments.IArgConsumer;
-import baritone.api.command.helpers.pagination.Paginator;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.argument.IArgConsumer;
+import baritone.api.command.helpers.Paginator;
+import baritone.api.command.helpers.TabCompleteHelper;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextFormatting;
diff --git a/src/main/java/baritone/command/manager/CommandManager.java b/src/main/java/baritone/command/manager/CommandManager.java
index 78fc2c9ff..4c33226d3 100644
--- a/src/main/java/baritone/command/manager/CommandManager.java
+++ b/src/main/java/baritone/command/manager/CommandManager.java
@@ -19,22 +19,23 @@ package baritone.command.manager;
import baritone.Baritone;
import baritone.api.IBaritone;
-import baritone.api.command.Command;
+import baritone.api.command.ICommand;
import baritone.api.command.argument.ICommandArgument;
import baritone.api.command.exception.CommandUnhandledException;
import baritone.api.command.exception.ICommandException;
-import baritone.api.command.helpers.tabcomplete.TabCompleteHelper;
+import baritone.api.command.helpers.TabCompleteHelper;
import baritone.api.command.manager.ICommandManager;
import baritone.api.command.registry.Registry;
+import baritone.command.argument.ArgConsumer;
import baritone.command.argument.CommandArguments;
import baritone.command.defaults.DefaultCommands;
-import baritone.command.helpers.arguments.ArgConsumer;
import net.minecraft.util.Tuple;
import java.util.List;
import java.util.Locale;
import java.util.stream.Stream;
+
/**
* The default, internal implementation of {@link ICommandManager}
*
@@ -43,7 +44,7 @@ import java.util.stream.Stream;
*/
public class CommandManager implements ICommandManager {
- private final Registry registry = new Registry<>();
+ private final Registry registry = new Registry<>();
private final Baritone baritone;
public CommandManager(Baritone baritone) {
@@ -57,13 +58,13 @@ public class CommandManager implements ICommandManager {
}
@Override
- public Registry getRegistry() {
+ public Registry getRegistry() {
return this.registry;
}
@Override
- public Command getCommand(String name) {
- for (Command command : this.registry.entries) {
+ public ICommand getCommand(String name) {
+ for (ICommand command : this.registry.entries) {
if (command.getNames().contains(name.toLowerCase(Locale.US))) {
return command;
}
@@ -110,7 +111,7 @@ public class CommandManager implements ICommandManager {
String label = expanded.getA();
ArgConsumer args = new ArgConsumer(this, expanded.getB());
- Command command = this.getCommand(label);
+ ICommand command = this.getCommand(label);
return command == null ? null : new ExecutionWrapper(command, label, args);
}
@@ -126,11 +127,11 @@ public class CommandManager implements ICommandManager {
private static final class ExecutionWrapper {
- private Command command;
+ private ICommand command;
private String label;
private ArgConsumer args;
- private ExecutionWrapper(Command command, String label, ArgConsumer args) {
+ private ExecutionWrapper(ICommand command, String label, ArgConsumer args) {
this.command = command;
this.label = label;
this.args = args;
diff --git a/src/main/java/baritone/event/GameEventHandler.java b/src/main/java/baritone/event/GameEventHandler.java
index 1eb7f3539..ba40f1b6e 100644
--- a/src/main/java/baritone/event/GameEventHandler.java
+++ b/src/main/java/baritone/event/GameEventHandler.java
@@ -71,15 +71,10 @@ public final class GameEventHandler implements IEventBus, Helper {
}
@Override
- public void onPreTabComplete(TabCompleteEvent.Pre event) {
+ public void onPreTabComplete(TabCompleteEvent event) {
listeners.forEach(l -> l.onPreTabComplete(event));
}
- @Override
- public void onPostTabComplete(TabCompleteEvent.Post event) {
- listeners.forEach(l -> l.onPostTabComplete(event));
- }
-
@Override
public final void onChunkEvent(ChunkEvent event) {
EventState state = event.getState();
diff --git a/src/main/java/baritone/pathing/movement/movements/MovementPillar.java b/src/main/java/baritone/pathing/movement/movements/MovementPillar.java
index 72cb4ae4b..4510d4254 100644
--- a/src/main/java/baritone/pathing/movement/movements/MovementPillar.java
+++ b/src/main/java/baritone/pathing/movement/movements/MovementPillar.java
@@ -193,7 +193,7 @@ public class MovementPillar extends Movement {
if (ladder) {
BlockPos against = vine ? getAgainst(new CalculationContext(baritone), src) : src.offset(fromDown.get(LadderBlock.FACING).getOpposite());
if (against == null) {
- logDebug("Unable to climb vines");
+ logDirect("Unable to climb vines. Consider disabling allowVines.");
return state.setStatus(MovementStatus.UNREACHABLE);
}
diff --git a/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java b/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java
index 955b6efd3..909405bc9 100644
--- a/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java
+++ b/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java
@@ -261,6 +261,10 @@ public class MovementTraverse extends Movement {
BlockPos against = positionsToBreak[0];
if (feet.getY() != dest.getY() && ladder && (destDown.getBlock() == Blocks.VINE || destDown.getBlock() == Blocks.LADDER)) {
against = destDown.getBlock() == Blocks.VINE ? MovementPillar.getAgainst(new CalculationContext(baritone), dest.down()) : dest.offset(destDown.get(LadderBlock.FACING).getOpposite());
+ if (against == null) {
+ logDirect("Unable to climb vines. Consider disabling allowVines.");
+ return state.setStatus(MovementStatus.UNREACHABLE);
+ }
}
MovementHelper.moveTowards(ctx, state, against);
return state;
diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java
index f6585dfed..43fdaf4f4 100644
--- a/src/main/java/baritone/process/BuilderProcess.java
+++ b/src/main/java/baritone/process/BuilderProcess.java
@@ -25,6 +25,7 @@ import baritone.api.pathing.goals.GoalGetToBlock;
import baritone.api.process.IBuilderProcess;
import baritone.api.process.PathingCommand;
import baritone.api.process.PathingCommandType;
+import baritone.api.schematic.ISchematic;
import baritone.api.utils.*;
import baritone.api.utils.input.Input;
import baritone.pathing.movement.CalculationContext;
diff --git a/src/main/java/baritone/utils/ToolSet.java b/src/main/java/baritone/utils/ToolSet.java
index 25b67fb43..8b33f5425 100644
--- a/src/main/java/baritone/utils/ToolSet.java
+++ b/src/main/java/baritone/utils/ToolSet.java
@@ -92,15 +92,15 @@ public class ToolSet {
* Calculate which tool on the hotbar is best for mining
*
* @param b the blockstate to be mined
- * @return A byte containing the index in the tools array that worked best
+ * @return An int containing the index in the tools array that worked best
*/
- public byte getBestSlot(Block b, boolean preferSilkTouch) {
- byte best = 0;
+ public int getBestSlot(Block b, boolean preferSilkTouch) {
+ int best = 0;
double highestSpeed = Double.NEGATIVE_INFINITY;
int lowestCost = Integer.MIN_VALUE;
boolean bestSilkTouch = false;
BlockState blockState = b.getDefaultState();
- for (byte i = 0; i < 9; i++) {
+ for (int i = 0; i < 9; i++) {
ItemStack itemStack = player.inventory.getStackInSlot(i);
double speed = calculateSpeedVsBlock(itemStack, blockState);
boolean silkTouch = hasSilkTouch(itemStack);
diff --git a/src/main/java/baritone/utils/accessor/IBitArray.java b/src/main/java/baritone/utils/accessor/IBitArray.java
index 81501036b..baea5c1da 100644
--- a/src/main/java/baritone/utils/accessor/IBitArray.java
+++ b/src/main/java/baritone/utils/accessor/IBitArray.java
@@ -2,7 +2,5 @@ package baritone.utils.accessor;
public interface IBitArray {
- int getAtFast(int index);
-
int[] toArray();
}
diff --git a/src/main/java/baritone/utils/accessor/IBlockStateContainer.java b/src/main/java/baritone/utils/accessor/IBlockStateContainer.java
index 6c150b916..1ca642ae3 100644
--- a/src/main/java/baritone/utils/accessor/IBlockStateContainer.java
+++ b/src/main/java/baritone/utils/accessor/IBlockStateContainer.java
@@ -18,15 +18,8 @@
package baritone.utils.accessor;
import net.minecraft.block.BlockState;
-import net.minecraft.util.BitArray;
-import net.minecraft.world.chunk.IBlockStatePalette;
public interface IBlockStateContainer {
- IBlockStatePalette getPalette();
-
- BitArray getStorage();
-
- BlockState getFast(int index);
BlockState getAtPalette(int index);
diff --git a/src/api/java/baritone/api/accessor/IGuiScreen.java b/src/main/java/baritone/utils/accessor/IGuiScreen.java
similarity index 95%
rename from src/api/java/baritone/api/accessor/IGuiScreen.java
rename to src/main/java/baritone/utils/accessor/IGuiScreen.java
index ba01e2755..beb5df31b 100644
--- a/src/api/java/baritone/api/accessor/IGuiScreen.java
+++ b/src/main/java/baritone/utils/accessor/IGuiScreen.java
@@ -15,7 +15,7 @@
* along with Baritone. If not, see .
*/
-package baritone.api.accessor;
+package baritone.utils.accessor;
import java.net.URI;
diff --git a/src/main/java/baritone/utils/accessor/ITabCompleter.java b/src/main/java/baritone/utils/accessor/ITabCompleter.java
deleted file mode 100644
index e187c3e6c..000000000
--- a/src/main/java/baritone/utils/accessor/ITabCompleter.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package baritone.utils.accessor;
-
-public interface ITabCompleter {
-
- String getPrefix();
-
- void setPrefix(String prefix);
-
- boolean onGuiChatSetCompletions(String[] newCompl);
-}
diff --git a/src/main/java/baritone/utils/schematic/FillSchematic.java b/src/main/java/baritone/utils/schematic/FillSchematic.java
index 45219bd2e..6eddbcc25 100644
--- a/src/main/java/baritone/utils/schematic/FillSchematic.java
+++ b/src/main/java/baritone/utils/schematic/FillSchematic.java
@@ -17,7 +17,7 @@
package baritone.utils.schematic;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import net.minecraft.block.BlockState;
import java.util.List;
diff --git a/src/main/java/baritone/utils/schematic/Schematic.java b/src/main/java/baritone/utils/schematic/Schematic.java
index 1afaf0dfe..bf1a18a76 100644
--- a/src/main/java/baritone/utils/schematic/Schematic.java
+++ b/src/main/java/baritone/utils/schematic/Schematic.java
@@ -17,7 +17,7 @@
package baritone.utils.schematic;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import net.minecraft.block.BlockState;
import net.minecraft.nbt.CompoundNBT;
diff --git a/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java b/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java
index a9e1ff21b..168e64c40 100644
--- a/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java
+++ b/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java
@@ -17,7 +17,7 @@
package baritone.utils.schematic.schematica;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import com.github.lunatrius.schematica.client.world.SchematicWorld;
import net.minecraft.block.BlockState;
import net.minecraft.util.math.BlockPos;
diff --git a/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java b/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java
index bacf1e9d2..85b3967f5 100644
--- a/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java
+++ b/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java
@@ -17,7 +17,7 @@
package baritone.utils.schematic.schematica;
-import baritone.api.utils.ISchematic;
+import baritone.api.schematic.ISchematic;
import com.github.lunatrius.schematica.Schematica;
import com.github.lunatrius.schematica.proxy.ClientProxy;
import net.minecraft.util.Tuple;