MrDionesalvi

ARC

May 15th, 2021 (edited)
886
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- ARC by CFG
  2. -- Vietato l'abuso o BAN
  3.  
  4.  
  5. version = "2.8"
  6. response = {}
  7. local token = ""
  8. local time = 15
  9. local pos = nil
  10. local computer = "0"
  11.  
  12. lati = {"left", "right", "back", "top", "bottom", "front"}
  13.  
  14. for k,v in pairs(lati) do
  15.   if peripheral.getType(v) == "nuclearReader" then
  16.     lato = v
  17.     break
  18.   end
  19. end
  20.  
  21. pos = lato
  22.  
  23.  
  24. local function error()
  25.     term.clear()
  26.     term.write("ARC non raggiungibile\n\nRiavvio")
  27.     os.sleep(5)
  28.     os.reboot()
  29. end
  30.  
  31. local function check_version()
  32.     ris = http.get("https://arc.rgbcraft.com/api/version/lua")
  33.     if ris ~= nil and ris ~= "" then
  34.         a = http.get("https://arc.rgbcraft.com/api/version/lua").readAll()
  35.         b = textutils.unserialize(a)
  36.  
  37.         if b.version ~= version then
  38.             shell.run("rm startup")
  39.             shell.run("pastebin get Bh4svTNe startup")
  40.             shell.run("reboot")
  41.         end
  42.     else
  43.         error()
  44.     end
  45.  
  46. end
  47.  
  48. local function first_inst()
  49.     if not fs.exists("token") then
  50.         random = math.random(0, 1000000)
  51.         value = "ARC"..tostring(random)
  52.         os.setComputerLabel(value)
  53.         term.clear()
  54.         term.setCursorPos(1,1)
  55.         print("Benvenuto nel sistema di installazione di ARC v1.0")
  56.         print("\n\n\nInesrisci il token che trovi sul sito: ")
  57.         a = read()
  58.  
  59.         local g = fs.open("token", fs.exists("token") and "a" or "w")
  60.         g.write(a)
  61.         g.close()
  62.         os.reboot()
  63.     else
  64.         local h = fs.open("token", "r")
  65.         token = h.readAll()
  66.         h.close()
  67.  
  68.         ris = http.get("https://arc.rgbcraft.com/api/get/time?token="..token)
  69.         if ris ~= nil and ris ~= "" then
  70.             a = http.get("https://arc.rgbcraft.com/api/get/time?token="..token).readAll()
  71.             b = textutils.unserialize(a)
  72.        
  73.             time = b["time"]
  74.         else
  75.             error()
  76.         end
  77.  
  78.     end
  79. end
  80.  
  81. local function get_response()
  82.     ris = http.get("https://arc.rgbcraft.com/api/get/switch?token="..token.."&computer="..computer)
  83.     if ris ~= nil and ris ~= "" then
  84.         a = http.get("https://arc.rgbcraft.com/api/get/switch?token="..token.."&computer="..computer).readAll()
  85.         b = textutils.unserialize(a)
  86.  
  87.         if b.status == "Successo" then
  88.             response["left"] = b.left
  89.             response["right"] = b.right
  90.             response["top"] = b.top
  91.             response["bottom"] = b.bottom
  92.             response["front"] = b.front
  93.             response["back"] = b.back
  94.             redstone.setBundledOutput("left", response["left"])
  95.             redstone.setBundledOutput("right", response["right"])
  96.             redstone.setBundledOutput("top", response["top"])
  97.             redstone.setBundledOutput("bottom", response["bottom"])
  98.             redstone.setBundledOutput("front", response["front"])
  99.             redstone.setBundledOutput("back", response["back"])
  100.         else
  101.             term.clear()
  102.             term.setCursorPos(1,1)
  103.             print("Token errato")
  104.             fs.delete("token")
  105.             os.sleep(2)
  106.             os.reboot()
  107.         end
  108.     else
  109.         error()
  110.     end
  111.  
  112.     ris = http.get("https://arc.rgbcraft.com/api/get/buttons")
  113.     if ris ~= nil and ris ~= "" then
  114.         a = http.get("https://arc.rgbcraft.com/api/get/buttons?token="..token.."&computer="..computer).readAll()
  115.         b = textutils.unserialize(a)
  116.  
  117.        
  118.         if b.status == "Successo" then
  119.             response["left"] = b.left
  120.             response["right"] = b.right
  121.             response["top"] = b.top
  122.             response["bottom"] = b.bottom
  123.             response["front"] = b.front
  124.             response["back"] = b.back
  125.             redstone.setBundledOutput("left", response["left"])
  126.             redstone.setBundledOutput("right", response["right"])
  127.             redstone.setBundledOutput("top", response["top"])
  128.             redstone.setBundledOutput("bottom", response["bottom"])
  129.             redstone.setBundledOutput("front", response["front"])
  130.             redstone.setBundledOutput("back", response["back"])
  131.             os.sleep(0.5)
  132.             a = http.get("https://arc.rgbcraft.com/api/get/buttons?token="..token.."&computer="..computer).readAll()
  133.             b = textutils.unserialize(a)
  134.             if b.status == "Successo" then
  135.                 response["left"] = b.left
  136.                 response["right"] = b.right
  137.                 response["top"] = b.top
  138.                 response["bottom"] = b.bottom
  139.                 response["front"] = b.front
  140.                 response["back"] = b.back
  141.                 redstone.setBundledOutput("left", response["left"])
  142.                 redstone.setBundledOutput("right", response["right"])
  143.                 redstone.setBundledOutput("top", response["top"])
  144.                 redstone.setBundledOutput("bottom", response["bottom"])
  145.                 redstone.setBundledOutput("front", response["front"])
  146.                 redstone.setBundledOutput("back", response["back"])
  147.             end
  148.         else
  149.             term.clear()
  150.             term.setCursorPos(1,1)
  151.             print("Token errato")
  152.             fs.delete("token")
  153.             os.sleep(2)
  154.             os.reboot()
  155.         end
  156.     else
  157.         error()
  158.     end
  159. end
  160.  
  161. local function send_api()
  162.     if pos ~= nil then
  163.         m = peripheral.wrap(pos)
  164.  
  165.         ris = http.get("https://arc.rgbcraft.com/api/get/position?token="..token)
  166.         if ris ~= nil and ris ~= "" then
  167.             a = http.get("https://arc.rgbcraft.com/api/get/position?token="..token).readAll()
  168.             b = textutils.unserialize(a)
  169.  
  170.             if peripheral.isPresent(pos) then
  171.                 if b.status == "Successo" then
  172.                     if b.counter ~= 0 then
  173.                         local a,b,c,info = m.get(b.counter)
  174.                         if b == "OK" then
  175.                             for system, status in pairs(info) do
  176.                                 status = tostring(status)
  177.                                 c = http.get("https://arc.rgbcraft.com/api/post/data?token="..token.."&tp=counter&value="..status).readAll()
  178.                                 d = textutils.unserialize(c)
  179.                                 if d.status ~= "Successo" then
  180.                                     print("errore api")
  181.                                 end
  182.                             end
  183.                         else
  184.                             print("errore: nessuna card")
  185.                         end
  186.                     end
  187.  
  188.                     if b.shunt ~= 0 then
  189.                         local a,b,c,info = m.get(b.shunt)
  190.                         if b == "OK" then
  191.                             for system, status in pairs(info) do
  192.                                 status = tostring(status)
  193.                                 c = http.get("https://arc.rgbcraft.com/api/post/data?token="..token.."&tp=shunt&value="..status).readAll()
  194.                                 d = textutils.unserialize(c)
  195.  
  196.                                 if d.status ~= "Successo" then
  197.                                     print("errore api")
  198.                                 end
  199.                             end
  200.                         else
  201.                             print("errore: nessuna card")
  202.                         end
  203.                     end
  204.                 end
  205.             else
  206.                 print("errore non hai nulla "..pos)
  207.             end
  208.         else
  209.             error()
  210.         end
  211.     end
  212.  
  213.     for k,v in pairs(lati) do
  214.         ris = http.get("https://arc.rgbcraft.com/api/post/value")
  215.         if ris ~= nil and ris ~= "" then
  216.             value = redstone.getBundledInput(v)
  217.             c = http.get("https://arc.rgbcraft.com/api/post/value?token="..token.."&side="..v.."&computer="..computer.."&value="..value).readAll()
  218.             d = textutils.unserialize(c)
  219.  
  220.             if d.status ~= "Successo" then
  221.                 print("errore api")
  222.             end
  223.         end
  224.     end
  225.      
  226. end
  227.  
  228. term.clear()
  229. term.write("ARC avviato")
  230.  
  231. check_version()
  232.  
  233. first_inst()
  234.  
  235. os.sleep(2)
  236.  
  237. first_inst()
  238.  
  239. i = 0
  240. while true do
  241.  
  242.     get_response()
  243.  
  244.  
  245.     if i == 2 then
  246.         send_api()
  247.         i = 0
  248.     end
  249.     i = i + 1
  250.  
  251.     os.sleep(time)
  252. end
RAW Paste Data