Advertisement
Guest User

ChopNBurn

a guest
Sep 13th, 2017
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.09 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. }
  24.  
  25. @Override
  26. public void onLoop() {
  27.  
  28. switch(getCurrentState()){
  29.  
  30. case CHOP:
  31. GameObject tree = GameObjects.newQuery().names("Tree").results().nearest();
  32. if(tree != null && tree.getDefinition() != null){
  33. if(!tree.isVisible()){
  34. Camera.turnTo(tree);
  35. }
  36. if(tree.interact("Chop down", tree.getDefinition().getName())){
  37. Execution.delayUntil(()->Players.getLocal().getAnimationId() != -1, 500, 5000);
  38. }
  39. }
  40. break;
  41.  
  42. case BURN:
  43.  
  44. SpriteItem logs = Inventory.newQuery().names("Logs").actions("Light").results().first();
  45. if(logs != null){
  46. if(logs.interact("Light")){
  47. System.out.println("Waiting for fire to ignite");
  48. Execution.delayUntil(()->!GameObjects.newQuery().names("Fire").within(new Area.Circular(Players.getLocal().getPosition(), 1)).results().isEmpty(), 5000, 25000);
  49. System.out.println("Fire Ignited");
  50. GameObject bonfire = GameObjects.newQuery().names("Fire").results().nearest();
  51. Execution.delay(1000, 3000);
  52. if(bonfire != null){
  53. if(!bonfire.isVisible()){
  54. System.out.println("Turning camera to bonfire.");
  55. Camera.turnTo(bonfire);
  56. }
  57. Execution.delay(500, 1000);
  58. if(bonfire.interact("Use")){
  59. Execution.delayUntil(()->Interfaces.getAt(1179, 35).isValid());
  60. System.out.println("Clicked use on bonfire");
  61. if(Interfaces.getAt(1179, 35).isValid()){
  62. System.out.println("Interfaces is valid");
  63. Execution.delay(2000, 3000);
  64. Keyboard.typeKey("2");
  65. System.out.println("Adding to bonfire");
  66. Execution.delayUntil(()->GameObjects.newQuery().names("Fire").within(new Area.Circular(Players.getLocal().getPosition(), 1)).results().isEmpty() || Inventory.isEmpty(), 240000, 300000);
  67. }
  68. }
  69. }
  70. }
  71. }
  72.  
  73. break;
  74.  
  75. case WAIT:
  76. break;
  77. }
  78.  
  79. }
  80.  
  81. @Override
  82. public void onStop(){
  83. }
  84.  
  85. private State getCurrentState(){
  86.  
  87. if(Inventory.isFull()){
  88. return State.BURN;
  89. } else if(Players.getLocal().getAnimationId() == -1){
  90. return State.CHOP;
  91. } else {
  92. return State.WAIT;
  93. }
  94.  
  95. }
  96.  
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement