diff options
Diffstat (limited to 'client.lua')
| -rw-r--r-- | client.lua | 28 |
1 files changed, 14 insertions, 14 deletions
@@ -1,7 +1,5 @@ local enet = require("enet") -local json = require("json") local socket = require("socket") -local base64 = require("base64") local common = require("common") local client = {} @@ -20,8 +18,8 @@ local function connect(clt, addr) end function client.join(invite, match_addr) - local decode_succ, invite_dec = pcall(base64.decode, invite) - if not decode_succ then + local invite_dec = common.base64_dec(invite) + if not invite_dec then return nil, "invalid_invite" end @@ -30,7 +28,7 @@ function client.join(invite, match_addr) local clt = create_client(secret) clt.match = clt.host:connect(match_addr or common.default_match_addr) - clt.match:send(json.encode({ type = "match_join", game_id = game_id })) + clt.match:send(common.json_enc({ type = "match_join", game_id = game_id })) clt.match_req = socket.gettime() clt.game_id = game_id clt.status = "wait_match" @@ -67,19 +65,21 @@ function client.update(clt) local event = clt.host:service(20) while event do if event.type == "receive" then - local pkt = json.decode(event.data) - if event.peer == clt.match and clt.status == "wait_match" then - handle_match(clt, pkt) - clt.match:disconnect() - clt.match = nil - elseif event.peer == clt.server then - handle_server(clt, pkt) + local pkt = common.json_dec(event.data) + if pkt then + if event.peer == clt.match and clt.status == "wait_match" then + handle_match(clt, pkt) + clt.match:disconnect() + clt.match = nil + elseif event.peer == clt.server then + handle_server(clt, pkt) + end end elseif event.type == "connect" then if event.peer == clt.match and clt.status == "wait_match" then - clt.match:send(json.encode({ type = "match_join", game_id = clt.game_id })) + clt.match:send(common.json_enc({ type = "match_join", game_id = common.base64_enc(clt.game_id) })) elseif event.peer == clt.server and clt.status == "wait_server" then - clt.server:send(json.encode({ type = "server_hi", secret = clt.secret })) + clt.server:send(common.json_enc({ type = "server_hi", secret = common.base64_enc(clt.secret) })) else event.peer:disconnect_now() end |
