Advertisement
BillBodkin

clearAreaSlave

Sep 20th, 2021 (edited)
570
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.46 KB | None | 0 0
  1. if os.getComputerID() == 31 then
  2.     error("Is master")
  3. end
  4.  
  5. local blocksNotToMine = {
  6.     ["computercraft:turtle_normal"] = true,
  7.     ["computercraft:turtle_advanced"] = true,
  8.     ["enderstorage:ender_chest"] = true
  9. }
  10.  
  11. if fs.exists("DiscordHook.lua") == false then
  12.     shell.execute("wget", "https://raw.githubusercontent.com/Wendelstein7/DiscordHook-CC/master/DiscordHook.lua", "DiscordHook.lua")
  13. end
  14.  
  15. local DiscordHook = require("./DiscordHook")
  16.  
  17. local hookSuccess, hook = DiscordHook.createWebhook("https://discord.com/api/webhooks/889783581839339541/mtTZmSBCoa-KGi2DN5S5_tQMPJhpPjOjDB3dy8EtY-Dxu2CK9pTeBwMy7IkKMGyVpkti")
  18. if not hookSuccess then
  19.   error("Webhook connection failed! Reason: " .. hook)
  20. end
  21.  
  22.  
  23. local file = fs.open("/disk/minerParams.lua", "r")
  24. local minerParams = textutils.unserialise(file.readAll())
  25. file.close()
  26.  
  27. while turtle.detect() == false do
  28.     turtle.turnLeft()
  29. end
  30.  
  31. while turtle.getFuelLevel() < (minerParams["acrossAmt"] * 2 + minerParams["forwardAmt"] * 2 * minerParams["downAmt"] + (minerParams["startDownAmt"] * 2)) and turtle.getFuelLevel() < turtle.getFuelLimit() - 10 do
  32.     turtle.refuel(32)
  33.     sleep(0.1)
  34. end
  35.  
  36. turtle.drop(64)
  37.  
  38. turtle.turnLeft()
  39. turtle.turnLeft()
  40.  
  41. function Forward()
  42.     while turtle.forward() == false do
  43.         local has_block, data = turtle.inspect()
  44.         if has_block then
  45.             if blocksNotToMine[data.name] then
  46.                 if data.name == "computercraft:turtle_normal" then
  47.                     Dump()
  48.                     for i = 1, 16 do
  49.                         turtle.suck(64)
  50.                     end
  51.                     Dump()
  52.                 end
  53.                 hook.send("Found: " .. data.name .. "   row: " .. tostring(minerParams["acrossAmt"]), tostring(os.getComputerID()))
  54.                 read()
  55.             end
  56.         end
  57.         turtle.dig()
  58.     end
  59. end
  60.  
  61. function Up()
  62.     while turtle.up() == false do
  63.         turtle.digUp()
  64.     end
  65. end
  66.  
  67. function Down()
  68.     while turtle.down() == false do
  69.         turtle.digDown()
  70.     end
  71. end
  72.  
  73. function Dig()
  74.     while turtle.detect() do
  75.         turtle.dig()
  76.     end
  77. end
  78.  
  79. function DigUp()
  80.     while turtle.detectUp() do
  81.         turtle.digUp()
  82.     end
  83. end
  84.  
  85. function DigDown()
  86.     while turtle.detectDown() do
  87.         turtle.digDown()
  88.     end
  89. end
  90.  
  91. function Dump()
  92.     turtle.digDown()
  93.     for i = 1, 16 do
  94.         local item = turtle.getItemDetail(i)
  95.         if item ~= nil then
  96.             turtle.select(i)
  97.             if item.name == "minecraft:coal" then
  98.                 turtle.refuel(64)
  99.             else
  100.                 turtle.dropDown(64)
  101.             end
  102.         end
  103.     end
  104.     turtle.select(1)
  105. end
  106.  
  107. for accross = 1, minerParams["acrossAmt"] do
  108.     Forward()
  109. end
  110.  
  111. turtle.turnLeft()
  112.  
  113. for down = 1, minerParams["startDownAmt"] do
  114.     Down()
  115. end
  116.  
  117. for down = 1, minerParams["downAmt"] do
  118.     Down()
  119.     for i = 1, 2 do
  120.         for forward = 1, minerParams["forwardAmt"] do
  121.             Forward()
  122.         end
  123.         turtle.turnRight()
  124.         Forward()
  125.         turtle.turnRight()
  126.         Dump()
  127.     end
  128.    
  129.     while turtle.getFuelLevel() < (minerParams["forwardAmt"] * 1.1) do
  130.         hook.send("Need fuel - row: " .. tostring(minerParams["acrossAmt"]), tostring(os.getComputerID()))
  131.         print("Need fuel")
  132.         read()
  133.     end
  134. end
  135.  
  136. for down = 1, (minerParams["downAmt"] + minerParams["startDownAmt"]) do
  137.     Up()
  138. end
  139.  
  140. turtle.turnRight()
  141. turtle.turnRight()
  142. Forward()
  143.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement