From 2558e05b3661d3812ca6d417e5604da615124644 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 30 Oct 2025 19:35:00 +0100 Subject: Add connection keepalives; Disconnect reasions --- client/game.gd | 2 ++ client/multiplayer.gd | 7 +++---- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'client') diff --git a/client/game.gd b/client/game.gd index 62a25f18..2c65138d 100644 --- a/client/game.gd +++ b/client/game.gd @@ -387,6 +387,8 @@ func handle_packet(p): $Environment.update(p.effects) "redirect": get_parent().replace_menu("res://gui/menus/game.tscn", p.uri[0]) + "disconnect": + get_parent().replace_menu("res://gui/menus/error.tscn", [tr(p.reason.translation.id), menu.data]) "replay_start": is_replay = true "replay_stop": diff --git a/client/multiplayer.gd b/client/multiplayer.gd index 3ee303ee..aa9c2c75 100644 --- a/client/multiplayer.gd +++ b/client/multiplayer.gd @@ -49,10 +49,9 @@ func _process(_delta): if connected: socket.poll() var state = socket.get_ready_state() - if state == WebSocketPeer.STATE_OPEN: - while socket.get_available_packet_count(): - handle_packet(socket.get_packet()) - elif state == WebSocketPeer.STATE_CLOSED: + while socket.get_available_packet_count(): + handle_packet(socket.get_packet()) + if state == WebSocketPeer.STATE_CLOSED: var code = socket.get_close_code() var reason = socket.get_close_reason() if code == socket.STATE_CLOSED else tr("c.error.websocket.unavailable") connection_closed.emit(tr("c.error.websocket").format([code, reason, code != -1])) -- cgit v1.3