Advertisement
Streetboy_xD

[Computercraft] File Transfer Server 3.0

Jan 13th, 2016
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.64 KB | None | 0 0
  1. -- Extras
  2.  
  3. fs.makeDir("Programs")
  4. fs.makeDir("User")
  5. fs.makeDir("Backup")
  6.  
  7. -- Variablen
  8.  
  9. modemPresent = false;
  10. editText = false;
  11.  
  12. bColor = colors.white;
  13. btColor = colors.gray;
  14. htColor = colors.lightGray;
  15. hColor = colors.gray;
  16.  
  17. language = "$GER";
  18.  
  19. password = {}
  20. allowedPC = {}
  21.  
  22. resetPC = 2
  23.  
  24. os.pullEvent = os.pullEventRaw
  25.  
  26. -- Funktionen
  27.  
  28. function bin(program)
  29.  
  30. if fs.exists("Programs/"..program) and program ~= "" then
  31.  
  32. fs.delete("Programs/"..program)
  33. file = fs.open("DateiListe","r")
  34. data = file.readAll()
  35. file.close()
  36.  
  37. firstpart = string.sub(data, 1, string.find(data.."",program) -1)
  38. secondpart = string.sub(data, string.find(data.."",program..";") + string.len(program..";"), -1)
  39.  
  40. file = fs.open("DateiListe","w")
  41. file.write(firstpart..secondpart)
  42. file.close()
  43.  
  44. return translate("$DELETED", language)
  45.  
  46. else
  47.  
  48. return translate("$NOT_EXIST", language)
  49.  
  50. end
  51.  
  52. end
  53.  
  54. function download(program, sender)
  55.  
  56. if fs.exists("Programs/"..program) and program ~= "" then
  57. downloading = fs.open("Programs/"..program,"r")
  58. file = downloading.readAll()
  59. downloading.close()
  60. else
  61. rednet.send(sender,translate("$ERROR_EXIST", language))
  62. end
  63.  
  64. return file
  65.  
  66. end
  67.  
  68. function upload(programname,programcode)
  69.  
  70. if not fs.exists("Programs/"..programname) then
  71.  
  72. uploading = fs.open("Programs/"..programname,"w")
  73. uploading.write(programcode)
  74. uploading.close()
  75.  
  76. backup = fs.open("Backup/"..programname,"w")
  77. backup.write(programcode)
  78. backup.close()
  79.  
  80. ergebnis = programname.." "..translate("$UPLOADED", language)
  81.  
  82. else
  83.  
  84. ergebnis = translate("$ALREADY_EXIST", language)
  85.  
  86. end
  87.  
  88. return ergebnis
  89.  
  90. end
  91.  
  92. function addlist(eintrag)
  93.  
  94. if fs.exists("DateiListe") then
  95. list = fs.open("DateiListe","a")
  96. list.write(eintrag..";")
  97. list.close()
  98. else
  99. list = fs.open("DateiListe","w")
  100. list.write(eintrag..";")
  101. list.close()
  102. end
  103.  
  104. end
  105.  
  106. function readlist()
  107.  
  108. if fs.exists("DateiListe") then
  109. list = fs.open("DateiListe","r")
  110. readedList = list.readAll()
  111. list.close()
  112.  
  113. return readedList
  114. else
  115. return translate("$NO_LIST_YET", language)
  116. end
  117.  
  118. end
  119.  
  120. function savePasswords()
  121.  
  122. file = fs.open("User/passwords","w")
  123. file.write(textutils.serialize(password))
  124. file.close()
  125.  
  126. end
  127.  
  128. function loadPasswords()
  129.  
  130. if fs.exists("User/passwords") then
  131.  
  132. file = fs.open("User/passwords","r")
  133. tempPassword = file.readAll()
  134. password = textutils.unserialize(tempPassword)
  135. file.close()
  136.  
  137. end
  138.  
  139. end
  140.  
  141. function downloadUser(program, user)
  142.  
  143. downloading = fs.open("User/"..user.."/"..program,"r")
  144. file = downloading.readAll()
  145. downloading.close()
  146.  
  147. return file
  148.  
  149. end
  150.  
  151. function uploadUser(programname,programcode,user)
  152.  
  153. if not fs.exists("User/"..user.."/"..programname) then
  154.  
  155. uploading = fs.open("User/"..user.."/"..programname,"w")
  156. uploading.write(programcode)
  157. uploading.close()
  158.  
  159. ergebnis = programname.." "..translate("$DOWNLOADED", language)
  160.  
  161. else
  162.  
  163. ergebnis = translate("$ALREADY_EXIST", language)
  164.  
  165. end
  166.  
  167. return ergebnis
  168.  
  169. end
  170.  
  171. function binUser(program, user)
  172.  
  173. if fs.exists("User/"..user.."/"..program) and program ~= "" then
  174.  
  175. fs.delete("User/"..user.."/"..program)
  176.  
  177. return translate("$DELETED", language)
  178.  
  179. else
  180.  
  181. return translate("$NOT_EXIST", language)
  182.  
  183. end
  184.  
  185. end
  186.  
  187. function readUserList(user)
  188.  
  189. if fs.exists("User/"..user) then
  190.  
  191. local list = fs.list("User/"..user.."/")
  192.  
  193. local newProgs = ""
  194.  
  195. for i,v in pairs(list) do
  196.  
  197. newProgs = newProgs..v..";"
  198.  
  199. end
  200.  
  201. return newProgs
  202.  
  203. end
  204.  
  205. end
  206.  
  207. function getUserFromID(cID)
  208.  
  209. for i,v in pairs(allowedPC) do
  210.  
  211. if tostring(cID) == string.sub(v, 1, string.find(v, ";") - 1) then
  212.  
  213. return string.sub(v, string.find(v, ";") + 1, -1);
  214.  
  215. end
  216.  
  217. end
  218.  
  219. end
  220.  
  221. function checkID(cID)
  222.  
  223. for i,v in pairs(allowedPC) do
  224.  
  225. if tostring(cID) == string.sub(v, 1, string.find(v, ";") - 1) then
  226.  
  227. return true;
  228.  
  229. else
  230.  
  231. return false;
  232.  
  233. end
  234.  
  235. end
  236.  
  237. end
  238.  
  239. function checkUser(pw, user)
  240.  
  241. local check = false
  242.  
  243. for i,v in pairs(password) do
  244.  
  245. if user == string.sub(v, 1, string.find(v, ";") - 1) then
  246.  
  247. if pw == string.sub(v, string.find(v, ";") + 1, - 1) then
  248.  
  249. check = true
  250.  
  251. end
  252.  
  253. end
  254.  
  255. end
  256.  
  257. return check, user
  258.  
  259. end
  260.  
  261. function writeLog(logString)
  262.  
  263. logFile = fs.open("log.txt", "a")
  264. logFile.writeLine(logString)
  265. logFile.close()
  266.  
  267. end
  268.  
  269. function translate(tString, lang)
  270.  
  271. translateGER = {
  272. ["$DELETED"] = "Erfolgreich geloescht!",
  273. ["$NOT_EXIST"] = "Diese Datei existiert nicht!",
  274. ["$ERROR_EXIST"] = "Error: existiert nicht!",
  275. ["$DOWNLOADED"] = "erfolgreich gedownloaded!",
  276. ["$ALREADY_EXIST"] = "Datei existiert bereits!",
  277. ["$NO_LIST_YET"] = "Keine bestehende Liste",
  278. ["$ADD_USER"] = "User hinzufuegen",
  279. ["$DELETE_USER"] = "User loeschen",
  280. ["$LOG_FILE"] = "Log-Datei",
  281. ["$GUEST"] = "Gast",
  282. ["$HAVE"] = "hat",
  283. ["$LOADED"] = "heruntergeladen",
  284. ["$UPLOADED"] = "hochgeladen",
  285. ["$DELETE"] = "geloescht",
  286. ["$GUEST_GET_LIST"] = "hat die Liste abgerufen.",
  287. ["$USER_GET_LIST"] = "hat seine Liste abgerufen.",
  288. ["$GUEST_TRY_LOGIN"] = "hat versucht sich anzumelden.",
  289. ["$USER_TRY_LOGIN"] = "hat sich angemeldet.",
  290. ["$LOGOUT"] = "hat sich abgemeldet.",
  291. ["$USERNAME"] = "Username",
  292. ["$PASSWORD"] = "Passwort",
  293. ["$USER_EXIST"] = "Benutzer besteht bereits",
  294. ["$DELETE_USER_FOLDER"] = " Ordner leeren ",
  295. ["$FOLDER_NAME"] = "Ordner Name",
  296. }
  297.  
  298. translateENG = {
  299. ["$DELETED"] = "Successfully deleted!",
  300. ["$NOT_EXIST"] = "File doesnt exist!",
  301. ["$ERROR_EXIST"] = "Error: doesn't exist!",
  302. ["$DOWNLOADED"] = "successfully downloaded!",
  303. ["$ALREADY_EXIST"] = "File already exists!",
  304. ["$NO_LIST_YET"] = "No list yet",
  305. ["$ADD_USER"] = " Add a User ",
  306. ["$DELETE_USER"] = "Delete a User",
  307. ["$LOG_FILE"] = " Log-File",
  308. ["$GUEST"] = "Guest",
  309. ["$HAVE"] = "has",
  310. ["$LOADED"] = "downloaded",
  311. ["$UPLOADED"] = "uploaded",
  312. ["$DELETE"] = "deleted",
  313. ["$GUEST_GET_LIST"] = "retrieved the list.",
  314. ["$USER_GET_LIST"] = "retrieved his list.",
  315. ["$GUEST_TRY_LOGIN"] = "tried to login.",
  316. ["$USER_TRY_LOGIN"] = "logged in.",
  317. ["$LOGOUT"] = "logged out.",
  318. ["$USERNAME"] = "Username",
  319. ["$PASSWORD"] = "Password",
  320. ["$USER_EXIST"] = "User already exist",
  321. ["$DELETE_USER_FOLDER"] = " Clear Folder ",
  322. ["$FOLDER_NAME"] = "Folder name",
  323. }
  324.  
  325. if lang == "$GER" then
  326.  
  327. return translateGER[tString]
  328.  
  329. elseif lang == "$ENG" then
  330.  
  331. return translateENG[tString]
  332.  
  333. end
  334.  
  335. end
  336.  
  337. function clearScreen()
  338.  
  339. term.setTextColor(btColor);
  340. term.setBackgroundColor(bColor);
  341. term.setCursorPos(1, 1);
  342. term.clear();
  343.  
  344. term.setTextColor(htColor);
  345. term.setBackgroundColor(hColor);
  346. term.write(" ");
  347. term.setCursorPos(1, 1);
  348. term.write("ID: #" .. os.computerID());
  349. term.setCursorPos(37, 1);
  350. term.write("Status: ");
  351. term.setTextColor(colors.red);
  352. term.write("Offline");
  353. term.setTextColor(btColor)
  354. term.setBackgroundColor(bColor)
  355. term.setCursorPos(1,19)
  356. term.write("Filetransfer 3.0 | by CCExpert")
  357. term.setBackgroundColor(colors.lightBlue);
  358. term.setTextColor(btColor);
  359. term.setCursorPos(5,4);
  360. term.write(" ");
  361. term.setCursorPos(4,5);
  362. term.write(" ");
  363. term.setCursorPos(4,6);
  364. term.write(" ".. translate("$ADD_USER", language) .." ");
  365. term.setCursorPos(4,7);
  366. term.write(" ");
  367. term.setCursorPos(5,8);
  368. term.write(" ");
  369. term.setBackgroundColor(colors.red);
  370. term.setTextColor(btColor);
  371. term.setCursorPos(5,11);
  372. term.write(" ");
  373. term.setCursorPos(4,12);
  374. term.write(" ");
  375. term.setCursorPos(4,13);
  376. term.write(" ".. translate("$LOG_FILE", language) .." ");
  377. term.setCursorPos(4,14);
  378. term.write(" ");
  379. term.setCursorPos(5,15);
  380. term.write(" ");
  381. term.setBackgroundColor(colors.yellow);
  382. term.setTextColor(btColor);
  383. term.setCursorPos(32,4);
  384. term.write(" ");
  385. term.setCursorPos(31,5);
  386. term.write(" ");
  387. term.setCursorPos(31,6);
  388. term.write(" ".. translate("$DELETE_USER", language) .." ");
  389. term.setCursorPos(31,7);
  390. term.write(" ");
  391. term.setCursorPos(32,8);
  392. term.write(" ");
  393. term.setBackgroundColor(colors.orange);
  394. term.setTextColor(btColor);
  395. term.setCursorPos(32,11);
  396. term.write(" ");
  397. term.setCursorPos(31,12);
  398. term.write(" ");
  399. term.setCursorPos(31,13);
  400. term.write(" ".. translate("$DELETE_USER_FOLDER", language) .." ");
  401. term.setCursorPos(31,14);
  402. term.write(" ");
  403. term.setCursorPos(32,15);
  404. term.write(" ");
  405.  
  406. end
  407.  
  408. -- Hauptteil
  409.  
  410. function main()
  411.  
  412. loadPasswords()
  413.  
  414. while true do
  415.  
  416. clearScreen()
  417.  
  418. a,b,c = rednet.receive()
  419.  
  420. b = tostring(b)
  421.  
  422. if string.sub(b,1,2) == "D;" then
  423.  
  424. program = string.sub(b,string.find(b.."","D;")+2,string.len(b))
  425.  
  426. if fs.exists("Programs/"..program) then
  427.  
  428. downloadfile = download(program,a)
  429.  
  430. sleep(0.25)
  431.  
  432. rednet.send(a,downloadfile)
  433.  
  434. writeLog(translate("$GUEST", language) .."(\'".. a .."\') ".. translate("$HAVE",language) .." "..program.." ".. translate("$LOADED", language) ..".")
  435.  
  436. else
  437.  
  438. rednet.send(a,translate("$ERROR_EXIST", language))
  439.  
  440. end
  441.  
  442. elseif string.sub(b,1,2) == "V;" then
  443.  
  444. program = string.sub(b,string.find(b.."","V;")+2,string.len(b))
  445.  
  446. if checkID(a) then
  447.  
  448. if fs.exists("User/"..getUserFromID(a).."/"..program) then
  449.  
  450. downloadfile = downloadUser(program, getUserFromID(a))
  451.  
  452. sleep(0.25)
  453.  
  454. rednet.send(a,downloadfile)
  455.  
  456. writeLog(getUserFromID(a).."(\'".. a .."\') ".. translate("$HAVE", language) .." "..program.." ".. translate("$LOADED", language) ..".")
  457.  
  458. else
  459.  
  460. rednet.send(a,translate("$ERROR_EXIST", language))
  461.  
  462. end
  463.  
  464. else
  465.  
  466. rednet.send(a, "Access denied")
  467.  
  468. end
  469.  
  470. elseif string.sub(b,1,2) == "L;" and b ~= "" then
  471.  
  472. ListFile = readlist()
  473. rednet.send(a,ListFile)
  474.  
  475. writeLog(translate("$GUEST", language) .."(\'".. a .."\') ".. translate("$GUEST_GET_LIST", language))
  476.  
  477. elseif string.sub(b,1,2) == "J;" and b ~= "" then
  478.  
  479. if checkID(a) then
  480.  
  481. ListFile = readUserList(getUserFromID(a))
  482. rednet.send(a,ListFile)
  483.  
  484. writeLog(getUserFromID(a).."(\'".. a .."\') ".. translate("$USER_GET_LIST", language))
  485.  
  486. else
  487.  
  488. rednet.send(a, "Access denied")
  489.  
  490. end
  491.  
  492. elseif string.sub(b,1,2) == "P;" and b ~= "" then
  493.  
  494. local correct = false
  495.  
  496. loadPasswords()
  497.  
  498. correct, curUser = checkUser(string.sub(b, 3, string.find(b.."", "$", 1, true) - 1), string.sub(b, string.find(b.."", "$", 1, true) + 1, -1))
  499.  
  500. if not correct then
  501.  
  502. rednet.send(a, "DENIED")
  503. writeLog(translate("$GUEST", language) .."(\'".. a .."\') ".. translate("$GUEST_TRY_LOGIN", language))
  504.  
  505. else
  506.  
  507. table.insert(allowedPC, tostring(a)..";"..curUser)
  508.  
  509. progs = fs.list("User/"..curUser.."/")
  510. local newProgs = ""
  511.  
  512. for i,v in pairs(progs) do
  513.  
  514. newProgs = v..";"
  515.  
  516. end
  517.  
  518. rednet.send(a, newProgs)
  519.  
  520. writeLog(getUserFromID(a).."(\'".. a .."\') ".. translate("$USER_TRY_LOGIN", language))
  521.  
  522. end
  523.  
  524. elseif string.sub(b,1,2) == "B;" and b ~= "" then
  525.  
  526. delete = bin(string.sub(b, 3, -1))
  527. rednet.send(a, delete)
  528.  
  529. writeLog(translate("$GUEST", language) .."(\'".. a .."\') ".. translate("$HAVE", language) .." ".. string.sub(b, 3, -1) .. " ".. translate("$DELETE", language) ..".")
  530.  
  531. elseif string.sub(b,1,2) == "W;" and b ~= "" then
  532.  
  533. if checkID(a) then
  534.  
  535. delete = binUser(string.sub(b, 3, -1), getUserFromID(a))
  536. rednet.send(a, delete)
  537.  
  538. writeLog(getUserFromID(a).."(\'".. a .."\') ".. translate("$HAVE", language) .." ".. string.sub(b, 3, -1) .." ".. translate("$DELETE", language) ..".")
  539.  
  540. else
  541.  
  542. rednet.send(a, "Access denied")
  543.  
  544. end
  545.  
  546. elseif string.sub(b,1,2) == "U;" and b ~= "" then
  547.  
  548. rawprogram = string.sub(b,string.find(b.."","U;")+2,string.len(b))
  549. programname = string.sub(rawprogram,1,string.find(rawprogram.."","$;")-1)
  550. program = string.sub(rawprogram,string.find(rawprogram.."","$;")+2,string.len(b))
  551.  
  552. if fs.exists("Programs/"..programname) then
  553.  
  554. rednet.send(a,translate("$ALREADY_EXIST", language))
  555.  
  556. else
  557.  
  558. print(programname)
  559. addlist(programname)
  560. endergebnis = upload(programname,program)
  561.  
  562. rednet.send(a,endergebnis)
  563.  
  564. writeLog(translate("$GUEST", language) .."(\'".. a .."\') ".. translate("$HAVE", language) .." ".. programname .." ".. translate("$UPLOADED", language) ..".")
  565.  
  566. end
  567.  
  568. elseif string.sub(b,1,2) == "R;" and b ~= "" then
  569.  
  570. if checkID(a) then
  571.  
  572. rawprogram = string.sub(b,string.find(b.."","R;")+2,string.len(b))
  573. programname = string.sub(rawprogram,1,string.find(rawprogram.."","$;")-1)
  574. program = string.sub(rawprogram,string.find(rawprogram.."","$;")+2,string.len(b))
  575.  
  576. if fs.exists("User/"..getUserFromID(a).."/"..programname) then
  577.  
  578. rednet.send(a,translate("$ALREADY_EXIST", language))
  579.  
  580. else
  581.  
  582. print(programname)
  583. endergebnis = uploadUser(programname,program,getUserFromID(a))
  584.  
  585. rednet.send(a,endergebnis)
  586.  
  587. writeLog(getUserFromID(a).."(\'".. a .."\') ".. translate("$HAVE", language) .." ".. programname .." ".. translate("$UPLOADED", language) ..".")
  588.  
  589. end
  590.  
  591. else
  592.  
  593. rednet.send(a, "Access denied")
  594.  
  595. end
  596.  
  597. elseif string.sub(b,1,2) == "I;" and b ~= "" then
  598.  
  599. if checkID(a) then
  600.  
  601. local tempPCList = textutils.serialize(allowedPC)
  602. tempPCList = textutils.unserialize(tempPCList)
  603.  
  604. for i,v in pairs(allowedPC) do
  605.  
  606. if tostring(a) == string.sub(v, 1, string.find(v, ";") - 1) then
  607.  
  608. table.remove(tempPCList, i)
  609.  
  610. end
  611.  
  612. end
  613.  
  614. writeLog(getUserFromID(a).."(\'".. a .."\') ".. translate("$LOGOUT", language))
  615.  
  616. allowedPC = tempPCList
  617.  
  618. else
  619.  
  620. rednet.send(a, "Access denied")
  621.  
  622. end
  623.  
  624. elseif a == resetPC then
  625.  
  626. if b == "$RESET" then
  627.  
  628. allowedPC = {};
  629.  
  630. end
  631.  
  632. elseif b == nil then
  633.  
  634. rednet.send(a,"Error nil!")
  635.  
  636. end
  637.  
  638. end
  639. end
  640.  
  641. function control()
  642.  
  643. while true do
  644.  
  645. event, side, x, y = os.pullEvent("mouse_click")
  646.  
  647. if event ~= "mouse_click" then
  648.  
  649. control()
  650.  
  651. end
  652.  
  653. if x >= 4 and x <= 21 and y >= 4 and y <= 8 then
  654.  
  655. editText = true;
  656.  
  657. term.setBackgroundColor(colors.lightGray);
  658. term.setTextColor(colors.white);
  659. term.setCursorPos(11,7);
  660. term.write(" ");
  661. term.setCursorPos(11,7);
  662. term.write(translate("$ADD_USER", language))
  663. term.setBackgroundColor(colors.gray);
  664. term.setCursorPos(11,8);
  665. term.write(" ");
  666. term.setCursorPos(11,9);
  667. term.write(" ");
  668. term.setCursorPos(11,10);
  669. term.write(" ".. translate("$USERNAME", language) ..": ");
  670. term.setCursorPos(11,11);
  671. term.write(" ".. translate("$PASSWORD", language) ..": ");
  672. term.setCursorPos(11,12);
  673. term.write(" ");
  674. term.setCursorPos(11,13);
  675. term.write(" ");
  676. term.setCursorPos(11,14);
  677. term.write(" ");
  678.  
  679. term.setCursorPos(14 + string.len(translate("$USERNAME", language)), 10)
  680. newUser = read()
  681.  
  682. term.setCursorPos(14 + string.len(translate("$PASSWORD", language)), 11)
  683. newPassword = read()
  684.  
  685. newAcc = newUser..";"..newPassword
  686.  
  687. local alreadyExist = false;
  688.  
  689. for i,v in pairs(password) do
  690.  
  691. if (newAcc == v) then
  692.  
  693. alreadyExist = true;
  694.  
  695. end
  696.  
  697. end
  698.  
  699. if not alreadyExist then
  700.  
  701. table.insert(password, newAcc)
  702.  
  703. fs.makeDir("User/"..newUser)
  704.  
  705. savePasswords()
  706. clearScreen()
  707.  
  708. else
  709.  
  710. term.setBackgroundColor(colors.lightGray)
  711. term.setCursorPos(11,7)
  712. term.write(translate("$USER_EXIST", language))
  713.  
  714. sleep(1)
  715.  
  716. clearScreen()
  717.  
  718. end
  719.  
  720. editText = false;
  721.  
  722. elseif x >= 31 and x <= 48 and y >= 4 and y <= 8 then
  723.  
  724. editText = true;
  725.  
  726. term.setBackgroundColor(colors.lightGray);
  727. term.setTextColor(colors.white);
  728. term.setCursorPos(11,7);
  729. term.write(" ");
  730. term.setCursorPos(11,7);
  731. term.write(translate("$DELETE_USER", language))
  732. term.setBackgroundColor(colors.gray);
  733. term.setCursorPos(11,8);
  734. term.write(" ");
  735. term.setCursorPos(11,9);
  736. term.write(" ");
  737. term.setCursorPos(11,10);
  738. term.write(" ".. translate("$USERNAME", language) ..": ");
  739. term.setCursorPos(11,11);
  740. term.write(" ");
  741. term.setCursorPos(11,12);
  742. term.write(" ");
  743. term.setCursorPos(11,13);
  744. term.write(" ");
  745.  
  746. term.setCursorPos(14 + string.len(translate("$USERNAME", language)), 10)
  747. delUser = read()
  748.  
  749. local tempPassword = {}
  750.  
  751. for i,v in pairs(password) do
  752.  
  753. table.insert(tempPassword, v)
  754.  
  755. end
  756.  
  757. for i,v in pairs(password) do
  758.  
  759. if delUser == string.sub(v, 1, string.find(v.."", ";") - 1) then
  760.  
  761. table.remove(tempPassword, i)
  762.  
  763. end
  764.  
  765. end
  766.  
  767. password = {}
  768.  
  769. for i,v in pairs(tempPassword) do
  770.  
  771. table.insert(password, v)
  772.  
  773. end
  774.  
  775. savePasswords()
  776. clearScreen()
  777.  
  778. editText = false;
  779.  
  780. elseif x >= 31 and x <= 48 and y >= 11 and y <= 15 then
  781.  
  782. editText = true;
  783.  
  784. term.setBackgroundColor(colors.lightGray);
  785. term.setTextColor(colors.white);
  786. term.setCursorPos(11,7);
  787. term.write(" ");
  788. term.setCursorPos(11,7);
  789. term.write(translate("$DELETE_USER_FOLDER", language))
  790. term.setBackgroundColor(colors.gray);
  791. term.setCursorPos(11,8);
  792. term.write(" ");
  793. term.setCursorPos(11,9);
  794. term.write(" ");
  795. term.setCursorPos(11,10);
  796. term.write(" ".. translate("$FOLDER_NAME", language) ..": ");
  797. term.setCursorPos(11,11);
  798. term.write(" Reason: ");
  799. term.setCursorPos(11,12);
  800. term.write(" ");
  801. term.setCursorPos(11,13);
  802. term.write(" ");
  803. term.setCursorPos(11,14);
  804. term.write(" ");
  805.  
  806. term.setCursorPos(14 + string.len(translate("$FOLDER_NAME", language)), 10)
  807. delFolder = read()
  808.  
  809. term.setCursorPos(20,11)
  810. reason = read()
  811.  
  812. if delFolder == "" then
  813. term.setBackgroundColor(colors.lightGray)
  814. term.setCursorPos(11,7)
  815. term.write("Error: No Path")
  816. sleep(2)
  817. else
  818.  
  819. if fs.exists("User/".. delFolder) then
  820.  
  821. progs = fs.list("User/"..delFolder)
  822.  
  823. for i,v in pairs(progs) do
  824.  
  825. fs.delete("User/"..delFolder.."/"..v);
  826.  
  827. end
  828.  
  829. end
  830.  
  831. file = fs.open("User/".. delFolder .."/Folder was cleared","w")
  832. file.write(reason)
  833. file.close()
  834.  
  835. end
  836.  
  837. clearScreen()
  838.  
  839. editText = false;
  840.  
  841. elseif x >= 4 and x <= 21 and y >= 11 and y <= 15 then
  842.  
  843. editText = true;
  844.  
  845. shell.run("edit log.txt")
  846.  
  847. clearScreen();
  848.  
  849. editText = false;
  850.  
  851. end
  852.  
  853. end
  854.  
  855. end
  856.  
  857. function checkStatus()
  858.  
  859. local checkStatus = false;
  860.  
  861. while true do
  862.  
  863. if (not editText) then
  864.  
  865. for i, side in pairs(peripheral.getNames()) do
  866.  
  867. if (peripheral.getType(side) == "modem" and checkStatus == false) then
  868.  
  869. rednet.open(side);
  870. modemPresent = true;
  871. checkStatus = true;
  872.  
  873. end
  874.  
  875. if (peripheral.getType(side) ~= "modem" and checkStatus == false) then
  876.  
  877. modemPresent = false;
  878.  
  879. end
  880.  
  881. end
  882.  
  883. if (modemPresent) then
  884.  
  885. term.setBackgroundColor(hColor);
  886. term.setTextColor(colors.green);
  887. term.setCursorPos(45, 1);
  888. term.write("Online ");
  889.  
  890. else
  891.  
  892. term.setBackgroundColor(hColor);
  893. term.setTextColor(colors.red);
  894. term.setCursorPos(45, 1);
  895. term.write("Offline");
  896.  
  897. end
  898.  
  899. modemPresent = false;
  900. checkStatus = false;
  901.  
  902. end
  903.  
  904. sleep(2);
  905.  
  906. end
  907.  
  908. end
  909.  
  910. parallel.waitForAny(main, control, checkStatus)
  911. main()
  912.  
  913. -- Scripted by Streetboy_xD | CCExpert
  914. -- Please keep this text in the program.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement