diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/SkillXPInfo.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/SkillXPInfo.java
index f928aa9f52..44de7359a5 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/SkillXPInfo.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/SkillXPInfo.java
@@ -26,6 +26,7 @@ package net.runelite.client.plugins.xptracker;
import java.time.Duration;
import java.time.Instant;
+import java.time.LocalTime;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Experience;
@@ -50,6 +51,11 @@ class SkillXPInfo
return toHourly(xpGained);
}
+ int getXpSec()
+ {
+ return getXpHr() / 3600;
+ }
+
int getActionsHr()
{
return toHourly(actions);
@@ -85,6 +91,15 @@ class SkillXPInfo
return (int) ((xpGained / xpGoal) * 100);
}
+ String getTimeTillLevel()
+ {
+ if (getXpSec() > 0)
+ {
+ return LocalTime.MIN.plusSeconds( getXpRemaining() / getXpSec() ).toString();
+ }
+ return "\u221e";
+ }
+
void reset(int currentXp)
{
if (startXp != -1)
diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java
index 30046511ad..7e58c3a9d1 100644
--- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java
+++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpInfoBox.java
@@ -238,6 +238,8 @@ class XpInfoBox extends JPanel
+ XpPanel.formatLine(xpInfo.getActions(), "actions")
+ "
"
+ XpPanel.formatLine(xpInfo.getActionsHr(), "actions/hr")
+ + "
"
+ + xpInfo.getTimeTillLevel() + " till next lvl"
+ "