public void run() {
   targetName =
       (Settings.getFindTargetName() == null)
           ? "gfx/kritter/dragonfly/dragonfly"
           : Settings.getFindTargetName();
   BotUtils.sysMsg("Target " + targetName, Color.WHITE);
   window = BotUtils.gui().add(new StatusWindow(), 300, 200);
   ui.root.findchild(FlowerMenu.class);
   while (BotUtils.getItemAtHand() == null) {
     GameUI gui = HavenPanel.lui.root.findchild(GameUI.class);
     IMeter.Meter stam = gui.getmeter("stam", 0);
     // Check energy stop if it is lower than 1500
     IMeter.Meter nrj = gui.getmeter("nrj", 0);
     if (nrj.a <= 30) {
       t.stop();
       return;
     } else if (stam.a <= 30 && nrj.a >= 95) {
       BotUtils.drink();
     }
     //					if (!BotUtils.isMoving()) {
     Gob gob = BotUtils.findObjectByNames(BotUtils.player().rc, 1000, targetName);
     if (gob != null) {
       BotUtils.goToCoord(gob.rc, 200, true);
       BotUtils.doClick(gob, 3, 0);
     }
     //					}
     if (gob.getres().name.contains("terobjs")) {
       sleep(800);
     }
     sleep(800);
   }
   window.destroy();
   t.stop();
 }
 private void sleep(int t) {
   try {
     Thread.sleep(t);
   } catch (InterruptedException ie) {
     ie.printStackTrace();
   }
 }
示例#3
0
  @Override
  public void run() {
    synchronized (gui.map.glob.oc) {
      for (Gob gob : gui.map.glob.oc) {
        Resource res = gob.getres();
        if (res != null
            && (res.name.equals("gfx/terobjs/oven")
                || res.name.equals("gfx/terobjs/smelter")
                || res.name.equals("gfx/terobjs/steelcrucible")
                || res.name.equals("gfx/terobjs/kiln"))) {
          if (this.gob == null) this.gob = gob;
          else if (gob.rc.dist(gui.map.player().rc) < this.gob.rc.dist(gui.map.player().rc))
            this.gob = gob;
        }
      }
    }

    try {
      if (gob == null) {
        gui.error("No ovens/smelters/steelboxes/kilns found.");
        return;
      }

      Equipory e = gui.getequipory();
      WItem l = e.quickslots[6];
      WItem r = e.quickslots[7];

      boolean noltorch = true;
      boolean nortorch = true;

      if (l != null) {
        String lname = l.item.getname();
        if (lname.contains("Lit Torch")) noltorch = false;
      }
      if (r != null) {
        String rname = r.item.getname();
        if (rname.contains("Lit Torch")) nortorch = false;
      }

      if (noltorch && nortorch) {
        gui.error("No lit torch is equipped.");
        return;
      }

      WItem w = e.quickslots[noltorch ? 7 : 6];
      w.mousedown(new Coord(w.sz.x / 2, w.sz.y / 2), 1);

      try {
        Thread.sleep(100);
      } catch (InterruptedException ie) {
        e.wdgmsg("drop", noltorch ? 7 : 6);
        return;
      }

      gui.map.wdgmsg("itemact", Coord.z, gob.rc, 0, 0, (int) gob.id, gob.rc, 0, -1);

      if (!Utils.waitForProgressFinish(
          gui,
          TIMEOUT_ACT,
          "Oops something went wrong. Timeout when trying to light with torch.")) {
        e.wdgmsg("drop", noltorch ? 7 : 6);
        return;
      }

      e.wdgmsg("drop", noltorch ? 7 : 6);
    } catch (InterruptedException ie) {
    }
  }