Merge pull request #1601 from devLotto/hiscore-virtual-levels-fix

hiscore panel: fix not displaying total level correctly
This commit is contained in:
Adam
2018-04-16 21:51:58 -04:00
committed by GitHub
2 changed files with 33 additions and 40 deletions

View File

@@ -27,29 +27,29 @@ package net.runelite.http.api.hiscore;
public enum HiscoreSkill
{
OVERALL("Overall"),
ATTACK("Attack", true),
DEFENCE("Defence", true),
STRENGTH("Strength", true),
HITPOINTS("Hitpoints", true),
RANGED("Ranged", true),
PRAYER("Prayer", true),
MAGIC("Magic", true),
COOKING("Cooking", true),
WOODCUTTING("Woodcutting", true),
FLETCHING("Fletching", true),
FISHING("Fishing", true),
FIREMAKING("Firemaking", true),
CRAFTING("Crafting", true),
SMITHING("Smithing", true),
MINING("Mining", true),
HERBLORE("Herblore", true),
AGILITY("Agility", true),
THIEVING("Thieving", true),
SLAYER("Slayer", true),
FARMING("Farming", true),
RUNECRAFT("Runecraft", true),
HUNTER("Hunter", true),
CONSTRUCTION("Construction", true),
ATTACK("Attack"),
DEFENCE("Defence"),
STRENGTH("Strength"),
HITPOINTS("Hitpoints"),
RANGED("Ranged"),
PRAYER("Prayer"),
MAGIC("Magic"),
COOKING("Cooking"),
WOODCUTTING("Woodcutting"),
FLETCHING("Fletching"),
FISHING("Fishing"),
FIREMAKING("Firemaking"),
CRAFTING("Crafting"),
SMITHING("Smithing"),
MINING("Mining"),
HERBLORE("Herblore"),
AGILITY("Agility"),
THIEVING("Thieving"),
SLAYER("Slayer"),
FARMING("Farming"),
RUNECRAFT("Runecraft"),
HUNTER("Hunter"),
CONSTRUCTION("Construction"),
CLUE_SCROLL_EASY("Clue Scrolls (easy)"),
CLUE_SCROLL_MEDIUM("Clue Scrolls (medium)"),
CLUE_SCROLL_ALL("Clue Scrolls (all)"),
@@ -61,26 +61,14 @@ public enum HiscoreSkill
CLUE_SCROLL_MASTER("Clue Scrolls (master)");
private final String name;
private final boolean virtualLevels;
HiscoreSkill(String name)
{
this(name, false);
}
HiscoreSkill(String name, boolean virtualLevels)
{
this.name = name;
this.virtualLevels = virtualLevels;
}
public String getName()
{
return name;
}
public boolean hasVirtualLevels()
{
return virtualLevels;
}
}

View File

@@ -38,7 +38,10 @@ import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ScheduledExecutorService;
import javax.annotation.Nullable;
import javax.imageio.ImageIO;
@@ -100,8 +103,10 @@ public class HiscorePanel extends PluginPanel
private static final String SKILL_NAME = "SKILL_NAME";
private static final String SKILL = "SKILL";
private static final HiscoreSkill[] SKILL_PANEL_ORDER = new HiscoreSkill[]
{
/**
* Real skills, ordered in the way they should be displayed in the panel.
*/
private static final Set<HiscoreSkill> SKILLS = new LinkedHashSet<>(Arrays.asList(
ATTACK, HITPOINTS, MINING,
STRENGTH, AGILITY, SMITHING,
DEFENCE, HERBLORE, FISHING,
@@ -110,7 +115,7 @@ public class HiscorePanel extends PluginPanel
MAGIC, FLETCHING, WOODCUTTING,
RUNECRAFT, SLAYER, FARMING,
CONSTRUCTION, HUNTER
};
));
@Inject
ScheduledExecutorService executor;
@@ -214,7 +219,7 @@ public class HiscorePanel extends PluginPanel
statsPanel.setBorder(subPanelBorder);
// For each skill on the ingame skill panel, create a Label and add it to the UI
for (HiscoreSkill skill : SKILL_PANEL_ORDER)
for (HiscoreSkill skill : SKILLS)
{
JPanel panel = makeSkillPanel(skill.getName(), skill);
statsPanel.add(panel);
@@ -550,7 +555,7 @@ public class HiscorePanel extends PluginPanel
Skill s = result.getSkill(skill);
int level;
if (config.virtualLevels() && skill.hasVirtualLevels())
if (config.virtualLevels() && SKILLS.contains(skill))
{
level = Experience.getLevelForXp((int) s.getExperience());
}