39 lines
1.2 KiB
Lua
39 lines
1.2 KiB
Lua
local constants = require("constants")
|
|
local util = require("utils")
|
|
local rpc = require("rpc")
|
|
|
|
local clientCount = 0
|
|
|
|
local world = {
|
|
x = 3000,
|
|
y = 3000,
|
|
id = "NYAAA"
|
|
}
|
|
|
|
return function(commands)
|
|
function commands.init(args, ip, port)
|
|
clientCount = clientCount +1
|
|
local nickname, avatar = util.nextStringRecord(args)
|
|
clients[clientCount] = { ip = ip, port = port, name = nickname, avatar = avatar }
|
|
|
|
print("New client connected. Granting id: [" .. clientCount .. "] IP: " .. ip .. " Port:" .. port)
|
|
for i, client in pairs(clients) do
|
|
if i ~= clientCount then
|
|
print("Introducing client[" .. i .. "] and client[" .. clientCount .. "]")
|
|
-- to Existing client
|
|
local payload = util.unit(protocolVersion, clientCount, "playerJoin", nickname, avatar)
|
|
print("<= " .. util.pprint(payload))
|
|
server:sendto(payload, client.ip, client.port)
|
|
-- to New client
|
|
local payload = util.unit(protocolVersion, i, "playerJoin", client.name, client.avatar)
|
|
print("<= " .. util.pprint(payload))
|
|
server:sendto(payload, ip, port)
|
|
end
|
|
end
|
|
|
|
-- Client response
|
|
local response = util.unit(protocolVersion, clientCount, "init", nickname, avatar, world.id, world.x, world.y)
|
|
server:sendto(response, ip, port)
|
|
end
|
|
end
|