浏览代码

Split the locale skill guides into seperate sections

This will make it easier for translators to keep up with translating our skill guides. Closes #560
TfT_02 11 年之前
父节点
当前提交
4aef4c63fc

+ 29 - 5
src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java

@@ -1,6 +1,7 @@
 package com.gmail.nossr50.commands.skills;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;
@@ -13,13 +14,13 @@ import com.gmail.nossr50.util.skills.SkillUtils;
 
 public class SkillGuideCommand implements CommandExecutor {
     private String header;
-    private String[] guide;
+    private ArrayList<String> guide;
 
     private String invalidPage;
 
     public SkillGuideCommand(SkillType skillType) {
         header = LocaleLoader.getString("Guides.Header", SkillUtils.getSkillName(skillType));
-        guide = LocaleLoader.getString("Guides." + StringUtils.getCapitalized(skillType.toString())).split("\n");
+        guide = getGuide(skillType);
 
         invalidPage = LocaleLoader.getString("Guides.Page.Invalid");
     }
@@ -59,7 +60,7 @@ public class SkillGuideCommand implements CommandExecutor {
     }
 
     private int getTotalPageNumber() {
-        return (int) Math.ceil(guide.length / 8.0);
+        return (int) Math.ceil(guide.size() / 8.0);
     }
 
     private void sendGuide(CommandSender sender, int pageNumber) {
@@ -76,15 +77,38 @@ public class SkillGuideCommand implements CommandExecutor {
 
         // Add targeted strings
         while (allStrings.size() < 9) {
-            if (pageIndexStart + allStrings.size() > guide.length) {
+            if (pageIndexStart + allStrings.size() > guide.size()) {
                 allStrings.add("");
             }
             else {
-                allStrings.add(guide[pageIndexStart + (allStrings.size() - 1)]);
+                allStrings.add(guide.get(pageIndexStart + (allStrings.size() - 1)));
             }
         }
 
         allStrings.add("Page " + pagenum + " of " + getTotalPageNumber());
         return allStrings;
     }
+
+    private ArrayList<String> getGuide(SkillType skillType) {
+        ArrayList<String> guide = new ArrayList<String>();
+
+        for (int i = 0; i < 10; i++) {
+            String[] section = LocaleLoader.getString("Guides." + StringUtils.getCapitalized(skillType.toString()) + ".Section." + i).split("\n");
+
+            if (section[0].startsWith("!")) {
+                break;
+            }
+
+            guide.addAll(Arrays.asList(section));
+
+            if (section.length < 8) {
+                for (int blankLine = 8 - section.length; blankLine > 0; blankLine--) {
+                    guide.add("");
+                }
+
+            }
+        }
+
+        return guide;
+    }
 }

文件差异内容过多而无法显示
+ 0 - 2
src/main/resources/locale/locale_en_US.properties


部分文件因为文件数量过多而无法显示