Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local function init_server()
- rednet.open("back")
- rednet.host("123", "server")
- write("Server is "..rednet.lookup("123").."\n")
- end
- local function get_id_list()
- local file = fs.open("server/info", "r")
- local data = file.readAll()
- file.close()
- return textutils.unserialise(data)
- end
- local function check_field(id_list, id, field)
- for i=1,#id_list do
- if id==id_list[i][field] then
- return i
- end
- end
- return 0
- end
- local function check_id(id_list)
- local sender, message, protocol
- local offset
- sender, message, protocol = rednet.receive()
- write("Received Login\n")
- i = check_field(id_list, message, 1)
- if i~=0 then
- rednet.send(sender, "OK")
- sender, message = rednet.receive()
- write("Received Pass\n")
- if id_list[i][2]==message then
- write(id_list[i][1].." connected!\n")
- rednet.send(sender, "OK")
- message = ""
- while message ~= "Received" do
- sender, message = rednet.receive()
- end
- rednet.send(sender, id_list[i][3])
- return true
- else
- write("Pass incorrect\n")
- end
- else
- write("Login incorrect\n")
- end
- rednet.send(sender, "KO")
- return false
- end
- local function loop(id_list)
- while true do
- if check_id(id_list) then
- break
- end
- end
- end
- local function end_server()
- rednet.close("back")
- rednet.unhost("123", "server")
- write("Stopped the server\n")
- end
- local function main()
- local id_list
- init_server()
- id_list = get_id_list()
- loop(id_list)
- end_server()
- end
- main()
Add Comment
Please, Sign In to add comment