diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpState.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpState.java index d6a10df1b8..16602b0cb4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpState.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpState.java @@ -79,7 +79,7 @@ class XpState if (state.getStartXp() == -1) { - if (currentXp > 0) + if (currentXp >= 0) { initializeSkill(skill, currentXp); return XpUpdateResult.INITIALIZED; @@ -198,7 +198,8 @@ class XpState boolean isInitialized(Skill skill) { - return xpSkills.containsKey(skill); + XpStateSingle xpStateSingle = xpSkills.get(skill); + return xpStateSingle != null && xpStateSingle.getStartXp() != -1; } @NonNull diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java index c66c409a16..f72bcd12f2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java @@ -305,7 +305,9 @@ public class XpTrackerPlugin extends Plugin if (skill == Skill.CONSTRUCTION && updateResult == XpUpdateResult.INITIALIZED) { // Construction is the last skill initialized on login, now initialize the total experience - xpState.initializeSkill(Skill.OVERALL, client.getOverallExperience()); + long overallXp = client.getOverallExperience(); + log.debug("Initializing XP tracker with {} overall exp", overallXp); + xpState.initializeSkill(Skill.OVERALL, overallXp); } else if (xpState.isInitialized(Skill.OVERALL)) {