View difference between Paste ID: Dh6KrZuH and vPr1B0iQ
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