mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 11:45:51 +00:00
Smart tab completion
This commit is contained in:
parent
ed6ba8ca67
commit
9a288debd6
@ -15,11 +15,11 @@ public class SlimefunTabCompleter implements TabCompleter {
|
|||||||
@Override
|
@Override
|
||||||
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
|
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
return SlimefunCommand.tabs;
|
return createReturnList(SlimefunCommand.tabs, args[0]);
|
||||||
}
|
}
|
||||||
else if (args.length == 3) {
|
else if (args.length == 3) {
|
||||||
if (args[0].equalsIgnoreCase("give")) {
|
if (args[0].equalsIgnoreCase("give")) {
|
||||||
return Slimefun.listIDs();
|
return createReturnList(Slimefun.listIDs(), args[2]);
|
||||||
}
|
}
|
||||||
else if (args[0].equalsIgnoreCase("research")) {
|
else if (args[0].equalsIgnoreCase("research")) {
|
||||||
List<String> researches = new ArrayList<String>();
|
List<String> researches = new ArrayList<String>();
|
||||||
@ -27,7 +27,7 @@ public class SlimefunTabCompleter implements TabCompleter {
|
|||||||
researches.add(res.getName().toUpperCase().replace(" ", "_"));
|
researches.add(res.getName().toUpperCase().replace(" ", "_"));
|
||||||
}
|
}
|
||||||
researches.add("all");
|
researches.add("all");
|
||||||
return researches;
|
return createReturnList(researches, args[2]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return null;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user