BreakHandler.java :  » Game » skbot-client » org » rsbot » script » internal » Java Open Source

Java Open Source » Game » skbot client 
skbot client » org » rsbot » script » internal » BreakHandler.java
package org.rsbot.script.internal;

import org.rsbot.bot.Bot;

import java.util.Random;

public class BreakHandler {

  private final Random random = new Random();

  private long nextBreak;
  private long breakEnd;
  private int ticks = 0;
  private Bot bot;
  private boolean checked = false;
  private boolean result = false;

  public BreakHandler(Bot bot) {
    this.bot = bot;
  }

  public boolean isBreaking() {
    return ticks > 50 && nextBreak > 0 && nextBreak < System.currentTimeMillis()
        && breakEnd > System.currentTimeMillis() && can();
  }

  private boolean can() {
    if (checked) {
      return result;
    } else {
      checked = true;
      result = bot.getScriptHandler().onBreak();
      return result;
    }
  }

  public void tick() {
    ++ticks;
    if (checked) {
      checked = false;
      bot.getScriptHandler().onBreakResume();
    }
    if (nextBreak < 0 || nextBreak - System.currentTimeMillis() < -30000) {
      ticks = 0;
      int offset = random(20, 120) * 60000;
      nextBreak = System.currentTimeMillis() + offset;
      if (random(0, 4) != 0) {
        breakEnd = nextBreak + random(2, 40) * 60000 + offset / 6;
      } else {
        breakEnd = nextBreak + random(10, 60) * 1000;
      }
    }
  }

  public long getBreakTime() {
    return breakEnd - System.currentTimeMillis();
  }

  private int random(int min, int max) {
    int n = Math.abs(max - min);
    return Math.min(min, max) + (n == 0 ? 0 : random.nextInt(n));
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.