diff options
| author | Cow <cow@volloeko.de> | 2020-07-05 05:42:45 +0200 |
|---|---|---|
| committer | Cow <cow@volloeko.de> | 2020-07-05 05:42:45 +0200 |
| commit | 1b446698398c648b38311975a6cfd54859ea5cfe (patch) | |
| tree | 521ecc4ce9ad968281094eb8c5453dca606931e3 /src/main/java/eu/olli/cowlection/command/TabCompletableCommand.java | |
| parent | edaca1fd41a612c71c526ceb20b89c5dec2d81b3 (diff) | |
| download | Cowlection-1b446698398c648b38311975a6cfd54859ea5cfe.tar.gz Cowlection-1b446698398c648b38311975a6cfd54859ea5cfe.tar.bz2 Cowlection-1b446698398c648b38311975a6cfd54859ea5cfe.zip | |
Renamed mod to Cowlection
Bumped version to 1.8.9-0.7.0
Diffstat (limited to 'src/main/java/eu/olli/cowlection/command/TabCompletableCommand.java')
| -rw-r--r-- | src/main/java/eu/olli/cowlection/command/TabCompletableCommand.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/main/java/eu/olli/cowlection/command/TabCompletableCommand.java b/src/main/java/eu/olli/cowlection/command/TabCompletableCommand.java new file mode 100644 index 0000000..87b799e --- /dev/null +++ b/src/main/java/eu/olli/cowlection/command/TabCompletableCommand.java @@ -0,0 +1,53 @@ +package eu.olli.cowlection.command; + +import eu.olli.cowlection.Cowlection; +import net.minecraft.client.Minecraft; +import net.minecraft.command.CommandBase; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.BlockPos; + +import java.util.List; + +/** + * This is not a real command. Its sole purpose is to add tab completion for usernames to server-side commands that do not provide tab completion for usernames by default. + */ +public class TabCompletableCommand extends CommandBase { + private final Cowlection main; + private final String cmdName; + + public TabCompletableCommand(Cowlection main, String cmdName) { + this.main = main; + this.cmdName = cmdName; + } + + @Override + public String getCommandName() { + return cmdName; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return null; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) throws CommandException { + // send client-command to server + Minecraft.getMinecraft().thePlayer.sendChatMessage("/" + getCommandName() + " " + CommandBase.buildString(args, 0)); + } + + @Override + public int getRequiredPermissionLevel() { + return 0; + } + + @Override + public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { + if (args.length == 1 || args.length == 2) { + // suggest recently 'seen' usernames as tab-completion options. + return getListOfStringsMatchingLastWord(args, main.getPlayerCache().getAllNamesSorted()); + } + return null; + } +} |
