Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- VARIABLES
- local host_id = os.computerID()
- local users = {}
- -- FUNCTIONS
- function user_joined(user_id)
- rednet.broadcast(user_id.." joined the server", "message")
- print(user_id.." joined the server")
- users[#users+1] = user_id
- end
- function user_left(user_id)
- local mess = user_id.." disconnected from the server"
- rednet.broadcast(mess, "message")
- print(user_id.." disconnected from the server")
- for i=1, #users do
- if users[i] == user_id then
- table.remove(users, i)
- end
- end
- end
- function id_request(user_id)
- rednet.send(user_id, host_id, "server_id_response")
- print(user_id.." requested server id")
- end
- function list_request(user_id)
- local mess = "Users on server: "
- for i=1, #users do
- mess = mess..users[i].." "
- end
- rednet.send(user_id, mess, "list_response")
- print(user_id.." requested user list")
- end
- function message_sent(user_id, message)
- rednet.broadcast(user_id.."- "..message, "message")
- print(user_id.."- "..message)
- end
- -- MAIN CODE
- rednet.open("back")
- rednet.broadcast("Server is online", "message")
- print("Server is online")
- while true do
- local event, param1, param2, param3 = os.pullEvent()
- if event == "rednet_message" then
- if param3 == "server_id" then
- id_request(param1)
- end
- if param3 == "join" then
- user_joined(param1)
- end
- if param3 == "leave" then
- user_left(param1)
- end
- if param3 == "list" then
- list_request(param1)
- end
- if param3 == "message" then
- message_sent(param1, param2)
- end
- end
- if event == "key" then
- write(">")
- local input = read()
- if input == "list" then
- if #users > 0 then
- local lista = "Users connected: "
- for i=1,#users do
- lista = lista..users[i].." "
- end
- print(lista)
- else
- print("There are no users")
- end
- elseif input == "exit" then
- rednet.broadcast("Server is offline", "message")
- textutils.slowPrint("Closing server . . .")
- break
- elseif input == "say" then
- write("Type your message: ")
- local messag = read()
- rednet.broadcast("server- "..messag, "message")
- print("server- "..messag)
- elseif input == "help" then
- print("list: shows user list")
- print("exit: closes server")
- print("say: allows you to say sth to chat")
- else
- print("Unknown command, type \"help\" for help")
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement