diff options
Diffstat (limited to 'client/multiplayer.gd')
-rw-r--r-- | client/multiplayer.gd | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/client/multiplayer.gd b/client/multiplayer.gd index 4c334700..d3e80613 100644 --- a/client/multiplayer.gd +++ b/client/multiplayer.gd @@ -52,9 +52,11 @@ signal score(demands_failed: int, demands_completed: int, points: int, time_rema signal hide_score() signal server_message(text: String) signal replay_start() - signal connection_closed(reason: String) +const VERSION_MAJOR: int = 1 +const VERSION_MINOR: int = 0 + var connected := false var socket := WebSocketPeer.new() @@ -81,7 +83,7 @@ func _process(_delta): var code = socket.get_close_code() var reason = socket.get_close_reason() connection_closed.emit( - "WebSocket closed with code: %d, reason %s. Clean: %s" % [code, reason, code != - 1] + tr("WebSocket closed with code: %d, reason %s. Clean: %s") % [code, reason, code != - 1] ) self.queue_free() @@ -96,6 +98,13 @@ func handle_packet(bytes: PackedByteArray): "init": var player_id = decoded["id"] init.emit(player_id) + "version": + var major = decoded["major"] + var minor = decoded["minor"] + if major != VERSION_MAJOR or minor != VERSION_MINOR: + socket.close() + connected = false + connection_closed.emit(tr("Server and client versions do not match. Server: %d.%d, Client: %d.%d.\nAre you sure the game is up to date?") % [major, minor, VERSION_MAJOR, VERSION_MINOR]) "data": var item_names = decoded["data"]["item_names"] var tile_names = decoded["data"]["tile_names"] |