Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- SylLock
- tArgs = { ... }
- if #tArgs ~= 1 then
- print("Usage: SylLock [setup|run]")
- return
- end
- local side
- local password
- local opentime
- local function save(table, name)
- local file = fs.open(name, "w")
- file.write(textutils.serialize(table))
- file.close()
- end
- local function load(name)
- local file = fs.open(name, "r")
- local data = file.readAll()
- file.close()
- return textutils.unserialize(data)
- end
- local function loadUserSettings()
- settings = load("usersettings")
- side = settings["side"]
- password = settings["password"]
- opentime = settings["opentime"]
- end
- local function writeUserSettings()
- settings = {}
- settings["side"] = side
- settings["password"] = password
- settings["opentime"] = opentime
- save(settings, "usersettings")
- end
- local function tryPassword()
- term.clear()
- term.setCursorPos(1,1)
- write("password: ")
- local input = read("*")
- return input == password
- end
- local function setupLock()
- term.clear()
- textutils.slowPrint("SylLock v0.1")
- if fs.exists("usersettings") then
- write("User settings found. Enter password to continue.")
- loadUserSettings()
- local passwordCorrect = tryPassword()
- if not passwordCorrect then
- return
- end
- end
- side = "none"
- valid_sides = {left = true, right = true, top = true, bottom = true}
- while valid_sides[side] == nil do
- write("Enter door side (left/right/top/bottom/back): ")
- local input = read()
- side = input
- end
- password = ""
- pwinone = "one"
- pwintwo = "two"
- while pwinone ~= pwintwo do
- write("Enter door password: ")
- local input = read("*")
- pwinone = input
- write("Confirm door password: ")
- input = read("*")
- pwintwo = input
- end
- password = pwinone
- opentime = nil
- while opentime == nil do
- write("Enter open time (in seconds): ")
- local input = read()
- opentime = tonumber(input)
- end
- writeUserSettings()
- end
- local function runLock()
- loadUserSettings()
- while true do
- local passwordCorrect = tryPassword()
- if passwordCorrect then
- term.clear()
- term.setCursorPos(1,1)
- print("ACCESS GRANTED")
- rs.setOutput(side,true)
- sleep(opentime)
- rs.setOutput(side,false)
- else
- print("ACCESS DENIED")
- sleep(2)
- end
- end
- end
- if tArgs[1] == "setup" then
- setupLock()
- elseif tArgs[1] == "run" then
- runLock()
- else
- print("Usage: SylLock [setup|run]")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement