Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local tArgs = { ... }
- local sides = {"right","left","top","bottom","back","front"}
- if #tArgs < 2 then
- if #tArgs < 1 then
- print("Usage: teleport <username> <key> | or")
- print("Usage: teleport add <username> <key> <side>")
- return
- else
- if tArgs[1] == "add" then
- print("Usage: teleport add <username> <key> <side>")
- return
- else
- print("Key Missing or wrong Arguments")
- print("Usage: teleport <username> <key> | or")
- print("Usage: teleport add <username> <key> <side>")
- end
- return
- end
- end
- argument1=tArgs[1]:lower()
- argument2=tArgs[2]:lower()
- local function removeSide(sideName)
- for i = 1, #sides do
- if sides[i] == sideName then
- table.remove(sides, i)
- return true -- Erfolg: Seite gefunden und gelöscht
- end
- end
- return false -- Seite war nicht (mehr) in der Liste
- end
- modem=peripheral.find("modem")
- if modem then
- modemside=peripheral.getName(modem)
- removeSide(modemside)
- end
- function sidecheck()
- if rside == "right" then
- side="right"
- elseif rside == "left" then
- side="left"
- elseif rside == "top" then
- side="top"
- elseif rside == "bottom" then
- side="bottom"
- elseif rside == "back" then
- side="back"
- elseif rside == "front" then
- side="front"
- else
- print("no matching side found. try again spelling right :)")
- return
- end
- removeSide(rside)
- end
- if argument1 == "add" then
- if fs.exists("users") then
- file=fs.open("users","r")
- users={}
- line=file.readLine()
- while line do
- for word in line:gmatch("%S+") do
- table.insert(users,word)
- if #users > 2 then
- usedside=users[3]
- removeSide(usedside)
- end
- end
- users={}
- line=file.readLine()
- end
- file.close()
- end
- if #tArgs > 1 then
- if #tArgs > 2 then
- if #tArgs > 3 then
- rside=tArgs[4]:lower()
- sidecheck()
- username=argument2:lower()
- key=tArgs[3]
- else
- username=argument2:lower()
- key=tArgs[3]
- print("side? available: "..textutils.serialise(sides))
- write("side: ")
- rside=read():lower()
- sidecheck()
- end
- else
- username=tArgs[2]:lower()
- write("key: ")
- key=read()
- print("side? available: "..textutils.serialise(sides))
- write("side: ")
- rside=read():lower()
- sidecheck()
- end
- else
- print("usage: teleport add <username> <key> <side>")
- return
- end
- if fs.exists("users") then
- file=fs.open("users","a")
- else
- file=fs.open("users","w")
- end
- user=username.." "..key.." "..side
- file.writeLine(user)
- file.close()
- print("user added")
- return
- else
- username = argument1
- key = tArgs[2]
- if not fs.exists("users") then
- print("users file missing")
- print("create a user first")
- print("run: teleport add <username> <key> <side>")
- return
- end
- file=fs.open("users","r")
- users={}
- line=file.readLine()
- local found = false -- Wir merken uns, ob wir jemanden gefunden haben
- while line do
- local users = {} -- Tabelle für die aktuelle Zeile
- for word in line:gmatch("%S+") do
- table.insert(users, word)
- end
- if #users >= 3 then
- local fileUser = users[1]
- local fileKey = users[2]
- local fileSide = users[3]
- if username == fileUser then
- found = true -- Treffer!
- if key == fileKey then
- print(fileUser.." tries to teleport. Teleporting..")
- rs.setOutput(fileSide, true)
- sleep(0.5)
- rs.setOutput(fileSide, false)
- print("teleported.")
- file.close()
- return -- Jetzt dürfen wir beenden, da Erfolg
- else
- print("User tried to teleport "..fileUser..". Wrong password!")
- file.close()
- return -- Passwort falsch? Dann auch direkt Ende
- end
- end
- end
- -- WICHTIG: Hier die Variable "line" aktualisieren
- line = file.readLine()
- end
- file.close()
- -- Erst HIER (nach der Schleife) prüfen wir, ob wir Erfolg hatten
- if not found then
- print("Username not Found.")
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment