Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class XPCheck {
- private final Skill[] s;
- private int[] lastXP;
- private Timer t;
- private boolean isInRandom, justExitedBreak;
- public XPCheck(Skill... skills) {
- s = skills.clone();
- lastXP = new int[skills.length];
- }
- /**
- * Starts the XP Checker with a default check interval of 10 minutes.
- */
- public void start() {
- start(600);
- }
- /**
- * Starts the XP Checker.
- * @param interval The interval in seconds in between checks
- */
- public void start(int interval) {
- for (int i = 0; i < s.length; i++) {
- lastXP[i] = client.getSkills().getExperience(s[i]);
- }
- t = new Timer();
- t.schedule(check, interval*1000, interval*1000);
- }
- /**
- * @return true if any of the specified skill(s) gained XP in the set interval, false if not.
- */
- public boolean hasGainedXP() {
- for (int i = 0; i < s.length; i++) {
- if (lastXP[i] < client.getSkills().getExperience(s[i])) return true;
- }
- return false;
- }
- /**
- * Stop the XP Checker
- */
- public void cancel() {
- t.cancel();
- }
- public TimerTask check = new TimerTask() {
- @Override
- public void run() {
- int randomID = -1;
- isInRandom = true;
- try {
- randomID = randomManager.getCurrent().id;
- } catch (NullPointerException e) {
- isInRandom = false;
- }
- if (isInRandom || justExitedBreak) {
- if (justExitedBreak) {
- log("Just exited a break, skipping xp check one last time.");
- justExitedBreak = false;
- return;
- }
- if (randomID == RandomManager.BREAK_MANAGER) {
- log("Breaking, skipping xp check");
- justExitedBreak = true;
- return;
- }
- }
- if (!justExitedBreak) {
- if (!hasGainedXP()) {
- try {
- stop();
- } catch (InterruptedException e) { }
- }
- for (int i = 0; i < s.length; i++) {
- lastXP[i] = client.getSkills().getExperience(s[i]);
- }
- }
- }
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement