mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 21:26:45 +01:00
Tab completion
This commit is contained in:
parent
b45eaf1c90
commit
e24d0c5356
@ -11,6 +11,7 @@ import org.bukkit.command.TabCompleter;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
|
import com.intellectualcrafters.plot.util.StringComparison;
|
||||||
import com.intellectualcrafters.plot.util.bukkit.BukkitUtil;
|
import com.intellectualcrafters.plot.util.bukkit.BukkitUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,8 +47,16 @@ public class BukkitCommand implements CommandExecutor, TabCompleter {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
final List<String> tabOptions = new ArrayList<>();
|
final List<String> tabOptions = new ArrayList<>();
|
||||||
|
final String[] commands = new String[MainCommand.subCommands.size()];
|
||||||
|
for (int x = 0; x < MainCommand.subCommands.size(); x++) {
|
||||||
|
commands[x] = MainCommand.subCommands.get(x).cmd;
|
||||||
|
}
|
||||||
|
String best = new StringComparison(strings[0], commands).getBestMatch();
|
||||||
|
tabOptions.add(best);
|
||||||
|
System.out.print("TAB OPTIONS");
|
||||||
final String arg = strings[0].toLowerCase();
|
final String arg = strings[0].toLowerCase();
|
||||||
for (final SubCommand cmd : MainCommand.subCommands) {
|
for (final SubCommand cmd : MainCommand.subCommands) {
|
||||||
|
if (!cmd.cmd.equalsIgnoreCase(best)) {
|
||||||
if (cmd.permission.hasPermission(player)) {
|
if (cmd.permission.hasPermission(player)) {
|
||||||
if (cmd.cmd.startsWith(arg)) {
|
if (cmd.cmd.startsWith(arg)) {
|
||||||
tabOptions.add(cmd.cmd);
|
tabOptions.add(cmd.cmd);
|
||||||
@ -56,6 +65,7 @@ public class BukkitCommand implements CommandExecutor, TabCompleter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (tabOptions.size() > 0) {
|
if (tabOptions.size() > 0) {
|
||||||
return tabOptions;
|
return tabOptions;
|
||||||
}
|
}
|
||||||
|
@ -78,10 +78,12 @@ public class StringComparison {
|
|||||||
*/
|
*/
|
||||||
public static int compare(final String s1, final String s2) {
|
public static int compare(final String s1, final String s2) {
|
||||||
int distance = StringUtils.getLevenshteinDistance(s1, s2);
|
int distance = StringUtils.getLevenshteinDistance(s1, s2);
|
||||||
if (s2.contains(s1) || s2.contains(s1)) {
|
if (s2.contains(s1)) {
|
||||||
|
distance -= (Math.min(s1.length(), s2.length()));
|
||||||
|
}
|
||||||
|
if (s2.startsWith(s1)) {
|
||||||
distance -= 4;
|
distance -= 4;
|
||||||
}
|
}
|
||||||
// distance += Math.abs(s1.length() - s2.length());
|
|
||||||
return distance;
|
return distance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user