cml plugin: fix request throttling

Also update xp threshold to 10k xp
This commit is contained in:
Adam
2019-08-07 19:18:29 -04:00
parent 2ef1f29c13
commit 05ca96c3db

View File

@@ -31,7 +31,6 @@ import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.Player; import net.runelite.api.Player;
import net.runelite.api.Skill;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick; import net.runelite.api.events.GameTick;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
@@ -57,7 +56,7 @@ public class CrystalMathLabs extends Plugin
/** /**
* Amount of EXP that must be gained for an update to be submitted. * Amount of EXP that must be gained for an update to be submitted.
*/ */
private static final int XP_THRESHOLD = 1000; private static final int XP_THRESHOLD = 10000;
@Inject @Inject
private Client client; private Client client;
@@ -66,6 +65,12 @@ public class CrystalMathLabs extends Plugin
private boolean fetchXp; private boolean fetchXp;
private long lastXp; private long lastXp;
@Override
protected void startUp()
{
fetchXp = true;
}
@Subscribe @Subscribe
public void onGameStateChanged(GameStateChanged gameStateChanged) public void onGameStateChanged(GameStateChanged gameStateChanged)
{ {
@@ -75,7 +80,7 @@ public class CrystalMathLabs extends Plugin
if (!Objects.equals(client.getUsername(), lastUsername)) if (!Objects.equals(client.getUsername(), lastUsername))
{ {
lastUsername = client.getUsername(); lastUsername = client.getUsername();
lastXp = getTotalXp(); fetchXp = true;
} }
} }
else if (state == GameState.LOGIN_SCREEN) else if (state == GameState.LOGIN_SCREEN)
@@ -86,12 +91,13 @@ public class CrystalMathLabs extends Plugin
return; return;
} }
long totalXp = getTotalXp(); long totalXp = client.getOverallExperience();
// Don't submit update unless xp threshold is reached // Don't submit update unless xp threshold is reached
if (Math.abs(totalXp - lastXp) > XP_THRESHOLD) if (Math.abs(totalXp - lastXp) > XP_THRESHOLD)
{ {
log.debug("Submitting update for {}", local.getName()); log.debug("Submitting update for {}", local.getName());
sendUpdateRequest(local.getName()); sendUpdateRequest(local.getName());
lastXp = totalXp;
} }
} }
} }
@@ -101,21 +107,11 @@ public class CrystalMathLabs extends Plugin
{ {
if (fetchXp) if (fetchXp)
{ {
lastXp = getTotalXp(); lastXp = client.getOverallExperience();
fetchXp = false; fetchXp = false;
} }
} }
private long getTotalXp()
{
long total = 0;
for (Skill skill : Skill.values())
{
total += client.getSkillExperience(skill);
}
return total;
}
private void sendUpdateRequest(String username) private void sendUpdateRequest(String username)
{ {
String reformedUsername = username.replace(" ", "_"); String reformedUsername = username.replace(" ", "_");