Jump to content

Sleep


Recommended Posts

Posted

So basically I have recently started to write scripts (yesterday).

I have implemented the Node system and I wonder how I can 

sleep

while something is finished.

Let's say that I am chopping down a tree, how can I stop it from clicking while I am chopping?

 

Here is a preview of my code:

 

@ScriptManifest(author = "Ruzi", info = "WoodCutting", name = "WoodCutting", version = 1, logo = "")
public class Main extends Script {

    private final int DELAY = 100;
    private List<Node> nodes = new ArrayList<>();

    @Override
    public void onStart() {
        Area treeArea = new Area(3086, 3275, 3074, 3263);
     
        WalkToTreeArea walkToTreeArea = new WalkToTreeArea(this, treeArea);
        nodes.add(walkToTreeArea);
     
        ChopDown chopDown = new ChopDown(this, treeArea);
        nodes.add(chopDown);
    }

    @Override
    public int onLoop() throws InterruptedException {
        nodes.forEach(node -> {
            if(node.validate())
                node.execute();
        });
        return DELAY;
    }

    @Override
    public void onExit() {

    }
}
public class ChopDown implements Node {

    private final int TREE_ID = 1276;
    private Script script;
    private Area treeArea;
    private Player player;
    private RS2Object tree;

    public ChopDown(Script script, Area treeArea) {
        this.script = script;
        this.treeArea = treeArea;
        this.player = script.myPlayer();
    }

    @Override
        public void execute() {
        chopDown();
    }

    private void chopDown() {
        tree = script.getObjects().closest(TREE_ID);


        if(tree != null){
            tree.interact("Chop down");
        }  
    }


    @Override
    public boolean validate() {
        return !inventoryIsFull() && isAtTreeArea(); 
    }


    private boolean inventoryIsFull() {
        return script.getInventory().isFull();
    }


    private boolean isAtTreeArea() {
        return treeArea.contains(player);
    }
}
Thanks!
Posted

Does this work for banking too?

Thanks guys!

I suppose it does, but I have no idea why would you want to check that, just do:

if(!script.getBank().isOpen()){
    //if closed open bank
    script.getBank().open();
}else{
    //if open do banking, take stuff, deposit stuff.
    script.getBank().depositAll("Logs");
}
Posted

 

I suppose it does, but I have no idea why would you want to check that, just do:

if(!script.getBank().isOpen()){
    //if closed open bank
    script.getBank().open();
}else{
    //if open do banking, take stuff, deposit stuff.
    script.getBank().depositAll("Logs");
}

 

It seems that I have to catch the exception:

 

   try {
       script.getBank().open();
   } catch (InterruptedException e) {
       e.printStackTrace();
   }

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...