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 d349b04129..60db4d7974 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
@@ -51,7 +51,7 @@ public interface AgilityConfig extends Config
description = "This will remove the distance cap on rendering overlays for agility.",
warning = "
Enabling this setting on a low end machine may severely affect your fps." +
"
Click yes to enable this setting, knowing it might affect performance.",
- position = 1,
+ position = 0,
titleSection = "mainConfig"
)
default boolean removeDistanceCap()
@@ -59,6 +59,17 @@ public interface AgilityConfig extends Config
return false;
}
+ @ConfigItem(
+ keyName = "showCourseClickboxes",
+ name = "Show course Clickboxes",
+ description = "Show agility course obstacle clickboxes",
+ position = 1
+ )
+ default boolean showCourseClickboxes()
+ {
+ 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 9323ae0b44..0f93e7f255 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()) && !plugin.isHighlightShortcuts() ||
- Obstacles.TRAP_OBSTACLE_IDS.contains(object.getId()) && !plugin.isShowTrapOverlay())
+ Obstacles.TRAP_OBSTACLE_IDS.contains(object.getId()) && !plugin.isShowTrapOverlay() ||
+ Obstacles.COURSE_OBSTACLE_IDS.contains(object.getId()) && !plugin.showCourseClickboxes())
{
return;
}
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java
index d58d516978..5520c0b583 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/agility/AgilityPlugin.java
@@ -141,6 +141,8 @@ public class AgilityPlugin extends Plugin
@Getter(AccessLevel.PACKAGE)
private boolean removeDistanceCap;
@Getter(AccessLevel.PACKAGE)
+ private boolean showCourseClickboxes;
+ @Getter(AccessLevel.PACKAGE)
private boolean showLapCount;
@Getter(AccessLevel.PACKAGE)
private int lapTimeout;
@@ -260,6 +262,7 @@ public class AgilityPlugin extends Plugin
private void updateConfig()
{
this.removeDistanceCap = config.removeDistanceCap();
+ this.showCourseClickboxes = config.showCourseClickboxes();
this.showLapCount = config.showLapCount();
this.lapTimeout = config.lapTimeout();
this.lapsToLevel = config.lapsToLevel();
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 9e90c58169..e93e464370 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
@@ -89,7 +89,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.")
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 684919eb26..681ca2490f 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
@@ -539,26 +539,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:
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 eb167bf655..0531d89ebf 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;
@@ -111,6 +114,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)
@@ -437,4 +446,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);
+ }
+ };
+ }
}
\ No newline at end of file