Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --**************************
- --* Standart Einstellungen *
- --* Default Settings *
- --**************************
- language = "$GER" -- AVAIABLE LANGUAGES: $GER, $ENG
- id = 12333 -- ServerID
- compatiblePCMode = true -- Verbindung mit anderen PCs må83¥B6glich? / Connection to other computer?
- --***********************
- --* Farben / Colors *
- --***********************
- color = colors.lightGray -- Farbe der Leiste / Barcolor
- coloritems = colors.white -- Farbe der Felder / Fieldcolor
- textcolor = colors.gray -- Farbe des Textes / Textcolor
- -- Items
- pcColor = colors.orange -- Textfarbe der ungesicherten Computer / Textcolor unsecured pcs
- pcPWColor = colors.red -- Textfarbe der gesicherten Computer / Textcolor secured pcs
- folderColor = colors.blue -- Textfarbe der Ordner / Textcolor folder
- programColor = colors.gray -- Textfarbe der Programme / Textcolor programs
- secFilesBackground = colors.green -- Hintergrundfarbe der Gesicherten Daten / Backgroundcolor secured files
- --**********************************
- --* Hier nichts å83¥A4ndern! *
- --* Don't change anything below! *
- --**********************************
- secureAccess = false
- accessOnComputer = false
- computerIDAccessing = 0
- startAProg = false
- progToStart = ""
- extComputerProgs = {}
- extComputerDirs = {}
- minnumber = 2
- maxnumber = 18
- minnum = 2
- maxnum = 18
- timeout = 0.5
- downloadList = {}
- ItemDownloadVisible = 2
- ItemDownloadInvisible = 2
- y = 2
- visible = 2
- invisible = 2
- items = ";"
- listedPrograms = {}
- downloadList = {}
- tekkitLite = {
- "top",
- "bottom",
- "left",
- "right",
- "front",
- "back"
- }
- -- *********************
- function tr(tString, lang)
- local GER = {
- ["$DOWNLOADS"] = "Downloads",
- ["$SECURED_FILES"] = "Gesicherte Datein",
- ["$FOLDER"] = "Ordner",
- ["$CHANGE_FOLDER"] = "Ordner waehlen",
- ["$LOGOUT"] = "Ausloggen",
- ["$SECURITY_ACCESS"] = "Sicherheitszugriff",
- ["$USERNAME"] = "Username",
- ["$PASSWORD"] = "Passwort",
- ["$SERVER_PROBLEM"] = "Keine Verbindung zum Server",
- ["$ACCESS_DENIED"] = "Zugriff verweigert",
- ["$SAVE"] = " Speichern ",
- ["$RUN"] = " Programm starten ",
- ["$EDIT"] = " Editieren ",
- ["$CANT_CONNECT"] = "Keine Verbindung",
- ["$TO_SERVER"] = "zum Server",
- ["$DOWNLOAD"] = " Download ",
- ["$DOWNLOAD_TOFOLDER"] = " Download in Ordner ",
- ["$DELETE"] = " Loeschen ",
- ["$SUCCESS_DOWNLOAD"] = "Erfolgreich heruntergeladen",
- ["$ALREADY_EXIST"] = "Datei existiert bereits!",
- }
- local ENG = {
- ["$DOWNLOADS"] = "Downloads",
- ["$SECURED_FILES"] = "Secured Files",
- ["$FOLDER"] = "Folder",
- ["$CHANGE_FOLDER"] = "Change Folder",
- ["$LOGOUT"] = "Logout",
- ["$SECURITY_ACCESS"] = "Security Access",
- ["$USERNAME"] = "Username",
- ["$PASSWORD"] = "Password",
- ["$SERVER_PROBLEM"] = "Can't reach the server",
- ["$ACCESS_DENIED"] = "Access denied",
- ["$SAVE"] = " Save ",
- ["$RUN"] = " Run program ",
- ["$EDIT"] = " Edit ",
- ["$CANT_CONNECT"] = "Can't reach",
- ["$TO_SERVER"] = "the server",
- ["$DOWNLOAD"] = " Download ",
- ["$DOWNLOAD_TOFOLDER"] = " Download to Folder ",
- ["$DELETE"] = " Delete ",
- ["$SUCCESS_DOWNLOAD"] = "Successfully downloaded",
- ["$ALREADY_EXIST"] = "File already exists!",
- }
- if lang == "$GER" then
- return GER[tString]
- elseif lang == "$ENG" then
- return ENG[tString]
- end
- end
- function design()
- term.clear()
- term.setCursorPos(1,1)
- term.setBackgroundColor(color)
- term.write(" ")
- for i = 2,18 do
- term.setCursorPos(1,i)
- term.setBackgroundColor(coloritems)
- term.write(" ")
- term.setBackgroundColor(color)
- term.write(" ")
- term.setBackgroundColor(coloritems)
- term.write(" ")
- end
- term.setCursorPos(1,19)
- term.setBackgroundColor(color)
- term.write(" ")
- term.setTextColor(textcolor)
- term.setBackgroundColor(color)
- term.setCursorPos(9,1)
- term.write("| PC |")
- term.setCursorPos(36,1)
- term.write("| SERVER |")
- term.setCursorPos(1,1)
- term.write("v^")
- term.setCursorPos(29,1)
- term.write("v^")
- term.setCursorPos(51,19)
- term.setTextColor(colors.yellow)
- term.write("$")
- term.setCursorPos(1,19)
- term.setTextColor(colors.red)
- term.write("X")
- term.setTextColor(textcolor)
- term.write(dirText)
- term.setCursorPos(29,19)
- term.setTextColor(colors.red)
- term.write("X")
- term.setTextColor(textcolor)
- term.write(dirTextServer)
- term.setBackgroundColor(colors.red)
- term.setCursorPos(51,1)
- term.write("X")
- term.setBackgroundColor(coloritems)
- term.setCursorPos(1,1)
- end
- function scrolldown()
- minnumber = minnumber + 1
- maxnumber = maxnumber + 1
- end
- function scrollup()
- minnumber = minnumber - 1
- maxnumber = maxnumber - 1
- end
- function scrolldowndownload()
- minnum = minnum + 1
- maxnum = maxnum + 1
- end
- function scrollupdownload()
- minnum = minnum - 1
- maxnum = maxnum - 1
- end
- function changeDir()
- term.setTextColor(textcolor)
- term.setBackgroundColor(color)
- term.setCursorPos(15,7)
- term.write(" ")
- term.setCursorPos(15,8)
- term.write(" ")
- term.setCursorPos(15,9)
- term.write(" ")
- term.setCursorPos(15,10)
- term.write(" ")
- term.setCursorPos(15,11)
- term.write(" ")
- term.setCursorPos(16,7)
- term.write("Name: ")
- term.write(tr("$CHANGE_FOLDER", language))
- term.setBackgroundColor(coloritems)
- term.setCursorPos(16,8)
- term.write(" ")
- term.setCursorPos(16,9)
- term.write(" ")
- term.setCursorPos(16,9)
- term.write(" "..tr("$FOLDER", language)..": ")
- term.setCursorPos(16,10)
- term.write(" ")
- term.setBackgroundColor(coloritems)
- term.setCursorPos(19 + tr("$FOLDER", language):len(), 9)
- folderName = read()
- if fs.isDir(folderName) then
- dir = folderName
- if dir == "" then
- dir = "/"
- end
- dirText = " | "..folderName
- accessOnComputer = false
- if dirText == " | " then
- dirText = " | "..tr("$CHANGE_FOLDER",language)
- end
- else
- term.setCursorPos(1,19)
- term.write("Not a directory")
- sleep(2)
- end
- refreshScreen()
- end
- function logout()
- if secureAccess then
- rednet.send(id, "I;")
- secureAccess = false;
- dirTextServer = " | ".. tr("$SECURED_FILES", language)
- refreshScreen()
- end
- end
- function accessSecuredFolder()
- term.setTextColor(textcolor)
- term.setBackgroundColor(color)
- term.setCursorPos(15,6)
- term.write(" ")
- term.setCursorPos(15,7)
- term.write(" ")
- term.setCursorPos(15,8)
- term.write(" ")
- term.setCursorPos(15,9)
- term.write(" ")
- term.setCursorPos(15,10)
- term.write(" ")
- term.setCursorPos(15,11)
- term.write(" ")
- term.setCursorPos(16,6)
- term.write(tr("$SECURITY_ACCESS", language))
- term.setBackgroundColor(coloritems)
- term.setCursorPos(16,7)
- term.write(" ")
- term.setCursorPos(16,8)
- term.write(" ".. tr("$USERNAME", language) ..": ")
- term.setCursorPos(16,9)
- term.write(" ".. tr("$PASSWORD", language) ..": ")
- term.setCursorPos(16,10)
- term.write(" ")
- term.setCursorPos(27,8)
- user = read()
- term.setCursorPos(27,9)
- pass = read("*")
- rednet.send(id,"P;"..pass.."$"..user)
- a, b, c = rednet.receive(5)
- if a == nil then
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(tr("$SERVER_PROBLEM", language))
- sleep(1)
- else
- if b == "DENIED" then
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(tr("$ACCESS_DENIED", language))
- sleep(1)
- secureAccess = false
- dirTextServer = " | ".. tr("$SECURED_FILES", language)
- else
- secureAccess = true
- dirTextServer = " | ".. tr("$LOGOUT", language)
- end
- end
- refreshScreen()
- end
- function accessLockedPC(id)
- term.setBackgroundColor(color)
- term.setCursorPos(15,6)
- term.write(" ")
- term.setCursorPos(15,7)
- term.write(" ")
- term.setCursorPos(15,8)
- term.write(" ")
- term.setCursorPos(15,9)
- term.write(" ")
- term.setCursorPos(15,10)
- term.write(" ")
- term.setCursorPos(16,6)
- term.write(tr("$SECURITY_ACCESS", language))
- term.setBackgroundColor(coloritems)
- term.setCursorPos(16,7)
- term.write(" ")
- term.setCursorPos(16,8)
- term.write(" ".. tr("$PASSWORD", language) ..": ")
- term.setCursorPos(16,9)
- term.write(" ")
- term.setCursorPos(27,8)
- pass = read("*")
- rednet.send(id,"$PASS;"..pass)
- a, b, c = rednet.receive(3)
- if a == nil then
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(tr("$SERVER_PROBLEM", language))
- sleep(1)
- dir = "/"
- dirText = " | "..tr("$CHANGE_FOLDER", language)
- accessOnComputer = false
- refreshScreen()
- else
- if b == "DENIED" then
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(tr("$ACCESS_DENIED", language))
- sleep(1)
- dir = "/"
- dirText = " | "..tr("$CHANGE_FOLDER", language)
- accessOnComputer = false
- refreshScreen()
- else
- dir = dir.."/"..string.sub(listedPrograms[y + minnumber - 2], string.find(listedPrograms[y + minnumber - 2].."", ";", 1, true) + 1, -1)
- dirText = " | "..string.sub(listedPrograms[y + minnumber - 2], string.find(listedPrograms[y + minnumber - 2].."", ";", 1, true) + 1, -1)
- local programMessage = {}
- local tempString = string.sub(b, string.find(b.."", ";") + 1, -1)
- table.insert(programMessage, textutils.unserialize(tempString))
- extComputerDirs = programMessage[1][1]
- extComputerProgs = programMessage[1][2]
- end
- end
- refreshScreen()
- end
- function refreshTables()
- ItemDownloadVisible = 2
- ItemDownloadInvisible = 2
- y = 2
- visible = 2
- invisible = 2
- items = ";"
- listedPrograms = {}
- downloadList = {}
- term.setBackgroundColor(coloritems)
- term.setCursorPos(1,2)
- term.write(" ")
- term.setCursorPos(1,3)
- term.write(" ")
- term.setCursorPos(1,4)
- term.write(" ")
- term.setCursorPos(1,5)
- term.write(" ")
- term.setCursorPos(1,6)
- term.write(" ")
- term.setCursorPos(1,7)
- term.write(" ")
- term.setCursorPos(1,8)
- term.write(" ")
- term.setCursorPos(1,9)
- term.write(" ")
- term.setCursorPos(1,10)
- term.write(" ")
- term.setCursorPos(1,11)
- term.write(" ")
- term.setCursorPos(1,12)
- term.write(" ")
- term.setCursorPos(1,13)
- term.write(" ")
- term.setCursorPos(1,14)
- term.write(" ")
- term.setCursorPos(1,15)
- term.write(" ")
- term.setCursorPos(1,16)
- term.write(" ")
- term.setCursorPos(1,17)
- term.write(" ")
- term.setCursorPos(1,18)
- term.write(" ")
- term.setCursorPos(30,2)
- term.write(" ")
- term.setCursorPos(30,3)
- term.write(" ")
- term.setCursorPos(30,4)
- term.write(" ")
- term.setCursorPos(30,5)
- term.write(" ")
- term.setCursorPos(30,6)
- term.write(" ")
- term.setCursorPos(30,7)
- term.write(" ")
- term.setCursorPos(30,8)
- term.write(" ")
- term.setCursorPos(30,9)
- term.write(" ")
- term.setCursorPos(30,10)
- term.write(" ")
- term.setCursorPos(30,11)
- term.write(" ")
- term.setCursorPos(30,12)
- term.write(" ")
- term.setCursorPos(30,13)
- term.write(" ")
- term.setCursorPos(30,14)
- term.write(" ")
- term.setCursorPos(30,15)
- term.write(" ")
- term.setCursorPos(30,16)
- term.write(" ")
- term.setCursorPos(30,17)
- term.write(" ")
- term.setCursorPos(30,18)
- term.write(" ")
- progs = fs.list(dir)
- for index, sItem in pairs(progs) do
- if fs.isDir(dir.."/"..sItem)==true then
- listedPrograms[visible] = sItem
- if visible >= minnumber and visible <= maxnumber then
- term.setBackgroundColor(coloritems)
- term.setTextColor(folderColor)
- term.setCursorPos(3,invisible)
- term.write(listedPrograms[visible])
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- end
- for index, sItem in pairs(progs) do
- if fs.isDir(dir.."/"..sItem)~=true then
- listedPrograms[visible] = sItem
- if visible >= minnumber and visible <= maxnumber then
- term.setTextColor(programColor)
- term.setCursorPos(3,invisible)
- term.write(listedPrograms[visible])
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- end
- if not secureAccess then
- rednet.send(id,"L;")
- else
- rednet.send(id,"J;")
- end
- a, dL, c = rednet.receive(timeout)
- if a == nil then
- term.setBackgroundColor(coloritems)
- term.setCursorPos(32,2)
- term.write(tr("$CANT_CONNECT", language))
- term.setCursorPos(32,3)
- term.write(tr("$TO_SERVER", language))
- else
- while string.find(dL,";") do
- findNew = string.find(dL.."",";")
- downloadList[ItemDownloadVisible] = string.sub(dL,1,findNew-1)
- dL = string.sub(dL,string.find(dL.."",";")+1)
- if ItemDownloadVisible >= minnum and ItemDownloadVisible <= maxnum then
- if secureAccess then
- term.setBackgroundColor(secFilesBackground)
- else
- term.setBackgroundColor(coloritems)
- end
- term.setCursorPos(32,ItemDownloadInvisible)
- term.write(downloadList[ItemDownloadVisible])
- ItemDownloadInvisible = ItemDownloadInvisible + 1
- end
- ItemDownloadVisible = ItemDownloadVisible + 1
- end
- end
- if dir ~= "/" then
- term.setBackgroundColor(coloritems)
- term.setTextColor(colors.red)
- term.setCursorPos(1,2)
- term.write("<<")
- term.setTextColor(textcolor)
- end
- end
- function refreshScreen()
- ItemDownloadVisible = 2
- ItemDownloadInvisible = 2
- y = 2
- visible = 2
- invisible = 2
- items = ";"
- listedPrograms = {}
- downloadList = {}
- design()
- -- Tabellen
- if compatiblePCMode then
- if dir == "/" then
- rednet.broadcast("$CHECK_COMPATIBLE_PCS");
- message = "$FIRST";
- while message ~= nil do
- idC, message, range = rednet.receive(0.5);
- if message ~= "$FIRST" and message ~= nil and idC ~= nil then
- if string.find(message.."", "$COMPATIBLE;", 1, true) then
- rednet.send(idC, "$GOTYA");
- listedPrograms[visible] = idC..";"..string.sub(message, string.find(message.."", ";") + 1, -1);
- if visible >= minnumber and visible <= maxnumber then
- term.setBackgroundColor(coloritems)
- term.setTextColor(pcColor)
- term.setCursorPos(3,invisible)
- if string.len(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1)) > 21 then
- term.write(string.sub(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1), 1, 20) .. "..")
- else
- term.write(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1))
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- elseif string.find(message.."", "$COMPATIBLEPASS;", 1, true) then
- rednet.send(idC, "$GOTYA");
- listedPrograms[visible] = idC..";"..string.sub(message, string.find(message.."", ";") + 1, -1);
- if visible >= minnumber and visible <= maxnumber then
- term.setBackgroundColor(coloritems)
- term.setTextColor(pcPWColor)
- term.setCursorPos(3,invisible)
- if string.len(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1)) > 21 then
- term.write(string.sub(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1), 1, 20) .. "..")
- else
- term.write(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1))
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- end
- end
- end
- end
- if not accessOnComputer then
- progs = fs.list(dir)
- for index, sItem in pairs(progs) do
- if fs.isDir(dir.."/"..sItem)==true then
- listedPrograms[visible] = sItem
- if visible >= minnumber and visible <= maxnumber then
- term.setBackgroundColor(coloritems)
- term.setTextColor(folderColor)
- term.setCursorPos(3,invisible)
- if string.len(listedPrograms[visible]) > 21 then
- term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
- else
- term.write(listedPrograms[visible])
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- end
- for index, sItem in pairs(progs) do
- if fs.isDir(dir.."/"..sItem)~=true then
- listedPrograms[visible] = sItem
- if visible >= minnumber and visible <= maxnumber then
- term.setTextColor(programColor)
- term.setCursorPos(3,invisible)
- if string.len(listedPrograms[visible]) > 21 then
- term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
- else
- term.write(listedPrograms[visible])
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- end
- else
- for index, sItem in pairs(extComputerDirs) do
- listedPrograms[visible] = sItem
- if visible >= minnumber and visible <= maxnumber then
- term.setBackgroundColor(coloritems)
- term.setTextColor(folderColor)
- term.setCursorPos(3,invisible)
- if string.len(listedPrograms[visible]) > 21 then
- term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
- else
- term.write(listedPrograms[visible])
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- for index, sItem in pairs(extComputerProgs) do
- listedPrograms[visible] = sItem
- if visible >= minnumber and visible <= maxnumber then
- term.setTextColor(programColor)
- term.setCursorPos(3,invisible)
- if string.len(listedPrograms[visible]) > 21 then
- term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
- else
- term.write(listedPrograms[visible])
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- end
- if not secureAccess then
- rednet.send(id,"L;")
- else
- rednet.send(id,"J;")
- end
- a, dL, c = rednet.receive(timeout)
- if a == nil then
- term.setTextColor(textcolor)
- term.setBackgroundColor(coloritems)
- term.setCursorPos(32,2)
- term.write(tr("$CANT_CONNECT", language))
- term.setCursorPos(32,3)
- term.write(tr("$TO_SERVER", language))
- else
- while string.find(dL,";") do
- findNew = string.find(dL.."",";")
- downloadList[ItemDownloadVisible] = string.sub(dL,1,findNew-1)
- dL = string.sub(dL,string.find(dL.."",";")+1)
- if ItemDownloadVisible >= minnum and ItemDownloadVisible <= maxnum then
- if secureAccess then
- term.setBackgroundColor(secFilesBackground)
- else
- term.setBackgroundColor(coloritems)
- end
- term.setTextColor(programColor)
- term.setCursorPos(32,ItemDownloadInvisible)
- term.write(downloadList[ItemDownloadVisible])
- ItemDownloadInvisible = ItemDownloadInvisible + 1
- end
- ItemDownloadVisible = ItemDownloadVisible + 1
- end
- end
- if dir ~= "/" then
- term.setBackgroundColor(coloritems)
- term.setTextColor(colors.red)
- term.setCursorPos(1,2)
- term.write("<<")
- term.setTextColor(textcolor)
- end
- end
- function createAuswahlUpload( ypos )
- if listedPrograms[ypos + minnumber - 2] then
- term.setTextColor(textcolor)
- term.setBackgroundColor(color)
- term.setCursorPos(15,5)
- term.write(" ")
- term.setCursorPos(15,6)
- term.write(" ")
- term.setCursorPos(15,7)
- term.write(" ")
- term.setCursorPos(15,8)
- term.write(" ")
- term.setCursorPos(15,9)
- term.write(" ")
- term.setCursorPos(15,10)
- term.write(" ")
- term.setCursorPos(15,11)
- term.write(" ")
- term.setCursorPos(15,12)
- term.write(" ")
- term.setCursorPos(16,5)
- term.write("Name: ")
- term.write(listedPrograms[ypos + minnumber - 2])
- term.setBackgroundColor(coloritems)
- term.setCursorPos(16,6)
- term.write(" ")
- term.setCursorPos(16,7)
- term.write(tr("$SAVE", language))
- term.setCursorPos(16,8)
- term.write(tr("$RUN", language))
- term.setCursorPos(16,9)
- term.write(tr("$EDIT", language))
- term.setCursorPos(16,10)
- term.write(tr("$DELETE", language))
- term.setCursorPos(16,11)
- term.write(" ")
- term.setBackgroundColor(coloritems)
- event, side, x, y = os.pullEvent("mouse_click")
- if x >= 16 and x <= 37 and y == 7 then
- program = fs.open(dir.."/"..listedPrograms[ypos + minnumber - 2],"r")
- programdata = program.readAll()
- program.close()
- if secureAccess then
- rednet.send(id,"R;"..listedPrograms[ypos + minnumber - 2].."$;"..programdata)
- else
- rednet.send(id,"U;"..listedPrograms[ypos + minnumber - 2].."$;"..programdata)
- end
- a,b,c = rednet.receive(timeout)
- if a == nil then
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(tr("$SERVER_PROBLEM", language))
- sleep(1)
- else
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(" ")
- term.setCursorPos(1,19)
- term.write(b)
- sleep(1)
- end
- elseif x >= 16 and x <= 37 and y == 8 then
- terminateProc = true;
- startAProg = true
- progToStart = dir.."/"..listedPrograms[ypos + minnumber - 2]
- elseif x >= 16 and x <= 37 and y == 9 then
- shell.run("edit "..dir.."/"..listedPrograms[ypos + minnumber - 2])
- elseif x >= 16 and x <= 37 and y == 10 then
- fs.delete(dir.."/"..listedPrograms[ypos + minnumber - 2])
- end
- refreshScreen()
- end
- end
- function createAuswahlDownload( ypos )
- if downloadList[ypos + minnum - 2] then
- term.setTextColor(textcolor)
- term.setBackgroundColor(color)
- term.setCursorPos(15,5)
- term.write(" ")
- term.setCursorPos(15,6)
- term.write(" ")
- term.setCursorPos(15,7)
- term.write(" ")
- term.setCursorPos(15,8)
- term.write(" ")
- term.setCursorPos(15,9)
- term.write(" ")
- term.setCursorPos(15,10)
- term.write(" ")
- term.setCursorPos(15,11)
- term.write(" ")
- term.setCursorPos(16,5)
- term.write("Name: ")
- term.write(downloadList[ypos + minnum - 2])
- term.setBackgroundColor(coloritems)
- term.setCursorPos(16,6)
- term.write(" ")
- term.setCursorPos(16,7)
- term.write(tr("$DOWNLOAD", language))
- term.setCursorPos(16,8)
- term.write(tr("$DOWNLOAD_TOFOLDER", language))
- term.setCursorPos(16,9)
- term.write(tr("$DELETE", language))
- term.setCursorPos(16,10)
- term.write(" ")
- term.setBackgroundColor(color)
- event, side, x, y = os.pullEvent("mouse_click")
- if x >= 16 and x <= 37 and y == 7 then
- if secureAccess then
- rednet.send(id, "V;"..downloadList[ypos + minnum - 2])
- else
- rednet.send(id,"D;"..downloadList[ypos + minnum - 2])
- end
- a, b, c = rednet.receive(timeout)
- if a == nil then
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(" ")
- term.setCursorPos(1,19)
- term.write(tr("$SERVER_PROBLEM", language))
- else
- if not fs.exists("Downloads/"..downloadList[ypos + minnum - 2]) then
- File = fs.open("Downloads/"..downloadList[ypos + minnum - 2],"w")
- File.write(b)
- File.close()
- term.setCursorPos(1,19)
- term.write(" ")
- term.setCursorPos(1,19)
- term.write(tr("$SUCCESS_DOWNLOAD", language))
- sleep(1)
- else
- term.setCursorPos(1,19)
- term.write(" ")
- term.setCursorPos(1,19)
- term.write(tr("$ALREADY_EXIST", language))
- sleep(1)
- end
- end
- elseif x >= 16 and x <= 37 and y == 8 then
- if secureAccess then
- rednet.send(id, "V;"..downloadList[ypos + minnum - 2])
- else
- rednet.send(id,"D;"..downloadList[ypos + minnum - 2])
- end
- a, b, c = rednet.receive(timeout)
- if a == nil then
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(" ")
- term.setCursorPos(1,19)
- term.write(tr("$SERVER_PROBLEM", language))
- else
- if not fs.exists(dir.."/"..downloadList[ypos + minnum - 2]) then
- File = fs.open(dir.."/"..downloadList[ypos + minnum - 2],"w")
- File.write(b)
- File.close()
- term.setCursorPos(1,19)
- term.write(" ")
- term.setCursorPos(1,19)
- term.write(tr("$SUCCESS_DOWNLOAD", language))
- sleep(1)
- else
- term.setCursorPos(1,19)
- term.write(" ")
- term.setCursorPos(1,19)
- term.write(tr("$ALREADY_EXIST", language))
- sleep(1)
- end
- end
- elseif x >= 16 and x <= 37 and y == 9 then
- if secureAccess then
- rednet.send(id,"W;"..downloadList[ypos + minnum - 2])
- else
- rednet.send(id,"B;"..downloadList[ypos + minnum - 2])
- end
- a,b,c = rednet.receive(timeout)
- if a == nil then
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(" ")
- term.setCursorPos(1,19)
- term.write(tr("$SERVER_PROBLEM", language))
- sleep(1)
- else
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(" ")
- term.setCursorPos(1,19)
- term.write(b)
- sleep(1)
- end
- end
- refreshScreen()
- end
- end
- function createAuswahlUploadFromAccessing( ypos )
- if listedPrograms[ypos + minnumber - 2] then
- term.setTextColor(textcolor)
- term.setBackgroundColor(color)
- term.setCursorPos(15,5)
- term.write(" ")
- term.setCursorPos(15,6)
- term.write(" ")
- term.setCursorPos(15,7)
- term.write(" ")
- term.setCursorPos(15,8)
- term.write(" ")
- term.setCursorPos(15,9)
- term.write(" ")
- term.setCursorPos(15,10)
- term.write(" ")
- term.setCursorPos(15,11)
- term.write(" ")
- term.setCursorPos(15,12)
- term.write(" ")
- term.setCursorPos(16,5)
- term.write("Name: ")
- term.write(listedPrograms[ypos + minnumber - 2])
- term.setBackgroundColor(coloritems)
- term.setCursorPos(16,6)
- term.write(" ")
- term.setCursorPos(16,7)
- term.write(tr("$SAVE", language))
- term.setCursorPos(16,8)
- term.write(tr("$RUN", language))
- term.setCursorPos(16,9)
- term.write(tr("$EDIT", language))
- term.setCursorPos(16,10)
- term.write(tr("$DELETE", language))
- term.setCursorPos(16,11)
- term.write(" ")
- term.setBackgroundColor(coloritems)
- event, side, x, y = os.pullEvent("mouse_click")
- if x >= 16 and x <= 37 and y == 7 then
- rednet.send(computerIDAccessing, "$GETPROGCODE;"..dir.."/"..listedPrograms[ypos + minnumber - 2])
- idAC, messageAC, range = rednet.receive(2)
- if messageAC ~= nil then
- if string.find(messageAC.."", "$PROGCODE", 1, true) then
- programdata = string.sub(messageAC, string.find(messageAC.."", ";") + 1, -1)
- if secureAccess then
- rednet.send(id,"R;"..listedPrograms[ypos + minnumber - 2].."$;"..programdata)
- else
- rednet.send(id,"U;"..listedPrograms[ypos + minnumber - 2].."$;"..programdata)
- end
- a,b,c = rednet.receive(timeout)
- if a == nil then
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(tr("$SERVER_PROBLEM", language))
- sleep(1)
- else
- term.setBackgroundColor(color)
- term.setCursorPos(1,19)
- term.write(" ")
- term.setCursorPos(1,19)
- term.write(b)
- sleep(1)
- end
- end
- end
- elseif x >= 16 and x <= 37 and y == 8 then
- terminateProc = true;
- rednet.send(computerIDAccessing, "$GETPROGCODE;"..dir.."/"..listedPrograms[ypos + minnumber - 2])
- idAC, messageAC, range = rednet.receive(2)
- if messageAC ~= nil then
- if string.find(messageAC.."", "$PROGCODE", 1, true) then
- programdata = string.sub(messageAC, string.find(messageAC.."", ";") + 1, -1)
- file = fs.open("temp8246419256192341", "w")
- file.write(programdata)
- file.close()
- startAProg = true
- progToStart = "temp8246419256192341"
- end
- end
- elseif x >= 16 and x <= 37 and y == 9 then
- rednet.send(computerIDAccessing, "$GETPROGCODE;"..dir.."/"..listedPrograms[ypos + minnumber - 2])
- idAC, messageAC, range = rednet.receive(2)
- if messageAC ~= nil then
- if string.find(messageAC.."", "$PROGCODE", 1, true) then
- programdata = string.sub(messageAC, string.find(messageAC.."", ";") + 1, -1)
- file = fs.open("temp8246419256192341", "w")
- file.write(programdata)
- file.close()
- shell.run("edit temp8246419256192341")
- file = fs.open("temp8246419256192341", "r")
- programdata = file.readAll()
- file.close()
- fs.delete("temp8246419256192341")
- rednet.send(computerIDAccessing, "$SAVEEDITED;"..programdata)
- end
- end
- elseif x >= 16 and x <= 37 and y == 10 then
- rednet.send(computerIDAccessing, "$DELETE;"..dir.."/"..listedPrograms[ypos + minnumber - 2])
- end
- refreshScreen()
- end
- end
- function searchInTable(value, table)
- for _, v in pairs(table) do
- if value == v then
- return true
- end
- end
- return false
- end
- -- Programm
- dir = "/"
- dirText = " | ".. tr("$CHANGE_FOLDER", language)
- dirTextServer = " | ".. tr("$SECURED_FILES", language)
- modemside = ""
- while modemside == "" do
- for i, side in pairs(tekkitLite) do
- if (peripheral.getType(side) == "modem") then
- modemside = side
- end
- end
- if modemside == "" then
- sleep(2)
- end
- end
- rednet.open(modemside)
- fs.makeDir("Downloads")
- design()
- -- Tabellen
- if compatiblePCMode then
- rednet.broadcast("$CHECK_COMPATIBLE_PCS");
- message = "$FIRST";
- while message ~= nil do
- idC, message, range = rednet.receive(0.5);
- if message ~= "$FIRST" and message ~= nil and idC ~= nil then
- if string.find(message.."", "$COMPATIBLE;", 1, true) then
- rednet.send(idC, "$GOTYA");
- listedPrograms[visible] = idC..";"..string.sub(message, string.find(message.."", ";") + 1, -1);
- if visible >= minnumber and visible <= maxnumber then
- term.setBackgroundColor(coloritems)
- term.setTextColor(pcColor)
- term.setCursorPos(3,invisible)
- if string.len(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1)) > 21 then
- term.write(string.sub(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1), 1, 20) .. "..")
- else
- term.write(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1))
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- elseif string.find(message.."", "$COMPATIBLEPASS;", 1, true) then
- rednet.send(idC, "$GOTYA");
- listedPrograms[visible] = idC..";"..string.sub(message, string.find(message.."", ";") + 1, -1);
- if visible >= minnumber and visible <= maxnumber then
- term.setBackgroundColor(coloritems)
- term.setTextColor(pcPWColor)
- term.setCursorPos(3,invisible)
- if string.len(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1)) > 21 then
- term.write(string.sub(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1), 1, 20) .. "..")
- else
- term.write(string.sub(listedPrograms[visible], string.find(listedPrograms[visible].."", ";") + 1, -1))
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- end
- end
- end
- if not accessOnComputer then
- progs = fs.list(dir)
- for index, sItem in pairs(progs) do
- if fs.isDir(dir.."/"..sItem)==true then
- listedPrograms[visible] = sItem
- if visible >= minnumber and visible <= maxnumber then
- term.setBackgroundColor(coloritems)
- term.setTextColor(folderColor)
- term.setCursorPos(3,invisible)
- if string.len(listedPrograms[visible]) > 21 then
- term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
- else
- term.write(listedPrograms[visible])
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- end
- for index, sItem in pairs(progs) do
- if fs.isDir(dir.."/"..sItem)~=true then
- listedPrograms[visible] = sItem
- if visible >= minnumber and visible <= maxnumber then
- term.setTextColor(programColor)
- term.setCursorPos(3,invisible)
- if string.len(listedPrograms[visible]) > 21 then
- term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
- else
- term.write(listedPrograms[visible])
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- end
- else
- for index, sItem in pairs(extComputerDirs) do
- listedPrograms[visible] = sItem
- if visible >= minnumber and visible <= maxnumber then
- term.setBackgroundColor(coloritems)
- term.setTextColor(folderColor)
- term.setCursorPos(3,invisible)
- if string.len(listedPrograms[visible]) > 21 then
- term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
- else
- term.write(listedPrograms[visible])
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- for index, sItem in pairs(extComputerProgs) do
- listedPrograms[visible] = sItem
- if visible >= minnumber and visible <= maxnumber then
- term.setTextColor(programColor)
- term.setCursorPos(3,invisible)
- if string.len(listedPrograms[visible]) > 21 then
- term.write(string.sub(listedPrograms[visible], 1, 20) .. "..")
- else
- term.write(listedPrograms[visible])
- end
- invisible = invisible + 1
- end
- visible = visible + 1
- end
- end
- if not secureAccess then
- rednet.send(id,"L;")
- else
- rednet.send(id,"J;")
- end
- a, dL, c = rednet.receive(timeout)
- if a == nil then
- term.setTextColor(textcolor)
- term.setBackgroundColor(coloritems)
- term.setCursorPos(32,2)
- term.write(tr("$CANT_CONNECT", language))
- term.setCursorPos(32,3)
- term.write(tr("$TO_SERVER", language))
- else
- while string.find(dL,";") do
- findNew = string.find(dL.."",";")
- downloadList[ItemDownloadVisible] = string.sub(dL,1,findNew-1)
- dL = string.sub(dL,string.find(dL.."",";")+1)
- if ItemDownloadVisible >= minnum and ItemDownloadVisible <= maxnum then
- if secureAccess then
- term.setBackgroundColor(secFilesBackground)
- else
- term.setBackgroundColor(coloritems)
- end
- term.setCursorPos(32,ItemDownloadInvisible)
- term.write(downloadList[ItemDownloadVisible])
- ItemDownloadInvisible = ItemDownloadInvisible + 1
- end
- ItemDownloadVisible = ItemDownloadVisible + 1
- end
- end
- -- Programm
- while true do
- event, side, x, y = os.pullEvent()
- terminateProc = false
- if event == "mouse_click" then
- if x > 2 and x < 25 and y > 1 and y < 19 then
- if listedPrograms[y + minnumber - 2] then
- if not fs.isDir(dir.."/"..listedPrograms[y + minnumber - 2]) then
- if fs.exists(dir.."/"..listedPrograms[y + minnumber - 2]) then
- createAuswahlUpload(y)
- else
- if not accessOnComputer then
- accessOnComputer = true
- computerIDAccessing = tonumber(string.sub(listedPrograms[y + minnumber - 2], 1, string.find(listedPrograms[y + minnumber - 2].."", ";") - 1))
- rednet.send(computerIDAccessing, "$DIR;"..dir)
- idEXT, messageEXT, range = rednet.receive(1)
- if string.find(messageEXT.."","$AVAIDIR", 1, true) then
- dir = dir.."/"..string.sub(listedPrograms[y + minnumber - 2], string.find(listedPrograms[y + minnumber - 2].."", ";", 1, true) + 1, -1)
- dirText = " | "..string.sub(listedPrograms[y + minnumber - 2], string.find(listedPrograms[y + minnumber - 2].."", ";", 1, true) + 1, -1)
- local programMessage = {}
- local tempString = string.sub(messageEXT, string.find(messageEXT.."", ";") + 1, -1)
- table.insert(programMessage, textutils.unserialize(tempString))
- extComputerDirs = programMessage[1][1]
- extComputerProgs = programMessage[1][2]
- elseif string.find(messageEXT.."","$PASS", 1, true) then
- accessLockedPC(idEXT)
- end
- refreshScreen()
- else
- if searchInTable(listedPrograms[y + minnumber - 2], extComputerDirs) then
- dir = dir.."/"..listedPrograms[y + minnumber - 2]
- dirText = " | "..listedPrograms[y + minnumber - 2]
- rednet.send(computerIDAccessing, "$DIR;"..dir)
- idEXT, messageEXT, range = rednet.receive(1)
- if string.find(messageEXT.."","$AVAIDIR", 1, true) then
- local programMessage = {}
- local tempString = string.sub(messageEXT, string.find(messageEXT.."", ";") + 1, -1)
- table.insert(programMessage, textutils.unserialize(tempString))
- extComputerDirs = programMessage[1][1]
- extComputerProgs = programMessage[1][2]
- end
- refreshScreen()
- else
- createAuswahlUploadFromAccessing(y)
- end
- end
- end
- else
- dir = dir.."/"..listedPrograms[y + minnumber - 2]
- dirText = " | "..listedPrograms[y + minnumber - 2]
- refreshScreen()
- end
- end
- elseif x >= 1 and x <= 2 and y == 2 then
- if dir ~= "/" then
- dir = "/"
- dirText = " | "..tr("$CHANGE_FOLDER", language)
- accessOnComputer = false
- refreshScreen()
- end
- elseif x > 31 and x < 46 and y > 1 and y < 19 then
- createAuswahlDownload(y)
- elseif x == 51 and y == 1 then
- term.setBackgroundColor(colors.black)
- term.clear()
- term.setCursorPos(1,1)
- terminateProc = true
- elseif x == 51 and y == 19 then
- refreshScreen()
- elseif x == 1 and y == 1 and maxnumber < visible-1 and minnumber < visible then
- scrolldown()
- refreshTables()
- elseif x == 2 and y == 1 and maxnumber > 18 and minnumber > 2 then
- scrollup()
- refreshTables()
- elseif x == 29 and y == 1 and maxnum < ItemDownloadVisible-1 and minnum < ItemDownloadVisible then
- scrolldowndownload()
- refreshTables()
- elseif x == 30 and y == 1 and maxnum > 18 and minnum > 2 then
- scrollupdownload()
- refreshTables()
- elseif x == 1 and y == 19 then
- changeDir()
- refreshScreen()
- elseif x == 29 and y == 19 then
- if secureAccess then
- logout()
- else
- accessSecuredFolder()
- end
- end
- elseif event == "mouse_scroll" then
- if side == 1 and maxnumber < visible - 1 and minnumber < visible then
- scrolldown()
- refreshTables()
- elseif side == -1 and maxnumber > 18 and minnumber > 2 then
- scrollup()
- refreshTables()
- elseif side == 1 and maxnum < ItemDownloadVisible-1 and minnum < ItemDownloadVisible then
- scrolldowndownload()
- refreshTables()
- elseif side == -1 and maxnum > 18 and minnum > 2 then
- scrollupdownload()
- refreshTables()
- end
- end
- if (terminateProc) then
- break
- end
- end
- if startAProg then
- shell.run(progToStart)
- end
- -- Scripted by Streetboy_xD
- -- Please keep this text in the program.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement