aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/eu/olli/cowlection/command/TabCompletableCommand.java
diff options
context:
space:
mode:
authorCow <cow@volloeko.de>2020-07-05 05:42:45 +0200
committerCow <cow@volloeko.de>2020-07-05 05:42:45 +0200
commit1b446698398c648b38311975a6cfd54859ea5cfe (patch)
tree521ecc4ce9ad968281094eb8c5453dca606931e3 /src/main/java/eu/olli/cowlection/command/TabCompletableCommand.java
parentedaca1fd41a612c71c526ceb20b89c5dec2d81b3 (diff)
downloadCowlection-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.java53
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;
+ }
+}