Added tab complete.

This commit is contained in:
Brianna O'Keefe 2019-03-07 19:08:40 -05:00
parent c045e8d08c
commit ed58562595
15 changed files with 175 additions and 26 deletions

View File

@ -19,7 +19,7 @@ public class TabManager implements TabCompleter {
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] strings) {
for (AbstractCommand abstractCommand : commandManager.getCommands()) {
if (abstractCommand.getCommand() != null && abstractCommand.getCommand().equalsIgnoreCase(command.getName().toLowerCase())) {
if (abstractCommand.getCommand() != null && abstractCommand.getCommand().equalsIgnoreCase(command.getName()) && !abstractCommand.hasArgs()) {
if (strings.length == 1) {
List<String> subs = new ArrayList<>();
for (AbstractCommand ac : commandManager.getCommands()) {
@ -29,24 +29,35 @@ public class TabManager implements TabCompleter {
subs.removeIf(s -> !s.toLowerCase().startsWith(strings[0].toLowerCase()));
return subs;
}
} else if (strings.length != 0 && abstractCommand.getParent() != null && abstractCommand.getParent().getCommand().equalsIgnoreCase(command.getName().toLowerCase())) {
} else if (strings.length != 0
&& abstractCommand.getCommand() != null
&& abstractCommand.getCommand().equalsIgnoreCase(command.getName().toLowerCase())) {
String cmd = strings[0];
String cmd2 = strings.length >= 2 ? String.join(" ", strings[0], strings[1]) : null;
for (String cmds : abstractCommand.getSubCommand()) {
if (cmd.equalsIgnoreCase(cmds) || (cmd2 != null && cmd2.equalsIgnoreCase(cmds))) {
List<String> list = abstractCommand.onTab(UltimateModeration.getInstance(), sender, strings);
String str = strings[strings.length - 1];
if (list != null && str != null && str.length() >= 1) {
try {
list.removeIf(s -> !s.toLowerCase().startsWith(str.toLowerCase()));
} catch (UnsupportedOperationException ignored) {
}
if (abstractCommand.hasArgs()) {
return onCommand(abstractCommand, strings, sender);
} else {
for (String cmds : abstractCommand.getSubCommand()) {
if (cmd.equalsIgnoreCase(cmds) || (cmd2 != null && cmd2.equalsIgnoreCase(cmds))) {
return onCommand(abstractCommand, strings, sender);
}
return list;
}
}
}
}
return null;
}
private List<String> onCommand(AbstractCommand abstractCommand, String[] strings, CommandSender sender) {
List<String> list = abstractCommand.onTab(UltimateModeration.getInstance(), sender, strings);
String str = strings[strings.length - 1];
if (list != null && str != null && str.length() >= 1) {
try {
list.removeIf(s -> !s.toLowerCase().startsWith(str.toLowerCase()));
} catch (UnsupportedOperationException ignored) {
}
}
return list;
}
}

View File

@ -10,6 +10,9 @@ import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandBan extends AbstractCommand {
@ -55,6 +58,17 @@ public class CommandBan extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
} else if (args.length == 2) {
return Arrays.asList("1D", "2D", "3D", "4D");
} else if (args.length == 3) {
return Collections.singletonList("For being bad");
}
return null;
}

View File

@ -7,7 +7,9 @@ import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandClearChat extends AbstractCommand {
@ -40,6 +42,9 @@ public class CommandClearChat extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
return Collections.singletonList("force");
}
return null;
}

View File

@ -7,9 +7,7 @@ import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.*;
public class CommandFreeze extends AbstractCommand {
@ -55,6 +53,13 @@ public class CommandFreeze extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
}
return null;
}

View File

@ -6,6 +6,9 @@ import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandInvSee extends AbstractCommand {
@ -32,6 +35,13 @@ public class CommandInvSee extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
}
return null;
}

View File

@ -8,7 +8,11 @@ import com.songoda.ultimatemoderation.utils.Methods;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandKick extends AbstractCommand {
@ -47,6 +51,15 @@ public class CommandKick extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
} else if (args.length == 2) {
return Collections.singletonList("For being bad");
}
return null;
}

View File

@ -8,7 +8,11 @@ import com.songoda.ultimatemoderation.utils.Methods;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandMute extends AbstractCommand {
@ -54,6 +58,17 @@ public class CommandMute extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
} else if (args.length == 2) {
return Arrays.asList("1M", "5M", "15M", "30M");
} else if (args.length == 3) {
return Collections.singletonList("For being bad");
}
return null;
}

View File

@ -8,10 +8,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import java.util.*;
public class CommandRevive extends AbstractCommand {
@ -56,6 +53,13 @@ public class CommandRevive extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
}
return null;
}

View File

@ -9,7 +9,11 @@ import com.songoda.ultimatemoderation.utils.Methods;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandRunTemplate extends AbstractCommand {
@ -51,6 +55,18 @@ public class CommandRunTemplate extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
} else if (args.length == 2) {
List<String> lines = new ArrayList<>();
for (Template template : instance.getTemplateManager().getTemplates().values()) {
lines.add(template.getTemplateName());
}
}
return null;
}

View File

@ -8,10 +8,7 @@ import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.*;
public class CommandSpy extends AbstractCommand {
@ -73,6 +70,13 @@ public class CommandSpy extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
}
return null;
}

View File

@ -8,7 +8,11 @@ import com.songoda.ultimatemoderation.punish.player.PlayerPunishData;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandUnBan extends AbstractCommand {
@ -39,6 +43,13 @@ public class CommandUnBan extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
}
return null;
}

View File

@ -7,7 +7,11 @@ import com.songoda.ultimatemoderation.punish.player.PlayerPunishData;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandUnMute extends AbstractCommand {
@ -38,6 +42,13 @@ public class CommandUnMute extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
}
return null;
}

View File

@ -12,9 +12,7 @@ import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.*;
public class CommandVanish extends AbstractCommand {
@ -90,6 +88,13 @@ public class CommandVanish extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
}
return null;
}

View File

@ -6,6 +6,9 @@ import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandViewEnderChest extends AbstractCommand {
@ -33,6 +36,13 @@ public class CommandViewEnderChest extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
}
return null;
}

View File

@ -8,7 +8,11 @@ import com.songoda.ultimatemoderation.utils.Methods;
import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CommandWarn extends AbstractCommand {
@ -54,6 +58,17 @@ public class CommandWarn extends AbstractCommand {
@Override
protected List<String> onTab(UltimateModeration instance, CommandSender sender, String... args) {
if (args.length == 1) {
List<String> players = new ArrayList<>();
for (Player player : Bukkit.getOnlinePlayers()) {
players.add(player.getName());
}
return players;
} else if (args.length == 2) {
return Arrays.asList("1D", "2D", "3D", "4D");
} else if (args.length == 3) {
return Collections.singletonList("For being bad");
}
return null;
}