1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Smart tab completion

This commit is contained in:
Akash Aggarwal 2017-11-01 14:59:05 +05:30
parent ed6ba8ca67
commit 9a288debd6

View File

@ -15,11 +15,11 @@ public class SlimefunTabCompleter implements TabCompleter {
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
if (args.length == 1) {
return SlimefunCommand.tabs;
return createReturnList(SlimefunCommand.tabs, args[0]);
}
else if (args.length == 3) {
if (args[0].equalsIgnoreCase("give")) {
return Slimefun.listIDs();
return createReturnList(Slimefun.listIDs(), args[2]);
}
else if (args[0].equalsIgnoreCase("research")) {
List<String> researches = new ArrayList<String>();
@ -27,7 +27,7 @@ public class SlimefunTabCompleter implements TabCompleter {
researches.add(res.getName().toUpperCase().replace(" ", "_"));
}
researches.add("all");
return researches;
return createReturnList(researches, args[2]);
}
else {
return null;
@ -38,4 +38,22 @@ public class SlimefunTabCompleter implements TabCompleter {
}
}
/***
* Returns a sublist from a given list containing items that start with the given string if string is not empty
* @param list The list to process
* @param string The typed string
* @return Sublist if string is not empty
*/
private List<String> createReturnList(List<String> list, String string) {
if (string.equals("")) return list;
List<String> returnList = new ArrayList<>();
for (String item : list) {
if (item.toLowerCase().startsWith(string.toLowerCase())) {
returnList.add(item);
}
}
return returnList;
}
}