SuicidalSTDz

EnderOS v1.8 Developmental

Jan 30th, 2013
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --License:
  2. --The code of "EnderOS" in any form is intellectual
  3. --property of SuicidalSTDz. You may not reproduce,
  4. --redistribute, or modify it in any way!
  5.  
  6. --IGNORE!
  7. --Replace this with your name and anyone else that is allowed on your computer
  8. playerDetection = false
  9. allowedPlayers = "SuicidalSTDz","Notch","direwolf20"
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18. os.pullEvent = os.pullEventRaw
  19. term.clear()
  20. term.setCursorPos(1,1)
  21. if not fs.exists("/.EnderOS/.startupInstalled") then
  22. local running = shell.getRunningProgram()
  23. print("EnderOS has detected a startup file that it clashes with!")
  24. print("EnderOS is about to delete this file and install itself in its place")
  25. print("Do you wish to continue? Yes or No?")
  26. local input = read()
  27. if input == "Yes" then
  28. shell.run("delete","startup")
  29. fs.move(running, "startup")
  30. reset()
  31. print("File removed and EnderOS implanted within the startup file")
  32. sleep(5)
  33. local newStartup = fs.open(".EnderOS/.startupInstalled", "w")
  34. newStartup:close()
  35. else
  36. os.reboot()
  37. end
  38. end
  39. function settingsChangeUser()
  40. reset()
  41. term.setTextColor(colors.orange)
  42. local passFile = io.open("/.EnderOS/.passInfo", "r")
  43. local passContents = passFile:read()
  44. passFile:close()
  45. print("Please enter your password: ")
  46. if read("*") ~= passContents then
  47. print("Invalid password")
  48. sleep(1.5)
  49. settingsChangeUser()
  50. else
  51. local user = ("/.EnderOS/.userInfo")
  52. io.open(user)
  53. local username = io.open(user, "w")
  54. print("Enter new username: ")
  55. writeUser = read()
  56. writeN = username:write(writeUser)
  57. username:close()
  58. print("Your new username is "..writeUser)
  59. sleep(2)
  60. start()
  61. end
  62. term.setTextColor(colors.white)
  63. end
  64. function settingsChangePass()
  65. reset()
  66. term.setTextColor(colors.orange)
  67. local passFile = io.open("/.EnderOS/.passInfo", "r")
  68. local passContents = passFile:read()
  69. passFile:close()
  70. print("Please enter your password: ")
  71. if read("*") ~= passContents then
  72. print("Invalid password")
  73. sleep(1.5)
  74. settingsChangePass()
  75. else
  76. local pass = ("/.EnderOS/.passInfo")
  77. io.open(pass)
  78. local password = io.open(pass, "w")
  79. print("Enter new password: ")
  80. local writePass = read("*")
  81. local writeN = password:write(writePass)
  82. password:close()
  83. print("Your new password is "..writePass)
  84. sleep(2)
  85. start()
  86. end
  87. term.setTextColor(colors.white)
  88. end
  89. function settingsChangeHint()
  90. reset()
  91. term.setTextColor(colors.orange)
  92. local passFile = io.open("/.EnderOS/.passInfo", "r")
  93. local passContents = passFile:read()
  94. passFile:close()
  95. print("Please enter your password: ")
  96. if read("*") ~= passContents then
  97. print("Invalid password")
  98. sleep(1.5)
  99. settingsChangeHint()
  100. else
  101. local hint = ("/.EnderOS/.userHint")
  102. io.open(hint)
  103. local uHint = io.open(hint, "w")
  104. print("Enter new hint: ")
  105. local writeHint = read("*")
  106. local writeN = uHint:write(writeHint)
  107. uHint:close()
  108. print("Your new hint is "..writeHint)
  109. sleep(2)
  110. start()
  111. end
  112. term.setTextColor(colors.white)
  113. end
  114. local version = "v1.8"
  115. userfile = shell.getRunningProgram()
  116. local dot = string.byte(shell.getRunningProgram())
  117. local v = ".(Period)"
  118.  
  119. function reset()
  120. term.clear()
  121. term.setCursorPos(1,1)
  122. end
  123. function userInfo()
  124. reset()
  125. fs.makeDir("/.EnderOS/")
  126. user = ("/.EnderOS/.userInfo")
  127. io.open(user)
  128. username = io.open(user, "w")
  129. print("Please enter your desired Username")
  130. writeUser = read()
  131. writeIsFailUser = username:write(writeUser)
  132. username:close()
  133. pass = ("/.EnderOS/.passInfo")
  134. io.open(pass)
  135. password = io.open(pass, "w")
  136. print("Please enter your desired Password")
  137. writePass = read("*")
  138. writeIsFailPass = password:write(writePass)
  139. password:close()
  140. hint = ("/.EnderOS/.userHint")
  141. io.open(hint)
  142. uHint = io.open(hint, "w")
  143. print("Please enter your desired Password hint")
  144. writeHint = read()
  145. writeIsFailHint = uHint:write(writeHint)
  146. uHint:close()
  147. local installC = fs.open("/.EnderOS/.EnderOSisInstalled", "w")
  148. installC:close()
  149. end
  150. function frame()
  151. print("+-------------------------------------------------+")
  152. for i = 1,17 do
  153. print("| |")
  154. end
  155. term.write("+-------------------------------------------------+")
  156. end
  157. function no()
  158. term.clear()
  159. term.setTextColor(colors.red)
  160. term.setCursorPos(1,1)
  161. print("Sorry, I have not coded this in yet. Please be patient.")
  162. sleep(3)
  163. end
  164. function screen()
  165. reset()
  166. term.setTextColor(colors.lime)
  167. print("+-------------------------------------------------+")
  168. print("| |")
  169. print("| ")
  170. term.setCursorPos(19,3)
  171. term.setTextColor(colors.purple)
  172. write("EnderOS "..version)
  173. term.setTextColor(colors.lime)
  174. term.setCursorPos(31,3)
  175. print(" |")
  176. print("| |")
  177. print("| |")
  178. print("| |")
  179. print("| |")
  180. print("| ")
  181. term.setCursorPos(10,8)
  182. term.setTextColor(colors.orange)
  183. print("Username:")
  184. term.setCursorPos(19,8)
  185. print(" ")
  186. term.setCursorPos(50,8)
  187. term.setTextColor(colors.lime)
  188. print(" |")
  189. print("| |")
  190. print("| ")
  191. term.setTextColor(colors.orange)
  192. term.setCursorPos(10,10)
  193. print("Password:")
  194. term.setCursorPos(19,10)
  195. print(" ")
  196. term.setCursorPos(50,10)
  197. term.setTextColor(colors.lime)
  198. print(" |")
  199. print("| |")
  200. print("| |")
  201. print("| ")
  202. term.setCursorPos(8,13)
  203. term.setTextColor(colors.blue)
  204. print("forgot password ")
  205. term.setCursorPos(50,13)
  206. term.setTextColor(colors.lime)
  207. print(" |")
  208. print("| |")
  209. print("| |")
  210. print("| |")
  211. print("| |")
  212. print("| |")
  213. write("+-------------------------------------------------+")
  214. end
  215. function click()
  216. local userHint = io.open("/.EnderOS/.userHint", "r")
  217. hintContents = userHint:read()
  218. userHint:close()
  219. local event, button, xPos, yPos = os.pullEvent("mouse_click")
  220. if button == 1 then
  221. if (xPos >=8 and xPos <=22 and yPos == 13) then
  222. term.setCursorPos(10,15)
  223. term.setTextColor(colors.red)
  224. print("Hint: "..hintContents)
  225. term.setTextColor(colors.white)
  226. click()
  227. elseif (xPos >=10 and xPos <=18 and yPos == 8) then
  228. term.setCursorPos(20,8)
  229. else
  230. screen()
  231. click()
  232. end
  233. else
  234. click()
  235. end
  236. end
  237. function login()
  238. click()
  239. local userFile = io.open("/.EnderOS/.userInfo", "r")
  240. userContents = userFile:read()
  241. userFile:close()
  242. local passFile = io.open("/.EnderOS/.passInfo", "r")
  243. passContents = passFile:read()
  244. passFile:close()
  245. term.setTextColor(colors.white)
  246. if read() == userContents then
  247. term.setCursorPos(8,8)
  248. term.setTextColor(colors.lime)
  249. term.write("O")
  250. term.setTextColor(colors.white)
  251. term.setCursorPos(20,10)
  252. if read("*") == passContents then
  253. term.setCursorPos(8,10)
  254. term.setTextColor(colors.lime)
  255. term.write("O")
  256. term.setTextColor(colors.white)
  257. sleep(0.8)
  258. term.clear()
  259. term.setCursorPos(19,9)
  260. x,y = term.getCursorPos()
  261. print("Logging in")
  262. term.setCursorPos(x+10,9)
  263. sleep(0.7)
  264. print(".")
  265. sleep(0.7)
  266. term.setCursorPos(x+11,9)
  267. print(".")
  268. sleep(0.7)
  269. term.setCursorPos(x+12,9)
  270. print(".")
  271. sleep(0.7)
  272. reset()
  273. start()
  274. else
  275. term.setCursorPos(8,10)
  276. term.setTextColor(colors.red)
  277. term.write("X")
  278. sleep(0.5)
  279. term.setTextColor(colors.white)
  280. screen()
  281. login()
  282. end
  283. else
  284. term.setCursorPos(8,8)
  285. term.setTextColor(colors.red)
  286. term.write("X")
  287. sleep(0.5)
  288. term.setTextColor(colors.white)
  289. screen()
  290. login()
  291. end
  292. end
  293. function settings()
  294. term.setTextColor(colors.purple)
  295. frame()
  296. term.setCursorPos(17,1)
  297. term.setTextColor(colors.lime)
  298. print("[EnderOS Settings]")
  299. term.setCursorPos(7,3)
  300. print("{Change Username} {Change Password}")
  301. term.setCursorPos(15,5)
  302. print("{Change Password Hint}")
  303. term.setCursorPos(3,1)
  304. term.setTextColor(colors.orange)
  305. term.write("[Back]")
  306. term.setTextColor(colors.white)
  307. local event, button, xPos, yPos = os.pullEvent("mouse_click")
  308. if button == 1 then
  309. if (xPos >=7 and xPos <=23 and yPos == 3) then
  310. settingsChangeUser()
  311. elseif (xPos >=27 and xPos <=43 and yPos == 3) then
  312. settingsChangePass()
  313. elseif (xPos >=15 and xPos <=36 and yPos == 5) then
  314. settingsChangeHint()
  315. elseif (xPos >=3 and xPos <=9 and yPos == 1) then
  316. start()
  317. else
  318. settings()
  319. end
  320. else
  321. sleep(1)--This is to prevent spamming, thus "overloading" EnderOS
  322. settings()
  323. end
  324. end
  325. function start()
  326. reset()
  327. term.setTextColor(colors.purple)
  328. frame()
  329. term.setCursorPos(3,19)
  330. term.setTextColor(colors.orange)
  331. term.write("[Log Out]")
  332. term.setCursorPos(17,1)
  333. term.setTextColor(colors.lime)
  334. print("[EnderOS Commands]")
  335. term.setCursorPos(3,3)
  336. print("{Settings} {Exit}")
  337. local event, button, xPos, yPos = os.pullEvent("mouse_click")
  338. if button == 1 then
  339. if (xPos >=16 and xPos <=21 and yPos == 3) then
  340. reset()
  341. elseif (xPos >=3 and xPos <=12 and yPos == 3) then
  342. settings()
  343. elseif (xPos >=3 and xPos <=11 and yPos == 19) then
  344. reset()
  345. screen()
  346. login()
  347. else
  348. start()
  349. end
  350. else
  351. sleep(1)--This is to prevent spamming, thus "overloading" EnderOS
  352. start()
  353. end
  354. end
  355.  
  356.  
  357. --EnderOS
  358. if not term.isColor() then
  359. term.clear()
  360. term.setCursorPos(1,1)
  361. print("EnderOS does not support non-color computers!")
  362. sleep(3)
  363. os.shutdown()
  364. end
  365. if not fs.exists("/.EnderOS/.EnderOSisInstalled") then
  366. userInfo()
  367. end
  368. reset()
  369. term.setTextColor(colors.purple)
  370. term.setCursorPos(13,7)
  371. print("EnderOS "..version.." Initializing")
  372. term.setTextColor(colors.white)
  373. term.setBackgroundColor(colors.lime)
  374. for i = 14,36 do
  375. term.setCursorPos(i,9)
  376. term.write(" ")
  377. sleep(0.3)
  378. end
  379. term.setBackgroundColor(colors.black)
  380. sleep(0.5)
  381. screen()
  382. login()
  383. start()
Advertisement
Add Comment
Please, Sign In to add comment