Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.Zulander69ni.bots.ChopNBurn;
- import com.runemate.game.api.hybrid.entities.GameObject;
- import com.runemate.game.api.hybrid.input.Keyboard;
- import com.runemate.game.api.hybrid.local.Camera;
- import com.runemate.game.api.hybrid.local.hud.interfaces.Interfaces;
- import com.runemate.game.api.hybrid.local.hud.interfaces.Inventory;
- import com.runemate.game.api.hybrid.local.hud.interfaces.SpriteItem;
- import com.runemate.game.api.hybrid.location.Area;
- import com.runemate.game.api.hybrid.region.GameObjects;
- import com.runemate.game.api.hybrid.region.Players;
- import com.runemate.game.api.script.Execution;
- import com.runemate.game.api.script.framework.LoopingBot;
- public class ChopNBurn extends LoopingBot {
- private enum State{
- CHOP, WAIT, BURN;
- }
- @Override
- public void onStart(String... args){
- }
- @Override
- public void onLoop() {
- switch(getCurrentState()){
- case CHOP:
- GameObject tree = GameObjects.newQuery().names("Tree").results().nearest();
- if(tree != null && tree.getDefinition() != null){
- if(!tree.isVisible()){
- Camera.turnTo(tree);
- }
- if(tree.interact("Chop down", tree.getDefinition().getName())){
- Execution.delayUntil(()->Players.getLocal().getAnimationId() != -1, 500, 5000);
- }
- }
- break;
- case BURN:
- SpriteItem logs = Inventory.newQuery().names("Logs").actions("Light").results().first();
- if(logs != null){
- if(logs.interact("Light")){
- System.out.println("Waiting for fire to ignite");
- Execution.delayUntil(()->!GameObjects.newQuery().names("Fire").within(new Area.Circular(Players.getLocal().getPosition(), 1)).results().isEmpty(), 5000, 25000);
- System.out.println("Fire Ignited");
- GameObject bonfire = GameObjects.newQuery().names("Fire").results().nearest();
- Execution.delay(1000, 3000);
- if(bonfire != null){
- if(!bonfire.isVisible()){
- System.out.println("Turning camera to bonfire.");
- Camera.turnTo(bonfire);
- }
- Execution.delay(500, 1000);
- if(bonfire.interact("Use")){
- Execution.delayUntil(()->Interfaces.getAt(1179, 35).isValid());
- System.out.println("Clicked use on bonfire");
- if(Interfaces.getAt(1179, 35).isValid()){
- System.out.println("Interfaces is valid");
- Execution.delay(2000, 3000);
- Keyboard.typeKey("2");
- System.out.println("Adding to bonfire");
- Execution.delayUntil(()->GameObjects.newQuery().names("Fire").within(new Area.Circular(Players.getLocal().getPosition(), 1)).results().isEmpty() || Inventory.isEmpty(), 240000, 300000);
- }
- }
- }
- }
- }
- break;
- case WAIT:
- break;
- }
- }
- @Override
- public void onStop(){
- }
- private State getCurrentState(){
- if(Inventory.isFull()){
- return State.BURN;
- } else if(Players.getLocal().getAnimationId() == -1){
- return State.CHOP;
- } else {
- return State.WAIT;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement