Advertisement
LeslieCraft

[HUN] Minecraft, computercraft Jelszavas vezerles. AccessCon

Jul 17th, 2013
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 10.82 KB | None | 0 0
  1. --[[
  2.             ----------> Beléptető rendszer <----------
  3.  
  4. Beléptető rendszer. Előszőr root felhasználónévvel és root jelszóval tudtok belépni.
  5. Ezután tudtok felhasználókat, illetve admin jogokkal rendelkező felhasználókat létrehozni.
  6.  
  7. Egyenlőre egy ajtó nyitási funkció van beprogramozva. Ezt bármire kicserélhetitek.
  8. Erre rákeresve: function Choice1()
  9. Itt találhatjátok az 1. menüpont funkcióhívását. A Choice1 re újra rákeresve a menüt tudjátok átírni.
  10.  
  11. A script szabadon másólható, illetve módosítható, amennyiben az eredeti részt csak kommentezitek és az eredeti
  12. tulaját feltüntetitek. Jelen esetben Matteo Delfavero
  13.  
  14. Használjátok sok sikerrel. Bármi kérdésetek van itt feltehetitek: matteo.delfaveroKUKACgmail.com
  15.  
  16. ui.: A Script csak egy része van commentezve. Hamarosan kész lesz.
  17.                                                                                                     2013.07.18
  18. ]]--
  19.  
  20. inMainMenuA = false
  21. inMainMenuU = false
  22. local termWidth, termHeight = term.getSize()
  23. local selectedItem = 1
  24. username = -1
  25. passworld = -1
  26. rsout1 = "left"
  27. rsout2 = "right"
  28.  
  29. function InstallDatabase()                      --Adatbázis mappa létrehozása
  30.     if not fs.exists("Database") then           --Ellenőrzi, hogy létezik-e a mappa
  31.         fs.makeDir("Database")                  --Létrehozza a mappát
  32.         local file = fs.open("Database/root.dat", "w")  --Létrehoz egy root felhasználót tartalmazó file-t
  33.         file.writeLine("root")                  --Beleírja a root jelszavat
  34.         file.writeLine("true")                  --Adminra állítja
  35.         file.close()                            --Bezárja a file-t
  36.         return false                            --Igaz értékkel tér vissza a functio
  37.     else
  38.         return true     --Már létre van hozva a mappa ezért false értékkel tér vissza, tehát nem volt telepítés
  39.     end
  40. end
  41.  
  42. function rootPass()
  43.     local file = fs.open("Database/root.dat", "r")
  44.     local rootPass = file.readLine()
  45.     local rootAdmin = file.readLine()
  46.     file.close()
  47.     if rootPass == "root" then          --Ha a root jelszava root akkor igaz értékkel tér vissza
  48.         return true                             --Ez kérőbb lesz érdekes
  49.     else
  50.         return false
  51.     end
  52. end
  53.  
  54. function IsAdmin(username)                                          --Ellenőrzi, hogy a felhasználónak vannak-e root azaz admin jogosúltságai
  55.     local file = fs.open("Database/"..username..".dat", "r")
  56.     local ReadedPass = file.readLine()
  57.     local ReadedAdmin = file.readLine()
  58.     file.close()
  59.     if ReadedAdmin == "true" then
  60.         return true
  61.     else
  62.         return false
  63.     end
  64. end
  65.  
  66. function rootChange()
  67.     if rootPass() then
  68.         centerText("-----> Root jelszo megvaltoztatasa <-----")
  69.         print("")
  70.         write("Uj root jelszo: ")
  71.         local rootpass1 = read("x")
  72.         write("Uj root jelszo megegyszer: ")
  73.         local rootpass2 = read("x")
  74.         if rootpass1 == "root" then
  75.             cls()
  76.             centerText("Nem lehet ujra root a jelszo")
  77.             sleep(3)
  78.             return rootChange()
  79.         end
  80.         if rootpass1 == rootpass2 then
  81.             local file = fs.open("Database/root.dat", "w")
  82.             file.writeLine(rootpass2)
  83.             file.writeLine("true")
  84.             file.close()
  85.             print("Root jelszo frissitese....")
  86.             sleep(2)
  87.             return true
  88.         else
  89.             print("A ket jelszo nem egyezik")
  90.             sleep(3)
  91.             return rootChange()
  92.         end
  93.     end
  94. end
  95.  
  96. function centerText(text)
  97.     local x,y = term.getSize()
  98.     local x2,y2 = term.getCursorPos()
  99.     term.setCursorPos(math.ceil((x / 2) - (text:len() / 2)), y2)
  100.     print(text)
  101. end
  102.  
  103. function UserAdd()
  104.     cls()
  105.     centerText("-----> Regisztracio <-----")
  106.     print("")
  107.     write("Felhasznalonev: ")
  108.     local username = read()
  109.     print("")
  110.     write("Jelszo: ")
  111.     local passwd1 = read("x")
  112.     write("Jelszo megerositese: ")
  113.     local passwd2 = read("x")
  114.     write("A felhasznalonak root jogai vannak? i/n: ")
  115.     local Admin = read()
  116.    
  117.     if Admin == "i" or Admin == "I" then
  118.         AdminJog = true
  119.     elseif Admin == "n" or Admin == "N" then
  120.         AdminJog = false
  121.     else
  122.         print("Helytelen válasz i/n !")
  123.         sleep(3)
  124.         return UserAdd()
  125.     end
  126.    
  127.     if passwd1 ~= passwd2 then
  128.         print("A ket jelszo nem egyezik")
  129.         sleep(3)
  130.         return UserAdd()
  131.     end
  132.    
  133.     if not InstallDatabase() then
  134.         cls()
  135.         print("Nem lehetett létrehozni")
  136.         read("")
  137.         return main()
  138.     end
  139.    
  140.     if fs.exists("Database/" .. username ..".dat") then
  141.         cls()
  142.         print("Van már ilyen felhasználó")
  143.         read("")
  144.         return main()
  145.     end
  146.    
  147.     local file = fs.open("Database/" .. username ..".dat", "w")
  148.     file.writeLine(passwd1)
  149.     file.writeLine(AdminJog)
  150.     file.close()
  151.     return menu()
  152. end
  153.  
  154. function cls()
  155.     term.clear()
  156.     term.setCursorPos(1,1)
  157. end
  158.  
  159. function NoUser()
  160.     cls()
  161.     print("Nincs ilyen felhasznalo")
  162.     read("")
  163.     return main()
  164. end
  165.  
  166. function Acces(user, pass)
  167.     if fs.exists("Database/"..user..".dat") then
  168.         local file = fs.open("Database/"..user..".dat", "r")
  169.         local ReadedPass = file.readLine()
  170.         adminUser = file.readLine()
  171.         file.close()
  172.         if ReadedPass == pass then
  173.             return true
  174.         else
  175.             return false
  176.         end
  177.     else
  178.         return NoUser()
  179.     end
  180. end
  181.  
  182. function AccessDenied()
  183.     cls()
  184.     print("Felhasznalonev/jelszo nem eggyezik")
  185.     read("")
  186.     return main()
  187. end
  188.  
  189. function AccessEnable()
  190.     rootChange()
  191.     print("Debug mauin")
  192.     return menu()
  193. end
  194.  
  195. function main()
  196.     InstallDatabase()
  197.     cls()
  198.     centerText("-----> Bejelentkezes <-----")
  199.     print("")
  200.     write("Felhasznalonev: ")
  201.     username = read()
  202.     print("")
  203.     write("Jelszo: ")
  204.     passworld = read("x")
  205.     if Acces(username, passworld) then
  206.         return AccessEnable()
  207.     else
  208.         return AccessDenied()
  209.     end
  210. end
  211.  
  212. function printMenu ( menu, admin )
  213.     if adminUser == "true" then
  214.         centerText("Udv admin: " .. username)
  215.     else
  216.         centerText("Udv user: " .. username)
  217.     end
  218.    
  219.     for i = 1, #menu do
  220.         if i == selectedItem then
  221.           term.setCursorPos(15,(i+5))
  222.           print(">> "..menu[i].text.." <<")
  223.         else
  224.           term.setCursorPos(15,(i+5))
  225.           print("   "..menu[i].text)
  226.         end
  227.     end
  228. end
  229.  
  230. function onKeyPressed( key, menu )
  231.     if key == keys.enter then
  232.         onItemSelected(menu)
  233.     elseif key == keys.up then
  234.         if selectedItem > 1 then
  235.             selectedItem = selectedItem - 1
  236.         end
  237.     elseif key == keys.down then
  238.         if selectedItem < #menu then
  239.             selectedItem = selectedItem +1
  240.         end
  241.     end
  242. end
  243.  
  244. function onItemSelected(menu)
  245.     menu[selectedItem].handler()
  246. end
  247.  
  248. function timerAjto(sec)
  249.     while sec ~= 0 do
  250.         cls()
  251.         centerText("Ajtok zarasa " .. sec .. "-mp mulva.")
  252.         sec = sec-1
  253.         sleep(1)
  254.     end
  255. end
  256.  
  257. function timer(sec)
  258.     while sec ~= 0 do
  259.         write(sec)
  260.         sec = sec-1
  261.         sleep(1)
  262.     end
  263. end
  264.  
  265. function Choice1()      --Ajtó nyitás
  266.     cls()
  267.     redstone.setOutput(rsout1, true)
  268.     redstone.setOutput(rsout2, true)
  269.     timerAjto(6)
  270.     redstone.setOutput(rsout1, false)
  271.     redstone.setOutput(rsout2, false)
  272.     return menu()
  273. end
  274.  
  275. function Choice2()      --Új regisztráció
  276.     UserAdd()
  277. end
  278.  
  279. function Choice3()
  280.     cls()
  281.     centerText("-----> Jelszo csere <-----")
  282.     print("")
  283.     write("Felhasznalonev: ")
  284.     local ExchangeUserPass = read()
  285.     print("Felhasznalo keresese...")
  286.     sleep(2)
  287.     if fs.exists("Database/"..ExchangeUserPass..".dat") then
  288.         print("Felhasznalo megtalalva: " .. ExchangeUserPass)
  289.         local file = fs.open("Database/"..ExchangeUserPass..".dat", "r")
  290.         local ReadedPass = file.readLine()
  291.         local ReadedAdmin = file.readLine()
  292.         file.close()
  293.        
  294.         write("Uj jelszo: ")
  295.         local Passwd1 = read("x")
  296.         write("Jelszo megegyszer: ")
  297.         local Passwd2 = read("x")
  298.         if Passwd1 == Passwd2 then
  299.             local file = fs.open("Database/"..ExchangeUserPass..".dat", "w")
  300.             file.writeLine(Passwd1)
  301.             file.writeLine(ReadedAdmin)
  302.             file.close()
  303.             print("Jelszo frissitese...")
  304.             sleep(1)
  305.             print("Frissites sikeres a/az " .. ExchangeUserPass .. " felhasznalonal")
  306.             sleep(3)
  307.             return menuA()
  308.         else
  309.             print("A ket jelszo nem egyezik!!!")
  310.             sleep(3)
  311.             return Choice3()
  312.         end
  313.     else
  314.         print("Nem talalhato ilyen felhasznalo: "  .. ExchangeUserPass)
  315.     end
  316. end
  317.  
  318. function Choice4()
  319.     cls()
  320.     centerText("-----> Jelszo csere <-----")
  321.     print("")
  322.     write("Jelenlegi jelszavad: ")
  323.     local NowPass = read("x")
  324.     local file = fs.open("Database/"..username..".dat", "r")
  325.     local NowReadedPass = file.readLine()
  326.     file.close()
  327.     if NowReadedPass == NowPass then
  328.         write("Uj jelszo megadasa: ")
  329.         local NewPasswd1 = read("x")
  330.         write("Jelszo megegyszer: ")
  331.         local NewPasswd2 = read("x")
  332.         if NewPasswd1 == NewPasswd2 then
  333.             local file = fs.open("Database/"..username..".dat", "w")
  334.             file.writeLine(NewPasswd2)
  335.             file.close()
  336.             print("Jelszo frissitese....")
  337.             sleep(2)
  338.             print("Kesz!")
  339.             sleep(.5)
  340.             return menu()
  341.         else
  342.             print("A ket jelszo nem eggyezik!!")
  343.             sleep(3)
  344.             cls()
  345.             return Choice4()
  346.         end
  347.     else
  348.         print("A megadott jelszavad nem")
  349.         print("eggyezik a tarolt jelszavaddal.")
  350.         sleep(4)
  351.         return menu()
  352.     end
  353. end
  354.  
  355. function Choise5()
  356.     cls()
  357.     centerText("-----> felhasznalo torlese <-----")
  358.     print("")
  359.     write("Felhasznalonev: ")
  360.     local DeleteUser = read()
  361.     print("Felhasznalo keresese...")
  362.     sleep(2)
  363.     if fs.exists("Database/"..DeleteUser..".dat") then
  364.         print("Felhasznalo megtalalva.")
  365.         print("Biztosan torolni szeretned a/az " .. DeleteUser .. " felhasznalot? i/n")
  366.         local Delete = read()
  367.         if Delete == "i" or Delete == "I" then
  368.             fs.delete("Database/"..DeleteUser..".dat")
  369.             print("Torles...")
  370.             sleep(1)
  371.             if not fs.exists("Database/"..DeleteUser..".dat") then
  372.                 print("Sikeresen torolted a/az " .. DeleteUser .. " felhasznalot.")
  373.                 sleep(3)
  374.                 return menu()
  375.             else
  376.                 print("ERROR FELHASZNALO NEM TOROLHETO")
  377.                 sleep(3)
  378.                 return menu()
  379.             end
  380.         elseif Delete == "n" or Delete == "N" then
  381.             return menu()
  382.         else
  383.             print("Igen vagy nem?! i/n")
  384.             sleep(3)
  385.             return Choise5()
  386.         end
  387.     else
  388.         print("Felhasznalo nem talalhato")
  389.         sleep(3)
  390.         return menu()
  391.     end
  392. end
  393.  
  394. function Choise6()
  395.     cls()
  396.     centerText("-----> Osszes felhasznalo <-----")
  397.     local FileList = fs.list("Database/")
  398.     for _, file in ipairs(FileList) do
  399.         print(file)
  400.     end
  401.    
  402.     read("")
  403.     return menu()
  404. end
  405.  
  406. function Exit()         --Kijelentkezés
  407.     inMainMenuA = false
  408.     inMainMenuU = false
  409.     main()
  410. end
  411.  
  412. mainMenuA = {
  413.     [1] = { text = "  Ajtok nyitasa    ", handler = Choice1 },
  414.     [2] = { text = " Uj regisztracio   ", handler = Choice2 },
  415.     [3] = { text = "   Jelszo csere    ", handler = Choice3 },
  416.     [4] = { text = "Felhasznalo torlese", handler = Choise5 },
  417.     [5] = { text = "Osszes felhasznalo ", handler = Choise6 },
  418.     [6] = { text = "      Log out      ", handler = Exit }
  419. }
  420.  
  421. mainMenuU = {
  422.     [1] = { text = "  Ajtok nyitasa  ", handler = Choice1 },
  423.     [2] = { text = "Sajat jelszo cere", handler = Choice4 },
  424.     [3] = { text = "     Log out     ", handler = Exit }
  425. }
  426.  
  427. function menu()
  428.     if IsAdmin(username) then
  429.         selectedItem = 1
  430.         inMainMenuA = true
  431.         inMainMenuU = false
  432.         return menuA()
  433.     else
  434.         selectedItem = 1
  435.         inMainMenuA = false
  436.         inMainMenuU = true
  437.         return menuU()
  438.     end
  439. end
  440.  
  441. function menuA()
  442.     while inMainMenuA do
  443.         cls()
  444.         printMenu(mainMenuA)
  445.         event, key = os.pullEvent("key")
  446.         onKeyPressed(key, mainMenuA)
  447.     end
  448. end
  449.  
  450. function menuU()
  451.     while inMainMenuU do
  452.         cls()
  453.         printMenu(mainMenuU)
  454.         event, key = os.pullEvent("key")
  455.         onKeyPressed(key, mainMenuU)
  456.     end
  457. end
  458.  
  459.  
  460. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement