Current state of the script can be used at the WWF area to powermine "Pile of Rock" or it can be changed into a regular miner.
/**
* Created by Sinatra_PC on 8/11/2015.
*/
import java.awt.Color;
import java.awt.Graphics2D;
import org.osbot.rs07.api.map.Area;
import org.osbot.rs07.api.map.Position;
import org.osbot.rs07.api.model.Entity;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;
import org.osbot.rs07.utility.ConditionalSleep;
@ScriptManifest(author="Sinatra", info="Mines in the WWF area", name="SMiner", version=9000.0, logo="")
public class WWFMINER extends Script {
String lastLoggedStatus = " ";
String Status = " ";
private long startTime = System.currentTimeMillis();
private long startExperience;
private int experienceHour;
private int totalMined;
private int minedHour;
private long millis;
private long hours;
private long minutes;
private long seconds;
private long experienceGained;
private int currentLevel;
private int beginningLevel;
private int levelsGained;
private final Area areaMine = new Area( new Position(3484,4959,0), new Position(3492,4954,0)); //area where you mine
public void onStart()
{
log("Welcome To " + getAuthor() + "'s WWF MINER!");
startExperience = skills.getExperience(Skill.MINING);
beginningLevel = skills.getStatic(Skill.MINING);
}
private enum State {
DROP, PICK, SLEEP
}
State getState() {
if (areaMine.contains(myPlayer()) && (!inventory.isFull()))
return State.PICK;
if (inventory.isFull()) {
return State.DROP;
}else{
return State.SLEEP;
}
}
private void mining() throws InterruptedException {
Entity STALL = objects.closest("Pile of Rock"); //either add "rockname" or simply (id)
if ((STALL != null) && STALL.isVisible() && (!myPlayer().isAnimating()))
{
Status = "Interacting: Mining Pile of Rock";
STALL.interact("Mine");
new ConditionalSleep(2000) { //Until condition() is met OR 2000 ms passes
@Override
public boolean condition() {
return myPlayer().isAnimating();
}
}.sleep();
sleep(random(2500));
}
}
private void drop() throws InterruptedException {
Status = "Dropping: Rock";
if(getInventory().contains("Stone")) {
//picks
inventory.dropAllExcept(1265, 1267, 1269, 1271, 1273, 1275, 15259);
sleep(random(1000));
}
}
public int onLoop() throws InterruptedException {
printStatus();
switch (getState())
{
case PICK:
Status = "STATE: PICK";
mining();
break;
case DROP:
Status = "STATE: DROP";
drop();
break;
case SLEEP:
Status = "STATE: SLEEPING";
sleep(random(1000));
break;
}
return random(1000);
}
private void printStatus() {
if (lastLoggedStatus != Status)
{
log("Current Status: " + Status);
lastLoggedStatus = Status;
}
}
public void onExit() {
log("Thanks for using " + getAuthor() + "'s WWF Miner!");
}
public void onPaint(Graphics2D g2d)
{
super.onPaint(g2d);
millis = (System.currentTimeMillis() - startTime);
hours = (millis / 3600000L);
millis -= hours * 3600000L;
minutes = (millis / 60000L);
millis -= minutes * 60000L;
seconds = (millis / 1000L);
experienceGained = (skills.getExperience(Skill.MINING) - startExperience);
experienceHour = ((int)(experienceGained * 3600000.0 / (System.currentTimeMillis() - startTime)));
minedHour = ((int)(totalMined * 3600000.0 / (System.currentTimeMillis() - startTime)));
currentLevel = skills.getStatic(Skill.MINING);
levelsGained = currentLevel - beginningLevel;
g2d.setColor(Color.PINK);
g2d.drawString("|Sinatra's WWF Miner|", 20,30);
g2d.drawString("Status | " + Status, 20,45);
g2d.drawString("Time | " + hours + " : " + minutes + " : " + seconds, 20,60);
g2d.drawString("Experience Gained & Per Hour | " + experienceGained + " (" + experienceHour + ")", 20,75);
g2d.drawString("Level: " + currentLevel + "(" + levelsGained + ")", 20,90);
}
}