From bf441bc27bc13995635b1fd0506908caf4695be7 Mon Sep 17 00:00:00 2001 From: Hydrox6 Date: Thu, 9 Jan 2020 12:26:44 +0000 Subject: [PATCH 1/5] cluescrolls: update hint for Duel Arena Coordinate Clue --- .../client/plugins/cluescrolls/clues/CoordinateClue.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java index 6da83f5263..6561fdce5a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/clues/CoordinateClue.java @@ -88,7 +88,7 @@ public class CoordinateClue extends ClueScroll implements TextClueScroll, Locati .put(new WorldPoint(2209, 3161, 0), "North-east of Tyras Camp (BJS).") .put(new WorldPoint(2181, 3206, 0), "South of Elf Camp.") .put(new WorldPoint(3081, 3209, 0), "Small Island (CLP).") - .put(new WorldPoint(3374, 3250, 0), "Duel Arena combat area.") + .put(new WorldPoint(3399, 3246, 0), "Behind the Duel Arena.") .put(new WorldPoint(2699, 3251, 0), "Little island (AIR).") .put(new WorldPoint(3546, 3251, 0), "North-east of Burgh de Rott.") .put(new WorldPoint(3544, 3256, 0), "North-east of Burgh de Rott.") From 8ddcb92bd7d3d420a6787906bfa084e9b8e5b3fa Mon Sep 17 00:00:00 2001 From: Rami <44623786+Rami-J@users.noreply.github.com> Date: Fri, 10 Jan 2020 19:48:54 -0500 Subject: [PATCH 2/5] agility plugin: add toggle for obstacle clickboxes --- .../client/plugins/agility/AgilityConfig.java | 11 +++++++++++ .../client/plugins/agility/AgilityOverlay.java | 3 ++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityConfig.java index 85608f9dbf..ea608764ae 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityConfig.java @@ -32,6 +32,17 @@ import net.runelite.client.config.ConfigItem; @ConfigGroup("agility") public interface AgilityConfig extends Config { + @ConfigItem( + keyName = "showClickboxes", + name = "Show Clickboxes", + description = "Show agility course obstacle clickboxes", + position = 0 + ) + default boolean showClickboxes() + { + return true; + } + @ConfigItem( keyName = "showLapCount", name = "Show Lap Count", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityOverlay.java index c012b945dc..28120aa393 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityOverlay.java @@ -71,7 +71,8 @@ class AgilityOverlay extends Overlay plugin.getObstacles().forEach((object, obstacle) -> { if (Obstacles.SHORTCUT_OBSTACLE_IDS.containsKey(object.getId()) && !config.highlightShortcuts() || - Obstacles.TRAP_OBSTACLE_IDS.contains(object.getId()) && !config.showTrapOverlay()) + Obstacles.TRAP_OBSTACLE_IDS.contains(object.getId()) && !config.showTrapOverlay() || + Obstacles.COURSE_OBSTACLE_IDS.contains(object.getId()) && !config.showClickboxes()) { return; } From 2681d395fc6f227a5928e1a0c3c943f6d892ebcf Mon Sep 17 00:00:00 2001 From: melkypie Date: Fri, 10 Jan 2020 19:58:05 -0500 Subject: [PATCH 3/5] menu swapper: check home portal swap target The swap was attemting to run on anything with the "enter" option, which conflicted with the quick-enter swap below it. Co-authored-by: Adam --- .../MenuEntrySwapperPlugin.java | 2 +- .../MenuEntrySwapperPluginTest.java | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java index 865bb441b9..0830e3697f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPlugin.java @@ -498,7 +498,7 @@ public class MenuEntrySwapperPlugin extends Plugin { swap("harpoon", option, target, index); } - else if (config.swapHomePortal() != HouseMode.ENTER && option.equals("enter")) + else if (config.swapHomePortal() != HouseMode.ENTER && option.equals("enter") && target.equals("portal")) { switch (config.swapHomePortal()) { diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPluginTest.java index 19b101c931..f6e2bbe021 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/menuentryswapper/MenuEntrySwapperPluginTest.java @@ -263,4 +263,35 @@ public class MenuEntrySwapperPluginTest menu("Cast", "Varrock Teleport", MenuAction.WIDGET_SECOND_OPTION), }, argumentCaptor.getValue()); } + + @Test + public void testTobDoor() + { + when(config.swapQuick()).thenReturn(true); + when(config.swapHomePortal()).thenReturn(HouseMode.HOME); + + //Quick-enter, Enter + entries = new MenuEntry[]{ + menu("Cancel", "", MenuAction.CANCEL), + menu("Examine", "Formidable Passage", MenuAction.EXAMINE_OBJECT), + menu("Walk here", "", MenuAction.WALK), + + menu("Quick-Enter", "Formidable Passage", MenuAction.GAME_OBJECT_SECOND_OPTION), + menu("Enter", "Formidable Passage", MenuAction.GAME_OBJECT_FIRST_OPTION), + }; + + menuEntrySwapperPlugin.onClientTick(new ClientTick()); + + ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(MenuEntry[].class); + verify(client).setMenuEntries(argumentCaptor.capture()); + + assertArrayEquals(new MenuEntry[]{ + menu("Cancel", "", MenuAction.CANCEL), + menu("Examine", "Formidable Passage", MenuAction.EXAMINE_OBJECT), + menu("Walk here", "", MenuAction.WALK), + + menu("Enter", "Formidable Passage", MenuAction.GAME_OBJECT_FIRST_OPTION), + menu("Quick-Enter", "Formidable Passage", MenuAction.GAME_OBJECT_SECOND_OPTION), + }, argumentCaptor.getValue()); + } } \ No newline at end of file From 5e1932ab5d738ab7425addff3b005e973403649d Mon Sep 17 00:00:00 2001 From: Zachary Waller Date: Fri, 10 Jan 2020 17:31:54 -0800 Subject: [PATCH 4/5] skill calc: calculate xp on focus lost --- .../skillcalculator/SkillCalculator.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java index 9c7b92806e..5b53380daa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/skillcalculator/SkillCalculator.java @@ -28,12 +28,15 @@ package net.runelite.client.plugins.skillcalculator; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.ArrayList; import java.util.List; +import java.util.function.Consumer; import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.JCheckBox; @@ -108,6 +111,12 @@ class SkillCalculator extends JPanel uiInput.getUiFieldTargetLevel().addActionListener(e -> onFieldTargetLevelUpdated()); uiInput.getUiFieldTargetXP().addActionListener(e -> onFieldTargetXPUpdated()); + + // Register focus listeners to calculate xp when exiting a text field + uiInput.getUiFieldCurrentLevel().addFocusListener(buildFocusAdapter(e -> onFieldCurrentLevelUpdated())); + uiInput.getUiFieldCurrentXP().addFocusListener(buildFocusAdapter(e -> onFieldCurrentXPUpdated())); + uiInput.getUiFieldTargetLevel().addFocusListener(buildFocusAdapter(e -> onFieldTargetLevelUpdated())); + uiInput.getUiFieldTargetXP().addFocusListener(buildFocusAdapter(e -> onFieldTargetXPUpdated())); } void openCalculator(CalculatorType calculatorType) @@ -413,4 +422,15 @@ class SkillCalculator extends JPanel return slot.getAction().getName().toLowerCase().contains(text.toLowerCase()); } + private FocusAdapter buildFocusAdapter(Consumer focusLostConsumer) + { + return new FocusAdapter() + { + @Override + public void focusLost(FocusEvent e) + { + focusLostConsumer.accept(e); + } + }; + } } From cfa55992a29124ba38221a3b1f0c14bf901df0d1 Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 10 Jan 2020 21:10:35 -0500 Subject: [PATCH 5/5] hiscore panel: add score/points to activity tooltips With the new formatLevel() change these can be rounded, and you can't tell what the exact value is --- .../client/plugins/hiscore/HiscorePanel.java | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) 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 23ff6521d2..fa2a72f92a 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 @@ -538,26 +538,46 @@ public class HiscorePanel extends PluginPanel } case BOUNTY_HUNTER_ROGUE: { - String rank = (result.getBountyHunterRogue().getRank() == -1) ? "Unranked" : QuantityFormatter.formatNumber(result.getBountyHunterRogue().getRank()); + Skill bountyHunterRogue = result.getBountyHunterRogue(); + String rank = (bountyHunterRogue.getRank() == -1) ? "Unranked" : QuantityFormatter.formatNumber(bountyHunterRogue.getRank()); content += "

Rank: " + rank + "

"; + if (bountyHunterRogue.getLevel() > -1) + { + content += "

Score: " + QuantityFormatter.formatNumber(bountyHunterRogue.getLevel()) + "

"; + } break; } case BOUNTY_HUNTER_HUNTER: { - String rank = (result.getBountyHunterHunter().getRank() == -1) ? "Unranked" : QuantityFormatter.formatNumber(result.getBountyHunterHunter().getRank()); + Skill bountyHunterHunter = result.getBountyHunterHunter(); + String rank = (bountyHunterHunter.getRank() == -1) ? "Unranked" : QuantityFormatter.formatNumber(bountyHunterHunter.getRank()); content += "

Rank: " + rank + "

"; + if (bountyHunterHunter.getLevel() > -1) + { + content += "

Score: " + QuantityFormatter.formatNumber(bountyHunterHunter.getLevel()) + "

"; + } break; } case LAST_MAN_STANDING: { - String rank = (result.getLastManStanding().getRank() == -1) ? "Unranked" : QuantityFormatter.formatNumber(result.getLastManStanding().getRank()); + Skill lastManStanding = result.getLastManStanding(); + String rank = (lastManStanding.getRank() == -1) ? "Unranked" : QuantityFormatter.formatNumber(lastManStanding.getRank()); content += "

Rank: " + rank + "

"; + if (lastManStanding.getLevel() > -1) + { + content += "

Score: " + QuantityFormatter.formatNumber(lastManStanding.getLevel()) + "

"; + } break; } case LEAGUE_POINTS: { - String rank = (result.getLeaguePoints().getRank() == -1) ? "Unranked" : QuantityFormatter.formatNumber(result.getLeaguePoints().getRank()); + Skill leaguePoints = result.getLeaguePoints(); + String rank = (leaguePoints.getRank() == -1) ? "Unranked" : QuantityFormatter.formatNumber(leaguePoints.getRank()); content += "

Rank: " + rank + "

"; + if (leaguePoints.getLevel() > -1) + { + content += "

Points: " + QuantityFormatter.formatNumber(leaguePoints.getLevel()) + "

"; + } break; } case OVERALL: