From 7685a6a11048d7514b08aa6b73e28f1caeeb0756 Mon Sep 17 00:00:00 2001 From: Lotto Date: Sat, 14 Apr 2018 17:12:01 +0200 Subject: [PATCH] hiscore: display levels above 99 in the panel --- .../client/plugins/hiscore/HiscoreConfig.java | 11 +++++++++++ .../client/plugins/hiscore/HiscorePanel.java | 18 ++++++++++++++++-- .../plugins/hiscore/HiscorePanelTest.java | 2 +- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscoreConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscoreConfig.java index 4fe5a89025..fe086ae8e0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscoreConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscoreConfig.java @@ -56,4 +56,15 @@ public interface HiscoreConfig extends Config { return true; } + + @ConfigItem( + position = 3, + keyName = "virtualLevels", + name = "Display virtual levels", + description = "Display levels over 99 in the hiscore panel" + ) + default boolean virtualLevels() + { + return true; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java index 36295c4ffd..4853fb9f3f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePanel.java @@ -119,6 +119,7 @@ public class HiscorePanel extends PluginPanel @Nullable private Client client; + private final HiscoreConfig config; private final IconTextField input; private final List skillLabels = new ArrayList<>(); @@ -132,9 +133,11 @@ public class HiscorePanel extends PluginPanel private final HiscoreClient hiscoreClient = new HiscoreClient(); private HiscoreResult result; - public HiscorePanel() + @Inject + public HiscorePanel(HiscoreConfig config) { super(); + this.config = config; // Panel "constants" // This was an EtchedBorder, but the style would change when the window was maximized. @@ -544,7 +547,18 @@ public class HiscorePanel extends PluginPanel } else if (result.getSkill(skill) != null && result.getSkill(skill).getRank() != -1) { - label.setText(Integer.toString(result.getSkill(skill).getLevel())); + Skill s = result.getSkill(skill); + int level; + if (config.virtualLevels()) + { + level = Experience.getLevelForXp((int) s.getExperience()); + } + else + { + level = s.getLevel(); + } + + label.setText(Integer.toString(level)); } } diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/hiscore/HiscorePanelTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/hiscore/HiscorePanelTest.java index eeba641ffe..84925b2d84 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/hiscore/HiscorePanelTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/hiscore/HiscorePanelTest.java @@ -31,7 +31,7 @@ public class HiscorePanelTest @Test public void testConstructor() { - new HiscorePanel(); + new HiscorePanel(new HiscoreConfig() {}); } }