Advertisement
Guest User

server

a guest
Jan 20th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.44 KB | None | 0 0
  1. -- VARIABLES
  2. local host_id = os.computerID()
  3. local users = {}
  4.  
  5. -- FUNCTIONS
  6. function user_joined(user_id)
  7.   rednet.broadcast(user_id.." joined the server", "message")
  8.   print(user_id.." joined the server")
  9.   users[#users+1] = user_id
  10. end
  11.  
  12. function user_left(user_id)
  13.   local mess = user_id.." disconnected from the server"
  14.   rednet.broadcast(mess, "message")
  15.   print(user_id.." disconnected from the server")
  16.   for i=1, #users do
  17.     if users[i] == user_id then
  18.       table.remove(users, i)
  19.     end
  20.   end
  21. end
  22.  
  23. function id_request(user_id)
  24.   rednet.send(user_id, host_id, "server_id_response")
  25.   print(user_id.." requested server id")
  26. end
  27.  
  28. function list_request(user_id)
  29.   local mess = "Users on server: "
  30.   for i=1, #users do
  31.     mess = mess..users[i].." "
  32.   end
  33.   rednet.send(user_id, mess, "list_response")
  34.   print(user_id.." requested user list")
  35. end
  36.  
  37. function message_sent(user_id, message)
  38.   rednet.broadcast(user_id.."- "..message, "message")
  39.   print(user_id.."- "..message)
  40. end
  41. -- MAIN CODE
  42. rednet.open("back")
  43. rednet.broadcast("Server is online", "message")
  44. print("Server is online")
  45. while true do
  46.   local event, param1, param2, param3 = os.pullEvent()
  47.   if event == "rednet_message" then
  48.     if param3 == "server_id" then
  49.       id_request(param1)
  50.     end
  51.     if param3 == "join" then
  52.       user_joined(param1)
  53.     end
  54.     if param3 == "leave" then
  55.       user_left(param1)
  56.     end
  57.     if param3 == "list" then
  58.       list_request(param1)
  59.     end
  60.     if param3 == "message" then
  61.       message_sent(param1, param2)
  62.     end
  63.   end
  64.   if event == "key" then
  65.     write(">")
  66.     local input = read()
  67.     if input == "list" then
  68.       if #users > 0 then
  69.       local lista = "Users connected: "
  70.       for i=1,#users do
  71.         lista = lista..users[i].." "
  72.       end
  73.       print(lista)
  74.       else
  75.         print("There are no users")
  76.       end
  77.     elseif input == "exit" then
  78.       rednet.broadcast("Server is offline", "message")
  79.       textutils.slowPrint("Closing server . . .")
  80.       break
  81.     elseif input == "say" then
  82.       write("Type your message: ")
  83.       local messag = read()
  84.       rednet.broadcast("server- "..messag, "message")
  85.       print("server- "..messag)
  86.     elseif input == "help" then
  87.       print("list: shows user list")
  88.       print("exit: closes server")
  89.       print("say: allows you to say sth to chat")
  90.     else
  91.       print("Unknown command, type \"help\" for help")
  92.     end
  93.   end
  94. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement