SHOW:
|
|
- or go back to the newest paste.
| 1 | local pullEvent = os.pullEvent | |
| 2 | os.pullEvent = os.pullEventRaw | |
| 3 | ||
| 4 | function clear() | |
| 5 | term.setCursorPos(1,1) | |
| 6 | term.clear() | |
| 7 | end | |
| 8 | ||
| 9 | clear() | |
| 10 | ||
| 11 | ||
| 12 | local setpass --for setting the password | |
| 13 | local adminpass -- for setting the admin password | |
| 14 | local opentime -- for setting how long the door will stay open | |
| 15 | local rootpass -- for setting the rootpass | |
| 16 | local redstoneOutputSide | |
| 17 | local args = {...}
| |
| 18 | ||
| 19 | if fs.exists("doorlock-settings") and args[1] ~= "reset" then
| |
| 20 | local f = fs.open("doorlock-settings", "r")
| |
| 21 | setpass = f.readLine() | |
| 22 | adminpass = f.readLine() | |
| 23 | rootpass = f.readLine() | |
| 24 | opentime = tonumber(f.readLine()) | |
| 25 | redstoneOutputSide = f.readLine() | |
| 26 | f.close() | |
| 27 | else | |
| 28 | print("Please define the password to gain access to the door:")
| |
| 29 | setpass = read("*")
| |
| 30 | clear() | |
| 31 | ||
| 32 | print("Please define the password to gain root access to the computer(to edit files):")
| |
| 33 | rootpass = read("*")
| |
| 34 | clear() | |
| 35 | ||
| 36 | print("Please define the admin password. This password will keep the door open when entered")
| |
| 37 | adminpass = read("*")
| |
| 38 | clear() | |
| 39 | ||
| 40 | print("Please define the amount of time the redstone pulse will be on:")
| |
| 41 | opentime = tonumber(read()) | |
| 42 | clear() | |
| 43 | ||
| 44 | local vside = false | |
| 45 | while true do | |
| 46 | print("Which side is the door on?")
| |
| 47 | redstoneOutputSide = read() | |
| 48 | for k,v in pairs(rs.getSides()) do | |
| 49 | if v == redstoneOutputSide then | |
| 50 | vside = true | |
| 51 | break | |
| 52 | end | |
| 53 | end | |
| 54 | if vside then break end | |
| 55 | print("Invalid side!")
| |
| 56 | sleep(0.5) | |
| 57 | clear() | |
| 58 | end | |
| 59 | local f = fs.open("doorlock-settings", "w")
| |
| 60 | f.writeLine(setpass) | |
| 61 | f.writeLine(adminpass) | |
| 62 | f.writeLine(rootpass) | |
| 63 | f.writeLine(tostring(opentime)) | |
| 64 | f.writeLine(redstoneOutputSide) | |
| 65 | f.close() | |
| 66 | end | |
| 67 | ||
| 68 | while true do | |
| 69 | clear() | |
| 70 | print ("Loading...")
| |
| 71 | print ("Done Loading!")
| |
| 72 | sleep(1) | |
| 73 | term.clear() | |
| 74 | term.setCursorPos(1,1) | |
| 75 | ||
| 76 | - | print ("Door Lock v0.5")
|
| 76 | + | print ("MM MANSIONS")
|
| 77 | - | print ("Coded by Madster")
|
| 77 | + | print ("Secured by VEBAsecurity")
|
| 78 | - | write "Passcode: " |
| 78 | + | write "Enter Passcode: " |
| 79 | input = read("*")
| |
| 80 | if input == setpass then | |
| 81 | - | print ("Access Granted for " .. tostring(opentime) .. " seconds, better hurry!")
|
| 81 | + | print ("ACCESS GRANTED FOR " .. tostring(opentime) .. " SECONDS!")
|
| 82 | rs.setOutput(redstoneOutputSide, true) | |
| 83 | sleep(opentime) | |
| 84 | rs.setOutput(redstoneOutputSide, false) | |
| 85 | os.shutdown() | |
| 86 | elseif input == adminpass then | |
| 87 | - | print ("Door will remain open, remember to close!")
|
| 87 | + | print ("ACCESS GRANTED - DOOR WILL REMAIN OPEN")
|
| 88 | rs.setOutput(redstoneOutputSide, true) | |
| 89 | while true do | |
| 90 | term.clear() | |
| 91 | write "Passcode: " | |
| 92 | input2 = read("*")
| |
| 93 | if input2 == adminpass then | |
| 94 | rs.setOutput(redstoneOutputSide, false) | |
| 95 | os.shutdown() | |
| 96 | break | |
| 97 | end | |
| 98 | end | |
| 99 | elseif input == rootpass then | |
| 100 | textutils.slowPrint ("Welcome, you may now edit the programs/files on this computer!")
| |
| 101 | term.clear() | |
| 102 | os.pullEvent = pullEvent | |
| 103 | print ("Root permissions enabled")
| |
| 104 | return | |
| 105 | else | |
| 106 | - | print ("Uhhm... Wrong password..")
|
| 106 | + | print ("ACCESS DENIED")
|
| 107 | sleep(2) | |
| 108 | os.shutdown() | |
| 109 | end | |
| 110 | end |