Advertisement
BillBodkin

BBCCretriveBot

Jun 4th, 2015
389
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  1. rednet.open("right")
  2.  
  3. minFuel = 200
  4. on = true
  5. itemData = turtle.getItemDetail()
  6. storageServerId = 0
  7. senderId = 0
  8. finDistanceToGo = 0
  9. distanceOut = 0
  10. waiting = false
  11. client = 6
  12. itemToGet = "0"
  13. quantityToGet = 0
  14. ready = false
  15.  
  16. --os.sleep(3)
  17.  
  18. while turtle.getFuelLevel() < minFuel do
  19. turtle.refuel(1)
  20. turtle.refuel(2)
  21. turtle.refuel(3)
  22. turtle.refuel(4)
  23. turtle.refuel(5)
  24. turtle.refuel(6)
  25. turtle.refuel(7)
  26. turtle.refuel(8)
  27. turtle.refuel(9)
  28. turtle.refuel(10)
  29. turtle.refuel(11)
  30. turtle.refuel(12)
  31. turtle.refuel(13)
  32. turtle.refuel(14)
  33. turtle.refuel(15)
  34. turtle.refuel(16)
  35. print("Fuel Level: "..turtle.getFuelLevel())
  36. end
  37.  
  38. while on == true do
  39. ready = false
  40. turtle.select(1)
  41. print("Waiting...")
  42. senderId, message, protocol = rednet.receive()
  43. print("ID: "..senderId.." Content: " .. message)
  44. if client == senderId then
  45. itgL = message:sub(61, 63)
  46. itemToGet = message:sub(31, 31+tonumber(itgL))
  47. print(itemToGet)
  48. rednet.send(storageServerId, itemToGet)
  49. if senderId == storageServerId then
  50. if message ~= "not avaliable to retrive" then
  51. finDistanceToGo = (tonumber(message) * 2)-1
  52. quantityToGet = tonumber(message:sub(51,52))
  53. if quantityToGet <= 64 then
  54. print(quantityToGet)
  55. ready = true
  56. end
  57. end
  58. end
  59. end
  60. if ready == true then
  61.  
  62. --go get stuff
  63.  
  64. while distanceOut < finDistanceToGo do
  65. while turtle.detect() do
  66. turtle.select(2)
  67. turtle.dig()
  68. turtle.select(1)
  69. end
  70. turtle.forward()
  71. distanceOut = distanceOut + 1
  72. end
  73. turtle.turnLeft()
  74. turtle.select(1)
  75. turtle.suck(1)
  76. itemData = turtle.getItemDetail()
  77. if itemData then
  78. while itemData.count < quantityToGet do
  79. i = itemData.count
  80. turtle.suck(1)
  81. itemData = turtle.getItemDetail()
  82. if itemData.count == i then
  83. --not enough
  84. quantityToGet = 0
  85. while itemData.count > 0 do
  86. turtle.drop()
  87. itemData = turtle.getItemDetail()
  88. end
  89. end
  90. end
  91. end
  92. turtle.turnLeft()
  93. while distanceOut > 0 do
  94. while turtle.detect() do
  95. turtle.select(2)
  96. turtle.dig()
  97. turtle.select(1)
  98. end
  99. turtle.forward()
  100. distanceOut = distanceOut - 1
  101. end
  102. itemData = turtle.getItemDetail()
  103. if itemData then
  104. turtle.drop()
  105. rednet.send(client, "text")
  106. rednet.send(client, "There are "..tostring(quantityToGet).." of "..tostring(itemToGet).." in the chest.")
  107. else
  108. rednet.send(client, "text")
  109. rednet.send(client, "failed, no / not enough items of that type")
  110. end
  111. turtle.turnLeft()
  112. turtle.turnLeft()
  113. print("Done")
  114. else
  115. rednet.send(client, "text")
  116. --os.sleep(0.5)
  117. --rednet.send(client, "failed, try again")
  118. print("Not Valid -- Will Try Again")
  119. --os.sleep(3)
  120. end
  121. end
  122.  
  123.  
  124. rednet.close("right")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement