AnonymusHochgenuss

teleportreceiver

Mar 30th, 2026 (edited)
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local tArgs = { ... }
  2. local sides = {"right","left","top","bottom","back","front"}
  3. if #tArgs < 2 then
  4.  if #tArgs < 1 then
  5.   print("Usage: teleport <username> <key>       | or")
  6.   print("Usage: teleport add <username> <key> <side>")
  7.   return
  8.  else
  9.   if tArgs[1] == "add" then
  10.    print("Usage: teleport add <username> <key> <side>")
  11.    return
  12.   else
  13.    print("Key Missing or wrong Arguments")
  14.    print("Usage: teleport <username> <key>       | or")
  15.    print("Usage: teleport add <username> <key> <side>")
  16.   end
  17.   return
  18.  end
  19. end
  20. argument1=tArgs[1]:lower()
  21. argument2=tArgs[2]:lower()
  22. local function removeSide(sideName)
  23.     for i = 1, #sides do
  24.         if sides[i] == sideName then
  25.             table.remove(sides, i)
  26.             return true -- Erfolg: Seite gefunden und gelöscht
  27.         end
  28.     end
  29.     return false -- Seite war nicht (mehr) in der Liste
  30. end
  31. modem=peripheral.find("modem")
  32. if modem then
  33.  modemside=peripheral.getName(modem)
  34.  removeSide(modemside)
  35. end
  36. function sidecheck()
  37.    if rside == "right" then
  38.     side="right"
  39.    elseif rside == "left" then
  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
Advertisement
Add Comment
Please, Sign In to add comment