Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- term.clear()
- term.setCursorPos(1,1)
- local version = "1.00"
- local rside = "bottom:pink"
- local mside = "left"
- local dside = "back"
- local range = 5
- local users = {}
- local usersPassword = "lemontree"
- if peripheral.getType(rside) ~= "rfid reader" then
- print("Neni pripojeny zadny RFID Reader na "..rside)
- error()
- end
- r = peripheral.wrap(rside)
- m = peripheral.wrap(mside)
- local function writeLine(str)
- local cX,cY = m.getCursorPos()
- local mX,mY = m.getSize()
- if cY == mY then
- m.setCursorPos(1,cY)
- m.scroll(1)
- m.write(str)
- else
- m.setCursorPos(1,cY+1)
- m.write(str)
- end
- end
- local function doorOpen(open)
- if open == true then
- rs.setOutput(dside,true)
- elseif open == false then
- rs.setOutput(dside,false)
- end
- end
- local function readUsers()
- if not fs.exists("users") then
- file = fs.open("users","w")
- file.writeLine("# Vsechno co zacina na krizek je komentar")
- file.writeLine("# Seznam povolenych uzivatelu ve formatu")
- file.writeLine("# rfidData:jmeno")
- file.close()
- print("Users vytvoreno!")
- print("'edit users' edituje uzivatele")
- error()
- else
- file = fs.open("users","r")
- while true do
- local line = file.readLine()
- if line ~= nil then
- if string.sub(line,1,1) ~= "#" and string.sub(line,1,1) ~= "" then
- table.insert(users,{string.gsub(line,"(%w+):(%w+)","%1"),string.gsub(line,"(%w+):(%w+)","%2")})
- end
- else
- break
- end
- end
- file.close()
- end
- end
- term.clear()
- term.setCursorPos(1,1)
- print("RFID Reader v"..version)
- print("--------------------------------------------------")
- print("Stisknutim mezerniku editujes soubor 'users'")
- m.clear()
- m.setCursorPos(1,1)
- m.write("["..os.time().."]".." Log zapocat")
- m.setTextScale(0.5)
- readUsers()
- while true do
- local isOnList = false
- local lastadata = ""
- local ok, errormsg = r.scan(range)
- local event, arg1 = os.pullEvent()
- -- if errormsg ~= nil then writeLine("["..os.time().."] "..errormsg) end
- -- print(event)
- -- if arg1 ~= nil then print(arg1) end
- if event == "rfid_detected" and arg1 ~= nil then
- for i=1,#users do
- if users[i][1] == arg1 then
- if lastdata ~= arg1 then
- writeLine("["..os.time().."]* "..users[i][2].."")
- end
- lastdata = arg1
- doorOpen(true)
- isOnList = true
- break
- end
- end
- if isOnList==false then
- if lastdata ~= arg1 then
- writeLine("["..os.time().."]! '"..arg1.."'")
- end
- lastdata = arg1
- doorOpen(false)
- end
- elseif event == "redstone" and rs.getInput(dside) then
- -- writeLine("["..os.time().."]* Pressure Plate")
- sleep(2)
- while true do
- if not rs.getInput(dside) then break end
- sleep(0.5)
- end
- elseif event == "key" and arg1 == 57 then
- sleep(0.1)
- write("\nHeslo: ")
- local input = read("*")
- if input == usersPassword then
- shell.run("edit","users")
- readUsers()
- print("RFID Reader v"..version)
- print("--------------------------------------------------")
- print("Stisknutim mezerniku editujes soubor 'users'")
- else
- term.clear()
- term.setCursorPos(1,1)
- print("RFID Reader v"..version)
- print("--------------------------------------------------")
- print("Stisknutim mezerniku editujes soubor 'users'")
- end
- else
- lastdata = ""
- doorOpen(false)
- end
- sleep(0.5)
- end
Add Comment
Please, Sign In to add comment