Theshadow989

[xOS] Remove Accounts

Jan 9th, 2016
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.52 KB | None | 0 0
  1. --[[
  2. Remove Accounts File
  3. Written by TheShadow989
  4. ]]--
  5.  
  6. os.pullEvent = os.pullEventRaw
  7.  
  8. local verNumber = "Alpha 1.24"
  9. local nOption = 1
  10. userfinal = {}
  11. userlenght = {}
  12. usernamearray = {}
  13.  
  14. rRead = fs.open("xos/.usertable", "r")
  15. users = textutils.unserialize(rRead.readAll())
  16. rRead.close()
  17. cu = tonumber(users[1])
  18. cs = tonumber(users[cu+1])
  19. cp = tonumber(users[cu+2])
  20.  
  21. usernamearray[1] = users[2]
  22.  
  23. if users[5] == nil then
  24.     usernamearray[2] = "Empty"
  25. else
  26.     usernamearray[2] = users[5]
  27. end
  28. if users[8] == nil then
  29.     usernamearray[3] = "Empty"
  30. else
  31.     usernamearray[3] = users[8]
  32. end
  33. if users[11] == nil then
  34.     usernamearray[4] = "Empty"
  35. else
  36.     usernamearray[4] = users[11]
  37. end
  38.  
  39. userlenght[1] = string.len(usernamearray[1])
  40. userlenght[2] = string.len(usernamearray[2])
  41. userlenght[3] = string.len(usernamearray[3])
  42. userlenght[4] = string.len(usernamearray[4])
  43.  
  44. for i=1, 4 do
  45.     if userlenght[i] == 9 then
  46.         userfinal[i] = ""..usernamearray[i]..""
  47.     elseif userlenght[i] == 8 then
  48.         userfinal[i] = ""..usernamearray[i].." "
  49.     elseif userlenght[i] == 7 then
  50.         userfinal[i] = " "..usernamearray[i].." "
  51.     elseif userlenght[i] == 6 then
  52.         userfinal[i] = " "..usernamearray[i].."  "
  53.     elseif userlenght[i] == 5 then
  54.         userfinal[i] = "  "..usernamearray[i].."  "
  55.     elseif userlenght[i] == 4 then
  56.         userfinal[i] = "  "..usernamearray[i].."   "
  57.     elseif userlenght[i] == 3 then
  58.         userfinal[i] = "   "..usernamearray[i].."   "
  59.     elseif userlenght[i] == 2 then
  60.         userfinal[i] = "   "..usernamearray[i].."    "
  61.     elseif userlenght[i] == 1 then
  62.         userfinal[i] = "    "..usernamearray[i].."    "
  63.     end
  64. end
  65.  
  66. local w,h = term.getSize()
  67.  
  68. local function drawMenu()
  69.         local time = os.time()
  70.         local formattedTime = textutils.formatTime(time, false)
  71.  
  72.         term.clear()
  73.         term.setCursorPos(1,1)
  74.         term.write("Logged in as: ")
  75.         term.setTextColor( colors.red )
  76.         term.write(""..users[cu].."")
  77.         term.setTextColor( colors.white )
  78.         term.setCursorPos(1,2)
  79.         write(formattedTime)
  80.         term.setCursorPos(1,19)
  81.         term.write("xOS "..verNumber.." by TheShadow989")
  82.        
  83.         term.setCursorPos(w-11,1)
  84.         if nOption == 1 then
  85.            term.write(""..usernamearray[1].."")
  86.         elseif nOption == 2 then
  87.            term.write(""..usernamearray[2].."")
  88.         elseif nOption == 3 then
  89.            term.write(""..usernamearray[3].."")
  90.         elseif nOption == 4 then
  91.            term.write(""..usernamearray[4].."")
  92.         elseif nOption == 5 then
  93.            term.write("Back")
  94.         end
  95. end
  96.  
  97. function printCentered(y,s)
  98.         local x = math.floor((w - string.len(s)) / 2)
  99.         term.setCursorPos(x,y)
  100.         term.clearLine()
  101.         term.write( s )
  102. end
  103.  
  104. term.clear()
  105.  
  106. local function drawFrontend()
  107.     printCentered( math.floor(h/2) - 4, "")
  108.     printCentered( math.floor(h/2) - 3, "Select an account to delete." )
  109.     printCentered( math.floor(h/2) - 2, "")
  110.     printCentered( math.floor(h/2) - 1, ((nOption == 1) and "["..userfinal[1].."]") or userfinal[1] )
  111.     printCentered( math.floor(h/2) + 0, ((nOption == 2) and "["..userfinal[2].."]") or userfinal[2] )
  112.     printCentered( math.floor(h/2) + 1, ((nOption == 3) and "["..userfinal[3].."]") or userfinal[3] )
  113.     printCentered( math.floor(h/2) + 2, ((nOption == 4) and "["..userfinal[4].."]") or userfinal[4] )
  114.     printCentered( math.floor(h/2) + 3, "")
  115.     printCentered( math.floor(h/2) + 4, ((nOption == 5) and "[  Back   ]") or "  Back   " )
  116. end
  117.  
  118. local function errormsg()
  119.     local time = os.time()
  120.     local formattedTime = textutils.formatTime(time, false)
  121.  
  122.     term.setCursorPos(1,1)
  123.     term.write("Logged in as: ")
  124.     term.setTextColor( colors.red )
  125.     term.write(""..users[cu].."")
  126.     term.setTextColor( colors.white )
  127.     term.setCursorPos(1,2)
  128.     write(formattedTime)
  129.     term.setCursorPos(1,19)
  130.     term.write("xOS "..verNumber.." by TheShadow989")
  131.     term.setCursorPos(w-11,1)
  132.  
  133.     if nOption == 1 then
  134.         term.write(""..usernamearray[1].."")
  135.     elseif nOption == 2 then
  136.         term.write(""..usernamearray[2].."")
  137.     elseif nOption == 3 then
  138.         term.write(""..usernamearray[3].."")
  139.     elseif nOption == 4 then
  140.         term.write(""..usernamearray[4].."")
  141.     end
  142.     term.setCursorPos(11,8)
  143. end
  144.  
  145. local function save()
  146.  
  147.     wWrite = fs.open("xos/.usertable", "w")
  148.     wWrite.write(textutils.serialize(users))   
  149.     wWrite.close()
  150.  
  151.     errormsg()
  152.     term.setCursorPos(11,8)
  153.     term.setTextColor(colors.green)
  154.     term.write("Account Successfully Deleted!")
  155.     term.setTextColor(colors.white)
  156.     sleep(3)
  157.     shell.run("xos/.accounts")
  158. end
  159.  
  160. drawMenu()
  161. drawFrontend()
  162.  
  163. while true do
  164.     local e,p = os.pullEvent()
  165.     if e == "key" then
  166.         local key = p
  167.         if key == 17 or key == 200 then
  168.             if nOption > 1 then
  169.                 nOption = nOption - 1
  170.                 drawMenu()
  171.                 drawFrontend()
  172.             end
  173.         elseif key == 31 or key == 208 then
  174.             if nOption < 5 then
  175.                 nOption = nOption + 1
  176.                 drawMenu()
  177.                 drawFrontend()
  178.             end
  179.         elseif key == 28 then
  180.             break
  181.         end
  182.     end
  183. end
  184.  
  185. term.clear()
  186.  
  187. if nOption  == 1 then
  188.     errormsg()
  189.     term.setTextColor( colors.red )
  190.     write("Cannot edit or delete Admin!")
  191.     term.setTextColor( colors.white )
  192.     sleep(2)
  193.     shell.run("xos/.removeaccounts")
  194.  
  195. elseif nOption == 2 then
  196.     if usernamearray[2] == "Empty" then
  197.         errormsg()
  198.         term.setTextColor( colors.red )
  199.         write("Cannot delete an empty slot!")
  200.         term.setTextColor( colors.white )
  201.         sleep(2)
  202.         shell.run("xos/.removeaccounts")
  203.     else
  204.         if cu >= 5 then
  205.             cu = cu - 3
  206.             users[1] = cu
  207.         end
  208.  
  209.         table.remove(users, 5)
  210.         table.remove(users, 5)
  211.         table.remove(users, 5)
  212.         save()
  213.     end
  214.  
  215. elseif nOption == 3 then
  216.     if usernamearray[3] == "Empty" then
  217.         errormsg()
  218.         term.setTextColor( colors.red )
  219.         write("Cannot delete an empty slot!")
  220.         term.setTextColor( colors.white )
  221.         sleep(2)
  222.         shell.run("xos/.removeaccounts")
  223.     else
  224.         if cu >= 8 then
  225.             cu = cu - 3
  226.             users[1] = cu
  227.         end
  228.  
  229.         table.remove(users, 8)
  230.         table.remove(users, 8)
  231.         table.remove(users, 8)
  232.         save()
  233.     end
  234.  
  235. elseif nOption == 4 then
  236.     if usernamearray[4] == "Empty" then
  237.         errormsg()
  238.         term.setTextColor( colors.red )
  239.         write("Cannot delete an empty slot!")
  240.         term.setTextColor( colors.white )
  241.         sleep(2)
  242.         shell.run("xos/.removeaccounts")
  243.     else
  244.         if cu >= 11 then
  245.             cu = cu - 3
  246.             users[1] = cu
  247.         end
  248.  
  249.         table.remove(users, 11)
  250.         table.remove(users, 11)
  251.         table.remove(users, 11)  
  252.         save()
  253.     end
  254.  
  255. elseif nOption == 5 then
  256.     shell.run("xos/.accounts")
  257. end
Add Comment
Please, Sign In to add comment