cml: only send update if at least 1k exp has been gained
This commit is contained in:
@@ -25,11 +25,13 @@
|
||||
package net.runelite.client.plugins.crystalmathlabs;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
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.Skill;
|
||||
import net.runelite.api.events.GameStateChanged;
|
||||
import net.runelite.client.eventbus.Subscribe;
|
||||
import net.runelite.client.plugins.Plugin;
|
||||
@@ -51,17 +53,40 @@ import okhttp3.Response;
|
||||
@Slf4j
|
||||
public class CrystalMathLabs extends Plugin
|
||||
{
|
||||
/**
|
||||
* Amount of EXP that must be gained for an update to be submitted.
|
||||
*/
|
||||
private static final int XP_THRESHOLD = 1000;
|
||||
|
||||
@Inject
|
||||
private Client client;
|
||||
|
||||
private String lastUsername;
|
||||
private long lastXp;
|
||||
|
||||
@Subscribe
|
||||
public void onGameStateChanged(GameStateChanged gameStateChanged)
|
||||
{
|
||||
GameState state = gameStateChanged.getGameState();
|
||||
if (state == GameState.LOGIN_SCREEN)
|
||||
if (state == GameState.LOGGED_IN)
|
||||
{
|
||||
if (!Objects.equals(client.getUsername(), lastUsername))
|
||||
{
|
||||
lastUsername = client.getUsername();
|
||||
lastXp = getTotalXp();
|
||||
}
|
||||
}
|
||||
else if (state == GameState.LOGIN_SCREEN)
|
||||
{
|
||||
Player local = client.getLocalPlayer();
|
||||
if (local != null)
|
||||
if (local == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
long totalXp = getTotalXp();
|
||||
// Don't submit update unless xp threshold is reached
|
||||
if (Math.abs(totalXp - lastXp) > XP_THRESHOLD)
|
||||
{
|
||||
log.debug("Submitting update for {}", local.getName());
|
||||
sendUpdateRequest(local.getName());
|
||||
@@ -69,6 +94,16 @@ public class CrystalMathLabs extends Plugin
|
||||
}
|
||||
}
|
||||
|
||||
private long getTotalXp()
|
||||
{
|
||||
long total = 0;
|
||||
for (Skill skill : Skill.values())
|
||||
{
|
||||
total += client.getSkillExperience(skill);
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
private void sendUpdateRequest(String username)
|
||||
{
|
||||
String reformedUsername = username.replace(" ", "_");
|
||||
|
||||
Reference in New Issue
Block a user