summaryrefslogtreecommitdiff
path: root/client.lua
diff options
context:
space:
mode:
authorLizzy Fleckenstein <lizzy@vlhl.dev>2026-06-03 02:16:04 +0200
committerLizzy Fleckenstein <lizzy@vlhl.dev>2026-06-03 02:16:04 +0200
commit4a79d7220f753cc9e26a2812da131218b46b6c1c (patch)
treec0631982a2584222299f55d3b2865b0cdc6d957c /client.lua
parentf08683a3775989e749237cd001a8eaf3193d1684 (diff)
downloadr6p-4a79d7220f753cc9e26a2812da131218b46b6c1c.tar.xz
vendor json library
Diffstat (limited to 'client.lua')
-rw-r--r--client.lua28
1 files changed, 14 insertions, 14 deletions
diff --git a/client.lua b/client.lua
index b300d2b..8639c2c 100644
--- a/client.lua
+++ b/client.lua
@@ -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