Add tab completion

This commit is contained in:
Luck
2016-07-17 13:18:43 +01:00
Unverified
parent 874a90253b
commit d33a3ffcea
35 changed files with 348 additions and 24 deletions
@@ -5,11 +5,12 @@ import me.lucko.luckperms.commands.Sender;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.api.plugin.TabExecutor;
import java.lang.ref.WeakReference;
import java.util.Arrays;
class MainCommand extends Command {
class MainCommand extends Command implements TabExecutor {
private final CommandManager manager;
public MainCommand(CommandManager manager) {
@@ -20,8 +21,18 @@ class MainCommand extends Command {
@Override
public void execute(CommandSender sender, String[] args) {
final WeakReference<CommandSender> cs = new WeakReference<>(sender);
manager.onCommand(new Sender() {
manager.onCommand(makeSender(sender), Arrays.asList(args));
}
@Override
public Iterable<String> onTabComplete(CommandSender sender, String[] args) {
return manager.onTabComplete(makeSender(sender), Arrays.asList(args));
}
private static Sender makeSender(CommandSender sender) {
return new Sender() {
final WeakReference<CommandSender> cs = new WeakReference<>(sender);
@Override
public void sendMessage(String s) {
final CommandSender c = cs.get();
@@ -35,6 +46,6 @@ class MainCommand extends Command {
final CommandSender c = cs.get();
return c != null && c.hasPermission(node);
}
}, Arrays.asList(args));
};
}
}