Advertisement
Guest User

client

a guest
May 2nd, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 41.94 KB | None | 0 0
  1. --**************************
  2. --* Standart Einstellungen *
  3. --*    Default Settings    *
  4. --**************************
  5.  
  6. language = "$GER"                   -- AVAIABLE LANGUAGES: $GER, $ENG
  7. id = 12333                              -- ServerID
  8. compatiblePCMode = true             -- Verbindung mit anderen PCs må83¥B6glich? / Connection to other computer?
  9.  
  10. --***********************
  11. --*   Farben / Colors   *
  12. --***********************
  13.  
  14. color = colors.lightGray            -- Farbe der Leiste / Barcolor
  15. coloritems = colors.white           -- Farbe der Felder / Fieldcolor
  16. textcolor = colors.gray             -- Farbe des Textes / Textcolor
  17.  
  18. -- Items
  19.  
  20. pcColor = colors.orange             -- Textfarbe der ungesicherten Computer / Textcolor unsecured pcs
  21. pcPWColor = colors.red              -- Textfarbe der gesicherten Computer / Textcolor secured pcs
  22. folderColor = colors.blue           -- Textfarbe der Ordner / Textcolor folder
  23. programColor = colors.gray          -- Textfarbe der Programme / Textcolor programs
  24. secFilesBackground = colors.green   -- Hintergrundfarbe der Gesicherten Daten / Backgroundcolor secured files
  25.  
  26. --**********************************
  27. --* Hier nichts å83¥A4ndern!            *
  28. --* Don't change anything below!   *
  29. --**********************************
  30.  
  31. secureAccess = false
  32. accessOnComputer = false
  33. computerIDAccessing = 0
  34.  
  35. startAProg = false
  36. progToStart = ""
  37.  
  38. extComputerProgs = {}
  39. extComputerDirs = {}
  40.  
  41. minnumber = 2
  42. maxnumber = 18
  43. minnum = 2
  44. maxnum = 18
  45. timeout = 0.5
  46. downloadList = {}
  47.  
  48. ItemDownloadVisible = 2
  49. ItemDownloadInvisible = 2
  50. y = 2
  51. visible = 2
  52. invisible = 2
  53. items = ";"
  54. listedPrograms = {}
  55. downloadList = {}
  56.  
  57. tekkitLite = {
  58.     "top",
  59.     "bottom",
  60.     "left",
  61.     "right",
  62.     "front",
  63.     "back"
  64. }
  65.  
  66. -- *********************
  67.  
  68. function tr(tString, lang)
  69.  
  70.   local GER = {
  71.       ["$DOWNLOADS"] = "Downloads",
  72.       ["$SECURED_FILES"] = "Gesicherte Datein",
  73.       ["$FOLDER"] = "Ordner",
  74.       ["$CHANGE_FOLDER"] = "Ordner waehlen",
  75.       ["$LOGOUT"] = "Ausloggen",
  76.       ["$SECURITY_ACCESS"] = "Sicherheitszugriff",
  77.       ["$USERNAME"] = "Username",
  78.       ["$PASSWORD"] = "Passwort",
  79.       ["$SERVER_PROBLEM"] = "Keine Verbindung zum Server",
  80.       ["$ACCESS_DENIED"] = "Zugriff verweigert",
  81.       ["$SAVE"] = "       Speichern      ",
  82.       ["$RUN"] = "    Programm starten  ",
  83.       ["$EDIT"] = "       Editieren      ",
  84.       ["$CANT_CONNECT"] = "Keine Verbindung",
  85.       ["$TO_SERVER"] = "zum Server",
  86.       ["$DOWNLOAD"] = "       Download       ",
  87.       ["$DOWNLOAD_TOFOLDER"] = "  Download in Ordner  ",
  88.       ["$DELETE"] = "       Loeschen       ",
  89.       ["$SUCCESS_DOWNLOAD"] = "Erfolgreich heruntergeladen",
  90.       ["$ALREADY_EXIST"] = "Datei existiert bereits!",
  91.   }
  92.  
  93.   local ENG = {
  94.       ["$DOWNLOADS"] = "Downloads",
  95.       ["$SECURED_FILES"] = "Secured Files",
  96.       ["$FOLDER"] = "Folder",
  97.       ["$CHANGE_FOLDER"] = "Change Folder",
  98.       ["$LOGOUT"] = "Logout",
  99.       ["$SECURITY_ACCESS"] = "Security Access",
  100.       ["$USERNAME"] = "Username",
  101.       ["$PASSWORD"] = "Password",
  102.       ["$SERVER_PROBLEM"] = "Can't reach the server",
  103.       ["$ACCESS_DENIED"] = "Access denied",
  104.       ["$SAVE"] = "         Save         ",
  105.       ["$RUN"] = "      Run program     ",
  106.       ["$EDIT"] = "         Edit         ",
  107.       ["$CANT_CONNECT"] = "Can't reach",
  108.       ["$TO_SERVER"] = "the server",
  109.       ["$DOWNLOAD"] = "       Download       ",
  110.       ["$DOWNLOAD_TOFOLDER"] = "  Download to Folder  ",
  111.       ["$DELETE"] = "        Delete        ",
  112.       ["$SUCCESS_DOWNLOAD"] = "Successfully downloaded",
  113.       ["$ALREADY_EXIST"] = "File already exists!",
  114.   }
  115.  
  116.   if lang == "$GER" then
  117.  
  118.     return GER[tString]
  119.  
  120.   elseif lang == "$ENG" then
  121.  
  122.     return ENG[tString]
  123.  
  124.   end
  125.  
  126. end
  127.  
  128.  
  129. function design()
  130.  
  131.     term.clear()
  132.    
  133.     term.setCursorPos(1,1)
  134.     term.setBackgroundColor(color)
  135.     term.write("                                                   ")
  136.    
  137.     for i = 2,18 do
  138.    
  139.         term.setCursorPos(1,i)
  140.         term.setBackgroundColor(coloritems)
  141.         term.write("                        ")
  142.         term.setBackgroundColor(color)
  143.         term.write("    ")
  144.         term.setBackgroundColor(coloritems)
  145.         term.write("                        ")
  146.    
  147.     end
  148.    
  149.     term.setCursorPos(1,19)
  150.     term.setBackgroundColor(color)
  151.     term.write("                                                   ")
  152.    
  153.     term.setTextColor(textcolor)
  154.     term.setBackgroundColor(color)
  155.     term.setCursorPos(9,1)
  156.     term.write("| PC |")
  157.     term.setCursorPos(36,1)
  158.     term.write("| SERVER |")
  159.     term.setCursorPos(1,1)
  160.     term.write("v^")
  161.     term.setCursorPos(29,1)
  162.     term.write("v^")
  163.     term.setCursorPos(51,19)
  164.     term.setTextColor(colors.yellow)
  165.     term.write("$")
  166.     term.setCursorPos(1,19)
  167.     term.setTextColor(colors.red)
  168.     term.write("X")
  169.     term.setTextColor(textcolor)
  170.     term.write(dirText)
  171.     term.setCursorPos(29,19)
  172.     term.setTextColor(colors.red)
  173.     term.write("X")
  174.     term.setTextColor(textcolor)
  175.     term.write(dirTextServer)
  176.     term.setBackgroundColor(colors.red)
  177.     term.setCursorPos(51,1)
  178.     term.write("X")
  179.     term.setBackgroundColor(coloritems)
  180.     term.setCursorPos(1,1)
  181.    
  182. end
  183.  
  184.  
  185. function scrolldown()
  186.  
  187.     minnumber = minnumber + 1
  188.     maxnumber = maxnumber + 1
  189.  
  190. end
  191.  
  192.  
  193. function scrollup()
  194.  
  195.     minnumber = minnumber - 1
  196.     maxnumber = maxnumber - 1
  197.  
  198. end
  199.  
  200.  
  201. function scrolldowndownload()
  202.  
  203.     minnum = minnum + 1
  204.     maxnum = maxnum + 1
  205.  
  206. end
  207.  
  208.  
  209. function scrollupdownload()
  210.  
  211.     minnum = minnum - 1
  212.     maxnum = maxnum - 1
  213.  
  214. end
  215.  
  216.  
  217. function changeDir()
  218.  
  219.     term.setTextColor(textcolor)
  220.     term.setBackgroundColor(color)
  221.     term.setCursorPos(15,7)
  222.     term.write("                        ")
  223.     term.setCursorPos(15,8)
  224.     term.write("                        ")
  225.     term.setCursorPos(15,9)
  226.     term.write("                        ")
  227.     term.setCursorPos(15,10)
  228.     term.write("                        ")
  229.     term.setCursorPos(15,11)
  230.     term.write("                        ")
  231.     term.setCursorPos(16,7)
  232.     term.write("Name: ")
  233.     term.write(tr("$CHANGE_FOLDER", language))
  234.     term.setBackgroundColor(coloritems)
  235.     term.setCursorPos(16,8)
  236.     term.write("                      ")
  237.     term.setCursorPos(16,9)
  238.     term.write("                      ")
  239.     term.setCursorPos(16,9)
  240.     term.write(" "..tr("$FOLDER", language)..": ")
  241.     term.setCursorPos(16,10)
  242.     term.write("                      ")
  243.     term.setBackgroundColor(coloritems)
  244.  
  245.     term.setCursorPos(19 + tr("$FOLDER", language):len(), 9)
  246.     folderName = read()
  247.  
  248.     if fs.isDir(folderName) then
  249.    
  250.         dir = folderName
  251.        
  252.         if dir == "" then
  253.        
  254.             dir = "/"
  255.        
  256.         end
  257.        
  258.         dirText = " | "..folderName
  259.         accessOnComputer = false
  260.        
  261.         if dirText == " | " then
  262.        
  263.             dirText = " | "..tr("$CHANGE_FOLDER",language)
  264.        
  265.         end
  266.    
  267.     else
  268.    
  269.         term.setCursorPos(1,19)
  270.         term.write("Not a directory")
  271.         sleep(2)
  272.    
  273.     end
  274.    
  275.     refreshScreen()
  276.  
  277. end
  278.  
  279.  
  280. function logout()
  281.  
  282.     if secureAccess then
  283.  
  284.         rednet.send(id, "I;")
  285.         secureAccess = false;
  286.         dirTextServer = " | ".. tr("$SECURED_FILES", language)
  287.        
  288.         refreshScreen()
  289.        
  290.     end
  291.  
  292. end
  293.  
  294.  
  295. function accessSecuredFolder()
  296.  
  297.   term.setTextColor(textcolor)
  298.   term.setBackgroundColor(color)
  299.   term.setCursorPos(15,6)
  300.   term.write("                        ")
  301.   term.setCursorPos(15,7)
  302.   term.write("                        ")
  303.   term.setCursorPos(15,8)
  304.   term.write("                        ")
  305.   term.setCursorPos(15,9)
  306.   term.write("                        ")
  307.   term.setCursorPos(15,10)
  308.   term.write("                        ")
  309.   term.setCursorPos(15,11)
  310.   term.write("                        ")
  311.   term.setCursorPos(16,6)
  312.   term.write(tr("$SECURITY_ACCESS", language))
  313.   term.setBackgroundColor(coloritems)
  314.   term.setCursorPos(16,7)
  315.   term.write("                      ")
  316.   term.setCursorPos(16,8)
  317.   term.write(" ".. tr("$USERNAME", language) ..":            ")
  318.   term.setCursorPos(16,9)
  319.   term.write(" ".. tr("$PASSWORD", language) ..":            ")
  320.   term.setCursorPos(16,10)
  321.   term.write("                      ")
  322.  
  323.   term.setCursorPos(27,8)
  324.   user = read()
  325.   term.setCursorPos(27,9)
  326.   pass = read("*")
  327.  
  328.   rednet.send(id,"P;"..pass.."$"..user)
  329.   a, b, c = rednet.receive(5)
  330.  
  331.   if a == nil then
  332.     term.setBackgroundColor(color)
  333.     term.setCursorPos(1,19)
  334.     term.write(tr("$SERVER_PROBLEM", language))
  335.     sleep(1)
  336.   else
  337.  
  338.     if b == "DENIED" then
  339.    
  340.       term.setBackgroundColor(color)
  341.       term.setCursorPos(1,19)
  342.       term.write(tr("$ACCESS_DENIED", language))
  343.       sleep(1)
  344.       secureAccess = false
  345.       dirTextServer = " | ".. tr("$SECURED_FILES", language)
  346.    
  347.     else
  348.    
  349.       secureAccess = true
  350.       dirTextServer = " | ".. tr("$LOGOUT", language)
  351.    
  352.     end
  353.  
  354.   end
  355.  
  356.   refreshScreen()
  357.  
  358. end
  359.  
  360. function accessLockedPC(id)
  361.  
  362.   term.setBackgroundColor(color)
  363.   term.setCursorPos(15,6)
  364.   term.write("                        ")
  365.   term.setCursorPos(15,7)
  366.   term.write("                        ")
  367.   term.setCursorPos(15,8)
  368.   term.write("                        ")
  369.   term.setCursorPos(15,9)
  370.   term.write("                        ")
  371.   term.setCursorPos(15,10)
  372.   term.write("                        ")
  373.   term.setCursorPos(16,6)
  374.   term.write(tr("$SECURITY_ACCESS", language))
  375.   term.setBackgroundColor(coloritems)
  376.   term.setCursorPos(16,7)
  377.   term.write("                      ")
  378.   term.setCursorPos(16,8)
  379.   term.write(" ".. tr("$PASSWORD", language) ..":            ")
  380.   term.setCursorPos(16,9)
  381.   term.write("                      ")
  382.  
  383.   term.setCursorPos(27,8)
  384.   pass = read("*")
  385.  
  386.   rednet.send(id,"$PASS;"..pass)
  387.   a, b, c = rednet.receive(3)
  388.  
  389.   if a == nil then
  390.     term.setBackgroundColor(color)
  391.     term.setCursorPos(1,19)
  392.     term.write(tr("$SERVER_PROBLEM", language))
  393.     sleep(1)
  394.     dir = "/"
  395.     dirText = " | "..tr("$CHANGE_FOLDER", language)
  396.     accessOnComputer = false
  397.  
  398.     refreshScreen()
  399.   else
  400.  
  401.     if b == "DENIED" then
  402.    
  403.         term.setBackgroundColor(color)
  404.         term.setCursorPos(1,19)
  405.         term.write(tr("$ACCESS_DENIED", language))
  406.         sleep(1)
  407.         dir = "/"
  408.         dirText = " | "..tr("$CHANGE_FOLDER", language)
  409.         accessOnComputer = false
  410.    
  411.         refreshScreen()
  412.    
  413.     else
  414.    
  415.         dir = dir.."/"..string.sub(listedPrograms[y + minnumber - 2], string.find(listedPrograms[y + minnumber - 2].."", ";", 1, true) + 1, -1)
  416.         dirText = " | "..string.sub(listedPrograms[y + minnumber - 2], string.find(listedPrograms[y + minnumber - 2].."", ";", 1, true) + 1, -1)
  417.  
  418.         local programMessage = {}
  419.         local tempString = string.sub(b, string.find(b.."", ";") + 1, -1)
  420.  
  421.         table.insert(programMessage, textutils.unserialize(tempString))
  422.  
  423.         extComputerDirs = programMessage[1][1]
  424.         extComputerProgs = programMessage[1][2]
  425.    
  426.     end
  427.  
  428.   end
  429.  
  430.   refreshScreen()
  431.  
  432. end
  433.  
  434.  
  435. function refreshTables()
  436.  
  437.     ItemDownloadVisible = 2
  438.     ItemDownloadInvisible = 2
  439.     y = 2
  440.     visible = 2
  441.     invisible = 2
  442.     items = ";"
  443.     listedPrograms = {}
  444.     downloadList = {}
  445.    
  446.     term.setBackgroundColor(coloritems)
  447.     term.setCursorPos(1,2)
  448.     term.write("                      ")
  449.     term.setCursorPos(1,3)
  450.     term.write("                      ")
  451.     term.setCursorPos(1,4)
  452.     term.write("                      ")
  453.     term.setCursorPos(1,5)
  454.     term.write("                      ")
  455.     term.setCursorPos(1,6)
  456.     term.write("                      ")
  457.     term.setCursorPos(1,7)
  458.     term.write("                      ")
  459.     term.setCursorPos(1,8)
  460.     term.write("                      ")
  461.     term.setCursorPos(1,9)
  462.     term.write("                      ")
  463.     term.setCursorPos(1,10)
  464.     term.write("                      ")
  465.     term.setCursorPos(1,11)
  466.     term.write("                      ")
  467.     term.setCursorPos(1,12)
  468.     term.write("                      ")
  469.     term.setCursorPos(1,13)
  470.     term.write("                      ")
  471.     term.setCursorPos(1,14)
  472.     term.write("                      ")
  473.     term.setCursorPos(1,15)
  474.     term.write("                      ")
  475.     term.setCursorPos(1,16)
  476.     term.write("                      ")
  477.     term.setCursorPos(1,17)
  478.     term.write("                      ")
  479.     term.setCursorPos(1,18)
  480.     term.write("                      ")
  481.    
  482.     term.setCursorPos(30,2)
  483.     term.write("                      ")
  484.     term.setCursorPos(30,3)
  485.     term.write("                      ")
  486.     term.setCursorPos(30,4)
  487.     term.write("                      ")
  488.     term.setCursorPos(30,5)
  489.     term.write("                      ")
  490.     term.setCursorPos(30,6)
  491.     term.write("                      ")
  492.     term.setCursorPos(30,7)
  493.     term.write("                      ")
  494.     term.setCursorPos(30,8)
  495.     term.write("                      ")
  496.     term.setCursorPos(30,9)
  497.     term.write("                      ")
  498.     term.setCursorPos(30,10)
  499.     term.write("                      ")
  500.     term.setCursorPos(30,11)
  501.     term.write("                      ")
  502.     term.setCursorPos(30,12)
  503.     term.write("                      ")
  504.     term.setCursorPos(30,13)
  505.     term.write("                      ")
  506.     term.setCursorPos(30,14)
  507.     term.write("                      ")
  508.     term.setCursorPos(30,15)
  509.     term.write("                      ")
  510.     term.setCursorPos(30,16)
  511.     term.write("                      ")
  512.     term.setCursorPos(30,17)
  513.     term.write("                      ")
  514.     term.setCursorPos(30,18)
  515.     term.write("                      ")
  516.  
  517.     progs = fs.list(dir)
  518.  
  519.     for index, sItem in pairs(progs) do
  520.  
  521.         if fs.isDir(dir.."/"..sItem)==true then
  522.  
  523.             listedPrograms[visible] = sItem
  524.            
  525.             if visible >= minnumber and visible <= maxnumber then
  526.            
  527.                 term.setBackgroundColor(coloritems)
  528.                 term.setTextColor(folderColor)
  529.                 term.setCursorPos(3,invisible)
  530.                 term.write(listedPrograms[visible])
  531.                 invisible = invisible + 1
  532.                
  533.             end
  534.            
  535.             visible = visible + 1
  536.  
  537.         end
  538.    
  539.     end
  540.    
  541.     for index, sItem in pairs(progs) do
  542.  
  543.         if fs.isDir(dir.."/"..sItem)~=true then
  544.  
  545.             listedPrograms[visible] = sItem
  546.            
  547.             if visible >= minnumber and visible <= maxnumber then
  548.            
  549.                 term.setTextColor(programColor)
  550.                 term.setCursorPos(3,invisible)
  551.                 term.write(listedPrograms[visible])
  552.                 invisible = invisible + 1
  553.                
  554.             end
  555.            
  556.             visible = visible + 1
  557.  
  558.         end
  559.        
  560.     end
  561.  
  562.     if not secureAccess then
  563.  
  564.       rednet.send(id,"L;")
  565.      
  566.     else
  567.  
  568.       rednet.send(id,"J;")
  569.      
  570.     end
  571.  
  572.     a, dL, c = rednet.receive(timeout)
  573.  
  574.     if a == nil then
  575.  
  576.         term.setBackgroundColor(coloritems)
  577.         term.setCursorPos(32,2)
  578.         term.write(tr("$CANT_CONNECT", language))
  579.         term.setCursorPos(32,3)
  580.         term.write(tr("$TO_SERVER", language))
  581.        
  582.     else
  583.  
  584.       while string.find(dL,";") do
  585.      
  586.         findNew = string.find(dL.."",";")
  587.         downloadList[ItemDownloadVisible] = string.sub(dL,1,findNew-1)
  588.        
  589.         dL = string.sub(dL,string.find(dL.."",";")+1)
  590.        
  591.         if ItemDownloadVisible >= minnum and ItemDownloadVisible <= maxnum then
  592.          
  593.          if secureAccess then
  594.            term.setBackgroundColor(secFilesBackground)
  595.          else
  596.            term.setBackgroundColor(coloritems)
  597.          end
  598.          
  599.          term.setCursorPos(32,ItemDownloadInvisible)
  600.          term.write(downloadList[ItemDownloadVisible])
  601.          ItemDownloadInvisible = ItemDownloadInvisible + 1
  602.          
  603.        end
  604.        
  605.        ItemDownloadVisible = ItemDownloadVisible + 1
  606.  
  607.       end
  608.      
  609.     end
  610.    
  611.     if dir ~= "/" then
  612.    
  613.         term.setBackgroundColor(coloritems)
  614.         term.setTextColor(colors.red)
  615.         term.setCursorPos(1,2)
  616.         term.write("<<")
  617.         term.setTextColor(textcolor)
  618.    
  619.     end
  620.  
  621. end
  622.  
  623.  
  624. function refreshScreen()
  625.  
  626.    
  627.     ItemDownloadVisible = 2
  628.     ItemDownloadInvisible = 2
  629.     y = 2
  630.     visible = 2
  631.     invisible = 2
  632.     items = ";"
  633.     listedPrograms = {}
  634.     downloadList = {}
  635.  
  636.     design()
  637.  
  638.     -- Tabellen
  639.  
  640.     if compatiblePCMode then
  641.    
  642.         if dir == "/" then
  643.        
  644.             rednet.broadcast("$CHECK_COMPATIBLE_PCS");
  645.  
  646.             message = "$FIRST";
  647.  
  648.             while message ~= nil do
  649.  
  650.                 idC, message, range = rednet.receive(0.5);
  651.                
  652.                 if message ~= "$FIRST" and message ~= nil and idC ~= nil then
  653.                
  654.                     if string.find(message.."", "$COMPATIBLE;", 1, true) then
  655.  
  656.                         rednet.send(idC, "$GOTYA");
  657.                
  658.                         listedPrograms[visible] = idC..";"..string.sub(message, string.find(message.."", ";") + 1, -1);
  659.                    
  660.                         if visible >= minnumber and visible <= maxnumber then
  661.                        
  662.                             term.setBackgroundColor(coloritems)
  663.                             term.setTextColor(pcColor)
  664.                             term.setCursorPos(3,invisible)
  665.                            
  666.                             if string.len(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1)) > 21 then
  667.                                 term.write(string.sub(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1), 1, 20) .. "..")
  668.                             else
  669.                                 term.write(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1))
  670.                             end
  671.                            
  672.                             invisible = invisible + 1
  673.                            
  674.                         end
  675.                        
  676.                         visible = visible + 1
  677.                    
  678.                     elseif string.find(message.."", "$COMPATIBLEPASS;", 1, true) then
  679.                    
  680.                         rednet.send(idC, "$GOTYA");
  681.                
  682.                         listedPrograms[visible] = idC..";"..string.sub(message, string.find(message.."", ";") + 1, -1);
  683.                    
  684.                         if visible >= minnumber and visible <= maxnumber then
  685.                        
  686.                             term.setBackgroundColor(coloritems)
  687.                             term.setTextColor(pcPWColor)
  688.                             term.setCursorPos(3,invisible)
  689.                            
  690.                             if string.len(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1)) > 21 then
  691.                                 term.write(string.sub(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1), 1, 20) .. "..")
  692.                             else
  693.                                 term.write(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1))
  694.                             end
  695.                            
  696.                             invisible = invisible + 1
  697.                            
  698.                         end
  699.                        
  700.                         visible = visible + 1
  701.                    
  702.                     end
  703.                
  704.                 end
  705.  
  706.             end
  707.        
  708.         end
  709.        
  710.     end
  711.    
  712.     if not accessOnComputer then
  713.  
  714.         progs = fs.list(dir)
  715.  
  716.         for index, sItem in pairs(progs) do
  717.  
  718.             if fs.isDir(dir.."/"..sItem)==true then
  719.  
  720.                 listedPrograms[visible] = sItem
  721.                
  722.                 if visible >= minnumber and visible <= maxnumber then
  723.                
  724.                     term.setBackgroundColor(coloritems)
  725.                     term.setTextColor(folderColor)
  726.                     term.setCursorPos(3,invisible)
  727.                    
  728.                     if string.len(listedPrograms[visible]) > 21 then
  729.                         term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
  730.                     else
  731.                         term.write(listedPrograms[visible])
  732.                     end
  733.                    
  734.                     invisible = invisible + 1
  735.                    
  736.                 end
  737.                
  738.                 visible = visible + 1
  739.  
  740.             end
  741.            
  742.         end
  743.  
  744.         for index, sItem in pairs(progs) do
  745.  
  746.             if fs.isDir(dir.."/"..sItem)~=true then
  747.  
  748.                 listedPrograms[visible] = sItem
  749.                
  750.                 if visible >= minnumber and visible <= maxnumber then
  751.                
  752.                     term.setTextColor(programColor)
  753.                     term.setCursorPos(3,invisible)
  754.                    
  755.                     if string.len(listedPrograms[visible]) > 21 then
  756.                         term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
  757.                     else
  758.                         term.write(listedPrograms[visible])
  759.                     end
  760.                    
  761.                     invisible = invisible + 1
  762.                    
  763.                 end
  764.                
  765.                 visible = visible + 1
  766.  
  767.             end
  768.            
  769.         end
  770.        
  771.     else
  772.  
  773.         for index, sItem in pairs(extComputerDirs) do
  774.  
  775.             listedPrograms[visible] = sItem
  776.            
  777.             if visible >= minnumber and visible <= maxnumber then
  778.            
  779.                 term.setBackgroundColor(coloritems)
  780.                 term.setTextColor(folderColor)
  781.                 term.setCursorPos(3,invisible)
  782.                
  783.                 if string.len(listedPrograms[visible]) > 21 then
  784.                     term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
  785.                 else
  786.                     term.write(listedPrograms[visible])
  787.                 end
  788.                
  789.                 invisible = invisible + 1
  790.                
  791.             end
  792.            
  793.             visible = visible + 1
  794.            
  795.         end
  796.        
  797.         for index, sItem in pairs(extComputerProgs) do
  798.  
  799.             listedPrograms[visible] = sItem
  800.            
  801.             if visible >= minnumber and visible <= maxnumber then
  802.            
  803.                 term.setTextColor(programColor)
  804.                 term.setCursorPos(3,invisible)
  805.                
  806.                 if string.len(listedPrograms[visible]) > 21 then
  807.                     term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
  808.                 else
  809.                     term.write(listedPrograms[visible])
  810.                 end
  811.                
  812.                 invisible = invisible + 1
  813.                
  814.             end
  815.            
  816.             visible = visible + 1
  817.            
  818.         end
  819.        
  820.     end
  821.  
  822.     if not secureAccess then
  823.  
  824.       rednet.send(id,"L;")
  825.      
  826.     else
  827.  
  828.       rednet.send(id,"J;")
  829.      
  830.     end
  831.  
  832.     a, dL, c = rednet.receive(timeout)
  833.  
  834.     if a == nil then
  835.  
  836.         term.setTextColor(textcolor)
  837.         term.setBackgroundColor(coloritems)
  838.         term.setCursorPos(32,2)
  839.         term.write(tr("$CANT_CONNECT", language))
  840.         term.setCursorPos(32,3)
  841.         term.write(tr("$TO_SERVER", language))
  842.        
  843.     else
  844.  
  845.       while string.find(dL,";") do
  846.      
  847.         findNew = string.find(dL.."",";")
  848.         downloadList[ItemDownloadVisible] = string.sub(dL,1,findNew-1)
  849.        
  850.         dL = string.sub(dL,string.find(dL.."",";")+1)
  851.        
  852.         if ItemDownloadVisible >= minnum and ItemDownloadVisible <= maxnum then
  853.          
  854.          if secureAccess then
  855.            term.setBackgroundColor(secFilesBackground)
  856.          else
  857.            term.setBackgroundColor(coloritems)
  858.          end
  859.          
  860.          term.setTextColor(programColor)
  861.          term.setCursorPos(32,ItemDownloadInvisible)
  862.          term.write(downloadList[ItemDownloadVisible])
  863.          ItemDownloadInvisible = ItemDownloadInvisible + 1
  864.          
  865.        end
  866.        
  867.        ItemDownloadVisible = ItemDownloadVisible + 1
  868.  
  869.       end
  870.      
  871.     end
  872.    
  873.     if dir ~= "/" then
  874.    
  875.         term.setBackgroundColor(coloritems)
  876.         term.setTextColor(colors.red)
  877.         term.setCursorPos(1,2)
  878.         term.write("<<")
  879.         term.setTextColor(textcolor)
  880.    
  881.     end
  882.  
  883. end
  884.  
  885.  
  886. function createAuswahlUpload( ypos )
  887.  
  888.     if listedPrograms[ypos + minnumber - 2] then
  889.  
  890.         term.setTextColor(textcolor)
  891.         term.setBackgroundColor(color)
  892.         term.setCursorPos(15,5)
  893.         term.write("                        ")
  894.         term.setCursorPos(15,6)
  895.         term.write("                        ")
  896.         term.setCursorPos(15,7)
  897.         term.write("                        ")
  898.         term.setCursorPos(15,8)
  899.         term.write("                        ")
  900.         term.setCursorPos(15,9)
  901.         term.write("                        ")
  902.         term.setCursorPos(15,10)
  903.         term.write("                        ")
  904.         term.setCursorPos(15,11)
  905.         term.write("                        ")
  906.         term.setCursorPos(15,12)
  907.         term.write("                        ")
  908.         term.setCursorPos(16,5)
  909.         term.write("Name: ")
  910.         term.write(listedPrograms[ypos + minnumber - 2])
  911.         term.setBackgroundColor(coloritems)
  912.         term.setCursorPos(16,6)
  913.         term.write("                      ")
  914.         term.setCursorPos(16,7)
  915.         term.write(tr("$SAVE", language))
  916.         term.setCursorPos(16,8)
  917.         term.write(tr("$RUN", language))
  918.         term.setCursorPos(16,9)
  919.         term.write(tr("$EDIT", language))
  920.         term.setCursorPos(16,10)
  921.         term.write(tr("$DELETE", language))
  922.         term.setCursorPos(16,11)
  923.         term.write("                      ")
  924.         term.setBackgroundColor(coloritems)
  925.  
  926.         event, side, x, y = os.pullEvent("mouse_click")
  927.  
  928.         if x >= 16 and x <= 37 and y == 7 then
  929.  
  930.             program = fs.open(dir.."/"..listedPrograms[ypos + minnumber - 2],"r")
  931.             programdata = program.readAll()
  932.             program.close()
  933.  
  934.             if secureAccess then
  935.                 rednet.send(id,"R;"..listedPrograms[ypos + minnumber - 2].."$;"..programdata)
  936.             else
  937.                 rednet.send(id,"U;"..listedPrograms[ypos + minnumber - 2].."$;"..programdata)
  938.             end
  939.  
  940.             a,b,c = rednet.receive(timeout)
  941.            
  942.             if a == nil then
  943.                 term.setBackgroundColor(color)
  944.                 term.setCursorPos(1,19)
  945.                 term.write(tr("$SERVER_PROBLEM", language))
  946.                 sleep(1)
  947.             else
  948.                 term.setBackgroundColor(color)
  949.                 term.setCursorPos(1,19)
  950.                 term.write("                                                                  ")
  951.                 term.setCursorPos(1,19)
  952.                 term.write(b)
  953.                 sleep(1)
  954.             end
  955.        
  956.         elseif x >= 16 and x <= 37 and y == 8 then
  957.        
  958.             terminateProc = true;
  959.            
  960.             startAProg = true
  961.             progToStart = dir.."/"..listedPrograms[ypos + minnumber - 2]
  962.  
  963.         elseif x >= 16 and x <= 37 and y == 9 then
  964.  
  965.             shell.run("edit "..dir.."/"..listedPrograms[ypos + minnumber - 2])  
  966.  
  967.         elseif x >= 16 and x <= 37 and y == 10 then
  968.  
  969.             fs.delete(dir.."/"..listedPrograms[ypos + minnumber - 2])
  970.  
  971.         end
  972.        
  973.         refreshScreen()
  974.        
  975.     end
  976.  
  977. end
  978.  
  979.  
  980. function createAuswahlDownload( ypos )
  981.  
  982.     if downloadList[ypos + minnum - 2] then
  983.    
  984.         term.setTextColor(textcolor)
  985.         term.setBackgroundColor(color)
  986.         term.setCursorPos(15,5)
  987.         term.write("                        ")
  988.         term.setCursorPos(15,6)
  989.         term.write("                        ")
  990.         term.setCursorPos(15,7)
  991.         term.write("                        ")
  992.         term.setCursorPos(15,8)
  993.         term.write("                        ")
  994.         term.setCursorPos(15,9)
  995.         term.write("                        ")
  996.         term.setCursorPos(15,10)
  997.         term.write("                        ")
  998.         term.setCursorPos(15,11)
  999.         term.write("                        ")
  1000.         term.setCursorPos(16,5)
  1001.         term.write("Name: ")
  1002.         term.write(downloadList[ypos + minnum - 2])
  1003.         term.setBackgroundColor(coloritems)
  1004.         term.setCursorPos(16,6)
  1005.         term.write("                      ")
  1006.         term.setCursorPos(16,7)
  1007.         term.write(tr("$DOWNLOAD", language))
  1008.         term.setCursorPos(16,8)
  1009.         term.write(tr("$DOWNLOAD_TOFOLDER", language))
  1010.         term.setCursorPos(16,9)
  1011.         term.write(tr("$DELETE", language))
  1012.         term.setCursorPos(16,10)
  1013.         term.write("                      ")
  1014.         term.setBackgroundColor(color)
  1015.  
  1016.         event, side, x, y = os.pullEvent("mouse_click")
  1017.  
  1018.         if x >= 16 and x <= 37 and y == 7 then
  1019.  
  1020.             if secureAccess then
  1021.                 rednet.send(id, "V;"..downloadList[ypos + minnum - 2])
  1022.             else
  1023.                 rednet.send(id,"D;"..downloadList[ypos + minnum - 2])
  1024.             end
  1025.  
  1026.             a, b, c = rednet.receive(timeout)
  1027.        
  1028.             if a == nil then
  1029.        
  1030.                 term.setBackgroundColor(color)
  1031.                 term.setCursorPos(1,19)
  1032.                 term.write("                                                                  ")
  1033.                 term.setCursorPos(1,19)
  1034.                 term.write(tr("$SERVER_PROBLEM", language))
  1035.            
  1036.             else
  1037.        
  1038.                 if not fs.exists("Downloads/"..downloadList[ypos + minnum - 2]) then
  1039.            
  1040.                     File = fs.open("Downloads/"..downloadList[ypos + minnum - 2],"w")
  1041.                     File.write(b)
  1042.                     File.close()
  1043.                     term.setCursorPos(1,19)
  1044.                     term.write("                                                                  ")
  1045.                     term.setCursorPos(1,19)
  1046.                     term.write(tr("$SUCCESS_DOWNLOAD", language))
  1047.                     sleep(1)
  1048.                
  1049.                 else
  1050.            
  1051.                     term.setCursorPos(1,19)
  1052.                     term.write("                                                                  ")
  1053.                     term.setCursorPos(1,19)
  1054.                     term.write(tr("$ALREADY_EXIST", language))
  1055.                     sleep(1)
  1056.                    
  1057.                 end
  1058.            
  1059.             end
  1060.  
  1061.         elseif x >= 16 and x <= 37 and y == 8 then
  1062.  
  1063.             if secureAccess then
  1064.                 rednet.send(id, "V;"..downloadList[ypos + minnum - 2])
  1065.             else
  1066.                 rednet.send(id,"D;"..downloadList[ypos + minnum - 2])
  1067.             end
  1068.  
  1069.             a, b, c = rednet.receive(timeout)
  1070.        
  1071.             if a == nil then
  1072.        
  1073.                 term.setBackgroundColor(color)
  1074.                 term.setCursorPos(1,19)
  1075.                 term.write("                                                                  ")
  1076.                 term.setCursorPos(1,19)
  1077.                 term.write(tr("$SERVER_PROBLEM", language))
  1078.            
  1079.             else
  1080.        
  1081.                 if not fs.exists(dir.."/"..downloadList[ypos + minnum - 2]) then
  1082.            
  1083.                     File = fs.open(dir.."/"..downloadList[ypos + minnum - 2],"w")
  1084.                     File.write(b)
  1085.                     File.close()
  1086.                     term.setCursorPos(1,19)
  1087.                     term.write("                                                                  ")
  1088.                     term.setCursorPos(1,19)
  1089.                     term.write(tr("$SUCCESS_DOWNLOAD", language))
  1090.                     sleep(1)
  1091.                
  1092.                 else
  1093.            
  1094.                     term.setCursorPos(1,19)
  1095.                     term.write("                                                                  ")
  1096.                     term.setCursorPos(1,19)
  1097.                     term.write(tr("$ALREADY_EXIST", language))
  1098.                     sleep(1)
  1099.                    
  1100.                 end
  1101.            
  1102.             end
  1103.  
  1104.  
  1105.         elseif x >= 16 and x <= 37 and y == 9 then
  1106.  
  1107.             if secureAccess then
  1108.                 rednet.send(id,"W;"..downloadList[ypos + minnum - 2])
  1109.             else
  1110.                 rednet.send(id,"B;"..downloadList[ypos + minnum - 2])
  1111.             end
  1112.  
  1113.             a,b,c = rednet.receive(timeout)
  1114.  
  1115.             if a == nil then
  1116.            
  1117.                 term.setBackgroundColor(color)
  1118.                 term.setCursorPos(1,19)
  1119.                 term.write("                                                                  ")
  1120.                 term.setCursorPos(1,19)
  1121.                 term.write(tr("$SERVER_PROBLEM", language))
  1122.                 sleep(1)
  1123.                
  1124.             else
  1125.            
  1126.                 term.setBackgroundColor(color)
  1127.                 term.setCursorPos(1,19)
  1128.                 term.write("                                                                  ")
  1129.                 term.setCursorPos(1,19)
  1130.                 term.write(b)
  1131.                 sleep(1)
  1132.                
  1133.             end
  1134.  
  1135.         end
  1136.        
  1137.         refreshScreen()
  1138.  
  1139.     end
  1140.  
  1141.  
  1142. end
  1143.  
  1144. function createAuswahlUploadFromAccessing( ypos )
  1145.  
  1146.     if listedPrograms[ypos + minnumber - 2] then
  1147.  
  1148.         term.setTextColor(textcolor)
  1149.         term.setBackgroundColor(color)
  1150.         term.setCursorPos(15,5)
  1151.         term.write("                        ")
  1152.         term.setCursorPos(15,6)
  1153.         term.write("                        ")
  1154.         term.setCursorPos(15,7)
  1155.         term.write("                        ")
  1156.         term.setCursorPos(15,8)
  1157.         term.write("                        ")
  1158.         term.setCursorPos(15,9)
  1159.         term.write("                        ")
  1160.         term.setCursorPos(15,10)
  1161.         term.write("                        ")
  1162.         term.setCursorPos(15,11)
  1163.         term.write("                        ")
  1164.         term.setCursorPos(15,12)
  1165.         term.write("                        ")
  1166.         term.setCursorPos(16,5)
  1167.         term.write("Name: ")
  1168.         term.write(listedPrograms[ypos + minnumber - 2])
  1169.         term.setBackgroundColor(coloritems)
  1170.         term.setCursorPos(16,6)
  1171.         term.write("                      ")
  1172.         term.setCursorPos(16,7)
  1173.         term.write(tr("$SAVE", language))
  1174.         term.setCursorPos(16,8)
  1175.         term.write(tr("$RUN", language))
  1176.         term.setCursorPos(16,9)
  1177.         term.write(tr("$EDIT", language))
  1178.         term.setCursorPos(16,10)
  1179.         term.write(tr("$DELETE", language))
  1180.         term.setCursorPos(16,11)
  1181.         term.write("                      ")
  1182.         term.setBackgroundColor(coloritems)
  1183.  
  1184.         event, side, x, y = os.pullEvent("mouse_click")
  1185.  
  1186.         if x >= 16 and x <= 37 and y == 7 then
  1187.  
  1188.             rednet.send(computerIDAccessing, "$GETPROGCODE;"..dir.."/"..listedPrograms[ypos + minnumber - 2])
  1189.            
  1190.             idAC, messageAC, range = rednet.receive(2)
  1191.            
  1192.             if messageAC ~= nil then
  1193.                 if string.find(messageAC.."", "$PROGCODE", 1, true) then
  1194.                
  1195.                     programdata = string.sub(messageAC, string.find(messageAC.."", ";") + 1, -1)
  1196.  
  1197.                     if secureAccess then
  1198.                         rednet.send(id,"R;"..listedPrograms[ypos + minnumber - 2].."$;"..programdata)
  1199.                     else
  1200.                         rednet.send(id,"U;"..listedPrograms[ypos + minnumber - 2].."$;"..programdata)
  1201.                     end
  1202.  
  1203.                     a,b,c = rednet.receive(timeout)
  1204.                    
  1205.                     if a == nil then
  1206.                         term.setBackgroundColor(color)
  1207.                         term.setCursorPos(1,19)
  1208.                         term.write(tr("$SERVER_PROBLEM", language))
  1209.                         sleep(1)
  1210.                     else
  1211.                         term.setBackgroundColor(color)
  1212.                         term.setCursorPos(1,19)
  1213.                         term.write("                                                                  ")
  1214.                         term.setCursorPos(1,19)
  1215.                         term.write(b)
  1216.                         sleep(1)
  1217.                     end
  1218.                    
  1219.                 end
  1220.             end
  1221.        
  1222.         elseif x >= 16 and x <= 37 and y == 8 then
  1223.        
  1224.             terminateProc = true;
  1225.            
  1226.             rednet.send(computerIDAccessing, "$GETPROGCODE;"..dir.."/"..listedPrograms[ypos + minnumber - 2])
  1227.            
  1228.             idAC, messageAC, range = rednet.receive(2)
  1229.            
  1230.             if messageAC ~= nil then
  1231.                 if string.find(messageAC.."", "$PROGCODE", 1, true) then
  1232.                
  1233.                     programdata = string.sub(messageAC, string.find(messageAC.."", ";") + 1, -1)
  1234.                     file = fs.open("temp8246419256192341", "w")
  1235.                     file.write(programdata)
  1236.                     file.close()
  1237.                    
  1238.                     startAProg = true
  1239.                     progToStart = "temp8246419256192341"
  1240.                    
  1241.                 end
  1242.             end
  1243.  
  1244.         elseif x >= 16 and x <= 37 and y == 9 then
  1245.  
  1246.             rednet.send(computerIDAccessing, "$GETPROGCODE;"..dir.."/"..listedPrograms[ypos + minnumber - 2])
  1247.            
  1248.             idAC, messageAC, range = rednet.receive(2)
  1249.            
  1250.             if messageAC ~= nil then
  1251.                 if string.find(messageAC.."", "$PROGCODE", 1, true) then
  1252.                
  1253.                     programdata = string.sub(messageAC, string.find(messageAC.."", ";") + 1, -1)
  1254.                     file = fs.open("temp8246419256192341", "w")
  1255.                     file.write(programdata)
  1256.                     file.close()
  1257.                
  1258.                     shell.run("edit temp8246419256192341")
  1259.                    
  1260.                     file = fs.open("temp8246419256192341", "r")
  1261.                     programdata = file.readAll()
  1262.                     file.close()
  1263.                    
  1264.                     fs.delete("temp8246419256192341")
  1265.  
  1266.                     rednet.send(computerIDAccessing, "$SAVEEDITED;"..programdata)
  1267.                    
  1268.                 end
  1269.             end
  1270.            
  1271.         elseif x >= 16 and x <= 37 and y == 10 then
  1272.  
  1273.             rednet.send(computerIDAccessing, "$DELETE;"..dir.."/"..listedPrograms[ypos + minnumber - 2])
  1274.  
  1275.         end
  1276.        
  1277.         refreshScreen()
  1278.        
  1279.     end
  1280.  
  1281. end
  1282.  
  1283. function searchInTable(value, table)
  1284.  
  1285.     for _, v in pairs(table) do
  1286.         if value == v then
  1287.             return true
  1288.         end
  1289.     end
  1290.    
  1291.     return false
  1292.        
  1293. end
  1294.  
  1295. -- Programm
  1296.  
  1297.  
  1298.  
  1299. dir = "/"
  1300. dirText = " | ".. tr("$CHANGE_FOLDER", language)
  1301. dirTextServer = " | ".. tr("$SECURED_FILES", language)
  1302.  
  1303. modemside = ""
  1304.  
  1305. while modemside == "" do
  1306.  
  1307.     for i, side in pairs(tekkitLite) do
  1308.  
  1309.         if (peripheral.getType(side) == "modem") then
  1310.        
  1311.             modemside = side
  1312.        
  1313.         end
  1314.  
  1315.     end
  1316.    
  1317.     if modemside == "" then
  1318.    
  1319.         sleep(2)
  1320.    
  1321.     end
  1322.    
  1323. end
  1324.  
  1325. rednet.open(modemside)
  1326.  
  1327. fs.makeDir("Downloads")
  1328.  
  1329. design()
  1330.  
  1331. -- Tabellen
  1332.  
  1333. if compatiblePCMode then
  1334.  
  1335.     rednet.broadcast("$CHECK_COMPATIBLE_PCS");
  1336.  
  1337.     message = "$FIRST";
  1338.  
  1339.     while message ~= nil do
  1340.  
  1341.         idC, message, range = rednet.receive(0.5);
  1342.        
  1343.         if message ~= "$FIRST" and message ~= nil and idC ~= nil then
  1344.        
  1345.             if string.find(message.."", "$COMPATIBLE;", 1, true) then
  1346.  
  1347.                 rednet.send(idC, "$GOTYA");
  1348.        
  1349.                 listedPrograms[visible] = idC..";"..string.sub(message, string.find(message.."", ";") + 1, -1);
  1350.            
  1351.                 if visible >= minnumber and visible <= maxnumber then
  1352.                
  1353.                     term.setBackgroundColor(coloritems)
  1354.                     term.setTextColor(pcColor)
  1355.                     term.setCursorPos(3,invisible)
  1356.                    
  1357.                     if string.len(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1)) > 21 then
  1358.                         term.write(string.sub(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1), 1, 20) .. "..")
  1359.                     else
  1360.                         term.write(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1))
  1361.                     end
  1362.                    
  1363.                     invisible = invisible + 1
  1364.                    
  1365.                 end
  1366.                
  1367.                 visible = visible + 1
  1368.            
  1369.             elseif string.find(message.."", "$COMPATIBLEPASS;", 1, true) then
  1370.            
  1371.                 rednet.send(idC, "$GOTYA");
  1372.        
  1373.                 listedPrograms[visible] = idC..";"..string.sub(message, string.find(message.."", ";") + 1, -1);
  1374.            
  1375.                 if visible >= minnumber and visible <= maxnumber then
  1376.                
  1377.                     term.setBackgroundColor(coloritems)
  1378.                     term.setTextColor(pcPWColor)
  1379.                     term.setCursorPos(3,invisible)
  1380.                    
  1381.                     if string.len(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1)) > 21 then
  1382.                         term.write(string.sub(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1), 1, 20) .. "..")
  1383.                     else
  1384.                         term.write(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1))
  1385.                     end
  1386.                    
  1387.                     invisible = invisible + 1
  1388.                    
  1389.                 end
  1390.                
  1391.                 visible = visible + 1
  1392.            
  1393.             end
  1394.        
  1395.         end
  1396.  
  1397.     end
  1398.    
  1399. end
  1400.  
  1401. if not accessOnComputer then
  1402.  
  1403.     progs = fs.list(dir)
  1404.  
  1405.     for index, sItem in pairs(progs) do
  1406.  
  1407.         if fs.isDir(dir.."/"..sItem)==true then
  1408.  
  1409.             listedPrograms[visible] = sItem
  1410.            
  1411.             if visible >= minnumber and visible <= maxnumber then
  1412.            
  1413.                 term.setBackgroundColor(coloritems)
  1414.                 term.setTextColor(folderColor)
  1415.                 term.setCursorPos(3,invisible)
  1416.                
  1417.                 if string.len(listedPrograms[visible]) > 21 then
  1418.                     term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
  1419.                 else
  1420.                     term.write(listedPrograms[visible])
  1421.                 end
  1422.                
  1423.                 invisible = invisible + 1
  1424.                
  1425.             end
  1426.            
  1427.             visible = visible + 1
  1428.  
  1429.         end
  1430.        
  1431.     end
  1432.  
  1433.     for index, sItem in pairs(progs) do
  1434.  
  1435.         if fs.isDir(dir.."/"..sItem)~=true then
  1436.  
  1437.             listedPrograms[visible] = sItem
  1438.            
  1439.             if visible >= minnumber and visible <= maxnumber then
  1440.            
  1441.                 term.setTextColor(programColor)
  1442.                 term.setCursorPos(3,invisible)
  1443.                
  1444.                 if string.len(listedPrograms[visible]) > 21 then
  1445.                     term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
  1446.                 else
  1447.                     term.write(listedPrograms[visible])
  1448.                 end
  1449.                
  1450.                 invisible = invisible + 1
  1451.                
  1452.             end
  1453.            
  1454.             visible = visible + 1
  1455.  
  1456.         end
  1457.        
  1458.     end
  1459.    
  1460. else
  1461.  
  1462.     for index, sItem in pairs(extComputerDirs) do
  1463.  
  1464.         listedPrograms[visible] = sItem
  1465.        
  1466.         if visible >= minnumber and visible <= maxnumber then
  1467.        
  1468.             term.setBackgroundColor(coloritems)
  1469.             term.setTextColor(folderColor)
  1470.             term.setCursorPos(3,invisible)
  1471.            
  1472.             if string.len(listedPrograms[visible]) > 21 then
  1473.                 term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
  1474.             else
  1475.                 term.write(listedPrograms[visible])
  1476.             end
  1477.            
  1478.             invisible = invisible + 1
  1479.            
  1480.         end
  1481.        
  1482.         visible = visible + 1
  1483.        
  1484.     end
  1485.    
  1486.     for index, sItem in pairs(extComputerProgs) do
  1487.  
  1488.         listedPrograms[visible] = sItem
  1489.        
  1490.         if visible >= minnumber and visible <= maxnumber then
  1491.        
  1492.             term.setTextColor(programColor)
  1493.             term.setCursorPos(3,invisible)
  1494.            
  1495.             if string.len(listedPrograms[visible]) > 21 then
  1496.                 term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
  1497.             else
  1498.                 term.write(listedPrograms[visible])
  1499.             end
  1500.            
  1501.             invisible = invisible + 1
  1502.            
  1503.         end
  1504.        
  1505.         visible = visible + 1
  1506.        
  1507.     end
  1508.    
  1509. end
  1510.  
  1511. if not secureAccess then
  1512.  
  1513.   rednet.send(id,"L;")
  1514.  
  1515. else
  1516.  
  1517.   rednet.send(id,"J;")
  1518.  
  1519. end
  1520.  
  1521. a, dL, c = rednet.receive(timeout)
  1522.  
  1523. if a == nil then
  1524.  
  1525.     term.setTextColor(textcolor)
  1526.     term.setBackgroundColor(coloritems)
  1527.     term.setCursorPos(32,2)
  1528.     term.write(tr("$CANT_CONNECT", language))
  1529.     term.setCursorPos(32,3)
  1530.     term.write(tr("$TO_SERVER", language))
  1531.    
  1532. else
  1533.  
  1534.   while string.find(dL,";") do
  1535.  
  1536.     findNew = string.find(dL.."",";")
  1537.     downloadList[ItemDownloadVisible] = string.sub(dL,1,findNew-1)
  1538.    
  1539.     dL = string.sub(dL,string.find(dL.."",";")+1)
  1540.    
  1541.     if ItemDownloadVisible >= minnum and ItemDownloadVisible <= maxnum then
  1542.      
  1543.      if secureAccess then
  1544.        term.setBackgroundColor(secFilesBackground)
  1545.      else
  1546.        term.setBackgroundColor(coloritems)
  1547.      end
  1548.      
  1549.      term.setCursorPos(32,ItemDownloadInvisible)
  1550.      term.write(downloadList[ItemDownloadVisible])
  1551.      ItemDownloadInvisible = ItemDownloadInvisible + 1
  1552.      
  1553.    end
  1554.    
  1555.    ItemDownloadVisible = ItemDownloadVisible + 1
  1556.  
  1557.   end
  1558.  
  1559. end
  1560.  
  1561.  
  1562. -- Programm
  1563.  
  1564.  
  1565. while true do
  1566.  
  1567.     event, side, x, y = os.pullEvent()
  1568.  
  1569.     terminateProc = false
  1570.  
  1571.     if event == "mouse_click" then
  1572.  
  1573.         if x > 2 and x < 25 and y > 1 and y < 19 then
  1574.  
  1575.             if listedPrograms[y + minnumber - 2] then
  1576.        
  1577.                 if not fs.isDir(dir.."/"..listedPrograms[y + minnumber - 2]) then
  1578.  
  1579.                     if fs.exists(dir.."/"..listedPrograms[y + minnumber - 2]) then
  1580.                         createAuswahlUpload(y)
  1581.                     else
  1582.                    
  1583.                         if not accessOnComputer then
  1584.                             accessOnComputer = true
  1585.                             computerIDAccessing = tonumber(string.sub(listedPrograms[y + minnumber - 2], 1, string.find(listedPrograms[y + minnumber - 2].."", ";") - 1))
  1586.                            
  1587.                             rednet.send(computerIDAccessing, "$DIR;"..dir)
  1588.                            
  1589.                             idEXT, messageEXT, range = rednet.receive(1)
  1590.                            
  1591.                             if string.find(messageEXT.."","$AVAIDIR", 1, true) then
  1592.                            
  1593.                                 dir = dir.."/"..string.sub(listedPrograms[y + minnumber - 2], string.find(listedPrograms[y + minnumber - 2].."", ";", 1, true) + 1, -1)
  1594.                                 dirText = " | "..string.sub(listedPrograms[y + minnumber - 2], string.find(listedPrograms[y + minnumber - 2].."", ";", 1, true) + 1, -1)
  1595.                            
  1596.                                 local programMessage = {}
  1597.                                 local tempString = string.sub(messageEXT, string.find(messageEXT.."", ";") + 1, -1)
  1598.                            
  1599.                                 table.insert(programMessage, textutils.unserialize(tempString))
  1600.                            
  1601.                                 extComputerDirs = programMessage[1][1]
  1602.                                 extComputerProgs = programMessage[1][2]
  1603.                            
  1604.                             elseif string.find(messageEXT.."","$PASS", 1, true) then
  1605.                            
  1606.                                 accessLockedPC(idEXT)
  1607.                            
  1608.                             end
  1609.                
  1610.                             refreshScreen()
  1611.                         else
  1612.                            
  1613.                             if searchInTable(listedPrograms[y + minnumber - 2], extComputerDirs) then
  1614.                            
  1615.                                 dir = dir.."/"..listedPrograms[y + minnumber - 2]
  1616.                                 dirText = " | "..listedPrograms[y + minnumber - 2]
  1617.                                
  1618.                                 rednet.send(computerIDAccessing, "$DIR;"..dir)
  1619.                            
  1620.                                 idEXT, messageEXT, range = rednet.receive(1)
  1621.                                
  1622.                                 if string.find(messageEXT.."","$AVAIDIR", 1, true) then
  1623.                                
  1624.                                     local programMessage = {}
  1625.                                     local tempString = string.sub(messageEXT, string.find(messageEXT.."", ";") + 1, -1)
  1626.                                
  1627.                                     table.insert(programMessage, textutils.unserialize(tempString))
  1628.                                
  1629.                                     extComputerDirs = programMessage[1][1]
  1630.                                     extComputerProgs = programMessage[1][2]
  1631.                                
  1632.                                 end
  1633.                    
  1634.                                 refreshScreen()
  1635.                            
  1636.                             else
  1637.                            
  1638.                                 createAuswahlUploadFromAccessing(y)
  1639.                            
  1640.                             end
  1641.                            
  1642.                         end
  1643.                        
  1644.                     end
  1645.  
  1646.                 else
  1647.            
  1648.                     dir = dir.."/"..listedPrograms[y + minnumber - 2]
  1649.                     dirText = " | "..listedPrograms[y + minnumber - 2]
  1650.                     refreshScreen()
  1651.                
  1652.                 end
  1653.                
  1654.             end
  1655.        
  1656.         elseif x >= 1 and x <= 2 and y == 2 then
  1657.        
  1658.             if dir ~= "/" then
  1659.    
  1660.                 dir = "/"
  1661.                 dirText = " | "..tr("$CHANGE_FOLDER", language)
  1662.                 accessOnComputer = false
  1663.                
  1664.                 refreshScreen()
  1665.    
  1666.             end
  1667.        
  1668.         elseif x > 31 and x < 46 and y > 1 and y < 19 then
  1669.        
  1670.             createAuswahlDownload(y)
  1671.  
  1672.         elseif x == 51 and y == 1 then
  1673.  
  1674.             term.setBackgroundColor(colors.black)
  1675.             term.clear()
  1676.             term.setCursorPos(1,1)
  1677.             terminateProc = true
  1678.  
  1679.         elseif x == 51 and y == 19 then
  1680.  
  1681.             refreshScreen()
  1682.      
  1683.         elseif x == 1 and y == 1 and maxnumber < visible-1 and minnumber < visible then
  1684.  
  1685.             scrolldown()
  1686.             refreshTables()
  1687.  
  1688.         elseif x == 2 and y == 1 and maxnumber > 18 and minnumber > 2 then
  1689.  
  1690.             scrollup()
  1691.             refreshTables()
  1692.  
  1693.         elseif x == 29 and y == 1 and maxnum < ItemDownloadVisible-1 and minnum < ItemDownloadVisible then
  1694.  
  1695.             scrolldowndownload()
  1696.             refreshTables()
  1697.  
  1698.         elseif x == 30 and y == 1 and maxnum > 18 and minnum > 2 then
  1699.  
  1700.             scrollupdownload()
  1701.             refreshTables()
  1702.  
  1703.         elseif x == 1 and y == 19 then
  1704.  
  1705.             changeDir()
  1706.             refreshScreen()
  1707.  
  1708.         elseif x == 29 and y == 19 then
  1709.  
  1710.             if secureAccess then
  1711.      
  1712.                 logout()
  1713.        
  1714.             else
  1715.  
  1716.                 accessSecuredFolder()
  1717.        
  1718.             end
  1719.  
  1720.         end
  1721.      
  1722.     elseif event == "mouse_scroll"  then
  1723.  
  1724.       if side == 1 and maxnumber < visible - 1 and minnumber < visible then
  1725.  
  1726.         scrolldown()
  1727.         refreshTables()
  1728.        
  1729.       elseif side == -1 and maxnumber > 18 and minnumber > 2 then
  1730.      
  1731.         scrollup()
  1732.         refreshTables()
  1733.      
  1734.       elseif side == 1 and maxnum < ItemDownloadVisible-1 and minnum < ItemDownloadVisible then
  1735.      
  1736.         scrolldowndownload()
  1737.         refreshTables()
  1738.        
  1739.       elseif side == -1 and maxnum > 18 and minnum > 2 then
  1740.      
  1741.         scrollupdownload()
  1742.         refreshTables()
  1743.      
  1744.       end
  1745.  
  1746.     end
  1747.  
  1748.     if (terminateProc) then
  1749.  
  1750.       break
  1751.  
  1752.     end
  1753.  
  1754. end
  1755.  
  1756. if startAProg then
  1757.  
  1758.     shell.run(progToStart)
  1759.    
  1760. end
  1761.  
  1762. -- Scripted by Streetboy_xD
  1763. -- Please keep this text in the program.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement