SHOW:
|
|
- or go back to the newest paste.
| 1 | local tArgs = { ... }
| |
| 2 | local sides = {"right","left","top","bottom","back","front"}
| |
| 3 | if #tArgs < 2 then | |
| 4 | - | print("Teleport Username Missing")
|
| 4 | + | |
| 5 | print("Usage: teleport <username> <key> | or")
| |
| 6 | print("Usage: teleport add <username> <key> <side>")
| |
| 7 | - | print("Teleport Key Missing")
|
| 7 | + | |
| 8 | else | |
| 9 | if tArgs[1] == "add" then | |
| 10 | print("Usage: teleport add <username> <key> <side>")
| |
| 11 | return | |
| 12 | - | username = tArgs[1]:lower() |
| 12 | + | else |
| 13 | - | key = tArgs[2] |
| 13 | + | print("Key Missing or wrong Arguments")
|
| 14 | print("Usage: teleport <username> <key> | or")
| |
| 15 | - | function teleport(side) |
| 15 | + | print("Usage: teleport add <username> <key> <side>")
|
| 16 | - | rs.setOutput(side, true) |
| 16 | + | end |
| 17 | - | sleep(0.5) |
| 17 | + | |
| 18 | - | rs.setOutput(side, false) |
| 18 | + | |
| 19 | end | |
| 20 | argument1=tArgs[1]:lower() | |
| 21 | - | if username == "luca" then |
| 21 | + | argument2=tArgs[2]:lower() |
| 22 | - | print("Trying to Teleport Luca")
|
| 22 | + | local function removeSide(sideName) |
| 23 | - | if key == "1708" then |
| 23 | + | for i = 1, #sides do |
| 24 | - | print("Teleported")
|
| 24 | + | if sides[i] == sideName then |
| 25 | - | teleport("left")
|
| 25 | + | table.remove(sides, i) |
| 26 | return true -- Erfolg: Seite gefunden und gelöscht | |
| 27 | - | print("failed. wrong key")
|
| 27 | + | end |
| 28 | end | |
| 29 | - | elseif username == "justin" then |
| 29 | + | return false -- Seite war nicht (mehr) in der Liste |
| 30 | - | print("Trying to Teleport Justin")
|
| 30 | + | |
| 31 | - | if key == "42" then |
| 31 | + | modem=peripheral.find("modem")
|
| 32 | - | print("Teleported")
|
| 32 | + | if modem then |
| 33 | - | teleport("right")
|
| 33 | + | modemside=peripheral.getName(modem) |
| 34 | removeSide(modemside) | |
| 35 | - | print("failed. wrong key")
|
| 35 | + | |
| 36 | function sidecheck() | |
| 37 | if rside == "right" then | |
| 38 | - | print("User not found")
|
| 38 | + | side="right" |
| 39 | elseif rside == "left" then | |
| 40 | - | |
| 40 | + | side="left" |
| 41 | elseif rside == "top" then | |
| 42 | side="top" | |
| 43 | elseif rside == "bottom" then | |
| 44 | side="bottom" | |
| 45 | elseif rside == "back" then | |
| 46 | side="back" | |
| 47 | elseif rside == "front" then | |
| 48 | side="front" | |
| 49 | else | |
| 50 | print("no matching side found. try again spelling right :)")
| |
| 51 | return | |
| 52 | end | |
| 53 | removeSide(rside) | |
| 54 | end | |
| 55 | ||
| 56 | if argument1 == "add" then | |
| 57 | if fs.exists("users") then
| |
| 58 | file=fs.open("users","r")
| |
| 59 | users={}
| |
| 60 | line=file.readLine() | |
| 61 | while line do | |
| 62 | for word in line:gmatch("%S+") do
| |
| 63 | table.insert(users,word) | |
| 64 | if #users > 2 then | |
| 65 | usedside=users[3] | |
| 66 | removeSide(usedside) | |
| 67 | end | |
| 68 | end | |
| 69 | users={}
| |
| 70 | line=file.readLine() | |
| 71 | end | |
| 72 | file.close() | |
| 73 | end | |
| 74 | if #tArgs > 1 then | |
| 75 | if #tArgs > 2 then | |
| 76 | if #tArgs > 3 then | |
| 77 | rside=tArgs[4]:lower() | |
| 78 | sidecheck() | |
| 79 | username=argument2:lower() | |
| 80 | key=tArgs[3] | |
| 81 | else | |
| 82 | username=argument2:lower() | |
| 83 | key=tArgs[3] | |
| 84 | print("side? available: "..textutils.serialise(sides))
| |
| 85 | write("side: ")
| |
| 86 | rside=read():lower() | |
| 87 | sidecheck() | |
| 88 | end | |
| 89 | else | |
| 90 | username=tArgs[2]:lower() | |
| 91 | write("key: ")
| |
| 92 | key=read() | |
| 93 | print("side? available: "..textutils.serialise(sides))
| |
| 94 | write("side: ")
| |
| 95 | rside=read():lower() | |
| 96 | sidecheck() | |
| 97 | end | |
| 98 | else | |
| 99 | print("usage: teleport add <username> <key> <side>")
| |
| 100 | return | |
| 101 | end | |
| 102 | if fs.exists("users") then
| |
| 103 | file=fs.open("users","a")
| |
| 104 | else | |
| 105 | file=fs.open("users","w")
| |
| 106 | end | |
| 107 | user=username.." "..key.." "..side | |
| 108 | file.writeLine(user) | |
| 109 | file.close() | |
| 110 | print("user added")
| |
| 111 | return | |
| 112 | else | |
| 113 | username = argument1 | |
| 114 | key = tArgs[2] | |
| 115 | if not fs.exists("users") then
| |
| 116 | print("users file missing")
| |
| 117 | print("create a user first")
| |
| 118 | print("run: teleport add <username> <key> <side>")
| |
| 119 | return | |
| 120 | end | |
| 121 | file=fs.open("users","r")
| |
| 122 | users={}
| |
| 123 | line=file.readLine() | |
| 124 | ||
| 125 | local found = false -- Wir merken uns, ob wir jemanden gefunden haben | |
| 126 | ||
| 127 | while line do | |
| 128 | local users = {} -- Tabelle für die aktuelle Zeile
| |
| 129 | for word in line:gmatch("%S+") do
| |
| 130 | table.insert(users, word) | |
| 131 | end | |
| 132 | ||
| 133 | if #users >= 3 then | |
| 134 | local fileUser = users[1] | |
| 135 | local fileKey = users[2] | |
| 136 | local fileSide = users[3] | |
| 137 | ||
| 138 | if username == fileUser then | |
| 139 | found = true -- Treffer! | |
| 140 | if key == fileKey then | |
| 141 | print(fileUser.." tries to teleport. Teleporting..") | |
| 142 | rs.setOutput(fileSide, true) | |
| 143 | sleep(0.5) | |
| 144 | rs.setOutput(fileSide, false) | |
| 145 | print("teleported.")
| |
| 146 | file.close() | |
| 147 | return -- Jetzt dürfen wir beenden, da Erfolg | |
| 148 | else | |
| 149 | print("User tried to teleport "..fileUser..". Wrong password!")
| |
| 150 | file.close() | |
| 151 | return -- Passwort falsch? Dann auch direkt Ende | |
| 152 | end | |
| 153 | end | |
| 154 | end | |
| 155 | ||
| 156 | -- WICHTIG: Hier die Variable "line" aktualisieren | |
| 157 | line = file.readLine() | |
| 158 | end | |
| 159 | ||
| 160 | file.close() | |
| 161 | ||
| 162 | -- Erst HIER (nach der Schleife) prüfen wir, ob wir Erfolg hatten | |
| 163 | if not found then | |
| 164 | print("Username not Found.")
| |
| 165 | end | |
| 166 | end |