SHARE
TWEET

Untitled

a guest Feb 23rd, 2020 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3.  
  4. import org.osbot.rs07.api.Walking;
  5. import org.osbot.rs07.api.map.Position;
  6. import org.osbot.rs07.api.map.constants.Banks;
  7. import org.osbot.rs07.api.model.Entity;
  8. import org.osbot.rs07.api.model.RS2Object;
  9. import org.osbot.rs07.api.ui.Message;
  10. import org.osbot.rs07.event.WalkingEvent;
  11. import org.osbot.rs07.script.Script;
  12. import java.awt.Image;
  13. import java.awt.geom.Area;
  14. import java.awt.image.BufferedImage;
  15. import java.io.IOException;
  16. import java.awt.Graphics2D;
  17. import java.lang.reflect.InvocationTargetException;
  18. import java.net.MalformedURLException;
  19. import java.net.URL;
  20. import javax.imageio.ImageIO;
  21. import javax.swing.*;
  22.  
  23. import org.osbot.rs07.api.ui.Skill;
  24. import org.osbot.rs07.script.Script;
  25. import org.osbot.rs07.script.ScriptManifest;
  26. import org.osbot.rs07.utility.ConditionalSleep;
  27.  
  28.  
  29. import java.awt.*;
  30. import java.text.DecimalFormat;
  31. import java.util.Comparator;
  32. import java.util.List;
  33.  
  34. import static com.sun.activation.registries.LogSupport.log;
  35.  
  36.  
  37. @ScriptManifest(author = "DarkBinded", info = "DarkBinded's Woodcutter", name = "DarkBinded's WoodCutter", version = 0.1, logo = "")
  38.  
  39. public class Woodcutter extends Script {
  40.  
  41.     private long timeBegan, timeRan;
  42.     private double log;
  43.     private int itemsMade = 0;
  44.     BufferedImage Image;
  45.     private int currentLevel;
  46.     private int beginningLevel;
  47.     private int levelsGained;
  48.     private int beginningXp;
  49.     private int currentXp;
  50.     private int xpGained;
  51.     private String state;
  52.     private GUI gui = new GUI();
  53.     private Tree tree;
  54.     private BankDrop bankdropState;
  55.  
  56.     @Override
  57.  
  58.  
  59.     public void onStart() {
  60.         experienceTracker.start(Skill.WOODCUTTING);
  61.         WalkingEvent treearea = new WalkingEvent(new Position(3280, 3427, 0));
  62.         treearea.setMinDistanceThreshold(5);
  63.         treearea.setMiniMapDistanceThreshold(5);
  64.         treearea.setEnergyThreshold(30);
  65.         log("Thank you for choosing DarkBinded's Woodcutter!");
  66.         timeBegan = System.currentTimeMillis();
  67.         Image = getImage("https://i.imgur.com/c8IqAbr.png");
  68.         beginningLevel = skills.getStatic(Skill.WOODCUTTING);
  69.         beginningXp = skills.getExperience(Skill.WOODCUTTING);
  70.         try {
  71.             SwingUtilities.invokeAndWait(() -> {
  72.                 gui = new GUI();
  73.                 gui.open();
  74.             });
  75.         } catch (InterruptedException | InvocationTargetException e) {
  76.             e.printStackTrace();
  77.             stop();
  78.             return;
  79.         }
  80.  
  81.         if (!gui.isStarted()) {
  82.             stop();
  83.             return;
  84.         }
  85.  
  86.         tree = gui.getSelectedTree();
  87.         bankdropState = gui.getDroporBank();
  88.     }
  89.  
  90.  
  91.     @Override
  92.  
  93.     public void onExit() {
  94.         log("Thank you for using DarkBinded's Woodcutter!");
  95.         if (gui != null) {
  96.             gui.close();
  97.         }
  98.     }
  99.  
  100.     @Override
  101.  
  102.     public int onLoop() throws InterruptedException {
  103.         WalkingEvent treearea = new WalkingEvent(new Position(3280, 3427, 0));
  104.         treearea.setMinDistanceThreshold(5);
  105.         treearea.setMiniMapDistanceThreshold(5);
  106.         treearea.setEnergyThreshold(30);
  107.  
  108.  
  109.         switch (tree) {
  110.             case NORMAL:
  111.             if(bankdropState == BankDrop.DROP) {
  112.                 if (getInventory().isFull()) {
  113.                     state = "Dropping tree logs";
  114.                     getInventory().dropAllExcept("Bronze axe");
  115.                 } else {
  116.                     RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Tree") && getMap().canReach(object));
  117.                     if (tree != null && tree.interact("Chop down")) {
  118.                         state = "Chopping down trees";
  119.                         new ConditionalSleep(5000) {
  120.                             @Override
  121.                             public boolean condition() {
  122.                                 return myPlayer().isAnimating() || !tree.exists();
  123.                             }
  124.                         }.sleep();
  125.                     }
  126.                 }
  127.             }
  128.             else if(bankdropState == BankDrop.BANK) {
  129.                 if (!myPlayer().isAnimating()) {
  130.                     if (getInventory().isFull()) {
  131.                         state = "Walking to East Varrock Bank";
  132.                         getWalking().webWalk((Banks.VARROCK_EAST));
  133.                     if (!getBank().isOpen()) {
  134.                         getBank().open();
  135.                     } else {
  136.                         state = "Depositing Tree logs";
  137.                         getBank().depositAllExcept("Bronze Axe");
  138.                         getBank().close();
  139.                         state = "Walking to trees";
  140.                         //WalkingEvent treearea = new WalkingEvent(new Position(3183, 3508, 0));
  141.                         treearea.setMinDistanceThreshold(5);
  142.                         treearea.setMiniMapDistanceThreshold(5);
  143.                         treearea.setEnergyThreshold(30);
  144.                         execute(treearea);
  145.                     }
  146.             } else {
  147.                 RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Tree") && getMap().canReach(object));
  148.                 if (tree != null && tree.interact("Chop down")) {
  149.                     state = "Chopping down trees";
  150.                     new ConditionalSleep(5000) {
  151.                         @Override
  152.                         public boolean condition() {
  153.                             return myPlayer().isAnimating() || !tree.exists();
  154.                         }
  155.                     }.sleep();
  156.                 }
  157.             }
  158.         }
  159.     }
  160.             case OAK:
  161.                     if(bankdropState == BankDrop.DROP){
  162.                         if (!myPlayer().isAnimating()) {
  163.                             if (getInventory().isFull()) {
  164.                                 state = "Dropping Oak logs";
  165.                                 getInventory().dropAllExcept("Bronze axe");
  166.                             }
  167.                             else {
  168.                                 RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Oak") && getMap().canReach(object));
  169.                                 if (tree != null && tree.interact("Chop down")) {
  170.                                     state = "Chopping down Oak trees";
  171.                                     new ConditionalSleep(5000) {
  172.                                         @Override
  173.                                         public boolean condition() {
  174.                                             return myPlayer().isAnimating() || !tree.exists();
  175.                                         }
  176.                                     }.sleep();
  177.                                 }
  178.                             }
  179.                         }
  180.                     }
  181.                     else if (bankdropState == BankDrop.BANK){
  182.                         if (!myPlayer().isAnimating()) {
  183.                             if (getInventory().isFull()) {
  184.                                 state = "Walking to East Varrock Bank";
  185.                                 getWalking().webWalk((Banks.VARROCK_EAST));
  186.                                 if (!getBank().isOpen()) {
  187.                                     getBank().open();
  188.                                 } else {
  189.                                     state = "Depositing Oak logs";
  190.                                     getBank().depositAllExcept("Bronze Axe");
  191.                                     getBank().close();
  192.                                     state = "Walking to Oak trees";
  193.                                     treearea.setMinDistanceThreshold(5);
  194.                                     treearea.setMiniMapDistanceThreshold(5);
  195.                                     treearea.setEnergyThreshold(30);
  196.                                     execute(treearea);
  197.                                 }
  198.                             }
  199.                             else {
  200.                                 RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Oak") && getMap().canReach(object));
  201.                                 if (tree != null && tree.interact("Chop down")) {
  202.                                     state = "Chopping down Oak trees";
  203.                                     new ConditionalSleep(5000) {
  204.                                         @Override
  205.                                         public boolean condition() {
  206.                                             return myPlayer().isAnimating() || !tree.exists();
  207.                                         }
  208.                                     }.sleep();
  209.                                 }
  210.                             }
  211.                         }
  212.                     }
  213.             case WILLOW://fix the willow one so it goes to draynor remember to fix it
  214.                 if(bankdropState == BankDrop.DROP){
  215.                     if (!myPlayer().isAnimating()) {
  216.                         if (getInventory().isFull()) {
  217.                             state = "Dropping Willow logs";
  218.                             getInventory().dropAllExcept("Bronze axe");
  219.                         }
  220.                         else {
  221.                             RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Oak") && getMap().canReach(object));
  222.                             if (tree != null && tree.interact("Chop down")) {
  223.                                 state = "Chopping down Oak trees";
  224.                                 new ConditionalSleep(5000) {
  225.                                     @Override
  226.                                     public boolean condition() {
  227.                                         return myPlayer().isAnimating() || !tree.exists();
  228.                                     }
  229.                                 }.sleep();
  230.                             }
  231.                         }
  232.                     }
  233.                 }
  234.                 else if (bankdropState == BankDrop.BANK){
  235.                     if (!myPlayer().isAnimating()) {
  236.                         if (getInventory().isFull()) {
  237.                             state = "Walking to East Varrock Bank";
  238.                             getWalking().webWalk((Banks.VARROCK_EAST));
  239.                             if (!getBank().isOpen()) {
  240.                                 getBank().open();
  241.                             } else {
  242.                                 state = "Depositing Willow logs";
  243.                                 getBank().depositAllExcept("Bronze Axe");
  244.                                 getBank().close();
  245.                                 state = "Walking to Willow trees";
  246.                                 //WalkingEvent treearea = new WalkingEvent(new Position(3183, 3508, 0));
  247.                                 treearea.setMinDistanceThreshold(5);
  248.                                 treearea.setMiniMapDistanceThreshold(5);
  249.                                 treearea.setEnergyThreshold(30);
  250.                                 execute(treearea);
  251.                             }
  252.                         }
  253.                         else {
  254.                             RS2Object tree = getObjects().closest(object -> (object != null) && object.getName().equals("Oak") && getMap().canReach(object));
  255.                             if (tree != null && tree.interact("Chop down")) {
  256.                                 state = "Chopping down Oak trees";
  257.                                 new ConditionalSleep(5000) {
  258.                                     @Override
  259.                                     public boolean condition() {
  260.                                         return myPlayer().isAnimating() || !tree.exists();
  261.                                     }
  262.                                 }.sleep();
  263.                             }
  264.                         }
  265.                     }
  266.                 }
  267.  
  268. }
  269.  
  270.  
  271.  
  272.         return 1000; //The amount of time in milliseconds before the loop starts over
  273.     }
  274.     @Override
  275.  
  276.     public void onPaint(Graphics2D g) {
  277.         /*if (tree == Tree.NORMAL){
  278.             log = 25;
  279.         }
  280.         if (tree == Tree.OAK){
  281.             log = 37.5;
  282.         }
  283.         if (tree == Tree.WILLOW){
  284.             log = 67.5;
  285.         }
  286.  
  287.         itemsMade = (int) (xpGained / log);*/
  288.  
  289.  
  290.         timeRan = System.currentTimeMillis() - timeBegan;
  291.         g.setColor(Color.white);
  292.         //mouse
  293.         Point mP = getMouse().getPosition();
  294.         g.drawLine(mP.x - 5, mP.y + 5, mP.x + 5, mP.y - 5);
  295.         g.drawLine(mP.x + 5, mP.y + 5, mP.x - 5, mP.y - 5);
  296.  
  297.         //background image
  298.         g.drawImage(Image, 7, 344, null);
  299.         g.setColor(Color.decode("#0E4D92"));
  300.         Font font = new Font("Open Sans", Font.BOLD, 14);
  301.         g.setFont(font);
  302.  
  303.         //text area
  304.         g.drawString(timeFormatDHMS(timeRan), 405, 361);
  305.         currentLevel = skills.getStatic(Skill.WOODCUTTING);
  306.         levelsGained = currentLevel - beginningLevel;
  307.         currentXp = skills.getExperience(Skill.WOODCUTTING);
  308.         xpGained = currentXp - beginningXp;
  309.         g.drawString("State: " + state, 230, 400);
  310.         g.drawString(currentLevel + " (+" + levelsGained + ")", 461, 419);
  311.         g.drawString("XP Gained: " + xpGained + "(" + experienceTracker.getGainedXPPerHour(Skill.WOODCUTTING) + "/Hr)", 30, 460);
  312.         g.drawString("Logs cut: " + itemsMade, 230, 430);
  313.  
  314.  
  315.     }
  316.     public String timeFormatDHMS(long time) {
  317.         int sec = (int) (time / 1000), d = sec / 86400, h = sec / 3600 % 24, m = sec / 60 % 60, s = sec % 60;
  318.         return (d < 10 ? "0" + d : d) + ":" + (h < 10 ? "0" + h : h) + ":"
  319.                 + (m < 10 ? "0" + m : m) + ":" + (s < 10 ? "0" + s : s);
  320.     }
  321.     public static BufferedImage getImage(String url) {
  322.         try {
  323.             URL imageUrl = new URL(url);
  324.             BufferedImage image = ImageIO.read(imageUrl);
  325.  
  326.             return image;
  327.  
  328.         } catch (MalformedURLException e) {
  329.             e.printStackTrace();
  330.         } catch (IOException e) {
  331.             e.printStackTrace();
  332.         }
  333.         return null;
  334.     }
  335.  
  336.     public void onMessage(Message message) throws java.lang.InterruptedException{
  337.         String txt = message.getMessage();
  338.         if(txt.contains("You get some logs")){
  339.             itemsMade++;
  340.         }
  341.     }
  342. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top