From f1fb109d40c48e79ba6ac18361d738873a05f7f2 Mon Sep 17 00:00:00 2001 From: Brady Date: Mon, 30 Sep 2019 21:41:30 -0500 Subject: [PATCH] Remove ICommandExecution due to redundancy --- .../baritone/api/utils/command/Command.java | 30 +------ .../command/execution/ICommandExecution.java | 68 --------------- .../utils/command/BaritoneChatControl.java | 6 +- .../utils/command/defaults/AxisCommand.java | 4 +- .../command/defaults/BlacklistCommand.java | 4 +- .../utils/command/defaults/BuildCommand.java | 4 +- .../utils/command/defaults/CancelCommand.java | 4 +- .../utils/command/defaults/ChestsCommand.java | 4 +- .../utils/command/defaults/ClickCommand.java | 4 +- .../utils/command/defaults/ComeCommand.java | 4 +- .../utils/command/defaults/CommandAlias.java | 4 +- .../command/defaults/ExploreCommand.java | 4 +- .../defaults/ExploreFilterCommand.java | 4 +- .../utils/command/defaults/FarmCommand.java | 4 +- .../utils/command/defaults/FindCommand.java | 4 +- .../utils/command/defaults/FollowCommand.java | 4 +- .../command/defaults/ForceCancelCommand.java | 4 +- .../utils/command/defaults/GcCommand.java | 4 +- .../utils/command/defaults/GoalCommand.java | 4 +- .../utils/command/defaults/HelpCommand.java | 4 +- .../utils/command/defaults/InvertCommand.java | 4 +- .../utils/command/defaults/MineCommand.java | 4 +- .../utils/command/defaults/PathCommand.java | 4 +- .../command/defaults/PauseResumeCommands.java | 12 +-- .../utils/command/defaults/ProcCommand.java | 4 +- .../command/defaults/ReloadAllCommand.java | 4 +- .../utils/command/defaults/RenderCommand.java | 4 +- .../utils/command/defaults/RepackCommand.java | 4 +- .../command/defaults/SaveAllCommand.java | 4 +- .../command/defaults/SchematicaCommand.java | 4 +- .../utils/command/defaults/SelCommand.java | 4 +- .../utils/command/defaults/SetCommand.java | 4 +- .../command/defaults/ThisWayCommand.java | 4 +- .../utils/command/defaults/TunnelCommand.java | 4 +- .../command/defaults/VersionCommand.java | 4 +- .../command/defaults/WaypointsCommand.java | 4 +- .../command/execution/CommandExecution.java | 85 ------------------- .../utils/command/manager/CommandManager.java | 59 +++++++++++-- 38 files changed, 126 insertions(+), 262 deletions(-) delete mode 100644 src/api/java/baritone/api/utils/command/execution/ICommandExecution.java delete mode 100644 src/main/java/baritone/utils/command/execution/CommandExecution.java diff --git a/src/api/java/baritone/api/utils/command/Command.java b/src/api/java/baritone/api/utils/command/Command.java index e83d6c50b..280c5f03b 100644 --- a/src/api/java/baritone/api/utils/command/Command.java +++ b/src/api/java/baritone/api/utils/command/Command.java @@ -21,7 +21,6 @@ import baritone.api.IBaritone; import baritone.api.utils.Helper; import baritone.api.utils.IPlayerContext; import baritone.api.utils.command.exception.CommandException; -import baritone.api.utils.command.execution.ICommandExecution; import baritone.api.utils.command.helpers.arguments.ArgConsumer; import java.util.Collections; @@ -57,41 +56,16 @@ public abstract class Command implements Helper { this(baritone, Collections.singletonList(name)); } - /** - * Executes this command with the specified arguments. - * - * @param execution The command execution to execute this command with - */ - public final void execute(ICommandExecution execution) throws CommandException { - this.executed(execution.getLabel(), execution.getArguments()); - } - - /** - * Tab completes this command with the specified arguments. Any exception that is thrown by - * {@link #tabCompleted(String, ArgConsumer)} will be caught by this method, and then {@link Stream#empty()} - * will be returned. - * - * @param execution The command execution to tab complete - * @return The list of completions. - */ - public final Stream tabComplete(ICommandExecution execution) { - try { - return this.tabCompleted(execution.getLabel(), execution.getArguments()); - } catch (Throwable t) { - return Stream.empty(); - } - } - /** * Called when this command is executed. */ - protected abstract void executed(String label, ArgConsumer args) throws CommandException; + public abstract void execute(String label, ArgConsumer args) throws CommandException; /** * Called when the command needs to tab complete. Return a Stream representing the entries to put in the completions * list. */ - protected abstract Stream tabCompleted(String label, ArgConsumer args) throws CommandException; + public abstract Stream tabComplete(String label, ArgConsumer args) throws CommandException; /** * @return A single-line string containing a short description of this command's purpose. diff --git a/src/api/java/baritone/api/utils/command/execution/ICommandExecution.java b/src/api/java/baritone/api/utils/command/execution/ICommandExecution.java deleted file mode 100644 index 4ca5b193c..000000000 --- a/src/api/java/baritone/api/utils/command/execution/ICommandExecution.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * 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.utils.command.execution; - -import baritone.api.utils.command.Command; -import baritone.api.utils.command.argument.CommandArgument; -import baritone.api.utils.command.helpers.arguments.ArgConsumer; -import net.minecraft.util.Tuple; - -import java.util.List; -import java.util.stream.Stream; - -/** - * @author Brady - * @since 9/28/2019 - */ -public interface ICommandExecution { - - /** - * @return The label that was used to target the {@link Command} - */ - String getLabel(); - - /** - * @return The arguments to be passed to the {@link Command} - */ - ArgConsumer getArguments(); - - /** - * Executes the target command for this {@link ICommandExecution}. This method should never - * {@code throw} any exception, anything that is thrown during the target command execution - * should be safely handled. - */ - void execute(); - - /** - * Forwards this {@link ICommandExecution} to the target {@link Command} to perform a tab-completion. - * If the tab-completion operation is a failure, then {@link Stream#empty()} will be returned. - * - * @return The tab-completed arguments, if possible. - */ - Stream tabComplete(); - - static Tuple> expand(String string, boolean preserveEmptyLast) { - String label = string.split("\\s", 2)[0]; - List args = CommandArgument.from(string.substring(label.length()), preserveEmptyLast); - return new Tuple<>(label, args); - } - - static Tuple> expand(String string) { - return expand(string, false); - } -} diff --git a/src/main/java/baritone/utils/command/BaritoneChatControl.java b/src/main/java/baritone/utils/command/BaritoneChatControl.java index facc24dac..30ba92445 100644 --- a/src/main/java/baritone/utils/command/BaritoneChatControl.java +++ b/src/main/java/baritone/utils/command/BaritoneChatControl.java @@ -29,10 +29,10 @@ import baritone.api.utils.SettingsUtil; import baritone.api.utils.command.argument.CommandArgument; import baritone.api.utils.command.exception.CommandNotEnoughArgumentsException; import baritone.api.utils.command.exception.CommandNotFoundException; -import baritone.api.utils.command.execution.ICommandExecution; import baritone.api.utils.command.helpers.arguments.ArgConsumer; import baritone.api.utils.command.helpers.tabcomplete.TabCompleteHelper; import baritone.api.utils.command.manager.ICommandManager; +import baritone.utils.command.manager.CommandManager; import net.minecraft.util.Tuple; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextComponentString; @@ -67,7 +67,7 @@ public class BaritoneChatControl implements Helper, AbstractGameEventListener { event.cancel(); String commandStr = msg.substring(forceRun ? FORCE_COMMAND_PREFIX.length() : prefix.length()); if (!runCommand(commandStr) && !commandStr.trim().isEmpty()) { - new CommandNotFoundException(ICommandExecution.expand(commandStr).getFirst()).handle(null, null); + new CommandNotFoundException(CommandManager.expand(commandStr).getFirst()).handle(null, null); } } else if ((settings.chatControl.value || settings.chatControlAnyway.value) && runCommand(msg)) { event.cancel(); @@ -106,7 +106,7 @@ public class BaritoneChatControl implements Helper, AbstractGameEventListener { if (msg.isEmpty()) { return this.runCommand("help"); } - Tuple> pair = ICommandExecution.expand(msg); + Tuple> pair = CommandManager.expand(msg); String command = pair.getFirst(); String rest = msg.substring(pair.getFirst().length()); ArgConsumer argc = new ArgConsumer(this.manager, pair.getSecond()); diff --git a/src/main/java/baritone/utils/command/defaults/AxisCommand.java b/src/main/java/baritone/utils/command/defaults/AxisCommand.java index ae52bfb25..f80356ad9 100644 --- a/src/main/java/baritone/utils/command/defaults/AxisCommand.java +++ b/src/main/java/baritone/utils/command/defaults/AxisCommand.java @@ -35,7 +35,7 @@ public class AxisCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); Goal goal = new GoalAxis(); baritone.getCustomGoalProcess().setGoal(goal); @@ -43,7 +43,7 @@ public class AxisCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/BlacklistCommand.java b/src/main/java/baritone/utils/command/defaults/BlacklistCommand.java index 21551782b..43aaa7370 100644 --- a/src/main/java/baritone/utils/command/defaults/BlacklistCommand.java +++ b/src/main/java/baritone/utils/command/defaults/BlacklistCommand.java @@ -35,7 +35,7 @@ public class BlacklistCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); IGetToBlockProcess proc = baritone.getGetToBlockProcess(); if (!proc.isActive()) { @@ -49,7 +49,7 @@ public class BlacklistCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/BuildCommand.java b/src/main/java/baritone/utils/command/defaults/BuildCommand.java index f45371136..5d084d48e 100644 --- a/src/main/java/baritone/utils/command/defaults/BuildCommand.java +++ b/src/main/java/baritone/utils/command/defaults/BuildCommand.java @@ -42,7 +42,7 @@ public class BuildCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { File file = args.getDatatypePost(RelativeFile.INSTANCE, schematicsDir).getAbsoluteFile(); if (!file.getName().toLowerCase(Locale.US).endsWith(".schematic")) { file = new File(file.getAbsolutePath() + ".schematic"); @@ -64,7 +64,7 @@ public class BuildCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) throws CommandException { + public Stream tabComplete(String label, ArgConsumer args) throws CommandException { if (args.hasExactlyOne()) { return RelativeFile.tabComplete(args, schematicsDir); } else if (args.has(2)) { diff --git a/src/main/java/baritone/utils/command/defaults/CancelCommand.java b/src/main/java/baritone/utils/command/defaults/CancelCommand.java index a4ef4cc7b..67cde8f49 100644 --- a/src/main/java/baritone/utils/command/defaults/CancelCommand.java +++ b/src/main/java/baritone/utils/command/defaults/CancelCommand.java @@ -33,14 +33,14 @@ public class CancelCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); baritone.getPathingBehavior().cancelEverything(); logDirect("ok canceled"); } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/ChestsCommand.java b/src/main/java/baritone/utils/command/defaults/ChestsCommand.java index d4101a629..f65a18e5b 100644 --- a/src/main/java/baritone/utils/command/defaults/ChestsCommand.java +++ b/src/main/java/baritone/utils/command/defaults/ChestsCommand.java @@ -41,7 +41,7 @@ public class ChestsCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); Set> entries = ctx.worldData().getContainerMemory().getRememberedInventories().entrySet(); @@ -62,7 +62,7 @@ public class ChestsCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/ClickCommand.java b/src/main/java/baritone/utils/command/defaults/ClickCommand.java index e5180b2ff..07bd4de9f 100644 --- a/src/main/java/baritone/utils/command/defaults/ClickCommand.java +++ b/src/main/java/baritone/utils/command/defaults/ClickCommand.java @@ -33,14 +33,14 @@ public class ClickCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); baritone.openClick(); logDirect("aight dude"); } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/ComeCommand.java b/src/main/java/baritone/utils/command/defaults/ComeCommand.java index bbefeb43a..52a0cec67 100644 --- a/src/main/java/baritone/utils/command/defaults/ComeCommand.java +++ b/src/main/java/baritone/utils/command/defaults/ComeCommand.java @@ -37,7 +37,7 @@ public class ComeCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); Entity entity = mc.getRenderViewEntity(); if (entity == null) { @@ -48,7 +48,7 @@ public class ComeCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/CommandAlias.java b/src/main/java/baritone/utils/command/defaults/CommandAlias.java index cbd8ac77c..0f28e48ee 100644 --- a/src/main/java/baritone/utils/command/defaults/CommandAlias.java +++ b/src/main/java/baritone/utils/command/defaults/CommandAlias.java @@ -43,12 +43,12 @@ public class CommandAlias extends Command { } @Override - protected void executed(String label, ArgConsumer args) { + public void execute(String label, ArgConsumer args) { this.baritone.getCommandManager().execute(String.format("%s %s", target, args.rawRest())); } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return this.baritone.getCommandManager().tabComplete(String.format("%s %s", target, args.rawRest())); } diff --git a/src/main/java/baritone/utils/command/defaults/ExploreCommand.java b/src/main/java/baritone/utils/command/defaults/ExploreCommand.java index dc156d0e0..55e3d756a 100644 --- a/src/main/java/baritone/utils/command/defaults/ExploreCommand.java +++ b/src/main/java/baritone/utils/command/defaults/ExploreCommand.java @@ -35,7 +35,7 @@ public class ExploreCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { if (args.hasAny()) { args.requireExactly(2); } else { @@ -49,7 +49,7 @@ public class ExploreCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { if (args.hasAtMost(2)) { return args.tabCompleteDatatype(RelativeGoalXZ.INSTANCE); } diff --git a/src/main/java/baritone/utils/command/defaults/ExploreFilterCommand.java b/src/main/java/baritone/utils/command/defaults/ExploreFilterCommand.java index 4d75d1b49..29f34c866 100644 --- a/src/main/java/baritone/utils/command/defaults/ExploreFilterCommand.java +++ b/src/main/java/baritone/utils/command/defaults/ExploreFilterCommand.java @@ -39,7 +39,7 @@ public class ExploreFilterCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(2); File file = args.getDatatypePost(RelativeFile.INSTANCE, mc.gameDir.getAbsoluteFile().getParentFile()); boolean invert = false; @@ -63,7 +63,7 @@ public class ExploreFilterCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) throws CommandException { + public Stream tabComplete(String label, ArgConsumer args) throws CommandException { if (args.hasExactlyOne()) { return RelativeFile.tabComplete(args, RelativeFile.gameDir()); } diff --git a/src/main/java/baritone/utils/command/defaults/FarmCommand.java b/src/main/java/baritone/utils/command/defaults/FarmCommand.java index 1f803ec60..a9dc7a8b6 100644 --- a/src/main/java/baritone/utils/command/defaults/FarmCommand.java +++ b/src/main/java/baritone/utils/command/defaults/FarmCommand.java @@ -33,14 +33,14 @@ public class FarmCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); baritone.getFarmProcess().farm(); logDirect("Farming"); } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/FindCommand.java b/src/main/java/baritone/utils/command/defaults/FindCommand.java index 8848db810..513d65392 100644 --- a/src/main/java/baritone/utils/command/defaults/FindCommand.java +++ b/src/main/java/baritone/utils/command/defaults/FindCommand.java @@ -37,7 +37,7 @@ public class FindCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { List toFind = new ArrayList<>(); while (args.hasAny()) { toFind.add(args.getDatatypeFor(BlockById.INSTANCE)); @@ -59,7 +59,7 @@ public class FindCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return args.tabCompleteDatatype(BlockById.INSTANCE); } diff --git a/src/main/java/baritone/utils/command/defaults/FollowCommand.java b/src/main/java/baritone/utils/command/defaults/FollowCommand.java index e3e0c3d15..d2e674c98 100644 --- a/src/main/java/baritone/utils/command/defaults/FollowCommand.java +++ b/src/main/java/baritone/utils/command/defaults/FollowCommand.java @@ -42,7 +42,7 @@ public class FollowCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMin(1); FollowGroup group; FollowList list; @@ -88,7 +88,7 @@ public class FollowCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) throws CommandException { + public Stream tabComplete(String label, ArgConsumer args) throws CommandException { if (args.hasExactlyOne()) { return new TabCompleteHelper() .append(FollowGroup.class) diff --git a/src/main/java/baritone/utils/command/defaults/ForceCancelCommand.java b/src/main/java/baritone/utils/command/defaults/ForceCancelCommand.java index 3de8a056b..05b629922 100644 --- a/src/main/java/baritone/utils/command/defaults/ForceCancelCommand.java +++ b/src/main/java/baritone/utils/command/defaults/ForceCancelCommand.java @@ -34,7 +34,7 @@ public class ForceCancelCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); IPathingBehavior pathingBehavior = baritone.getPathingBehavior(); pathingBehavior.cancelEverything(); @@ -43,7 +43,7 @@ public class ForceCancelCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/GcCommand.java b/src/main/java/baritone/utils/command/defaults/GcCommand.java index c2e7952cd..068b5136c 100644 --- a/src/main/java/baritone/utils/command/defaults/GcCommand.java +++ b/src/main/java/baritone/utils/command/defaults/GcCommand.java @@ -33,14 +33,14 @@ public class GcCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); System.gc(); logDirect("ok called System.gc()"); } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/GoalCommand.java b/src/main/java/baritone/utils/command/defaults/GoalCommand.java index 3f7601117..baac24b69 100644 --- a/src/main/java/baritone/utils/command/defaults/GoalCommand.java +++ b/src/main/java/baritone/utils/command/defaults/GoalCommand.java @@ -39,7 +39,7 @@ public class GoalCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { ICustomGoalProcess goalProcess = baritone.getCustomGoalProcess(); if (args.hasAny() && Arrays.asList("reset", "clear", "none").contains(args.peekString())) { args.requireMax(1); @@ -59,7 +59,7 @@ public class GoalCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) throws CommandException { + public Stream tabComplete(String label, ArgConsumer args) throws CommandException { TabCompleteHelper helper = new TabCompleteHelper(); if (args.hasExactlyOne()) { helper.append("reset", "clear", "none", "~"); diff --git a/src/main/java/baritone/utils/command/defaults/HelpCommand.java b/src/main/java/baritone/utils/command/defaults/HelpCommand.java index a9d0e1047..7db0d8935 100644 --- a/src/main/java/baritone/utils/command/defaults/HelpCommand.java +++ b/src/main/java/baritone/utils/command/defaults/HelpCommand.java @@ -44,7 +44,7 @@ public class HelpCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(1); if (!args.hasAny() || args.is(Integer.class)) { Paginator.paginate( @@ -97,7 +97,7 @@ public class HelpCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) throws CommandException { + public Stream tabComplete(String label, ArgConsumer args) throws CommandException { if (args.hasExactlyOne()) { return new TabCompleteHelper() .addCommands(this.baritone.getCommandManager()) diff --git a/src/main/java/baritone/utils/command/defaults/InvertCommand.java b/src/main/java/baritone/utils/command/defaults/InvertCommand.java index f52e6226c..232ac0f37 100644 --- a/src/main/java/baritone/utils/command/defaults/InvertCommand.java +++ b/src/main/java/baritone/utils/command/defaults/InvertCommand.java @@ -37,7 +37,7 @@ public class InvertCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); ICustomGoalProcess customGoalProcess = baritone.getCustomGoalProcess(); Goal goal; @@ -54,7 +54,7 @@ public class InvertCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/MineCommand.java b/src/main/java/baritone/utils/command/defaults/MineCommand.java index e77c3bd75..da92b0988 100644 --- a/src/main/java/baritone/utils/command/defaults/MineCommand.java +++ b/src/main/java/baritone/utils/command/defaults/MineCommand.java @@ -38,7 +38,7 @@ public class MineCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { int quantity = args.getAsOrDefault(Integer.class, 0); args.requireMin(1); List boms = new ArrayList<>(); @@ -51,7 +51,7 @@ public class MineCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return args.tabCompleteDatatype(BlockById.INSTANCE); } diff --git a/src/main/java/baritone/utils/command/defaults/PathCommand.java b/src/main/java/baritone/utils/command/defaults/PathCommand.java index 4cd766ea1..6de333737 100644 --- a/src/main/java/baritone/utils/command/defaults/PathCommand.java +++ b/src/main/java/baritone/utils/command/defaults/PathCommand.java @@ -40,7 +40,7 @@ public class PathCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { ICustomGoalProcess customGoalProcess = baritone.getCustomGoalProcess(); Goal goal; if (args.hasAny()) { @@ -56,7 +56,7 @@ public class PathCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) throws CommandException { + public Stream tabComplete(String label, ArgConsumer args) throws CommandException { if (args.hasAny() && !args.has(4)) { while (args.has(2)) { if (args.peekDatatypeOrNull(RelativeCoordinate.INSTANCE) == null) { diff --git a/src/main/java/baritone/utils/command/defaults/PauseResumeCommands.java b/src/main/java/baritone/utils/command/defaults/PauseResumeCommands.java index bc3c392ac..2c363ff4e 100644 --- a/src/main/java/baritone/utils/command/defaults/PauseResumeCommands.java +++ b/src/main/java/baritone/utils/command/defaults/PauseResumeCommands.java @@ -79,7 +79,7 @@ public class PauseResumeCommands { ); pauseCommand = new Command(baritone, "pause") { @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); if (paused[0]) { throw new CommandInvalidStateException("Already paused"); @@ -89,7 +89,7 @@ public class PauseResumeCommands { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } @@ -112,7 +112,7 @@ public class PauseResumeCommands { }; resumeCommand = new Command(baritone, "resume") { @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); if (!paused[0]) { throw new CommandInvalidStateException("Not paused"); @@ -122,7 +122,7 @@ public class PauseResumeCommands { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } @@ -143,13 +143,13 @@ public class PauseResumeCommands { }; pausedCommand = new Command(baritone, "paused") { @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); logDirect(String.format("Baritone is %spaused", paused[0] ? "" : "not ")); } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/ProcCommand.java b/src/main/java/baritone/utils/command/defaults/ProcCommand.java index 40d8e72b5..232a53a29 100644 --- a/src/main/java/baritone/utils/command/defaults/ProcCommand.java +++ b/src/main/java/baritone/utils/command/defaults/ProcCommand.java @@ -37,7 +37,7 @@ public class ProcCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); IPathingControlManager pathingControlManager = baritone.getPathingControlManager(); IBaritoneProcess process = pathingControlManager.mostRecentInControl().orElse(null); @@ -62,7 +62,7 @@ public class ProcCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/ReloadAllCommand.java b/src/main/java/baritone/utils/command/defaults/ReloadAllCommand.java index c16000f73..f13af77d6 100644 --- a/src/main/java/baritone/utils/command/defaults/ReloadAllCommand.java +++ b/src/main/java/baritone/utils/command/defaults/ReloadAllCommand.java @@ -33,14 +33,14 @@ public class ReloadAllCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); ctx.worldData().getCachedWorld().reloadAllFromDisk(); logDirect("Reloaded"); } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/RenderCommand.java b/src/main/java/baritone/utils/command/defaults/RenderCommand.java index 7c100c8ed..710df10f5 100644 --- a/src/main/java/baritone/utils/command/defaults/RenderCommand.java +++ b/src/main/java/baritone/utils/command/defaults/RenderCommand.java @@ -34,7 +34,7 @@ public class RenderCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); BetterBlockPos origin = ctx.playerFeet(); int renderDistance = (mc.gameSettings.renderDistanceChunks + 1) * 16; @@ -50,7 +50,7 @@ public class RenderCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/RepackCommand.java b/src/main/java/baritone/utils/command/defaults/RepackCommand.java index bd918f097..2f1a988d3 100644 --- a/src/main/java/baritone/utils/command/defaults/RepackCommand.java +++ b/src/main/java/baritone/utils/command/defaults/RepackCommand.java @@ -34,13 +34,13 @@ public class RepackCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); logDirect(String.format("Queued %d chunks for repacking", WorldScanner.INSTANCE.repack(ctx))); } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/SaveAllCommand.java b/src/main/java/baritone/utils/command/defaults/SaveAllCommand.java index 8343f7533..21dbfb649 100644 --- a/src/main/java/baritone/utils/command/defaults/SaveAllCommand.java +++ b/src/main/java/baritone/utils/command/defaults/SaveAllCommand.java @@ -33,14 +33,14 @@ public class SaveAllCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); ctx.worldData().getCachedWorld().save(); logDirect("Saved"); } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/SchematicaCommand.java b/src/main/java/baritone/utils/command/defaults/SchematicaCommand.java index 91e31daa4..ed695169b 100644 --- a/src/main/java/baritone/utils/command/defaults/SchematicaCommand.java +++ b/src/main/java/baritone/utils/command/defaults/SchematicaCommand.java @@ -33,13 +33,13 @@ public class SchematicaCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); baritone.getBuilderProcess().buildOpenSchematic(); } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/SelCommand.java b/src/main/java/baritone/utils/command/defaults/SelCommand.java index d9899f429..8e2512d12 100644 --- a/src/main/java/baritone/utils/command/defaults/SelCommand.java +++ b/src/main/java/baritone/utils/command/defaults/SelCommand.java @@ -75,7 +75,7 @@ public class SelCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { Action action = Action.getByName(args.getString()); if (action == null) { throw new CommandInvalidTypeException(args.consumed(), "an action"); @@ -186,7 +186,7 @@ public class SelCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) throws CommandException { + public Stream tabComplete(String label, ArgConsumer args) throws CommandException { if (args.hasExactlyOne()) { return new TabCompleteHelper() .append(Action.getAllNames()) diff --git a/src/main/java/baritone/utils/command/defaults/SetCommand.java b/src/main/java/baritone/utils/command/defaults/SetCommand.java index 48c4580f5..8add3fed2 100644 --- a/src/main/java/baritone/utils/command/defaults/SetCommand.java +++ b/src/main/java/baritone/utils/command/defaults/SetCommand.java @@ -50,7 +50,7 @@ public class SetCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { String arg = args.hasAny() ? args.getString().toLowerCase(Locale.US) : "list"; if (Arrays.asList("s", "save").contains(arg)) { SettingsUtil.save(Baritone.settings()); @@ -186,7 +186,7 @@ public class SetCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) throws CommandException { + public Stream tabComplete(String label, ArgConsumer args) throws CommandException { if (args.hasAny()) { String arg = args.getString(); if (args.hasExactlyOne() && !Arrays.asList("s", "save").contains(args.peekString().toLowerCase(Locale.US))) { diff --git a/src/main/java/baritone/utils/command/defaults/ThisWayCommand.java b/src/main/java/baritone/utils/command/defaults/ThisWayCommand.java index 4c6f35226..d11346cc5 100644 --- a/src/main/java/baritone/utils/command/defaults/ThisWayCommand.java +++ b/src/main/java/baritone/utils/command/defaults/ThisWayCommand.java @@ -34,7 +34,7 @@ public class ThisWayCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireExactly(1); GoalXZ goal = GoalXZ.fromDirection( ctx.playerFeetAsVec(), @@ -46,7 +46,7 @@ public class ThisWayCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/TunnelCommand.java b/src/main/java/baritone/utils/command/defaults/TunnelCommand.java index 588287d64..b7e00fe66 100644 --- a/src/main/java/baritone/utils/command/defaults/TunnelCommand.java +++ b/src/main/java/baritone/utils/command/defaults/TunnelCommand.java @@ -35,7 +35,7 @@ public class TunnelCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); Goal goal = new GoalStrictDirection( ctx.playerFeet(), @@ -46,7 +46,7 @@ public class TunnelCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/VersionCommand.java b/src/main/java/baritone/utils/command/defaults/VersionCommand.java index fe53f523e..89dc6576e 100644 --- a/src/main/java/baritone/utils/command/defaults/VersionCommand.java +++ b/src/main/java/baritone/utils/command/defaults/VersionCommand.java @@ -34,7 +34,7 @@ public class VersionCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { args.requireMax(0); String version = getClass().getPackage().getImplementationVersion(); if (version == null) { @@ -45,7 +45,7 @@ public class VersionCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) { + public Stream tabComplete(String label, ArgConsumer args) { return Stream.empty(); } diff --git a/src/main/java/baritone/utils/command/defaults/WaypointsCommand.java b/src/main/java/baritone/utils/command/defaults/WaypointsCommand.java index 01f5817e9..45bd7b50f 100644 --- a/src/main/java/baritone/utils/command/defaults/WaypointsCommand.java +++ b/src/main/java/baritone/utils/command/defaults/WaypointsCommand.java @@ -52,7 +52,7 @@ public class WaypointsCommand extends Command { } @Override - protected void executed(String label, ArgConsumer args) throws CommandException { + public void execute(String label, ArgConsumer args) throws CommandException { Action action = args.hasAny() ? Action.getByName(args.getString()) : Action.LIST; if (action == null) { throw new CommandInvalidTypeException(args.consumed(), "an action"); @@ -241,7 +241,7 @@ public class WaypointsCommand extends Command { } @Override - protected Stream tabCompleted(String label, ArgConsumer args) throws CommandException { + public Stream tabComplete(String label, ArgConsumer args) throws CommandException { if (args.hasAny()) { if (args.hasExactlyOne()) { return new TabCompleteHelper() diff --git a/src/main/java/baritone/utils/command/execution/CommandExecution.java b/src/main/java/baritone/utils/command/execution/CommandExecution.java deleted file mode 100644 index 1e8fe8382..000000000 --- a/src/main/java/baritone/utils/command/execution/CommandExecution.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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.utils.command.execution; - -import baritone.api.utils.command.Command; -import baritone.api.utils.command.exception.CommandUnhandledException; -import baritone.api.utils.command.exception.ICommandException; -import baritone.api.utils.command.execution.ICommandExecution; -import baritone.api.utils.command.helpers.arguments.ArgConsumer; -import baritone.utils.command.manager.CommandManager; - -import java.util.stream.Stream; - -/** - * The default, internal implementation of {@link ICommandExecution}, which is used by {@link CommandManager} - * - * @author LoganDark, Brady - */ -public class CommandExecution implements ICommandExecution { - - /** - * The command itself - */ - private final Command command; - - /** - * The name this command was called with - */ - private final String label; - - /** - * The arg consumer - */ - private final ArgConsumer args; - - public CommandExecution(Command command, String label, ArgConsumer args) { - this.command = command; - this.label = label; - this.args = args; - } - - @Override - public String getLabel() { - return this.label; - } - - @Override - public ArgConsumer getArguments() { - return this.args; - } - - @Override - public void execute() { - try { - command.execute(this); - } catch (Throwable t) { - // Create a handleable exception, wrap if needed - ICommandException exception = t instanceof ICommandException - ? (ICommandException) t - : new CommandUnhandledException(t); - - exception.handle(command, args.args); - } - } - - @Override - public Stream tabComplete() { - return command.tabComplete(this); - } -} diff --git a/src/main/java/baritone/utils/command/manager/CommandManager.java b/src/main/java/baritone/utils/command/manager/CommandManager.java index e5c5d0356..c9c51eb12 100644 --- a/src/main/java/baritone/utils/command/manager/CommandManager.java +++ b/src/main/java/baritone/utils/command/manager/CommandManager.java @@ -21,13 +21,13 @@ import baritone.Baritone; import baritone.api.IBaritone; import baritone.api.utils.command.Command; import baritone.api.utils.command.argument.CommandArgument; -import baritone.api.utils.command.execution.ICommandExecution; +import baritone.api.utils.command.exception.CommandUnhandledException; +import baritone.api.utils.command.exception.ICommandException; import baritone.api.utils.command.helpers.arguments.ArgConsumer; import baritone.api.utils.command.helpers.tabcomplete.TabCompleteHelper; import baritone.api.utils.command.manager.ICommandManager; import baritone.api.utils.command.registry.Registry; import baritone.utils.command.defaults.DefaultCommands; -import baritone.utils.command.execution.CommandExecution; import net.minecraft.util.Tuple; import java.util.List; @@ -72,12 +72,12 @@ public class CommandManager implements ICommandManager { @Override public boolean execute(String string) { - return this.execute(ICommandExecution.expand(string)); + return this.execute(expand(string)); } @Override public boolean execute(Tuple> expanded) { - ICommandExecution execution = this.from(expanded); + ExecutionWrapper execution = this.from(expanded); if (execution != null) { execution.execute(); } @@ -86,13 +86,13 @@ public class CommandManager implements ICommandManager { @Override public Stream tabComplete(Tuple> expanded) { - ICommandExecution execution = this.from(expanded); + ExecutionWrapper execution = this.from(expanded); return execution == null ? Stream.empty() : execution.tabComplete(); } @Override public Stream tabComplete(String prefix) { - Tuple> pair = ICommandExecution.expand(prefix, true); + Tuple> pair = expand(prefix, true); String label = pair.getFirst(); List args = pair.getSecond(); if (args.isEmpty()) { @@ -105,11 +105,54 @@ public class CommandManager implements ICommandManager { } } - private ICommandExecution from(Tuple> expanded) { + private ExecutionWrapper from(Tuple> expanded) { String label = expanded.getFirst(); ArgConsumer args = new ArgConsumer(this, expanded.getSecond()); Command command = this.getCommand(label); - return command == null ? null : new CommandExecution(command, label, args); + return command == null ? null : new ExecutionWrapper(command, label, args); + } + + private static Tuple> expand(String string, boolean preserveEmptyLast) { + String label = string.split("\\s", 2)[0]; + List args = CommandArgument.from(string.substring(label.length()), preserveEmptyLast); + return new Tuple<>(label, args); + } + + public static Tuple> expand(String string) { + return expand(string, false); + } + + private static final class ExecutionWrapper { + private Command command; + private String label; + private ArgConsumer args; + + private ExecutionWrapper(Command command, String label, ArgConsumer args) { + this.command = command; + this.label = label; + this.args = args; + } + + private void execute() { + try { + this.command.execute(this.label, this.args); + } catch (Throwable t) { + // Create a handleable exception, wrap if needed + ICommandException exception = t instanceof ICommandException + ? (ICommandException) t + : new CommandUnhandledException(t); + + exception.handle(command, args.args); + } + } + + private Stream tabComplete() { + try { + return this.command.tabComplete(this.label, this.args); + } catch (Throwable t) { + return Stream.empty(); + } + } } }