Implement basic tab-completion
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Bea 2022-10-24 22:05:49 +02:00
parent 5b5faa6b5f
commit c898a2341d
4 changed files with 51 additions and 0 deletions

View File

@ -5,6 +5,7 @@ import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import wtf.beatrice.nounspicker.commands.NounsCommand;
import wtf.beatrice.nounspicker.objects.PAPIManager;
import wtf.beatrice.nounspicker.objects.TabCompletion;
import wtf.beatrice.nounspicker.utils.Cache;
import wtf.beatrice.nounspicker.utils.ConsoleLogger;
import wtf.beatrice.nounspicker.utils.DatabaseManager;
@ -39,6 +40,7 @@ public class NounsPicker extends JavaPlugin
logger.log("Registering commands...");
getCommand("nouns").setExecutor(new NounsCommand(this));
getCommand("nouns").setTabCompleter(new TabCompletion());
logger.log("Commands registered!");
logger.log("Checking files...");

View File

@ -0,0 +1,37 @@
package wtf.beatrice.nounspicker.objects;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.util.StringUtil;
import java.util.ArrayList;
import java.util.List;
public class TabCompletion implements org.bukkit.command.TabCompleter
{
private final List<String> mainSubCommands = new ArrayList<>(){{
add("set");
add("create");
add("delete");
add("update");
}};
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args) {
List<String> completions = new ArrayList<>();
if(args.length == 0) return null;
String mainArg = args[0].toLowerCase();
if(args.length == 1)
{
StringUtil.copyPartialMatches(mainArg, mainSubCommands, completions);
}
return completions;
}
}

View File

@ -3,10 +3,14 @@ package wtf.beatrice.nounspicker.utils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class Cache
{
public static DatabaseManager dbManager;
public static List<String> pronouns = new ArrayList<>();
}

View File

@ -146,6 +146,11 @@ public class DatabaseManager
pStatement.setString(2, format);
pStatement.setInt(3, pronounId);
pStatement.executeUpdate();
// add to cache
Cache.pronouns.add(pronoun);
// announce success
return true;
} catch (SQLException e)
{
@ -209,6 +214,9 @@ public class DatabaseManager
}
}
// remove from cache
Cache.pronouns.remove(pronoun);
// announce success
return true;
}