From ccc6db61ef2f411afd2936c81656fdc9a62aadfe Mon Sep 17 00:00:00 2001 From: Bella Who Date: Tue, 14 Jan 2020 08:53:29 -0500 Subject: [PATCH] Feature/aliases to close #358 (#376) * Add Aliases * Add aliases cmd and cmds to CommandsCommand * undo build.gradle changes * shorten check in commandmanager * add more aliases Co-authored-by: d1gress <55198830+d1gress@users.noreply.github.com> Co-authored-by: Qther --- .../me/zeroeightsix/kami/command/Command.java | 17 ++++++++++++++++- .../kami/command/CommandManager.java | 11 ++++++++++- .../kami/command/commands/CommandsCommand.java | 2 +- .../kami/command/commands/ConfigCommand.java | 2 +- .../kami/command/commands/CreditsCommand.java | 2 +- .../command/commands/EntityStatsCommand.java | 2 +- .../kami/command/commands/FriendCommand.java | 2 +- .../kami/command/commands/HelpCommand.java | 2 +- .../kami/command/commands/PathCommand.java | 2 +- .../kami/command/commands/SignBookCommand.java | 2 +- .../kami/command/commands/TeleportCommand.java | 2 +- .../kami/command/commands/ToggleCommand.java | 2 +- .../kami/command/commands/VanishCommand.java | 2 +- 13 files changed, 37 insertions(+), 13 deletions(-) diff --git a/src/main/java/me/zeroeightsix/kami/command/Command.java b/src/main/java/me/zeroeightsix/kami/command/Command.java index 4d1467956..2f5264277 100644 --- a/src/main/java/me/zeroeightsix/kami/command/Command.java +++ b/src/main/java/me/zeroeightsix/kami/command/Command.java @@ -10,6 +10,8 @@ import net.minecraft.launchwrapper.LogWrapper; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextComponentBase; +import java.util.ArrayList; +import java.util.Arrays; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -18,6 +20,7 @@ public abstract class Command { protected String label; protected String syntax; protected String description; + protected ArrayList aliases; public final Minecraft mc = Minecraft.getMinecraft(); @@ -26,10 +29,18 @@ public abstract class Command { public static Setting commandPrefix = Settings.s("commandPrefix", "."); public static final char SECTION_SIGN = '\u00A7'; - public Command(String label, SyntaxChunk[] syntaxChunks) { + public Command(String label, SyntaxChunk[] syntaxChunks, ArrayList aliases) { this.label = label; this.syntaxChunks = syntaxChunks; this.description = "Descriptionless"; + this.aliases = aliases; + } + + public Command(String label, SyntaxChunk[] syntaxChunks, String... aliases) { + this.label = label; + this.syntaxChunks = syntaxChunks; + this.description = "Descriptionless"; + this.aliases = new ArrayList(Arrays.asList(aliases)); } public static void sendChatMessage(String message) { @@ -81,6 +92,10 @@ public abstract class Command { return label; } + public ArrayList getAliases() { + return aliases; + } + public abstract void call(String[] args); public SyntaxChunk[] getSyntaxChunks() { diff --git a/src/main/java/me/zeroeightsix/kami/command/CommandManager.java b/src/main/java/me/zeroeightsix/kami/command/CommandManager.java index 77a67beae..38cf3bb4b 100644 --- a/src/main/java/me/zeroeightsix/kami/command/CommandManager.java +++ b/src/main/java/me/zeroeightsix/kami/command/CommandManager.java @@ -44,12 +44,21 @@ public class CommandManager { for (Command c : commands) { if (c.getLabel().equalsIgnoreCase(label)) { + if (!c.getAliases().isEmpty()) { + Command.sendChatMessage("This command has aliases!\n" + String.join(", ", c.getAliases())); + } c.call(parts); return; } + else for (int i = 0; i < c.getAliases().size(); i++) { + if (c.getAliases().get(i).equalsIgnoreCase(label)) { + c.call(parts); + return; + } + } } - Command.sendChatMessage("Unknown command. try 'commands' for a list of commands."); + Command.sendChatMessage("Unknown command. try 'cmds' for a list of commands."); } public static String[] removeElement(String[] input, int indexToDelete) { diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/CommandsCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/CommandsCommand.java index 6ab193933..5b014ff65 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/CommandsCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/CommandsCommand.java @@ -12,7 +12,7 @@ import java.util.Comparator; public class CommandsCommand extends Command { public CommandsCommand() { - super("commands", SyntaxChunk.EMPTY); + super("commands", SyntaxChunk.EMPTY, "cmd", "cmds"); setDescription("Gives you this list of commands"); } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/ConfigCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/ConfigCommand.java index 753173676..33d7bcbd3 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/ConfigCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/ConfigCommand.java @@ -22,7 +22,7 @@ public class ConfigCommand extends Command { super("config", new ChunkBuilder() .append("mode", true, new EnumParser(new String[]{"reload", "save", "path"})) .append("path", true, new DependantParser(0, new DependantParser.Dependency(new String[][]{{"path", "path"}}, ""))) - .build()); + .build(), "cfg"); setDescription("Change where your config is saved or manually save and reload your config"); } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java index 2df9f11cd..b821a0e6e 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/CreditsCommand.java @@ -9,7 +9,7 @@ import me.zeroeightsix.kami.command.Command; public class CreditsCommand extends Command { public CreditsCommand() { - super("credits", null); + super("credits", null, "creds"); setDescription("Prints KAMI Blue's authors and contributors"); } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java index dc439d364..370df5fea 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/EntityStatsCommand.java @@ -15,7 +15,7 @@ import java.math.RoundingMode; public class EntityStatsCommand extends Command { public EntityStatsCommand() { - super("entitystats", null); + super("entitystats", null, "estats", "horestats", "hstats", "vehiclestats"); setDescription("Print the statistics of the entity you're currently riding"); } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java index 184d005e1..83221a297 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/FriendCommand.java @@ -26,7 +26,7 @@ public class FriendCommand extends Command { super("friend", new ChunkBuilder() .append("mode", true, new EnumParser(new String[]{"add", "del"})) .append("name") - .build()); + .build(), "friends", "f"); setDescription("Add someone as your friend!"); } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java index 5f3a39b08..9b3f37c7a 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/HelpCommand.java @@ -34,7 +34,7 @@ public class HelpCommand extends Command { } public HelpCommand() { - super("help", new SyntaxChunk[]{}); + super("help", new SyntaxChunk[]{}, "?"); setDescription("Delivers help on certain subjects. Use &b" + Command.getCommandPrefix() + "help subjects&8 for a list."); } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java index 4fe9ff807..d71ea2d9d 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/PathCommand.java @@ -10,7 +10,7 @@ import net.minecraft.pathfinding.PathPoint; */ public class PathCommand extends Command { public PathCommand() { - super("path", new ChunkBuilder().append("x").append("y").append("z").build()); + super("path", new ChunkBuilder().append("x").append("y").append("z").build(), "pathfind"); setDescription("Pathfinding for AutoWalk"); } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java index 5fcb28941..812ccfb8c 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/SignBookCommand.java @@ -22,7 +22,7 @@ import io.netty.buffer.Unpooled; public class SignBookCommand extends Command { public SignBookCommand() { - super("signbook", new ChunkBuilder().append("name").build()); + super("signbook", new ChunkBuilder().append("name").build(), "book", "sign"); setDescription("Colored book names. #n for a new line and & for color codes"); } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java index 1939b7192..1e8747d7d 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/TeleportCommand.java @@ -26,7 +26,7 @@ public class TeleportCommand extends Command { .append("y", true) .append("z", true) .append("blocks per tp", false) - .build()); + .build(), "tp"); setDescription("Potentia teleport exploit"); } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/ToggleCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/ToggleCommand.java index ac9c531e3..f28d97b5a 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/ToggleCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/ToggleCommand.java @@ -14,7 +14,7 @@ public class ToggleCommand extends Command { public ToggleCommand() { super("toggle", new ChunkBuilder() .append("module", true, new ModuleParser()) - .build()); + .build(), "t"); setDescription("Quickly toggle a module on and off"); } diff --git a/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java b/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java index 6c2b85c90..50167861d 100644 --- a/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java +++ b/src/main/java/me/zeroeightsix/kami/command/commands/VanishCommand.java @@ -14,7 +14,7 @@ public class VanishCommand extends Command { Minecraft mc = Minecraft.getMinecraft(); public VanishCommand() { - super("vanish", null); + super("vanish", null, "entitydesync", "edesync", "entityvanish", "evanish", "ev", "van"); setDescription("Allows you to vanish using an entity"); }