瀏覽代碼

mcrank FFS output is now consistent with SQL

nossr50 12 年之前
父節點
當前提交
fd4f0f4096

+ 21 - 1
src/main/java/com/gmail/nossr50/commands/mc/McrankCommand.java

@@ -9,9 +9,11 @@ import org.bukkit.entity.Player;
 
 
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.runnables.mcRankAsync;
 import com.gmail.nossr50.runnables.mcRankAsync;
 import com.gmail.nossr50.util.Leaderboard;
 import com.gmail.nossr50.util.Leaderboard;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Misc;
+import com.gmail.nossr50.util.Skills;
 
 
 public class McrankCommand implements CommandExecutor {
 public class McrankCommand implements CommandExecutor {
 
 
@@ -51,10 +53,28 @@ public class McrankCommand implements CommandExecutor {
 
 
     public void flatfileDisplay(CommandSender sender, String playerName) {
     public void flatfileDisplay(CommandSender sender, String playerName) {
         for (SkillType skillType : SkillType.values()) {
         for (SkillType skillType : SkillType.values()) {
+        	
+        	int[] rankInts = Leaderboard.getPlayerRank(playerName, skillType);
+        	
             if (skillType.equals(SkillType.ALL))
             if (skillType.equals(SkillType.ALL))
                 continue; // We want the overall ranking to be at the bottom
                 continue; // We want the overall ranking to be at the bottom
-            sender.sendMessage(ChatColor.YELLOW + Misc.getCapitalized(skillType.name()) + ChatColor.GREEN + " - " + ChatColor.GOLD + "Rank " + ChatColor.WHITE + "#" + ChatColor.GREEN + Leaderboard.getPlayerRank(playerName, skillType));
+            
+            if (rankInts[1] == 0) {
+                sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Skill", new Object[] {Skills.localizeSkillName(skillType), LocaleLoader.getString("Commands.mcrank.Unranked")} )); //Don't bother showing ranking for players without skills
+            } else {
+                sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Skill", new Object[] {Skills.localizeSkillName(skillType), String.valueOf(rankInts[0])} ));
+            }
+        }
+        
+        //Show the powerlevel ranking
+        int[] rankInts = Leaderboard.getPlayerRank(playerName, SkillType.ALL);
+        
+        if (rankInts[1] == 0) {
+            sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Skill", new Object[] {Skills.localizeSkillName(SkillType.ALL), LocaleLoader.getString("Commands.mcrank.Unranked")} )); //Don't bother showing ranking for players without skills
+        } else {
+            sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Skill", new Object[] {Skills.localizeSkillName(SkillType.ALL), String.valueOf(rankInts[0])} ));
         }
         }
+        
         sender.sendMessage(ChatColor.YELLOW + "Overall" + ChatColor.GREEN + " - " + ChatColor.GOLD + "Rank " + ChatColor.WHITE + "#" + ChatColor.GREEN + Leaderboard.getPlayerRank(playerName, SkillType.ALL));
         sender.sendMessage(ChatColor.YELLOW + "Overall" + ChatColor.GREEN + " - " + ChatColor.GOLD + "Rank " + ChatColor.WHITE + "#" + ChatColor.GREEN + Leaderboard.getPlayerRank(playerName, SkillType.ALL));
     }
     }
 
 

+ 4 - 4
src/main/java/com/gmail/nossr50/util/Leaderboard.java

@@ -200,23 +200,23 @@ public class Leaderboard {
         return info;
         return info;
     }
     }
     
     
-    public static int getPlayerRank(String playerName, SkillType skillType) {
+    public static int[] getPlayerRank(String playerName, SkillType skillType) {
     	int currentPos = 1;
     	int currentPos = 1;
         List<PlayerStat> statsList = playerStatHash.get(skillType);
         List<PlayerStat> statsList = playerStatHash.get(skillType);
         
         
         if(statsList != null) {
         if(statsList != null) {
         	for(PlayerStat ps : statsList) {
         	for(PlayerStat ps : statsList) {
         		if(ps.name.equalsIgnoreCase(playerName)) {
         		if(ps.name.equalsIgnoreCase(playerName)) {
-        			return currentPos;
+        			return new int[] {currentPos, ps.statVal};
         		} else {
         		} else {
         			currentPos++;
         			currentPos++;
         			continue;
         			continue;
         		}
         		}
         	}
         	}
         	
         	
-        	return 0;
+        	return new int[] {0};
         } else {
         } else {
-        	return 0;
+        	return new int[] {0};
         }
         }
     }
     }