diff options
| author | ThatGravyBoat <thatgravyboat@gmail.com> | 2021-07-07 21:52:37 -0230 |
|---|---|---|
| committer | ThatGravyBoat <thatgravyboat@gmail.com> | 2021-07-07 21:52:37 -0230 |
| commit | 36a66e436ef3c5a3aa2deda0e1538db072ca7f71 (patch) | |
| tree | 32a3a104464da3ef8ee743ecfe241d1320ad25c9 /src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java | |
| parent | 93248d28d6b314b42f6b0d82164975343b214ece (diff) | |
| download | SkyHanni-36a66e436ef3c5a3aa2deda0e1538db072ca7f71.tar.gz SkyHanni-36a66e436ef3c5a3aa2deda0e1538db072ca7f71.tar.bz2 SkyHanni-36a66e436ef3c5a3aa2deda0e1538db072ca7f71.zip | |
Added Alpha Crystal Hollows locations to get ahead of the update and added commands for people to help me with deving.
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java')
| -rw-r--r-- | src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java b/src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java new file mode 100644 index 000000000..7169c6d92 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud/commands/SimpleSubCommand.java @@ -0,0 +1,62 @@ +package com.thatgravyboat.skyblockhud.commands; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.BlockPos; +import org.apache.commons.lang3.ArrayUtils; + +import java.util.List; +import java.util.Set; + +public abstract class SimpleSubCommand extends CommandBase { + + private final String commandName; + private final Set<String> subCommands; + + public SimpleSubCommand(String commandName, Set<String> subCommands) { + this.commandName = commandName; + this.subCommands = subCommands; + } + + @Override + public String getCommandName() { + return commandName; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "/"+commandName; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) { + if (args.length == 0) { + processNoSubCommand(sender); + return; + } + if (subCommands.contains(args[0])){ + processSubCommand(sender, args[0], ArrayUtils.remove(args, 0)); + return; + } + processBadSubCommand(sender, args[0]); + } + + @Override + public boolean canCommandSenderUseCommand(ICommandSender sender) { + return true; + } + + @Override + public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { + if (args.length == 1){ + return getListOfStringsMatchingLastWord(args,subCommands); + } + return null; + } + + abstract void processSubCommand(ICommandSender sender, String subCommand, String[] args); + + abstract void processNoSubCommand(ICommandSender sender); + + public void processBadSubCommand(ICommandSender sender, String subCommand){} +} |
