diff --git a/src/com/dre/brewery/P.java b/src/com/dre/brewery/P.java index 8f673f1..928672c 100644 --- a/src/com/dre/brewery/P.java +++ b/src/com/dre/brewery/P.java @@ -108,6 +108,7 @@ public class P extends JavaPlugin { inventoryListener = new InventoryListener(); worldListener = new WorldListener(); getCommand("Brewery").setExecutor(new CommandListener()); + getCommand("Brewery").setTabCompleter(new TabListener()); p.getServer().getPluginManager().registerEvents(blockListener, p); p.getServer().getPluginManager().registerEvents(playerListener, p); diff --git a/src/com/dre/brewery/listeners/CommandListener.java b/src/com/dre/brewery/listeners/CommandListener.java index 2b1c330..df6f7dd 100644 --- a/src/com/dre/brewery/listeners/CommandListener.java +++ b/src/com/dre/brewery/listeners/CommandListener.java @@ -20,7 +20,6 @@ public class CommandListener implements CommandExecutor { public P p = P.p; - // TODO add command complete @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { diff --git a/src/com/dre/brewery/listeners/TabListener.java b/src/com/dre/brewery/listeners/TabListener.java new file mode 100644 index 0000000..0e8f57b --- /dev/null +++ b/src/com/dre/brewery/listeners/TabListener.java @@ -0,0 +1,47 @@ +package com.dre.brewery.listeners; + + +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TabListener implements TabCompleter { + + private static final Map> completions = new HashMap<>(); + private static final List topCompletions = new ArrayList<>(2); + + static { + completions.put("", Arrays.asList("info", "unlabel")); + topCompletions.add("brew"); + //topCompletions.add("brewery"); + } + + + + @Override + public List onTabComplete(CommandSender commandSender, Command cmd, String command, String[] args) { + if (args.length == 0) { + return topCompletions; + } else if (args.length == 1) { + for (Map.Entry> entry : completions.entrySet()) { + List list = new ArrayList<>(); + for (String comp : entry.getValue()) { + if (comp.startsWith(args[0])) { + list.add(comp); + } + } + if (list.isEmpty()) { + return null; + } + return list; + } + } + return null; + } +}