Implemented bungee commands and tab complete 1.1.1

This commit is contained in:
Dawson Hessler
2021-06-18 11:09:07 -04:00
parent 83bb904c7d
commit 64be97b22c
14 changed files with 107 additions and 22 deletions
@@ -1,6 +1,6 @@
package dev.brighten.antivpn.command;
import dev.brighten.antivpn.AntiVPN;
import java.util.List;
public abstract class Command {
@@ -19,4 +19,6 @@ public abstract class Command {
public abstract Command[] children();
public abstract String execute(CommandExecutor executor, String[] args);
public abstract List<String> tabComplete(CommandExecutor executor, String alias, String[] args);
}
@@ -6,8 +6,8 @@ import dev.brighten.antivpn.command.CommandExecutor;
import dev.brighten.antivpn.utils.StringUtil;
import jdk.nashorn.internal.lookup.Lookup;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
public class AntiVPNCommand extends Command {
@Override
@@ -61,4 +61,15 @@ public class AntiVPNCommand extends Command {
return String.join("\n", messages);
}
@Override
public List<String> tabComplete(CommandExecutor executor, String alias, String[] args) {
if(args.length == 1)
return Arrays.stream(children())
.map(Command::name)
.filter(name -> name.toLowerCase().startsWith(args[0].toLowerCase()))
.collect(Collectors.toList());
return Collections.emptyList();
}
}
@@ -6,7 +6,11 @@ import dev.brighten.antivpn.command.Command;
import dev.brighten.antivpn.command.CommandExecutor;
import dev.brighten.antivpn.utils.StringUtil;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Optional;
import java.util.stream.Collectors;
public class LookupCommand extends Command {
@Override
@@ -78,4 +82,15 @@ public class LookupCommand extends Command {
return "&7Looking up the IP information for player " + player.get().getName() + "...";
}
@Override
public List<String> tabComplete(CommandExecutor executor, String alias, String[] args) {
if(args.length == 1) return AntiVPN.getInstance().getPlayerExecutor().getOnlinePlayers().stream()
.map(APIPlayer::getName)
.filter(name -> name.toLowerCase().startsWith(args[0].toLowerCase()))
.collect(Collectors.toList());
return Collections.emptyList();
}
}