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 6a66a5d377..a2844c7d58 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 @@ -29,11 +29,13 @@ import com.google.common.eventbus.Subscribe; import java.io.IOException; import java.util.EnumSet; import java.util.Objects; +import java.util.concurrent.ScheduledExecutorService; import javax.imageio.ImageIO; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.GameState; +import net.runelite.api.Player; import net.runelite.api.events.ExperienceChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameTick; @@ -45,6 +47,7 @@ import net.runelite.http.api.worlds.World; import net.runelite.http.api.worlds.WorldClient; import net.runelite.http.api.worlds.WorldResult; import net.runelite.http.api.worlds.WorldType; +import net.runelite.http.api.xp.XpClient; @PluginDescriptor( name = "XP tracker plugin" @@ -58,12 +61,17 @@ public class XpTrackerPlugin extends Plugin @Inject Client client; + @Inject + ScheduledExecutorService executor; + private NavigationButton navButton; private XpPanel xpPanel; private WorldResult worlds; private XpWorldType lastWorldType; private String lastUsername; + private final XpClient xpClient = new XpClient(); + @Override protected void startUp() throws Exception { @@ -121,6 +129,27 @@ public class XpTrackerPlugin extends Plugin xpPanel.resetAllInfoBoxes(); } } + else if (event.getGameState() == GameState.LOGIN_SCREEN) + { + Player local = client.getLocalPlayer(); + String username = local != null ? local.getName() : null; + if (username != null) + { + log.debug("Submitting xp track for {}", username); + + executor.submit(() -> + { + try + { + xpClient.update(username); + } + catch (IOException ex) + { + log.warn("error submitting xp track", ex); + } + }); + } + } } private XpWorldType worldSetToType(EnumSet types) @@ -148,4 +177,4 @@ public class XpTrackerPlugin extends Plugin { xpPanel.updateAllInfoBoxes(); } -} \ No newline at end of file +}