Advertisement
Guest User

Chop N' Burn

a guest
Sep 13th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.34 KB | None | 0 0
  1. package com.Zulander69ni.bots.ChopNBurn;
  2.  
  3. import com.runemate.game.api.hybrid.entities.GameObject;
  4. import com.runemate.game.api.hybrid.input.Keyboard;
  5. import com.runemate.game.api.hybrid.local.Camera;
  6. import com.runemate.game.api.hybrid.local.hud.interfaces.Interfaces;
  7. import com.runemate.game.api.hybrid.local.hud.interfaces.Inventory;
  8. import com.runemate.game.api.hybrid.local.hud.interfaces.SpriteItem;
  9. import com.runemate.game.api.hybrid.location.Area;
  10. import com.runemate.game.api.hybrid.region.GameObjects;
  11. import com.runemate.game.api.hybrid.region.Players;
  12. import com.runemate.game.api.script.Execution;
  13. import com.runemate.game.api.script.framework.LoopingBot;
  14.  
  15. public class ChopNBurn extends LoopingBot {
  16.  
  17. private enum State{
  18. CHOP, WAIT, BURN;
  19. }
  20.  
  21. @Override
  22. public void onStart(String... args){
  23. setLoopDelay(150, 600);
  24. }
  25.  
  26. @Override
  27. public void onLoop() {
  28.  
  29. switch(getCurrentState()){
  30.  
  31. case CHOP:
  32. GameObject tree = GameObjects.newQuery().names("Tree").results().nearest();
  33. if(tree != null && tree.getDefinition() != null){
  34. if(!tree.isVisible()){
  35. Camera.turnTo(tree);
  36. }
  37. if(tree.interact("Chop down", tree.getDefinition().getName())){
  38. Execution.delayUntil(()->Players.getLocal().getAnimationId() != -1, 500, 5000);
  39. Execution.delayUntil(()->Players.getLocal().getAnimationId() == -1, 500, 10000);
  40. }
  41. }
  42. break;
  43.  
  44. case BURN:
  45.  
  46. SpriteItem logs = Inventory.newQuery().names("Logs").actions("Light").results().first();
  47. if(logs != null){
  48. if(logs.interact("Light")){
  49. System.out.println("Waiting for fire to ignite");
  50. Execution.delayUntil(()->!GameObjects.newQuery().names("Fire").within(new Area.Circular(Players.getLocal().getPosition(), 2)).results().isEmpty(), 5000, 25000);
  51. System.out.println("Fire Ignited");
  52. GameObject bonfire = GameObjects.newQuery().names("Fire").within(new Area.Circular(Players.getLocal().getPosition(), 2)).results().nearest();
  53. if(bonfire != null){
  54. if(!bonfire.isVisible()){
  55. System.out.println("Turning camera to bonfire.");
  56. Camera.turnTo(bonfire);
  57. Execution.delay(500, 1000);
  58. }
  59. if(bonfire.interact("Use")){
  60. System.out.println("Clicked use on bonfire");
  61. Execution.delay(1000, 2000);
  62. Execution.delayUntil(()->Interfaces.getAt(1179, 35).isValid());
  63. if(Interfaces.getAt(1179, 35).isValid()){
  64. System.out.println("Interfaces is valid");
  65. Execution.delay(500, 1000);
  66. Keyboard.typeKey("2");
  67. System.out.println("Adding to bonfire");
  68. Execution.delayUntil(()->GameObjects.newQuery().names("Fire").within(new Area.Circular(Players.getLocal().getPosition(), 1)).results().isEmpty() || Inventory.isEmpty(), 240000, 300000);
  69. }
  70. }
  71. }
  72. }
  73. }
  74.  
  75. break;
  76.  
  77. case WAIT:
  78. break;
  79. }
  80.  
  81. }
  82.  
  83. @Override
  84. public void onStop(){
  85. }
  86.  
  87. private State getCurrentState(){
  88.  
  89. if(!Inventory.isFull() && Players.getLocal().getAnimationId() == -1){
  90. return State.CHOP;
  91. } else if(Inventory.isFull() && Players.getLocal().getAnimationId() == -1){
  92. return State.BURN;
  93. } else {
  94. return State.WAIT;
  95. }
  96.  
  97. }
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement