Advertisement
Guest User

ftpserver

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