Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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.Entity;
- import org.osbot.rs07.api.model.RS2Object;
- import org.osbot.rs07.api.ui.Message;
- import org.osbot.rs07.event.WalkingEvent;
- import org.osbot.rs07.script.Script;
- import java.awt.Image;
- import java.awt.geom.Area;
- import java.awt.image.BufferedImage;
- import java.io.IOException;
- import java.awt.Graphics2D;
- import java.lang.reflect.InvocationTargetException;
- import java.net.MalformedURLException;
- import java.net.URL;
- import javax.imageio.ImageIO;
- import javax.swing.*;
- 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;
- import java.awt.*;
- import java.text.DecimalFormat;
- import java.util.Comparator;
- import java.util.List;
- import static com.sun.activation.registries.LogSupport.log;
- @ScriptManifest(author = "DarkBinded", info = "DarkBinded's Woodcutter", name = "DarkBinded's WoodCutter", version = 0.1, logo = "")
- public class Woodcutter extends Script {
- private long timeBegan, timeRan;
- private double log;
- private int itemsMade = 0;
- BufferedImage Image;
- private int currentLevel;
- private int beginningLevel;
- private int levelsGained;
- private int beginningXp;
- private int currentXp;
- private int xpGained;
- private String state;
- private GUI gui = new GUI();
- private Tree tree;
- private BankDrop bankdropState;
- @Override
- public void onStart() {
- experienceTracker.start(Skill.WOODCUTTING);
- WalkingEvent treearea = new WalkingEvent(new Position(3280, 3427, 0));
- treearea.setMinDistanceThreshold(5);
- treearea.setMiniMapDistanceThreshold(5);
- treearea.setEnergyThreshold(30);
- log("Thank you for choosing DarkBinded's Woodcutter!");
- timeBegan = System.currentTimeMillis();
- Image = getImage("https://i.imgur.com/c8IqAbr.png");
- beginningLevel = skills.getStatic(Skill.WOODCUTTING);
- beginningXp = skills.getExperience(Skill.WOODCUTTING);
- try {
- SwingUtilities.invokeAndWait(() -> {
- gui = new GUI();
- gui.open();
- });
- } catch (InterruptedException | InvocationTargetException e) {
- e.printStackTrace();
- stop();
- return;
- }
- if (!gui.isStarted()) {
- stop();
- return;
- }
- tree = gui.getSelectedTree();
- bankdropState = gui.getDroporBank();
- }
- @Override
- public void onExit() {
- log("Thank you for using DarkBinded's Woodcutter!");
- if (gui != null) {
- gui.close();
- }
- }
- @Override
- public int onLoop() throws InterruptedException {
- WalkingEvent treearea = new WalkingEvent(new Position(3280, 3427, 0));
- treearea.setMinDistanceThreshold(5);
- treearea.setMiniMapDistanceThreshold(5);
- treearea.setEnergyThreshold(30);
- switch (tree) {
- case NORMAL:
- if(bankdropState == BankDrop.DROP) {
- if (getInventory().isFull()) {
- state = "Dropping tree logs";
- getInventory().dropAllExcept("Bronze axe");
- } else {
- RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Tree") && getMap().canReach(object));
- if (tree != null && tree.interact("Chop down")) {
- state = "Chopping down trees";
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() {
- return myPlayer().isAnimating() || !tree.exists();
- }
- }.sleep();
- }
- }
- }
- else if(bankdropState == BankDrop.BANK) {
- if (!myPlayer().isAnimating()) {
- if (getInventory().isFull()) {
- state = "Walking to East Varrock Bank";
- getWalking().webWalk((Banks.VARROCK_EAST));
- if (!getBank().isOpen()) {
- getBank().open();
- } else {
- state = "Depositing Tree logs";
- getBank().depositAllExcept("Bronze Axe");
- getBank().close();
- state = "Walking to trees";
- //WalkingEvent treearea = new WalkingEvent(new Position(3183, 3508, 0));
- treearea.setMinDistanceThreshold(5);
- treearea.setMiniMapDistanceThreshold(5);
- treearea.setEnergyThreshold(30);
- execute(treearea);
- }
- } else {
- RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Tree") && getMap().canReach(object));
- if (tree != null && tree.interact("Chop down")) {
- state = "Chopping down trees";
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() {
- return myPlayer().isAnimating() || !tree.exists();
- }
- }.sleep();
- }
- }
- }
- }
- case OAK:
- if(bankdropState == BankDrop.DROP){
- if (!myPlayer().isAnimating()) {
- if (getInventory().isFull()) {
- state = "Dropping Oak logs";
- getInventory().dropAllExcept("Bronze axe");
- }
- else {
- RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Oak") && getMap().canReach(object));
- if (tree != null && tree.interact("Chop down")) {
- state = "Chopping down Oak trees";
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() {
- return myPlayer().isAnimating() || !tree.exists();
- }
- }.sleep();
- }
- }
- }
- }
- else if (bankdropState == BankDrop.BANK){
- if (!myPlayer().isAnimating()) {
- if (getInventory().isFull()) {
- state = "Walking to East Varrock Bank";
- getWalking().webWalk((Banks.VARROCK_EAST));
- if (!getBank().isOpen()) {
- getBank().open();
- } else {
- state = "Depositing Oak logs";
- getBank().depositAllExcept("Bronze Axe");
- getBank().close();
- state = "Walking to Oak trees";
- treearea.setMinDistanceThreshold(5);
- treearea.setMiniMapDistanceThreshold(5);
- treearea.setEnergyThreshold(30);
- execute(treearea);
- }
- }
- else {
- RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Oak") && getMap().canReach(object));
- if (tree != null && tree.interact("Chop down")) {
- state = "Chopping down Oak trees";
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() {
- return myPlayer().isAnimating() || !tree.exists();
- }
- }.sleep();
- }
- }
- }
- }
- case WILLOW://fix the willow one so it goes to draynor remember to fix it
- if(bankdropState == BankDrop.DROP){
- if (!myPlayer().isAnimating()) {
- if (getInventory().isFull()) {
- state = "Dropping Willow logs";
- getInventory().dropAllExcept("Bronze axe");
- }
- else {
- RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Oak") && getMap().canReach(object));
- if (tree != null && tree.interact("Chop down")) {
- state = "Chopping down Oak trees";
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() {
- return myPlayer().isAnimating() || !tree.exists();
- }
- }.sleep();
- }
- }
- }
- }
- else if (bankdropState == BankDrop.BANK){
- if (!myPlayer().isAnimating()) {
- if (getInventory().isFull()) {
- state = "Walking to East Varrock Bank";
- getWalking().webWalk((Banks.VARROCK_EAST));
- if (!getBank().isOpen()) {
- getBank().open();
- } else {
- state = "Depositing Willow logs";
- getBank().depositAllExcept("Bronze Axe");
- getBank().close();
- state = "Walking to Willow trees";
- //WalkingEvent treearea = new WalkingEvent(new Position(3183, 3508, 0));
- treearea.setMinDistanceThreshold(5);
- treearea.setMiniMapDistanceThreshold(5);
- treearea.setEnergyThreshold(30);
- execute(treearea);
- }
- }
- else {
- RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Oak") && getMap().canReach(object));
- if (tree != null && tree.interact("Chop down")) {
- state = "Chopping down Oak trees";
- new ConditionalSleep(5000) {
- @Override
- public boolean condition() {
- return myPlayer().isAnimating() || !tree.exists();
- }
- }.sleep();
- }
- }
- }
- }
- }
- return 1000; //The amount of time in milliseconds before the loop starts over
- }
- @Override
- public void onPaint(Graphics2D g) {
- /*if (tree == Tree.NORMAL){
- log = 25;
- }
- if (tree == Tree.OAK){
- log = 37.5;
- }
- if (tree == Tree.WILLOW){
- log = 67.5;
- }
- itemsMade = (int) (xpGained / log);*/
- timeRan = System.currentTimeMillis() - timeBegan;
- g.setColor(Color.white);
- //mouse
- Point mP = getMouse().getPosition();
- g.drawLine(mP.x - 5, mP.y + 5, mP.x + 5, mP.y - 5);
- g.drawLine(mP.x + 5, mP.y + 5, mP.x - 5, mP.y - 5);
- //background image
- g.drawImage(Image, 7, 344, null);
- g.setColor(Color.decode("#0E4D92"));
- Font font = new Font("Open Sans", Font.BOLD, 14);
- g.setFont(font);
- //text area
- g.drawString(timeFormatDHMS(timeRan), 405, 361);
- currentLevel = skills.getStatic(Skill.WOODCUTTING);
- levelsGained = currentLevel - beginningLevel;
- currentXp = skills.getExperience(Skill.WOODCUTTING);
- xpGained = currentXp - beginningXp;
- g.drawString("State: " + state, 230, 400);
- g.drawString(currentLevel + " (+" + levelsGained + ")", 461, 419);
- g.drawString("XP Gained: " + xpGained + "(" + experienceTracker.getGainedXPPerHour(Skill.WOODCUTTING) + "/Hr)", 30, 460);
- g.drawString("Logs cut: " + itemsMade, 230, 430);
- }
- public String timeFormatDHMS(long time) {
- int sec = (int) (time / 1000), d = sec / 86400, h = sec / 3600 % 24, m = sec / 60 % 60, s = sec % 60;
- return (d < 10 ? "0" + d : d) + ":" + (h < 10 ? "0" + h : h) + ":"
- + (m < 10 ? "0" + m : m) + ":" + (s < 10 ? "0" + s : s);
- }
- public static BufferedImage getImage(String url) {
- try {
- URL imageUrl = new URL(url);
- BufferedImage image = ImageIO.read(imageUrl);
- return image;
- } catch (MalformedURLException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return null;
- }
- public void onMessage(Message message) throws java.lang.InterruptedException{
- String txt = message.getMessage();
- if(txt.contains("You get some logs")){
- itemsMade++;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement