parabuhat

Untitled

Apr 13th, 2018
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local function readN(len, replaceChar)
  2.   len = len or 12
  3.   local input=""
  4.   local key = 0
  5.   term.setCursorBlink(true)
  6.   repeat
  7.     local e,p1 = os.pullEvent()
  8.     if e=="char" then
  9.       if #input < len then
  10.         input = input .. p1
  11.         term.write(replaceChar or p1)
  12.       end
  13.     elseif e=="key" and p1==keys.backspace and #input > 0 then
  14.       input = input:sub(1,#input-1)
  15.       local x,y = term.getCursorPos()
  16.       term.setCursorPos(x-1,y)
  17.       term.write(" ")
  18.       term.setCursorPos(x-1,y)
  19.     end
  20.   until p1==keys.enter
  21.   term.setCursorBlink(false)
  22.   return input
  23. end
  24.  
  25. sid = 0
  26. lockdown = 0
  27. actc = ""
  28. actpw = ""
  29. actpc = ""
  30. userlog = ""
  31. userpas = ""
  32. puselog = ""
  33. prog = 0
  34.  
  35. function clear()
  36. term.clear()
  37. term.setCursorPos(1,1)
  38. end
  39.  
  40. function menu(id, text)
  41.   if sid == id then
  42.     write">> "
  43.   else
  44.     write"   "
  45.   end
  46.   print(text)
  47. end
  48.  
  49. clear()
  50. while prog == 0 do
  51. os.pullEvent = os.pullEventRaw
  52. rep1 = 0
  53. rep2 = 0
  54. rep3 = 0
  55. rep4 = 0
  56. rep5 = 0
  57. rep6 = 0
  58. ioerror = 0
  59. term.setCursorPos(1, 12)
  60. term.clearLine()
  61. term.setCursorPos(1, 13)
  62. term.clearLine()
  63. term.setCursorPos(1, 14)
  64. term.clearLine()
  65. term.setCursorPos(1, 15)
  66. term.clearLine()
  67. term.setCursorPos(1, 16)
  68. term.clearLine()
  69. term.setCursorPos(1, 17)
  70. term.clearLine()
  71. term.setCursorPos(1,1)
  72. print("|################################################|")
  73. print("|              BOUTECH SYSTEM LOGIN              |")
  74. print("|                OS Version : 1.3                |")
  75. print("|################################################|")
  76. term.setCursorPos(13,7)
  77. print("|------------------------|")
  78. term.setCursorPos(13,8)
  79. print("|                        |")
  80. term.setCursorPos(13,9)
  81. print("|                        |")
  82. term.setCursorPos(13,10)
  83. print("|                        |")
  84. term.setCursorPos(13,11)
  85. print("|------------------------|")
  86. term.setCursorPos(16,8)
  87. menu(0, "Login")
  88. term.setCursorPos(16,9)
  89. menu(1, "Create Account")
  90. term.setCursorPos(16,10)
  91. menu(2, "Shutdown")
  92. event, key = os.pullEvent("key")
  93.  
  94. if key == 200 then
  95.   if sid == 0 then
  96.     sid = sid+2
  97.   elseif sid == 1 then
  98.     sid = sid-1
  99.   elseif sid == 2 then
  100.     sid = sid-1
  101.   end
  102. elseif key == 208 then
  103.   if sid == 2 then
  104.     sid = sid-2
  105.   elseif sid == 1 then
  106.     sid = sid+1
  107.   elseif sid == 0 then
  108.     sid = sid+1
  109.   end
  110. elseif key == 28 then
  111.   if sid == 0 then
  112.     term.setCursorPos(13, 12)
  113.     print("|   Enter Credentials.   |")
  114.     term.setCursorPos(13, 13)
  115.     print("|                        |")
  116.     term.setCursorPos(13, 14)
  117.     print("|                        |")
  118.     term.setCursorPos(13, 15)
  119.     print("|                        |")
  120.     term.setCursorPos(13, 16)
  121.     print("|                        |")
  122.     term.setCursorPos(13, 17)
  123.     print("|------------------------|")
  124.    
  125.     while rep5 == 0 do
  126.       term.setCursorPos(1, 14)
  127.       term.clearLine()
  128.       term.setCursorPos(1, 16)
  129.       term.clearLine()
  130.       term.setCursorPos(13, 16)
  131.       print("|                        |")
  132.       term.setCursorPos(13, 14)
  133.       print("|                        |")
  134.       term.setCursorPos(15, 14)
  135.       write("Username: ")
  136.       userlog = readN()
  137.       if userlog == "adminovrride" then
  138.         rnd = math.random(100, 500)
  139.         term.setCursorPos(1, 18)
  140.         term.clearLine()
  141.         term.setCursorPos (17, 18)
  142.         print("Override Code: ".. rnd)
  143.         apass = tostring((rnd + 11) * 83)
  144.         term.setCursorPos(1, 16)
  145.         term.clearLine()
  146.         term.setCursorPos(13, 16)
  147.         print("|                        |")
  148.         term.setCursorPos(15, 16)
  149.         write("Password: ")
  150.         ovrpass = readN(12, "*")
  151.         if ovrpass == apass then
  152.           term.setCursorPos(1, 18)
  153.           term.clearLine()
  154.           term.setCursorPos(15, 18)
  155.           print("Override Successful...")
  156.           sleep(3)
  157.           term.clear()
  158.           term.setCursorPos(1, 1)
  159.           rep5 = rep5+1
  160.           rep6 = rep6+1
  161.           prog = prog+1
  162.         else
  163.           term.setCursorPos(1, 18)
  164.           term.clearLine()
  165.           term.setCursorPos(15, 18)
  166.           print("  Override Failed...")
  167.           sleep(1)
  168.           rep5 = rep5+1
  169.           rep6 = rep6+1
  170.           sid = 0
  171.         end
  172.       else      
  173.         if userlog == "" then
  174.           term.setCursorPos(1, 18)
  175.           term.clearLine()
  176.           term.setCursorPos(18, 18)
  177.           print("Invalid Username")
  178.           sleep(1)
  179.           ioerror = ioerror+1
  180.           if ioerror == 3 then
  181.             rep5 = rep5+1
  182.             rep6 = rep6+1
  183.             sid = 0
  184.           else
  185.           end
  186.         else
  187.           ioerror = 0
  188.           ulog = fs.exists("users/".. userlog)
  189.           if ulog == true then
  190.             term.setCursorPos(1, 16)
  191.             term.clearLine()
  192.             term.setCursorPos(13, 16)
  193.             print("|                        |")
  194.             term.setCursorPos(15, 16)
  195.             write("Password: ")
  196.             userpas = readN(12, "*")
  197.             if userpas == "" then
  198.               term.setCursorPos(1, 18)
  199.               term.clearLine()
  200.               term.setCursorPos(15, 18)
  201.               print("Invalid Password Entry")
  202.               sleep(1)
  203.               ioerror = ioerror+1
  204.               term.setCursorPos(1, 18)
  205.               term.clearLine()
  206.               if ioerror == 3 then
  207.                 rep5 = rep5+1
  208.                 sid = 0
  209.               else
  210.               end
  211.             else
  212.               ulog = io.open("users/".. userlog, "r") or nil
  213.               pass = ulog and ulog:read()
  214.               ulog:close()
  215.               if (pass and pass==userpas) then
  216.                 term.setCursorPos(1, 18)
  217.                 term.clearLine()
  218.                 term.setCursorPos(16, 18)
  219.                 print("  Login Success...")
  220.                 currentw = fs.open("current", "w")
  221.                 accessr = fs.open("users/".. userlog, "r")
  222.                 accessl = accessr.readLine() and accessr.readLine()
  223.                 currentw.writeLine(userlog)
  224.                 currentw.writeLine(accessl)
  225.                 currentw.close()
  226.                 accessr.close()
  227.                 rep5 = rep5+1
  228.                 rep6 = rep6+1
  229.                 prog = prog+1
  230.                 sid = 0
  231.                 sleep(2)
  232.                 shell.run("system")
  233.               else
  234.                 if lockdown < 2 then
  235.                   term.setCursorPos(1, 18)
  236.                   term.clearLine()
  237.                   term.setCursorPos(16, 18)
  238.                   print("   Wrong Password")
  239.                   sleep(1)
  240.                   if userlog == puselog then
  241.                     lockdown = lockdown+1                    
  242.                   else
  243.                     lockdown = 0
  244.                     puselog = userlog
  245.                     lockdown = lockdown+1
  246.                   end
  247.                 else
  248.                   while rep6 == 0 do
  249.                     term.setCursorPos(15, 18)
  250.                     rnd = tostring(math.random(101, 999))
  251.                     if not fs.exists("pending/".. rnd) then
  252.                       fs.move("users/".. userlog, "pending/".. rnd)
  253.                       term.setCursorPos(1, 18)
  254.                       term.clearLine()
  255.                       term.setCursorPos(15, 18)
  256.                       print(" Lockdown Ref #: "..rnd)
  257.                       sleep(1)
  258.                       ulog = fs.open("pending/".. rnd, "a")
  259.                       ulog.writeLine("Username: ".. userlog)
  260.                       ulog.close()
  261.                       rep6 = rep6+1
  262.                       rep5 = rep5+1
  263.                       sid = 0
  264.                     else
  265.                     end
  266.                   end
  267.                 end
  268.               end
  269.             end
  270.           else
  271.             term.setCursorPos(14, 18)
  272.             print("  Bad/Unknown Username")
  273.             sleep(1)
  274.           end
  275.         end
  276.       end
  277.     end
  278.   elseif sid == 1 then
  279.     term.setCursorPos(13, 12)
  280.     print("|  Submit Account Info.  |")
  281.     term.setCursorPos(13, 13)
  282.     print("|                        |")
  283.     term.setCursorPos(13, 14)
  284.     print("|                        |")
  285.     term.setCursorPos(13, 15)
  286.     print("|                        |")
  287.     term.setCursorPos(13, 16)
  288.     print("|                        |")
  289.     term.setCursorPos(13, 17)
  290.     print("|------------------------|")
  291.        
  292.     while rep1 == 0 do
  293.       term.setCursorPos(1, 14)
  294.       term.clearLine()
  295.       term.setCursorPos(13, 14)
  296.       print("|                        |")
  297.       term.setCursorPos(15, 14)
  298.       write("Username: ")
  299.       input = readN()
  300.       actc = input
  301.       actex = fs.exists("users/".. actc)
  302.       if input == "adminovrride" then
  303.         term.setCursorPos(1, 18)
  304.         term.clearLine()
  305.         term.setCursorPos(18, 18)
  306.         print("Invalid Username")
  307.         sleep(1)
  308.         ioerror = ioerror+1
  309.         if ioerror == 3 then
  310.           rep1 = 1
  311.           rep2 = 1
  312.           rep3 = 1
  313.           sid = 0
  314.         else
  315.         end
  316.       else
  317.         if input == "" then
  318.           term.setCursorPos(1, 18)
  319.           term.clearLine()
  320.           term.setCursorPos(18, 18)
  321.           print("Invalid Username")
  322.           sleep(1)
  323.           ioerror = ioerror+1
  324.           if ioerror == 3 then
  325.             rep1 = 1
  326.             rep2 = 1
  327.             rep3 = 1
  328.             sid = 0
  329.           else
  330.           end
  331.         elseif actex == true then
  332.           term.setCursorPos(1, 18)
  333.           term.clearLine()
  334.           term.setCursorPos(15, 18)
  335.           print (" Username Unavailable")
  336.           sleep(1)
  337.         else
  338.           ioerror = 0
  339.           rep1 = 1
  340.         end
  341.       end
  342.     end
  343.    
  344.     while rep2 == 0 do
  345.       while rep3 == 0 do
  346.         term.setCursorPos(15, 15)
  347.         write("Password: ")
  348.         input = readN(12, "*")
  349.         if input == "" then
  350.           term.setCursorPos(1, 18)
  351.           term.clearLine()
  352.           term.setCursorPos(15, 18)
  353.           print("Invalid Password Entry")
  354.           sleep(1)
  355.           ioerror = ioerror+1
  356.           if ioerror == 3 then
  357.             rep1 = 1
  358.             rep2 = 1
  359.             rep3 = 1
  360.           else
  361.           end
  362.         else
  363.           ioerror = 0
  364.           actpw = input
  365.           rep3 = 1
  366.           rep2 = 1
  367.         end
  368.       end
  369.      
  370.       term.setCursorPos(13, 16)
  371.       print("|                        |")
  372.       term.setCursorPos(15, 16)
  373.       write("Confirm : ")
  374.       input = readN(12, "*")
  375.       actpc = input
  376.       if (actpc) == (actpw) then
  377.         while rep4 == 0 do
  378.           rnd = tostring(math.random(1011, 9999))
  379.           if not fs.exists("pending/".. rnd) then
  380.             file = fs.open("pending/".. rnd, "w")
  381.             file.writeLine("actc")
  382.             file.writeLine("actpw")
  383.             file.close()
  384.             rep4 = rep4+1
  385.           else
  386.           end
  387.         end
  388.         term.setCursorPos(1, 18)
  389.         term.clearLine()
  390.         term.setCursorPos(13, 18)
  391.         print("  Pending... Ref #: ", rnd)
  392.         sleep(1)
  393.         ioerror = 0
  394.         rep2 = 1
  395.         sid = 0
  396.       else
  397.         term.setCursorPos(1, 18)
  398.         term.clearLine()
  399.         term.setCursorPos(15, 18)
  400.         print("Password Doesn't Match")
  401.         sleep(1)
  402.         rep2 = 0
  403.         ioerror = ioerror+1
  404.         if ioerror == 3 then
  405.           rep1 = 1
  406.           rep2 = 1
  407.           rep3 = 1
  408.         else
  409.         end
  410.       end
  411.     end
  412.    
  413.   elseif sid == 2 then
  414.     term.setCursorPos(13,14)
  415.     print("|########################|")
  416.     term.setCursorPos(13,15)
  417.     print("# SYSTEM SHUTTING DOWN!! #")
  418.     term.setCursorPos(13,16)
  419.     print("|########################|")
  420.     sleep(3)
  421.     os.shutdown()
  422.     end
  423.   end
  424. end
Add Comment
Please, Sign In to add comment