1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-21 04:05:48 +00:00
Slimefun4/src/me/mrCookieSlime/Slimefun/commands/SlimefunTabCompleter.java

67 lines
1.8 KiB
Java
Raw Normal View History

2019-08-25 20:39:59 +00:00
package me.mrCookieSlime.Slimefun.commands;
2016-04-14 16:24:03 +00:00
import java.util.ArrayList;
import java.util.List;
import me.mrCookieSlime.Slimefun.Objects.Research;
import me.mrCookieSlime.Slimefun.api.Slimefun;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
public class SlimefunTabCompleter implements TabCompleter {
2019-09-01 09:42:03 +00:00
private final SlimefunCommand command;
2019-09-01 09:42:03 +00:00
public SlimefunTabCompleter(SlimefunCommand command) {
this.command = command;
}
2016-04-14 16:24:03 +00:00
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
if (args.length == 1) {
2019-09-01 09:42:03 +00:00
return createReturnList(command.getTabArguments(), args[0]);
2016-04-14 16:24:03 +00:00
}
else if (args.length == 3) {
if (args[0].equalsIgnoreCase("give")) {
2017-11-01 09:29:05 +00:00
return createReturnList(Slimefun.listIDs(), args[2]);
2016-04-14 16:24:03 +00:00
}
else if (args[0].equalsIgnoreCase("research")) {
2019-08-28 08:59:20 +00:00
List<String> researches = new ArrayList<>();
for (Research res : Research.list()) {
2016-04-14 16:24:03 +00:00
researches.add(res.getName().toUpperCase().replace(" ", "_"));
}
researches.add("all");
researches.add("reset");
2017-11-01 09:29:05 +00:00
return createReturnList(researches, args[2]);
2016-04-14 16:24:03 +00:00
}
else {
return null;
}
}
else {
return null;
}
}
2017-11-01 09:29:05 +00:00
/***
* 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;
}
2016-04-14 16:24:03 +00:00
}