Guest User

Untitled

a guest
Jan 17th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.47 KB | None | 0 0
  1. term.clear()
  2. term.setCursorPos(1,1)
  3.  
  4. local version = "1.00"
  5. local rside = "bottom:pink"
  6. local mside = "left"
  7. local dside = "back"
  8. local range = 5
  9. local users = {}
  10. local usersPassword = "lemontree"
  11.  
  12. if peripheral.getType(rside) ~= "rfid reader" then
  13.   print("Neni pripojeny zadny RFID Reader na "..rside)
  14.   error()
  15. end
  16.  
  17. r = peripheral.wrap(rside)
  18. m = peripheral.wrap(mside)
  19.  
  20. local function writeLine(str)
  21.   local cX,cY = m.getCursorPos()
  22.   local mX,mY = m.getSize()
  23.   if cY == mY then
  24.     m.setCursorPos(1,cY)
  25.     m.scroll(1)
  26.     m.write(str)
  27.   else
  28.     m.setCursorPos(1,cY+1)
  29.     m.write(str)
  30.   end
  31. end
  32.  
  33. local function doorOpen(open)
  34.   if open == true then
  35.     rs.setOutput(dside,true)
  36.   elseif open == false then
  37.     rs.setOutput(dside,false)
  38.   end
  39. end
  40.  
  41. local function readUsers()
  42.   if not fs.exists("users") then
  43.     file = fs.open("users","w")
  44.     file.writeLine("# Vsechno co zacina na krizek je komentar")
  45.     file.writeLine("# Seznam povolenych uzivatelu ve formatu")
  46.     file.writeLine("# rfidData:jmeno")
  47.     file.close()
  48.     print("Users vytvoreno!")
  49.     print("'edit users' edituje uzivatele")
  50.     error()
  51.   else
  52.     file = fs.open("users","r")
  53.     while true do
  54.       local line = file.readLine()
  55.       if line ~= nil then
  56.         if string.sub(line,1,1) ~= "#" and string.sub(line,1,1) ~= "" then
  57.           table.insert(users,{string.gsub(line,"(%w+):(%w+)","%1"),string.gsub(line,"(%w+):(%w+)","%2")})
  58.         end
  59.       else
  60.         break
  61.       end
  62.     end
  63.     file.close()
  64.   end
  65. end
  66.  
  67. term.clear()
  68. term.setCursorPos(1,1)
  69. print("RFID Reader v"..version)
  70. print("--------------------------------------------------")
  71. print("Stisknutim mezerniku editujes soubor 'users'")
  72.  
  73. m.clear()
  74. m.setCursorPos(1,1)
  75. m.write("["..os.time().."]".."  Log zapocat")
  76. m.setTextScale(0.5)
  77.  
  78. readUsers()
  79.  
  80. while true do
  81.   local isOnList = false
  82.   local lastadata = ""
  83.   local ok, errormsg = r.scan(range)
  84.   local event, arg1 = os.pullEvent()
  85.   -- if errormsg ~= nil then writeLine("["..os.time().."] "..errormsg) end
  86.   -- print(event)
  87.   -- if arg1 ~= nil then print(arg1) end
  88.   if event == "rfid_detected" and arg1 ~= nil then
  89.     for i=1,#users do
  90.       if users[i][1] == arg1 then
  91.         if lastdata ~= arg1 then
  92.           writeLine("["..os.time().."]* "..users[i][2].."")
  93.         end
  94.         lastdata = arg1
  95.         doorOpen(true)
  96.         isOnList = true
  97.         break
  98.       end
  99.     end
  100.     if isOnList==false then
  101.       if lastdata ~= arg1 then
  102.         writeLine("["..os.time().."]! '"..arg1.."'")
  103.       end
  104.       lastdata = arg1
  105.       doorOpen(false)
  106.     end
  107.   elseif event == "redstone" and rs.getInput(dside) then
  108.     -- writeLine("["..os.time().."]* Pressure Plate")
  109.     sleep(2)
  110.     while true do
  111.       if not rs.getInput(dside) then break end
  112.       sleep(0.5)
  113.     end
  114.   elseif event == "key" and arg1 == 57 then
  115.     sleep(0.1)
  116.     write("\nHeslo: ")
  117.     local input = read("*")
  118.     if input == usersPassword then
  119.       shell.run("edit","users")
  120.       readUsers()
  121.       print("RFID Reader v"..version)
  122.       print("--------------------------------------------------")
  123.       print("Stisknutim mezerniku editujes soubor 'users'")
  124.     else
  125.       term.clear()
  126.       term.setCursorPos(1,1)
  127.       print("RFID Reader v"..version)
  128.       print("--------------------------------------------------")
  129.       print("Stisknutim mezerniku editujes soubor 'users'")
  130.     end
  131.   else
  132.     lastdata = ""
  133.     doorOpen(false)
  134.   end
  135.   sleep(0.5)
  136. end
Add Comment
Please, Sign In to add comment