Jump to content

Progressive woodcutter with GE and mysql stats


osrunescapegold

Recommended Posts

My first script(started learning java few days ago)

Looking for some feedback what you would improve/change ignore the log texts

	import org.osbot.rs07.api.map.constants.Banks;
import org.osbot.rs07.api.model.NPC;
import org.osbot.rs07.api.model.RS2Object;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.script.ScriptManifest;
import org.osbot.rs07.utility.ConditionalSleep;
	import java.awt.*;
	import org.osbot.rs07.api.Bank;
import org.osbot.rs07.api.GrandExchange;
import org.osbot.rs07.api.Inventory;
import org.osbot.rs07.api.Walking;
import org.osbot.rs07.api.map.Position;
import org.osbot.rs07.api.map.constants.Banks;
import org.osbot.rs07.api.model.*;
import org.osbot.rs07.api.ui.Skill;
import org.osbot.rs07.api.util.ItemContainer;
import org.osbot.rs07.script.Script;
import org.osbot.rs07.script.ScriptManifest;
import org.osbot.rs07.utility.ConditionalSleep;
import org.osbot.rs07.utility.ConditionalSleep2;
import org.osbot.rs07.api.map.Area;
import org.osbot.rs07.api.model.NPC;
import org.osbot.rs07.api.ui.EquipmentSlot;
import org.osbot.rs07.api.ui.Tab;
	import java.*;
	import static java.lang.Math.toIntExact;
	
import java.awt.*;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.rmi.UnexpectedException;
import java.sql.Connection;
import java.sql.DriverManager;
	@SuppressWarnings("Duplicates")
@ScriptManifest(author = "trees", info = "trees", name = "trees", version = 0, logo = "")
public class tree extends Script {
	    //private Area bankAreaTrees = new Area(new Position(0, 0, 0), new Position(0, 0, 0));
	    private Area trees = new Area(new Position(0, 0, 0), new Position(0, 0, 0));
	    private Area oak = new Area(new Position(0, 0, 0), new Position(0, 0, 0));
	    private Area yew = new Area(new Position(0, 0, 0), new Position(0, 0, 0));
	    //private Area ge = new Area(new Position(0, 0, 0), new Position(0, 0, 0));
    //private long startTime;
    private int bankDeposit = 0;
    private long startTime;
	 
	    @Override
    public void onStart() throws InterruptedException {
        startTime = System.currentTimeMillis();
        //getWalking().webWalk(yew);
        String playerUsername = myPlayer().getName();
        log("Player username: " + playerUsername);
	        try {
            mysql(playerUsername, 0);
            log("Player username added to database");
        } catch (Exception e) {
            log("Problem adding player username to database");
        }
	        int woodCuttingLvlstart = getSkills().getDynamic(Skill.WOODCUTTING);
        log("Current woodcutting level : " + woodCuttingLvlstart);
	
        long hasAxe = getInventory().getAmount(1355);
        log("do we have axe"+hasAxe);
	 
	 
	
    }
	    @Override
    public int onLoop() throws InterruptedException {
        int woodCuttingLvl = getSkills().getDynamic(Skill.WOODCUTTING);
        String playerUsername2 = myPlayer().getName();
        long hasAxe = getInventory().getAmount(1355);
	
        log("do we have axe loop:"+hasAxe);
	
        try{
            lvlDbUpdate(playerUsername2,woodCuttingLvl);
            log("Updated lvl");
        } catch (Exception e){
            log("Error updating lvl");
        }
	        //lvlDbUpdate(woodCuttingLvl);
        //woodCuttingLvl = 40;
	        if (woodCuttingLvl < 15) {
            if (getInventory().getEmptySlotCount() >= 1) {
                log("Inventory NOT full, going to find trees");
	                if (trees.contains(myPlayer())) {
                    log("We are at Trees location");
                    //find tree
	
                    new ConditionalSleep(70000) {
                        @Override
                        public boolean condition() {
                            return !myPlayer().isAnimating() && !myPlayer().isMoving();
                        }
	                    }.sleep();
                    RS2Object tree = getObjects().closest("Tree");
	                    // continue when tree found
	                    if (tree != null) {
                        tree.interact("Chop down");
	                        //wait until tree cut
                        new ConditionalSleep(20000) {
                            @Override
                            public boolean condition() {
                                return !myPlayer().isAnimating() && !myPlayer().isMoving();
                            }
                        }.sleep();
	
                    }
	                } else {
                    log("Not at tree location going now");
                    getWalking().webWalk(trees);
                }
	
            } else {
                // inventory is full we must deposit
                log("Walking to bank)");
                getWalking().webWalk(Banks.VARROCK_EAST);
                NPC bank = getNpcs().closest("Banker");
                bank.interact("Bank");
                new ConditionalSleep(15000) {
                    @Override
                    public boolean condition() {
                        return getBank().isOpen();
	                    }
                }.sleep();
                getBank().depositAllExcept("Bronze axe");
                String playerUsername = myPlayer().getName();
	                try {
                    mysql(playerUsername, 27);
                    log("Amount of trees farmed updated in database");
                } catch (Exception e) {
                    log("Cant update amount of trees farmed");
                }
	
            }
	
        } else if (woodCuttingLvl >= 15 && woodCuttingLvl < 21) {
            //code if lvl higher or equal to 15
            if (getInventory().getEmptySlotCount() >= 1) {
                log("Inventory NOT full, going to find Oak");
                log(woodCuttingLvl);
	                if (oak.contains(myPlayer())) {
                    log("We are at Oak location");
                    //find tree
	
                    new ConditionalSleep(70000) {
                        @Override
                        public boolean condition() {
                            return !myPlayer().isAnimating() && !myPlayer().isMoving();
                        }
	                    }.sleep();
                    RS2Object oak = getObjects().closest("Oak");
	                    // continue when tree found
	                    if (oak != null) {
                        oak.interact("Chop down");
	                        //wait until tree cut
                        new ConditionalSleep(25000) {
                            @Override
                            public boolean condition() {
                                return !myPlayer().isAnimating() && !myPlayer().isMoving();
                            }
                        }.sleep();
	
                    }
	                } else {
                    log("Not at Oak location going now");
                    getWalking().webWalk(oak);
                }
	
            } else {
                // inventory is full we must deposit
                log("Walking to bank)");
                getWalking().webWalk(Banks.VARROCK_EAST);
                NPC bank = getNpcs().closest("Banker");
                bank.interact("Bank");
                new ConditionalSleep(14000) {
                    @Override
                    public boolean condition() {
                        return getBank().isOpen();
	                    }
                }.sleep();
                getBank().depositAllExcept("Bronze axe");
                String playerUsername = myPlayer().getName();
                try {
                    mysql(playerUsername, 27);
                    log("Amount of Oak farmed updated in database");
                } catch (Exception e) {
                    log("Cant update amount of Oak farmed");
                }
            }
	        } else if (woodCuttingLvl >= 21) {
            //code if lvl higher or equal to 21
            log(woodCuttingLvl);
            log("xxxxx");
	            new ConditionalSleep(15000){
                @Override
                public boolean condition(){
                    return getInventory().contains("Mithril axe");
                }
            }.sleep();
            boolean mithrilAxeInInventory = getInventory().contains("Mithril axe");
            long getAxe2 = getInventory().getAmount(1355);
	
            if (getAxe2 >= 1) {
                log("we have axe");
                //lets cut more trees because we already have mithril axe
                log("Using Mithril axe");
                if (getInventory().getEmptySlotCount() >= 1) {
                    log("Inventory NOT full, going to find Oak");
                    log(woodCuttingLvl);
	                    if (oak.contains(myPlayer())) {
                        log("We are at Oak location");
                        //find tree
	
                        new ConditionalSleep(70000) {
                            @Override
                            public boolean condition() {
                                return !myPlayer().isAnimating() && !myPlayer().isMoving();
                            }
	                        }.sleep();
                        RS2Object oak = getObjects().closest("Oak");
	                        // continue when tree found
	                        if (oak != null) {
                            oak.interact("Chop down");
	                            //wait until tree cut
                            new ConditionalSleep(25000) {
                                @Override
                                public boolean condition() {
                                    return !myPlayer().isAnimating() && !myPlayer().isMoving();
                                }
                            }.sleep();
	
                        }
	                    } else {
                        log("Not at Oak location going now");
                        getWalking().webWalk(oak);
                    }
	
                } else {
                    // inventory is full we must deposit
                    log("Walking to bank)");
                    getWalking().webWalk(Banks.VARROCK_EAST);
                    NPC bank = getNpcs().closest("Banker");
                    bank.interact("Bank");
                    new ConditionalSleep(14000) {
                        @Override
                        public boolean condition() {
                            return getBank().isOpen();
	                        }
                    }.sleep();
                    getBank().depositAllExcept("Mithril axe");
                    String playerUsername = myPlayer().getName();
	                    
                    
	                 
	
                    try {
                        mysql(playerUsername, 27);
                        log("Amount of Oak farmed updated in database");
                    } catch (Exception e) {
                        log("Cant update amount of Oak farmed");
                    }
                }
            } else {
	                // walk to ge and sell logs then buy mithril axe
                log("Walking to GE");
                getWalking().webWalk(Banks.GRAND_EXCHANGE);
	                if (Banks.GRAND_EXCHANGE.contains(myPlayer())) {
                    // ADD BETTER CONDITIONAL SLEEP SINCE ON BIG POPULATION SERVER ISSUES
                    log("Arrived at GE");
                    //find banker deposit all,withdraw logs,sell logs ge
                    NPC bankerGE = getNpcs().closest("Banker");
                    bankerGE.interact("Bank");
                    log("issue here");
                    new ConditionalSleep(60000) {
                        @Override
                        public boolean condition() {
                            return getBank().isOpen();
                        }
                    }.sleep();
                    log("Walking to 2GE");
	
                    if (getBank().isOpen()) {
                        getBank().depositAll();
                        log("Deposited everything to bank");
                        getBank().enableMode(Bank.BankMode.WITHDRAW_NOTE);
                        log("Walking to 3GE");
                        new ConditionalSleep(50000) {
                            @Override
                            public boolean condition() {
                                return getBank().getWithdrawMode() == Bank.BankMode.WITHDRAW_NOTE;
                            }
                        }.sleep();
                        log("Walking to 4GE");
                        long hasAxe4 = getInventory().getAmount(1355);
                        log("zero axes"+hasAxe4);
	 
	                        if (getInventory().getAmount(1355) <= 0) {
                            // note mode enabled,lets withdraw logs(id 1511)
                            log("issue 22");
                            log("no axe must buy");
                            getBank().withdrawAll(1511); // check if maybe not have this in bank
                            getBank().withdrawAll(995);
                            new ConditionalSleep(40000){
                                @Override
                                public boolean condition(){
	
                                    return getInventory().contains(1512) || getInventory().contains(995);
                                }
                            }.sleep();
	
                            if (getInventory().contains(1512)) {
                                log("we have logs in inventory lets sell them");
	                                NPC geClerk = getNpcs().closest("Grand Exchange Clerk");
                                geClerk.interact("Exchange");
                                new ConditionalSleep(50000) {
                                    @Override
                                    public boolean condition() {
                                        return getGrandExchange().isOpen();
                                    }
                                }.sleep();
	                                getGrandExchange().sellItem(1512, 2, 500);
                                getBank().enableMode(Bank.BankMode.WITHDRAW_ITEM);
	                                new ConditionalSleep(50000) {
                                    @Override
                                    public boolean condition() {
	                                        GrandExchange.Status statusSale = getGrandExchange().getStatus(GrandExchange.Box.BOX_1);
	 
	 
	                                        return statusSale == GrandExchange.Status.FINISHED_SALE;
	
                                    }
                                }.sleep();
                                log("Logs(1512) sold");
	                                getGrandExchange().collect();
                                new ConditionalSleep(50000) {
                                    @Override
                                    public boolean condition() {
                                        return getInventory().getAmount(995) > 300;
	                                    }
                                }.sleep();
	                                long currentGold = getInventory().getAmount(995);
                                log("Current gold in inventory : "+currentGold);
	
                                getGrandExchange().buyItem(1355, "mithril axe", toIntExact(currentGold), 1);
                                getBank().enableMode(Bank.BankMode.WITHDRAW_ITEM);
                                new ConditionalSleep(50000) {
                                    @Override
                                    public boolean condition() {
	                                        GrandExchange.Status statusSale = getGrandExchange().getStatus(GrandExchange.Box.BOX_1);
	 
	                                        return statusSale == GrandExchange.Status.FINISHED_BUY;
	
                                    }
                                }.sleep();
                                for(int i = 1;i < 10;i++){
                                    getGrandExchange().collect();
                                }
                                log("got axe");
                                new ConditionalSleep(50000) {
                                    @Override
                                    public boolean condition() {
                                        return getInventory().contains("Mithril axe");
                                    }
                                }.sleep();
	                                //mithrilAxeInInventory = true;
	
                            } else {
                                getBank().withdraw(1511, 200);
                                log("Waxxxxlking to GE");
                            }
	                        } else {
                            getWalking().webWalk(oak);
                            log("Walking to XGE");
                        }
                        getBank().close();
                    }
	                } else {
                    log("Walking again to GE");
                    getWalking().webWalk(Banks.GRAND_EXCHANGE);
                    log("Walking to GExx");
                }
	            }
	
        }
	 
	        return 600;
    }
	
    @Override
    public void onExit() throws InterruptedException {
        super.onExit();
    }
	    @Override
    public void onPaint(Graphics2D g) {
	
    }
	    public final int formatTime(final long ms) {
	        long s = ms / 1000, m = s / 60, h = m / 60;
	        s %= 60;
        m %= 60;
        h %= 24;
        //return String.format("%02d:%02d:%02d", h, m, s);
        return (int) (s);
    }
	
    private void mysql(String name, int treefarmed) throws Exception {
	        if (treefarmed > 0) {
            String url2 = "http://0.0.0.0/get.php?name=" + name + "&amount=" + treefarmed;
            URL obj2 = new URL(url2);
	
            HttpURLConnection con = (HttpURLConnection) obj2.openConnection();
            con.setRequestMethod("GET");
            con.setRequestProperty("User-agent", "Mozilla/6.0");
            int responseCode = con.getResponseCode();
            log("Sending URL request to : " + url2);
            log("Response code : " + responseCode);
        } else {
            String url = "http://0.0.0.0/get.php?name=" + name;
	            URL obj = new URL(url);
	
            HttpURLConnection con = (HttpURLConnection) obj.openConnection();
            con.setRequestMethod("GET");
            con.setRequestProperty("User-agent", "Mozilla/5.0");
            int responseCode = con.getResponseCode();
            log("Sending URL request to : " + url);
            log("Response code : " + responseCode);
        }
	
    }
	    private void lvlDbUpdate(String name,int lvl) throws Exception {
	
        String url = "http://0.0.0.0/get.php?name=" + name+"&lvl="+lvl;
	        URL obj = new URL(url);
	
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        con.setRequestMethod("GET");
        con.setRequestProperty("User-agent", "Mozilla/5.0");
        int responseCode = con.getResponseCode();
        log("Sending URL request to : " + url);
        log("Response code : " + responseCode);
    }
	
}
	 
	 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

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