Hey everyone!
Just getting back into java, mostly looking for feedback on this wood cutting script I wrote. Any productive criticism is welcome.
import org.osbot.rs07.api.map.Area;
import org.osbot.rs07.api.model.RS2Object;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;
import org.osbot.rs07.utility.ConditionalSleep;
import java.awt.*;
@ScriptManifest(author = "LRDBLK", info = "Chops wood", name = "Wood Chopper", version = 1, logo = "")
public class main extends Script {
@[member=Override]
public void onStart() {
log("Script is starting!");
}
@[member=Override]
public int onLoop() throws InterruptedException {
Area lumbridgeTrees = new Area(3176, 3238, 3200, 3207);
if(inventory.isFull()){
inventory.dropAll();
}
if (!lumbridgeTrees.contains(myPlayer())){
log("walking to area now");
getWalking().webWalk(lumbridgeTrees.getRandomPosition());
}else{
RS2Object tree = getObjects().closest(lumbridgeTrees, "Tree");
chopTree(tree);
}
return random(200, 300);
}
@[member=Override]
public void onExit() {
log("RawR");
}
@[member=Override]
public void onPaint(Graphics2D g) {
}
private Boolean ableToWork(){
return !myPlayer().isAnimating() && !myPlayer().isMoving();
}
private void chopTree(RS2Object tree){
if(tree != null && ableToWork()){
log("Picked new tree!");
tree.interact("Chop down");
}
new ConditionalSleep(3000){
public boolean condition(){
return myPlayer().isAnimating();
}
}.sleep();
}
}
A few questions I had:
If i make a GUI, should it be in a separate class?
Am I using ConditionalSleep correctly?
Would using States make this script better?
If I have a complex script, should I put all my functions in a separate module?