hiscore panel: support hiscore results with no rank

This commit is contained in:
Adam
2018-12-06 15:24:53 -05:00
parent 165c100e31
commit 233fbcf2d1

View File

@@ -398,6 +398,7 @@ public class HiscorePanel extends PluginPanel
for (JLabel label : skillLabels) for (JLabel label : skillLabels)
{ {
HiscoreSkill skill = find(index); HiscoreSkill skill = find(index);
Skill s;
if (skill == null) if (skill == null)
{ {
@@ -415,20 +416,26 @@ public class HiscorePanel extends PluginPanel
label.setText(Integer.toString(combatLevel)); label.setText(Integer.toString(combatLevel));
} }
} }
else if (result.getSkill(skill) != null && result.getSkill(skill).getRank() != -1) else if ((s = result.getSkill(skill)) != null)
{ {
Skill s = result.getSkill(skill); final long exp = s.getExperience();
int level; final boolean isSkill = SKILLS.contains(skill);
if (config.virtualLevels() && SKILLS.contains(skill)) int level = -1;
if (config.virtualLevels() && isSkill && exp > -1L)
{ {
level = Experience.getLevelForXp((int) s.getExperience()); level = Experience.getLevelForXp((int) exp);
} }
else else if (!isSkill || exp != -1L)
{ {
// for skills, level is only valid if exp is not -1
// otherwise level is always valid
level = s.getLevel(); level = s.getLevel();
} }
label.setText(Integer.toString(level)); if (level != -1)
{
label.setText(Integer.toString(level));
}
} }
label.setToolTipText(detailsHtml(result, skill)); label.setToolTipText(detailsHtml(result, skill));
@@ -554,7 +561,7 @@ public class HiscorePanel extends PluginPanel
{ {
Skill requestedSkill = result.getSkill(skill); Skill requestedSkill = result.getSkill(skill);
String rank = (requestedSkill.getRank() == -1) ? "Unranked" : StackFormatter.formatNumber(requestedSkill.getRank()); String rank = (requestedSkill.getRank() == -1) ? "Unranked" : StackFormatter.formatNumber(requestedSkill.getRank());
String exp = (requestedSkill.getRank() == -1) ? "Unranked" : StackFormatter.formatNumber(requestedSkill.getExperience()); String exp = (requestedSkill.getExperience() == -1L) ? "Unranked" : StackFormatter.formatNumber(requestedSkill.getExperience());
content += "<p><span style = 'color:white'>Skill:</span> " + skill.getName() + "</p>"; content += "<p><span style = 'color:white'>Skill:</span> " + skill.getName() + "</p>";
content += "<p><span style = 'color:white'>Rank:</span> " + rank + "</p>"; content += "<p><span style = 'color:white'>Rank:</span> " + rank + "</p>";
content += "<p><span style = 'color:white'>Experience:</span> " + exp + "</p>"; content += "<p><span style = 'color:white'>Experience:</span> " + exp + "</p>";
@@ -563,18 +570,19 @@ public class HiscorePanel extends PluginPanel
default: default:
{ {
Skill requestedSkill = result.getSkill(skill); Skill requestedSkill = result.getSkill(skill);
final long experience = requestedSkill.getExperience();
String rank = (requestedSkill.getRank() == -1) ? "Unranked" : StackFormatter.formatNumber(requestedSkill.getRank()); String rank = (requestedSkill.getRank() == -1) ? "Unranked" : StackFormatter.formatNumber(requestedSkill.getRank());
String exp = (requestedSkill.getRank() == -1) ? "Unranked" : StackFormatter.formatNumber(requestedSkill.getExperience()); String exp = (experience == -1L) ? "Unranked" : StackFormatter.formatNumber(experience);
String remainingXp; String remainingXp;
if (requestedSkill.getRank() == -1) if (experience == -1L)
{ {
remainingXp = "Unranked"; remainingXp = "Unranked";
} }
else else
{ {
int currentLevel = Experience.getLevelForXp((int) requestedSkill.getExperience()); int currentLevel = Experience.getLevelForXp((int) experience);
remainingXp = (currentLevel + 1 <= Experience.MAX_VIRT_LEVEL) ? StackFormatter.formatNumber(Experience.getXpForLevel(currentLevel + 1) - requestedSkill.getExperience()) : "0"; remainingXp = (currentLevel + 1 <= Experience.MAX_VIRT_LEVEL) ? StackFormatter.formatNumber(Experience.getXpForLevel(currentLevel + 1) - experience) : "0";
} }
content += "<p><span style = 'color:white'>Skill:</span> " + skill.getName() + "</p>"; content += "<p><span style = 'color:white'>Skill:</span> " + skill.getName() + "</p>";