Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- Minecraft Intranet
- Client program
- --]]
- print("Minecraft Intranet :: Client")
- print()
- -- Load dependencies
- dofile("/common/all")
- program.load("message", "names", "device", "devices/client")
- -- Create client
- local configPath = "/client.conf"
- local defaultConfig = {
- name = nil,
- domain = nil,
- detectTimeout = 1
- }
- local config = common.loadStore(configPath, defaultConfig)
- local client = mcnet.device.Client:new{
- name = config.name,
- domain = config.domain
- }
- print(" Address: "..mcnet.address.format(client.address))
- print(" Computer ID: "..tostring(os.computerID()))
- print()
- -- Register handlers
- client:on("registerServer", function(serverId)
- print("Registering server at "..serverId.."...")
- end)
- client:on("registeredServer", function()
- print(" Successfully registered at server")
- end)
- client:on("unregisteredServer", function(serverId)
- print("Unregistered server at "..serverId)
- end)
- client:on("char", function(char)
- if char == "q" then
- -- Confirm quit
- write("Confirm quit? [y/n] > ")
- local event, char = os.pullEvent("char")
- -- Check response
- local response = (string.lower(char) == "y" and "y") or "n"
- print(response)
- if (response == "y") then
- client:stop()
- end
- end
- end)
- client:on("key", function(key)
- if (key == 28) then -- Enter
- -- Send message
- print("> Send message")
- write("To: ")
- local address = read()
- write("Message: ")
- local message = read()
- local msg = mcnet.message.new{
- type = "mailMessage",
- to = mcnet.address.parse(address),
- data = message
- }
- client:post(msg)
- end
- end)
- client:on("error", function(errorType, errorMessage)
- print("[ERROR] "..errorMessage)
- end)
- -- Mail message receiver
- client:addMessageHandler("mailMessage", function(self, senderId, msg)
- print("> New message from "..msg.from:format())
- print(" "..tostring(msg.data))
- end)
- -- Start
- print("Starting...")
- client:start(config.detectTimeout)
- write(" Detected:")
- for i,deviceId in pairs(client:neighbours()) do
- write(" "..deviceId)
- end
- print()
- print()
- -- Main loop
- print("Listening...")
- print(" Press Q to quit")
- print()
- while client.isRunning do
- client:trigger(os.pullEvent())
- end
- -- Stop
- print()
- print("Stopped")
- print()
Advertisement
Add Comment
Please, Sign In to add comment