Made help argument optionable (to support the NotSetup)

This commit is contained in:
Poslovitch 2017-05-31 17:06:10 +02:00
parent bafff8cdee
commit 0980ab8358
3 changed files with 51 additions and 64 deletions

View File

@ -7,7 +7,7 @@ import us.tastybento.bskyblock.BSkyBlock;
public class AdminCommand extends BSBCommand{
public AdminCommand(BSkyBlock plugin) {
super(plugin);
super(plugin, true);
// TODO Auto-generated constructor stub
}

View File

@ -13,7 +13,6 @@ import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import us.tastybento.bskyblock.BSkyBlock;
import us.tastybento.bskyblock.util.Util;
/**
* Abstract class that handles commands and tabs. It makes the commands code modular
@ -23,11 +22,14 @@ import us.tastybento.bskyblock.util.Util;
*/
public abstract class BSBCommand implements CommandExecutor, TabCompleter{
private Map<String, CommandArgumentHandler> arguments;
private boolean help;
protected BSBCommand(BSkyBlock plugin){
protected BSBCommand(BSkyBlock plugin, boolean help){
arguments = new HashMap<String, CommandArgumentHandler>();
this.help = help;
// Automatically register the help argument
// Register a help argument if needed
if(help){
registerArgument(new String[] {"help", "?"}, new CommandArgumentHandler() {
@Override
@ -37,19 +39,7 @@ public abstract class BSBCommand implements CommandExecutor, TabCompleter{
@Override
public void onExecute(CommandSender sender, String label, String[] args) {
// Generate help
String help = plugin.getLocale(sender).get("help.header") + "\n";
for(String argument : arguments.keySet()){
CommandArgumentHandler cah = getArgumentHandler(argument);
if(cah.canExecute(sender, label, args) && cah.getHelp(sender, label) != null) {
help += getHelpMessage(sender, label, argument, cah.getHelp(sender, label)) + "\n";
}
}
//TODO: multiple pages
Util.sendMessage(sender, help);
// TODO send help
}
@Override
@ -63,6 +53,7 @@ public abstract class BSBCommand implements CommandExecutor, TabCompleter{
}
});
}
// Register other arguments
setup();
@ -93,12 +84,12 @@ public abstract class BSBCommand implements CommandExecutor, TabCompleter{
public boolean onCommand(CommandSender sender, Command command, String label, String[] args){
if(this.canExecute(sender, label)){
if(args.length >= 1){
if(arguments.get(args[0]) != null){
if(arguments.get(args[0]).canExecute(sender, label, args)){
if(arguments.containsKey(args[0]) && arguments.get(args[0]).canExecute(sender, label, args)){
arguments.get(args[0]).onExecute(sender, label, args);
}
} else if(help) {
arguments.get("?").onExecute(sender, label, args);
} else {
arguments.get("help").onExecute(sender, label, args);
this.onExecuteDefault(sender, label, args);
}
} else {
this.onExecuteDefault(sender, label, args);
@ -177,8 +168,4 @@ public abstract class BSBCommand implements CommandExecutor, TabCompleter{
public CommandArgumentHandler getArgumentHandler(String argument){
return arguments.get(argument);
}
public String getHelpMessage(CommandSender sender, String label, String argument, String[] helpData){
return ""; //TODO help
}
}

View File

@ -22,7 +22,7 @@ public class IslandCommand extends BSBCommand{
private BSkyBlock plugin;
public IslandCommand(BSkyBlock plugin) {
super(plugin);
super(plugin, true);
this.plugin = plugin;
}
@ -310,7 +310,7 @@ public class IslandCommand extends BSBCommand{
// Explain command
if(args.length == 1){
Util.sendMessage(player, getHelpMessage(player, label, args[0], getHelp(sender, label)));
//TODO Util.sendMessage(player, getHelpMessage(player, label, args[0], getHelp(sender, label)));
return;
}