Advertisement
Feddis08

client.lua

Apr 7th, 2022 (edited)
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.62 KB | None | 0 0
  1. local component = require("component")
  2. local serialization = require("serialization")
  3. local event = require("event")
  4. local computer = require("computer")
  5. local m = component.modem
  6. local serverAddress = ""
  7. local localAddresS = ""
  8. local connected = false
  9. local serverId = 1
  10.  
  11. function connectToServer()
  12.     m.open(5)
  13.     if m.isOpen(5) then
  14.         print(m.isOpen(5))
  15.         m.broadcast(5, serialization.serialize({to="router", method="connection"}))
  16.         print("Sent a request for address")
  17.         print("Waiting for answer")
  18.         local _, localAddress, from, port, distance, message = event.pull(5, "modem_message")
  19. print(event)
  20.         localAddresS = localAddress
  21.         message = serialization.unserialize(message)
  22.         if message.connected == true then
  23.             serverAddress = from
  24.             connected = true
  25.             print("Connected with the router: " .. serverAddress)    
  26.             return
  27.         end
  28.        
  29.     else
  30.         print("Can't bind on port: 5")
  31.     end
  32. end
  33.    
  34. function listen(port)
  35.     m.open(port)
  36.     local _, localAddress, from, port, distance, message = event.pull("modem_message")
  37.     message = serialization.unserialize(message)
  38.     return message
  39. end
  40.    
  41. function send(port2, to2, message2)
  42.     if connected == true then
  43.         m.open(10)
  44.         m.send(serverAddress, 10, serialization.serialize({port = port2, from = localAddresS, time = os.time(os.date("!*t")), to = to2, message = message2, messageKind = "2"}))
  45.         m.close(10)
  46.         print("sent message to router")
  47.         return
  48.     else
  49.         print("You can not send. You are not conneted")
  50.     end
  51. end
  52. function broadcast(port, message)
  53.         m.open(5)
  54.         m.send(serverAddress, 5, serialization.serialize({method = "broadcast", message = message, port = port}))
  55.         m.close(5)
  56. end
  57.  
  58. function pearing()
  59. message2 = listen(30)
  60. if message2.from == localAddresS then
  61.     pearing()
  62. else
  63. message = serialization.unserialize(message2.message)
  64. if message.serverId == "id1" then
  65.     if message.pear == "true" then
  66.         computer.beep()
  67.         print("Pearing...")
  68.         send(30, message2.from, serialization.serialize({answer = "true"}))
  69.     else
  70.         print("Pear not allowed...")
  71.         os.exit()
  72.     end
  73.     else
  74.         pearing()
  75.     end
  76. end
  77. end
  78.  
  79. function start()
  80.     print("start connection to router...")
  81.     connectToServer()
  82.     print("open ports for communication...")
  83.     m.open(30);
  84.     print("init finished")
  85.     print("start calling remote redstone server by id: " .. serverId)
  86.     broadcast(30, "pearing")
  87.     print("wait for answer...")
  88.     pearing()
  89.     end
  90. start()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement