From e6eae4117f1ad1fb20f395bcc85bba0cc092af68 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Tue, 6 Jan 2026 23:25:05 -0600 Subject: [PATCH] Use server version --- lib/api/server_list_server.rb | 4 +++- lib/pages/server_browser.rb | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/api/server_list_server.rb b/lib/api/server_list_server.rb index 23518d8..9e57dfb 100644 --- a/lib/api/server_list_server.rb +++ b/lib/api/server_list_server.rb @@ -2,8 +2,9 @@ class W3DHub class Api class ServerListServer NO_OR_BAD_PING = 1_000_000 + NO_OR_DEFAULT_VERSION = "838" - attr_reader :id, :game, :address, :port, :region, :channel, :ping, :status + attr_reader :id, :game, :address, :port, :region, :channel, :version, :ping, :status def initialize(hash) @data = hash @@ -14,6 +15,7 @@ class W3DHub @port = @data[:port] @region = @data[:region] @channel = @data[:channel] || "release" + @version = @data[:version] || NO_OR_DEFAULT_VERSION @ping = NO_OR_BAD_PING @status = Status.new(@data[:status]) diff --git a/lib/pages/server_browser.rb b/lib/pages/server_browser.rb index b1a11a2..31147be 100644 --- a/lib/pages/server_browser.rb +++ b/lib/pages/server_browser.rb @@ -389,11 +389,12 @@ class W3DHub flow(width: 1.0, height: 46, margin_top: 16, margin_bottom: 16) do game_installed = Store.application_manager.installed?(server.game, server.channel) game_updatable = Store.application_manager.updateable?(server.game, server.channel) + matching_version = game_installed[:installed_version] == server.version || server.version == Api::ServerListServer::NO_OR_DEFAULT_VERSION channel = Store.application_manager.channel(server.game, server.channel) style = ((channel && channel.user_level.downcase.strip == "public") || server.channel == "release") ? {} : TESTING_BUTTON flow(fill: true) - button "#{I18n.t(:"server_browser.join_server")}", enabled: (game_installed && !game_updatable), **style do + button "#{I18n.t(:"server_browser.join_server")}", enabled: (game_installed && !game_updatable && matching_version), **style do # Check for nickname # prompt for nickname # !abort unless nickname set