diff --git a/core/src/main/java/me/blackvein/quests/commands/QuestsSubCommand.java b/core/src/main/java/me/blackvein/quests/commands/QuestsSubCommand.java index 71bc26d53..589c4343c 100644 --- a/core/src/main/java/me/blackvein/quests/commands/QuestsSubCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/QuestsSubCommand.java @@ -37,6 +37,8 @@ public abstract class QuestsSubCommand { public abstract String getSyntax(); + public abstract int getMaxArguments(); + public abstract void execute(CommandSender commandSender, String[] args); public List tabComplete(CommandSender commandSender, String[] args) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/QuestadminCommandHandler.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/QuestadminCommandHandler.java index 8f6f6902a..cf81e84e2 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/QuestadminCommandHandler.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/QuestadminCommandHandler.java @@ -69,6 +69,9 @@ public class QuestadminCommandHandler { } for (Map.Entry cmd : subCommands.entrySet()) { if (args[0].equalsIgnoreCase(cmd.getKey()) || args[0].equalsIgnoreCase(cmd.getValue().getNameI18N())) { + if (args.length < cmd.getValue().getMaxArguments()) { + cs.sendMessage(getAdminCommandUsage(args[0])); + } cmd.getValue().execute(cs, args); return true; } @@ -179,4 +182,9 @@ public class QuestadminCommandHandler { + (translateSubCommands ? Lang.get("COMMAND_QUESTADMIN_RELOAD") : "reload") + ChatColor.RED)); } } + + private String getAdminCommandUsage(final String cmd) { + return ChatColor.RED + Lang.get("usage") + ": " + ChatColor.YELLOW + "/questadmin " + + Lang.get(Lang.getKeyFromPrefix("COMMAND_QUESTADMIN_", cmd) + "_HELP"); + } } diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminFinishCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminFinishCommand.java index a0a07019c..16dd54a30 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminFinishCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminFinishCommand.java @@ -61,6 +61,11 @@ public class QuestadminFinishCommand extends QuestsSubCommand { return "/questadmin finish"; } + @Override + public int getMaxArguments() { + return 3; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.finish")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminGiveCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminGiveCommand.java index 911d1d34c..c8831dfdd 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminGiveCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminGiveCommand.java @@ -61,6 +61,11 @@ public class QuestadminGiveCommand extends QuestsSubCommand { return "/questadmin give"; } + @Override + public int getMaxArguments() { + return 3; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.give")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminGivepointsCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminGivepointsCommand.java index e1ffabdae..77a588417 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminGivepointsCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminGivepointsCommand.java @@ -59,6 +59,11 @@ public class QuestadminGivepointsCommand extends QuestsSubCommand { return "/questadmin givepoints"; } + @Override + public int getMaxArguments() { + return 3; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.givepoints")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminNextstageCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminNextstageCommand.java index 63705b5e6..b4f6a3ca3 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminNextstageCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminNextstageCommand.java @@ -61,6 +61,11 @@ public class QuestadminNextstageCommand extends QuestsSubCommand { return "/questadmin nextstage"; } + @Override + public int getMaxArguments() { + return 3; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.nextstage")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminPointsCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminPointsCommand.java index 2fc910b8d..f32ed3d50 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminPointsCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminPointsCommand.java @@ -59,6 +59,11 @@ public class QuestadminPointsCommand extends QuestsSubCommand { return "/questadmin points"; } + @Override + public int getMaxArguments() { + return 3; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.points")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminPointsallCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminPointsallCommand.java index 3bf16f22c..d181db0ef 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminPointsallCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminPointsallCommand.java @@ -59,6 +59,11 @@ public class QuestadminPointsallCommand extends QuestsSubCommand { return "/questadmin pointsall"; } + @Override + public int getMaxArguments() { + return 2; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.pointsall")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminQuitCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminQuitCommand.java index 5292bb011..7f2f682ef 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminQuitCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminQuitCommand.java @@ -61,6 +61,11 @@ public class QuestadminQuitCommand extends QuestsSubCommand { return "/questadmin quit"; } + @Override + public int getMaxArguments() { + return 3; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.quit")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminReloadCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminReloadCommand.java index 2f9adb89b..d223b9a6b 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminReloadCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminReloadCommand.java @@ -52,6 +52,11 @@ public class QuestadminReloadCommand extends QuestsSubCommand { return "/questadmin reload"; } + @Override + public int getMaxArguments() { + return 1; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.reload")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminRemoveCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminRemoveCommand.java index 928cbc5f4..7a9de27ee 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminRemoveCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminRemoveCommand.java @@ -60,6 +60,11 @@ public class QuestadminRemoveCommand extends QuestsSubCommand { return "/questadmin remove"; } + @Override + public int getMaxArguments() { + return 3; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") && cs.hasPermission("quests.admin.remove")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminResetCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminResetCommand.java index c704f4fa1..b077409ef 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminResetCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminResetCommand.java @@ -61,6 +61,11 @@ public class QuestadminResetCommand extends QuestsSubCommand { return "/questadmin reset"; } + @Override + public int getMaxArguments() { + return 2; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.reset")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminSetstageCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminSetstageCommand.java index 3ce2c1649..987753a3d 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminSetstageCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminSetstageCommand.java @@ -61,6 +61,11 @@ public class QuestadminSetstageCommand extends QuestsSubCommand { return "/questadmin setstage"; } + @Override + public int getMaxArguments() { + return 4; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.setstage")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminStatsCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminStatsCommand.java index b04834aaa..47f626fa3 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminStatsCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminStatsCommand.java @@ -60,6 +60,11 @@ public class QuestadminStatsCommand extends QuestsSubCommand { return "/questadmin stats"; } + @Override + public int getMaxArguments() { + return 2; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") && cs.hasPermission("quests.admin.stats")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminTakepointsCommand.java b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminTakepointsCommand.java index 711eb5cd5..7a8522093 100644 --- a/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminTakepointsCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/questadmin/subcommands/QuestadminTakepointsCommand.java @@ -59,6 +59,11 @@ public class QuestadminTakepointsCommand extends QuestsSubCommand { return "/questadmin takepoints"; } + @Override + public int getMaxArguments() { + return 3; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.admin.*") || cs.hasPermission("quests.admin.takepoints")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/QuestsCommandHandler.java b/core/src/main/java/me/blackvein/quests/commands/quests/QuestsCommandHandler.java index 5cb4471d3..be475e157 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/QuestsCommandHandler.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/QuestsCommandHandler.java @@ -64,6 +64,9 @@ public class QuestsCommandHandler { } for (Map.Entry cmd : subCommands.entrySet()) { if (args[0].equalsIgnoreCase(cmd.getKey()) || args[0].equalsIgnoreCase(cmd.getValue().getNameI18N())) { + if (args.length < cmd.getValue().getMaxArguments()) { + cs.sendMessage(getCommandUsage(args[0])); + } cmd.getValue().execute(cs, args); return true; } @@ -114,4 +117,9 @@ public class QuestsCommandHandler { + Lang.get("COMMAND_QUESTADMIN_HELP")); } } + + private String getCommandUsage(final String cmd) { + return ChatColor.RED + Lang.get("usage") + ": " + ChatColor.YELLOW + "/quests " + + Lang.get(Lang.getKeyFromPrefix("COMMAND_", cmd) + "_HELP"); + } } diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsActionsCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsActionsCommand.java index 71d3bed4f..72e1ed5ff 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsActionsCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsActionsCommand.java @@ -52,6 +52,11 @@ public class QuestsActionsCommand extends QuestsSubCommand { return "/quests actions"; } + @Override + public int getMaxArguments() { + return 1; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.events.*") || cs.hasPermission("quests.actions.*") diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsConditionsCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsConditionsCommand.java index 0b4c52554..dec3bf94c 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsConditionsCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsConditionsCommand.java @@ -52,6 +52,11 @@ public class QuestsConditionsCommand extends QuestsSubCommand { return "/quests conditions"; } + @Override + public int getMaxArguments() { + return 1; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.conditions.*") || cs.hasPermission("quests.conditions.editor") diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsEditorCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsEditorCommand.java index d301d177a..e10207cac 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsEditorCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsEditorCommand.java @@ -56,6 +56,11 @@ public class QuestsEditorCommand extends QuestsSubCommand { return "/quests editor"; } + @Override + public int getMaxArguments() { + return 1; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.editor.*") || cs.hasPermission("quests.editor.editor") diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsInfoCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsInfoCommand.java index 053695a6e..10dcfde8d 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsInfoCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsInfoCommand.java @@ -50,6 +50,11 @@ public class QuestsInfoCommand extends QuestsSubCommand { return "/quests info"; } + @Override + public int getMaxArguments() { + return 1; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission("quests.info")) { diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsJournalCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsJournalCommand.java index eb384afed..c38d33472 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsJournalCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsJournalCommand.java @@ -58,6 +58,11 @@ public class QuestsJournalCommand extends QuestsSubCommand { return "/quests journal"; } + @Override + public int getMaxArguments() { + return 1; + } + @SuppressWarnings("deprecation") @Override public void execute(CommandSender cs, String[] args) { diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsListCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsListCommand.java index a716b3602..b9388bfe8 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsListCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsListCommand.java @@ -55,6 +55,11 @@ public class QuestsListCommand extends QuestsSubCommand { return "/quests list"; } + @Override + public int getMaxArguments() { + return 1; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission(getPermission())) { diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsQuitCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsQuitCommand.java index a255e4715..ae519be95 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsQuitCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsQuitCommand.java @@ -58,6 +58,11 @@ public class QuestsQuitCommand extends QuestsSubCommand { return "/quests quit"; } + @Override + public int getMaxArguments() { + return 2; + } + @Override public void execute(CommandSender cs, String[] args) { if (assertNonPlayer(cs)) { diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsStatsCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsStatsCommand.java index 0f8baa2ac..2a0a04c7a 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsStatsCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsStatsCommand.java @@ -56,6 +56,11 @@ public class QuestsStatsCommand extends QuestsSubCommand { return "/quests stats"; } + @Override + public int getMaxArguments() { + return 1; + } + @Override public void execute(CommandSender cs, String[] args) { if (assertNonPlayer(cs)) { diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsTakeCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsTakeCommand.java index 69ed3691e..eac581084 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsTakeCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsTakeCommand.java @@ -58,6 +58,11 @@ public class QuestsTakeCommand extends QuestsSubCommand { return "/quests take"; } + @Override + public int getMaxArguments() { + return 2; + } + @Override public void execute(CommandSender cs, String[] args) { if (assertNonPlayer(cs)) { diff --git a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsTopCommand.java b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsTopCommand.java index 8b539f2dc..6cb33de0e 100644 --- a/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsTopCommand.java +++ b/core/src/main/java/me/blackvein/quests/commands/quests/subcommands/QuestsTopCommand.java @@ -61,6 +61,11 @@ public class QuestsTopCommand extends QuestsSubCommand { return "/quests top"; } + @Override + public int getMaxArguments() { + return 2; + } + @Override public void execute(CommandSender cs, String[] args) { if (cs.hasPermission(getPermission())) { diff --git a/core/src/main/java/me/blackvein/quests/listeners/CommandManager.java b/core/src/main/java/me/blackvein/quests/listeners/CommandManager.java index cb5662816..87fb1a698 100644 --- a/core/src/main/java/me/blackvein/quests/listeners/CommandManager.java +++ b/core/src/main/java/me/blackvein/quests/listeners/CommandManager.java @@ -25,18 +25,13 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.HashMap; import java.util.List; -import java.util.Map; public class CommandManager implements TabExecutor { private final Quests plugin; - private final Map commandSizes = new HashMap<>(); - private final Map adminCommandSizes = new HashMap<>(); public CommandManager(final Quests plugin) { this.plugin = plugin; - init(); } @Override @@ -52,16 +47,11 @@ public class CommandManager implements TabExecutor { return true; } } - final String error = validateCommand(cmd.getName(), args); - if (error != null) { - cs.sendMessage(error); - return true; - } if (cmd.getName().equalsIgnoreCase("quest")) { return new QuestCommandHandler(plugin).check(cs, args); } else if (cmd.getName().equalsIgnoreCase("quests")) { return new QuestsCommandHandler(plugin).check(cs, args); - } else if (cmd.getName().equalsIgnoreCase("questadmin")) { + } else if (cmd.getName().equalsIgnoreCase("questadmin") || cmd.getName().equalsIgnoreCase("questsadmin")) { return new QuestadminCommandHandler(plugin).check(cs, args); } return false; @@ -82,104 +72,4 @@ public class CommandManager implements TabExecutor { } return null; } - - private void init() { - // [] - required - // {} - optional - if (plugin.getSettings().canTranslateSubCommands()) { - commandSizes.put(Lang.get("COMMAND_LIST"), 1); // list {page} - commandSizes.put(Lang.get("COMMAND_TAKE"), 2); // take [quest] - commandSizes.put(Lang.get("COMMAND_QUIT"), 2); // quit [quest] - commandSizes.put(Lang.get("COMMAND_EDITOR"), 1); // editor - commandSizes.put(Lang.get("COMMAND_EVENTS_EDITOR"), 1); // actions - commandSizes.put(Lang.get("COMMAND_CONDITIONS_EDITOR"), 1); // conditions - commandSizes.put(Lang.get("COMMAND_STATS"), 1); // stats - commandSizes.put(Lang.get("COMMAND_TOP"), 2); // top {number} - commandSizes.put(Lang.get("COMMAND_INFO"), 1); // info - commandSizes.put(Lang.get("COMMAND_JOURNAL"), 1); // journal - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_STATS"), 2); // stats [player] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_GIVE"), 3); // give [player] [quest] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_QUIT"), 3); // quit [player] [quest] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_REMOVE"), 3); // remove [player] [quest] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_POINTS"), 3); // points [player] [amount] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_TAKEPOINTS"), 3); // takepoints [player] [amount] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_GIVEPOINTS"), 3); // givepoints [player] [amount] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_POINTSALL"), 2); // pointsall [amount] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_FINISH"), 3); // finish [player] [quest] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_NEXTSTAGE"), 3); // nextstage [player] [quest] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_SETSTAGE"), 4); // setstage [player] [quest] [stage] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_RESET"), 2); // reset [player] - adminCommandSizes.put(Lang.get("COMMAND_QUESTADMIN_RELOAD"), 1); // reload - } else { - commandSizes.put("list", 1); // list {page} - commandSizes.put("take", 2); // take [quest] - commandSizes.put("quit", 2); // quit [quest] - commandSizes.put("editor", 1); // editor - commandSizes.put("actions", 1); // actions - commandSizes.put("events", 1); // LEGACY - events - commandSizes.put("conditions", 1); // conditions - commandSizes.put("stats", 1); // stats - commandSizes.put("top", 2); // top [number] - commandSizes.put("info", 1); // info - commandSizes.put("journal", 1); // journal - adminCommandSizes.put("stats", 2); // stats [player] - adminCommandSizes.put("give", 3); // give [player] [quest] - adminCommandSizes.put("quit", 3); // quit [player] [quest] - adminCommandSizes.put("remove", 3); // remove [player] [quest] - adminCommandSizes.put("points", 3); // points [player] [amount] - adminCommandSizes.put("takepoints", 3); // takepoints [player] [amount] - adminCommandSizes.put("givepoints", 3); // givepoints [player] [amount] - adminCommandSizes.put("pointsall", 2); // pointsall [amount] - adminCommandSizes.put("finish", 3); // finish [player] [quest] - adminCommandSizes.put("nextstage", 3); // nextstage [player] [quest] - adminCommandSizes.put("setstage", 4); // setstage [player] [quest] [stage] - adminCommandSizes.put("reset", 2); // reset [player] - adminCommandSizes.put("reload", 1); // reload - } - } - - public String validateCommand(final String cmd, final String[] args) { - if (cmd.equalsIgnoreCase("quest") || args.length == 0) { - return null; - } - if (cmd.equalsIgnoreCase("quests")) { - String subCmd = args[0].toLowerCase(); - if (subCmd.equals("action")) { - subCmd = "actions"; - } else if (subCmd.equals("condition")) { - subCmd = "conditions"; - } - if (commandSizes.containsKey(subCmd)) { - final int min = commandSizes.get(subCmd); - if (args.length < min) { - return getQuestsCommandUsage(subCmd); - } else { - return null; - } - } - return ChatColor.YELLOW + Lang.get("questsUnknownCommand"); - } else if (cmd.equalsIgnoreCase("questsadmin") || cmd.equalsIgnoreCase("questadmin")) { - final String subCmd = args[0].toLowerCase(); - if (adminCommandSizes.containsKey(subCmd)) { - final int min = adminCommandSizes.get(subCmd); - if (args.length < min) { - return getQuestadminCommandUsage(subCmd); - } else { - return null; - } - } - return ChatColor.YELLOW + Lang.get("questsUnknownAdminCommand"); - } - return "NULL"; - } - - public String getQuestsCommandUsage(final String cmd) { - return ChatColor.RED + Lang.get("usage") + ": " + ChatColor.YELLOW + "/quests " - + Lang.get(Lang.getKeyFromPrefix("COMMAND_", cmd) + "_HELP"); - } - - public String getQuestadminCommandUsage(final String cmd) { - return ChatColor.RED + Lang.get("usage") + ": " + ChatColor.YELLOW + "/questadmin " - + Lang.get(Lang.getKeyFromPrefix("COMMAND_QUESTADMIN_", cmd) + "_HELP"); - } }