Twigister

ForAbby/Twig Server

Aug 15th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local function init_server()
  2.   rednet.open("back")
  3.   rednet.host("123", "server")
  4.   write("Server is "..rednet.lookup("123").."\n")
  5. end
  6.  
  7. local function get_id_list()
  8.   local file = fs.open("server/info", "r")
  9.   local data = file.readAll()
  10.   file.close()
  11.   return textutils.unserialise(data)
  12. end
  13.  
  14. local function check_field(id_list, id, field)
  15.   for i=1,#id_list do
  16.     if id==id_list[i][field] then
  17.       return i
  18.     end
  19.   end
  20.   return 0
  21. end
  22.  
  23. local function check_id(id_list)
  24.   local sender, message, protocol
  25.   local offset
  26.  
  27.   sender, message, protocol = rednet.receive()
  28.   write("Received Login\n")
  29.   i = check_field(id_list, message, 1)
  30.   if i~=0 then
  31.     rednet.send(sender, "OK")
  32.     sender, message = rednet.receive()
  33.     write("Received Pass\n")
  34.     if id_list[i][2]==message then
  35.       write(id_list[i][1].." connected!\n")
  36.       rednet.send(sender, "OK")
  37.       message = ""
  38.       while message ~= "Received" do
  39.         sender, message = rednet.receive()
  40.       end  
  41.       rednet.send(sender, id_list[i][3])
  42.       return true
  43.     else
  44.       write("Pass incorrect\n")
  45.     end
  46.   else
  47.     write("Login incorrect\n")
  48.   end
  49.   rednet.send(sender, "KO")
  50.   return false
  51. end
  52.  
  53. local function loop(id_list)
  54.   while true do
  55.     if check_id(id_list) then
  56.       break
  57.     end
  58.   end
  59. end
  60.  
  61. local function end_server()
  62.   rednet.close("back")
  63.   rednet.unhost("123", "server")
  64.   write("Stopped the server\n")
  65. end
  66.  
  67. local function main()
  68.   local id_list
  69.  
  70.   init_server()
  71.   id_list = get_id_list()
  72.   loop(id_list)
  73.   end_server()  
  74. end
  75.  
  76. main()
Add Comment
Please, Sign In to add comment