SHARE
TWEET

Untitled

a guest Aug 25th, 2019 67 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import javafx.scene.paint.Color;
  2. import org.rspeer.runetek.adapter.component.InterfaceComponent;
  3. import org.rspeer.runetek.adapter.scene.Npc;
  4. import org.rspeer.runetek.adapter.scene.Player;
  5. import org.rspeer.runetek.adapter.scene.SceneObject;
  6. import org.rspeer.runetek.api.commons.Time;
  7. import org.rspeer.runetek.api.component.Bank;
  8. import org.rspeer.runetek.api.component.GrandExchange;
  9. import org.rspeer.runetek.api.component.Interfaces;
  10. import org.rspeer.runetek.api.component.tab.Equipment;
  11. import org.rspeer.runetek.api.component.tab.Inventory;
  12. import org.rspeer.runetek.api.component.tab.Skills;
  13. import org.rspeer.runetek.api.movement.Movement;
  14. import org.rspeer.runetek.api.movement.position.Position;
  15. import org.rspeer.runetek.api.scene.Npcs;
  16. import org.rspeer.runetek.api.scene.Players;
  17. import org.rspeer.runetek.api.scene.SceneObjects;
  18. import org.rspeer.runetek.providers.RSGrandExchangeOffer;
  19. import org.rspeer.script.Script;
  20. import org.rspeer.script.ScriptMeta;
  21. import org.rspeer.runetek.adapter.component.Item;
  22. import org.rspeer.ui.Log;
  23. import org.rspeer.runetek.api.component.tab.Skill;
  24.  
  25. import java.util.concurrent.ThreadLocalRandom;
  26.  
  27. import org.rspeer.runetek.api.scene.Pickables;
  28. import org.rspeer.runetek.adapter.scene.Pickable;
  29.  
  30.  
  31.  
  32.  
  33. @ScriptMeta(developer = "herr", desc = "progressive miner", name = "progressive miner")
  34. public class Main extends Script {
  35.  
  36.  
  37.     private final Position copperSpot = new Position(3223, 3147, 0);
  38.     public final Position rock1Spot = new Position(3223,3146);
  39.     public final Position rock2Spot = new Position(3222,3147);
  40.     public final Position rock3Spot = new Position(3223,3148);
  41.  
  42.  
  43.     public final Position geSpot = new Position(3166,3487);
  44.  
  45.  
  46.     private final Position ironDropoffBank = new Position(3043, 3236,0); //bank drop off in the port
  47.     private final Position ironMineSpot = new Position(2972, 3237,0); // the perfect spot for the single iron
  48.     private final Position ironMineRock1 = new Position(2971, 3237,0); // the single iron
  49.  
  50.     public SceneObject[] ores = new SceneObject[3];
  51.  
  52.     private final Position copperSpot2 = new Position(2977, 3248, 0); // perfect spot to mine copper in the port
  53.     private SceneObject[] coppers = new SceneObject[3]; //the copper spots in the port
  54.     private final Position copper1Spot = new Position(2978,3248);
  55.     private final Position copper2Spot = new Position(2977,3247);
  56.  
  57.     private int current = -1;
  58.  
  59.  
  60.     private int runnumber = getrandom(20,81);
  61.     private int timer = 250;
  62.     final int PARENT_INDEX = 192;
  63.     final int CHILD_INDEX = 4;
  64.     final String ACTION = "Deposit inventory";
  65.  
  66.  
  67.     @Override
  68.     public int loop() {
  69.         Player me = Players.getLocal();
  70.         timer = 500;
  71.  
  72.         //ores[0] = SceneObjects.getFirstAt(3223, 3146, 0);
  73.         //ores[0] = SceneObjects.getNearest(11361);
  74.         ores[0] = SceneObjects.getFirstAt(rock1Spot);
  75.         ores[1] = SceneObjects.getFirstAt(rock2Spot);
  76.         ores[2] = SceneObjects.getFirstAt(rock3Spot);
  77.  
  78.         coppers[0] = SceneObjects.getFirstAt(copper1Spot);
  79.         coppers[1] = SceneObjects.getFirstAt(copper2Spot);
  80.  
  81.         //Log.info(SceneObjects.getFirstAt(rock1Spot).getId());
  82.         if (Skills.getCurrentLevel(Skill.MINING) < 15 || true) { // less than 15
  83.             if (Inventory.isFull()){
  84.                 dropInBox();
  85.             }
  86.             else
  87.             minecopper2();
  88.         }
  89.         else if (Skills.getCurrentLevel(Skill.MINING) > 20 || Equipment.contains("Bronze pickaxe")){
  90.             if (geSpot.distance(me) > 10) {
  91.                 antiSpamWalk(geSpot, 20, true);
  92.             }
  93.             else {
  94.                 Npc banker = Npcs.getNearest("Banker");
  95.                 if (banker != null && !Bank.isOpen() && !Inventory.contains("Copper ore")){
  96.                     banker.interact("Bank");
  97.                 }
  98.                 else if (Bank.isOpen()){
  99.                     if (Bank.getWithdrawMode() == Bank.WithdrawMode.ITEM){
  100.                     Bank.setWithdrawMode(Bank.WithdrawMode.NOTE);
  101.                     }
  102.                     else if (!Inventory.contains("Copper ore")){
  103.                         Bank.withdrawAll("Copper ore");
  104.                         Log.info("get the ore!");
  105.                     }
  106.  
  107.                 }
  108.                 else {
  109.                     Npc ex = Npcs.getNearest("Grand Exchange Clerk");
  110.                     if (ex != null && !Interfaces.isOpen(465)){
  111.                         Log.info("gonna open ge");
  112.                         ex.interact("Exchange");
  113.                     }
  114.                     else if (GrandExchange.isOpen()){
  115.                         GrandExchange.createOffer(RSGrandExchangeOffer.Type.SELL);
  116.                         Interfaces.getComponent(467,0,0).interact("Offer");
  117.                         Interfaces.getComponent(465, 24, 10).interact("-5%");
  118.                         Interfaces.getComponent(465, 24, 10).interact("-5%");
  119.                         Interfaces.getComponent(465, 24, 10).interact("-5%");
  120.                         Interfaces.getComponent(465, 24, 10).interact("-5%");
  121.  
  122.                     }
  123.                 }
  124.  
  125.             }
  126.         }
  127.         else{ // more than 15, time to mine iron
  128.             if (Inventory.isFull()){
  129.                 if (ironDropoffBank.distance() > 8) {
  130.                     antiSpamWalk(ironDropoffBank, 15, true);
  131.                 }
  132.                 else {
  133.                     SceneObject bank = SceneObjects.getNearest("bank deposit box");
  134.                     if (Interfaces.isOpen(192)) {
  135.                         InterfaceComponent bankInterface = Interfaces.getComponent(PARENT_INDEX, CHILD_INDEX);
  136.                         if(bankInterface != null ) {
  137.                             bankInterface.interact(ACTION);
  138.                         }
  139.  
  140.                         Log.info("it's open");
  141.                         timer += 1000;
  142.                     }
  143.                     else{ //opens the bank deposit box
  144.                         bank.interact("Deposit");
  145.                     }
  146.                 }
  147.             }
  148.             else if (ironMineSpot.distance(Players.getLocal()) != 0){ //if is not in the mining spot
  149.                 antiSpamWalk(ironMineSpot, 15, false);
  150.             }
  151.             else {
  152.                 SceneObject iron = SceneObjects.getFirstAt(ironMineRock1);
  153.                 if (!Players.getLocal().isAnimating() && iron.getId() != 11364 && false){
  154.                     Log.info("time to wait >:)");
  155.                     Time.sleepUntil( () ->iron.getId() == 11364, 3000);
  156.                     Log.info("done waiting");
  157.  
  158.                 }
  159.                 if (!Players.getLocal().isAnimating() && (iron.getColors().length == 1)) {
  160.                     iron.interact("mine");
  161.                     Log.info("MINE!! " + getrandom(1,100));
  162.                     timer += 500;
  163.                 }
  164.  
  165.             }
  166.         }
  167.  
  168.         if (current != -1) {
  169.             //Log.info(current);
  170.             //Log.info(coppers[current].getColors().length);
  171.         }
  172.         //Log.info(coppers[0].getColors().length);
  173.  
  174.         if (!Movement.isRunEnabled() && Movement.getRunEnergy() >= runnumber) {
  175.             Movement.toggleRun(true);
  176.             runnumber = getrandom(20,81);
  177.             Log.info("next time ill run at " + runnumber);
  178.             //System.out.println("gotta go fast!");
  179.         }
  180.         return getrandom(timer/2, timer+1 );
  181.     }
  182.  
  183.  
  184.     private int getrandom(int r1, int r2) {
  185.         return ThreadLocalRandom.current().nextInt(r1,r2);
  186.     }
  187.     private  void minecopper() {
  188.         if (Inventory.isFull())
  189.         {
  190.             Item[] items = Inventory.getItems();
  191.             for (int i = 0; i< 28; i++){
  192.                 items[i].interact("drop");
  193.                 Time.sleep(getrandom(100,200));
  194.             }
  195.         }
  196.         if (copperSpot.distance(Players.getLocal()) != 0){ //if is not in the mining spot
  197.             antiSpamWalk(copperSpot, 15, false);
  198.         }
  199.         else {
  200.             for (SceneObject ore : ores) {
  201.                 if (!Players.getLocal().isAnimating() && (ore.getId() == 11361)) {
  202.                     ore.interact("mine");
  203.                     timer += 1500;
  204.                     break;
  205.                 }
  206.             }
  207.         }
  208.     }
  209.     private  void minecopper2() {
  210.         Pickable axe = null;
  211.         Player me = Players.getLocal();
  212.         axe = Pickables.getNearest(x -> x.getName().equals("Copper ore")); //to pick up copper ores on the ground
  213.         //Log.info(axe.distance());
  214.         if (axe != null && axe.distance(me) < 10){
  215.             //Log.info("it exists!");
  216.             axe.interact("Take");
  217.             //Movement.walkTo(axe);
  218.             Time.sleep(200);
  219.             if (Players.getLocal().isMoving()){
  220.                 timer += 1000;
  221.             }
  222.         }
  223.         else if (copperSpot2.distance(Players.getLocal()) != 0){ //if is not in the mining spot
  224.             antiSpamWalk(copperSpot2, 15, false);
  225.         }
  226.         else if (!Players.getLocal().isAnimating()){
  227.             mineThis(coppers);
  228.         }
  229.  
  230.         else if (current != -1) {
  231.             if (Players.getLocal().isAnimating() && coppers[current].getColors().length == 0) {
  232.                 Log.info("im mining nothing!");
  233.                 mineThis(coppers);
  234.             }
  235.         }
  236.     }
  237.     private void antiSpamWalk (Position place, int chance, boolean random){
  238.         if (!Players.getLocal().isMoving()) {
  239.  
  240.             Movement.walkToRandomized(place);
  241.         }
  242.         int rand = getrandom(0,100);
  243.  
  244.         if (rand <= chance && random){
  245.             Movement.walkToRandomized(place);
  246.         }
  247.         if (rand <= chance && !random){
  248.             Movement.walkTo(place);
  249.         }
  250.     }
  251.     private void dropInBox(){
  252.         if (ironDropoffBank.distance() > 8) {
  253.             antiSpamWalk(ironDropoffBank, 15, true);
  254.         }
  255.         else {
  256.             SceneObject bank = SceneObjects.getNearest("bank deposit box");
  257.             if (Interfaces.isOpen(192)) {
  258.                 InterfaceComponent bankInterface = Interfaces.getComponent(PARENT_INDEX, CHILD_INDEX);
  259.                 if(bankInterface != null ) {
  260.                     bankInterface.interact(ACTION);
  261.                 }
  262.                 Log.info("it's open");
  263.                 timer += 1000;
  264.             }
  265.             else{ //opens the bank deposit box
  266.                 bank.interact("Deposit");
  267.             }
  268.         }
  269.  
  270.     }
  271.     private boolean sellCopper(){
  272.         /*return collectFinishedOffers(toBank)
  273.                 && createOffer(type)
  274.                 && setItem(item)
  275.                 && setItemPrice(price)
  276.                 && setItemQuantity(quantity)
  277.                 && GrandExchangeSetup.confirm();*/
  278.         return true;
  279.     }
  280.     private void mineThis(SceneObject[] s){
  281.         for (int i = 0; i < s.length; i++){
  282.             if (s[i].getColors().length == 1) {
  283.                 s[i].interact("mine");
  284.                 current = i;
  285.                 timer += 1500;
  286.                 break;
  287.             }
  288.         }
  289.     }
  290.  
  291.  
  292.     }
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