Explorar o código

Adjust how we get the usage strings for the /skillname commands

GJ %!s(int64=12) %!d(string=hai) anos
pai
achega
0de7e22408

+ 2 - 0
src/main/java/com/gmail/nossr50/commands/CommandRegistrationHelper.java

@@ -59,6 +59,8 @@ public final class CommandRegistrationHelper {
             command.setDescription(LocaleLoader.getString("Commands.Description.Skill", Misc.getCapitalized(localizedName)));
             command.setPermission("mcmmo.commands." + commandName);
             command.setPermissionMessage(permissionsMessage);
+            command.setUsage(LocaleLoader.getString("Commands.Usage.0", localizedName));
+            command.setUsage(command.getUsage() + "\n" + LocaleLoader.getString("Commands.Usage.2", localizedName, "?", "[" + LocaleLoader.getString("Commands.Usage.Page") + "]"));
 
             switch (skill) {
             case ACROBATICS:

+ 1 - 3
src/main/java/com/gmail/nossr50/skills/SkillCommand.java

@@ -74,9 +74,7 @@ public abstract class SkillCommand implements CommandExecutor {
 
         statsDisplay();
 
-        SkillGuide.grabGuidePageForSkill(skill, player, args);
-
-        return true;
+        return SkillGuide.grabGuidePageForSkill(skill, player, args);
     }
 
     protected String calculateRank(int maxLevel, int rankChangeLevel) {

+ 38 - 27
src/main/java/com/gmail/nossr50/skills/SkillGuide.java

@@ -55,44 +55,55 @@ public final class SkillGuide {
         }
     }
 
-    public static void grabGuidePageForSkill(SkillType skilltype, Player player, String[] args) {
+    public static boolean grabGuidePageForSkill(SkillType skilltype, Player player, String[] args) {
         String skillName = skilltype.toString();
         String capitalized = Misc.getCapitalized(skillName);
         String localized = SkillTools.localizeSkillName(skilltype);
         player.sendMessage(LocaleLoader.getString("Guides.Available", localized, localized.toLowerCase()));
 
-        if (args.length >= 1 && args[0].equals("?")) {
-            String address = "Guides." + capitalized;
+        String address = "Guides." + capitalized;
+
+        switch (args.length) {
+        case 0:
+            // We have to specify this, otherwise we get the usage string every time we call /skillname...
+            return true;
+
+        case 1:
+            if (!args[0].equals("?")) {
+                return false;
+            }
+
+            SkillGuide.clearChat(player);
+
+            for (String target : SkillGuide.grabPageContents(localized, address, 1)) {
+                player.sendMessage(target);
+            }
+
+            return true;
+
+        case 2:
             int totalPages = SkillGuide.getTotalPageNumber(address);
 
-            if (args.length == 1) {
-                SkillGuide.clearChat(player);
+            if (!Misc.isInt(args[1])) {
+                player.sendMessage(LocaleLoader.getString("Guides.Page.Invalid"));
+                return true;
+            }
 
-                for (String target : SkillGuide.grabPageContents(localized, address, 1)) {
-                    player.sendMessage(target);
-                }
+            if (Misc.getInt(args[1]) > totalPages) {
+                player.sendMessage(LocaleLoader.getString("Guides.Page.OutOfRange", totalPages));
+                return true;
             }
-            else {
-                if (!Misc.isInt(args[1])) {
-                    player.sendMessage(LocaleLoader.getString("Guides.Page.Invalid"));
-                }
-
-                if (Misc.getInt(args[1]) <= totalPages) {
-                    SkillGuide.clearChat(player);
-
-                    for (String target : SkillGuide.grabPageContents(localized, address, Misc.getInt(args[1]))) {
-                        player.sendMessage(target);
-                    }
-                }
-                else {
-                    player.sendMessage(LocaleLoader.getString("Guides.Page.OutOfRange", totalPages));
-                }
+
+            SkillGuide.clearChat(player);
+
+            for (String target : SkillGuide.grabPageContents(localized, address, Misc.getInt(args[1]))) {
+                player.sendMessage(target);
             }
-        }
 
-        // We have to specify this, else we get the usage string every time we call /skillname...
-        else if (args.length != 0) {
-            player.sendMessage(LocaleLoader.getString("Guides.Usage", localized.toLowerCase()));
+            return true;
+
+        default:
+            return false;
         }
     }
 }