Advertisement
gril002

Door Controler

Jun 3rd, 2016
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.11 KB | None | 0 0
  1. function getTime()
  2.     time = textutils.formatTime(os.time(), true)
  3. end
  4.  
  5. function getPeripherals()
  6.     sides = {"top", "bottom", "left", "right", "back"}
  7.     for i, side in pairs(rs.getSides()) do
  8.         local peripheral = peripheral.getType(side)
  9.         if peripheral == "drive" then
  10.             drive = side elseif
  11.             peripheral == "modem" then
  12.             modem = side
  13.         end
  14.     end
  15.     if modem == nil then
  16.         print("There is no modem attached!")
  17.         print("Shutting down in 10 seconds")
  18.         sleep(10)
  19.         os.shutdown()
  20.     elseif drive == nil then
  21.         print("There is no disk drive attached!")
  22.         print("Shutting down in 10 seconds")
  23.         sleep(10)
  24.         os.shutdown()
  25.     end
  26. end
  27.  
  28. function updater()
  29.     if autoUpdate == true then
  30.         file = fs.open("saves/updater/update", "r" )
  31.         file.readLine()
  32.         file.readLine()
  33.         file.readLine()
  34.         file.readLine()
  35.         file.readLine()
  36.         newestVersion = file.readLine()
  37.         file.close()
  38.         newestVersion = tonumber(newestVersion)
  39.         if newestVersion > currentVersion then
  40.             clear()
  41.             print("There is a new update available")
  42.             print("Current version:", currentVersion, " Newest version", newestVersion)
  43.             sleep(1)
  44.             fs.delete("startup")
  45.             pb("7gFxwLtqs", "startup")
  46.             file = fs.open("saves/updater/version", "w" )
  47.             file.write(newestVersion)
  48.             file.close()
  49.             os.reboot()
  50.         else
  51.             print("The newest version is already installed")
  52.         end
  53.     end
  54. end
  55.  
  56. function pb(paste, file)
  57.     response = http.get("http://pastebin.com/raw/"..paste)
  58.     sResponse = response.readAll()
  59.     response.close()
  60.     file = fs.open(file, "w" )
  61.     file.write(sResponse)
  62.     file.close()
  63. end
  64.  
  65. function start()
  66.     settings.set("shell.allow_disk_startup", false)
  67.     settings.save(".settings")
  68.     getPeripherals()
  69.     rednet.open(modem)
  70.     getTime()
  71.     write(time)
  72.     print(": Booted up")
  73.     sleep(1)
  74.     getTime()
  75.     write(time)
  76.     print(": Getting ID")
  77.     rednet.broadcast("sendID", "kj24fg2hz5fhj4xc3gg2c45")
  78.     id, junk = rednet.receive("sdgh1465d+d86hd+h7fh4")
  79.     getTime()
  80.     write(time)
  81.     print(": ID received")
  82.     getTime()
  83.     write(time)
  84.     print(": Getting protocol")
  85.     rednet.send(id, "doorCtrl", "kj24fg2hz5fhj4xc3gg2c45")
  86.     id, doorCtrl = rednet.receive("d567s25f,3j3n5fcd25f3y5")
  87.     getTime()
  88.     write(time)
  89.     print(": Protocol received")
  90.     while true do
  91.         sleep(0.1)
  92.         inserted = disk.isPresent(drive)
  93.         if inserted == true then
  94.             getTime()
  95.             write(time)
  96.             print(": Disk inserted")
  97.             exists = fs.exists("disk/saves/door/loginData")
  98.             if exists == true then
  99.                 getTime()
  100.                 write(time)
  101.                 print(": Login Data found")
  102.                 file = fs.open("disk/saves/door/loginData","r")
  103.                 sessionKey = file.readLine()
  104.                 file.close()
  105.                 checkCred()
  106.                 if secure == "yes" then
  107.                     redstone.setOutput("top", true)
  108.                     getTime()
  109.                     write(time)
  110.                     print(": Door opened wih key", sessionKey)
  111.                     disk.eject("left")
  112.                     sleep(3)
  113.                     redstone.setOutput("top", false)else
  114.                     print("Invalid session key")
  115.                 end else
  116.                 print("Login data not found")
  117.                 disk.eject("left")
  118.             end
  119.             fs.delete("disk/saves/door/loginData")
  120.             sleep(10)
  121.         end
  122.     end
  123. end
  124.  
  125. function checkCred()
  126.     rednet.send(2, sessionKey, doorCtrl)
  127.     id, secure = rednet.receive(doorCtrl)
  128. end
  129. start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement