Advertisement
Guest User

Untitled

a guest
Aug 25th, 2019
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.94 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement