From 5691ffa40e7c51793b0a8b9d360567b06b32f14b Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Thu, 23 Nov 2023 09:32:07 +0400 Subject: [PATCH] Merge fix --- .../src/main/java/mage/interfaces/MageServer.java | 3 +-- .../main/java/mage/remote/MageVersionException.java | 12 ++---------- .../src/main/java/mage/remote/SessionImpl.java | 5 ++++- .../src/main/java/mage/server/MageServerImpl.java | 2 +- Mage.Server/src/main/java/mage/server/Main.java | 2 +- 5 files changed, 9 insertions(+), 15 deletions(-) diff --git a/Mage.Common/src/main/java/mage/interfaces/MageServer.java b/Mage.Common/src/main/java/mage/interfaces/MageServer.java index ffa5b4b127e..07c794eb626 100644 --- a/Mage.Common/src/main/java/mage/interfaces/MageServer.java +++ b/Mage.Common/src/main/java/mage/interfaces/MageServer.java @@ -49,8 +49,7 @@ public interface MageServer { List syncGetMissingExpansionData(List codes); List syncGetMissingCardsData(List classNames); - // server state methods - ServerState serverGetState() throws MageException; + ServerState getServerState() throws MageException; // TODO: need stable update process, so rename it after few releases UUID serverGetMainRoomId() throws MageException; diff --git a/Mage.Common/src/main/java/mage/remote/MageVersionException.java b/Mage.Common/src/main/java/mage/remote/MageVersionException.java index d67093874fc..133a0fc66b5 100644 --- a/Mage.Common/src/main/java/mage/remote/MageVersionException.java +++ b/Mage.Common/src/main/java/mage/remote/MageVersionException.java @@ -8,18 +8,10 @@ import mage.utils.MageVersion; */ public class MageVersionException extends MageException { - private final MageVersion serverVersion; - public MageVersionException(MageVersion clientVersion, MageVersion serverVersion) { super("Wrong client version." + "
Your version: " + clientVersion - + "
Server version: " + serverVersion - + "
Release app download: http://xmage.de" - + "
BETA app download: http://xmage.today"); - this.serverVersion = serverVersion; - } - - public MageVersion getServerVersion() { - return serverVersion; + + "
Server version: " + (serverVersion == null ? "unknown" : serverVersion) + + "
App download: http://xmage.today"); } } diff --git a/Mage.Common/src/main/java/mage/remote/SessionImpl.java b/Mage.Common/src/main/java/mage/remote/SessionImpl.java index cd8072d0a9e..c94dc8598c4 100644 --- a/Mage.Common/src/main/java/mage/remote/SessionImpl.java +++ b/Mage.Common/src/main/java/mage/remote/SessionImpl.java @@ -257,7 +257,10 @@ public class SessionImpl implements Session { } if (result) { - serverState = server.serverGetState(); + serverState = server.getServerState(); + if (serverState == null) { + throw new MageVersionException(client.getVersion(), null); + } // client side check for incompatible versions if (client.getVersion().compareTo(serverState.getVersion()) != 0) { diff --git a/Mage.Server/src/main/java/mage/server/MageServerImpl.java b/Mage.Server/src/main/java/mage/server/MageServerImpl.java index cffce4c17e6..9a4d1c67242 100644 --- a/Mage.Server/src/main/java/mage/server/MageServerImpl.java +++ b/Mage.Server/src/main/java/mage/server/MageServerImpl.java @@ -954,7 +954,7 @@ public class MageServerImpl implements MageServer { @Override //TODO: check how often it is used - public ServerState serverGetState() throws MageException { + public ServerState getServerState() throws MageException { try { return new ServerState( GameFactory.instance.getGameTypes(), diff --git a/Mage.Server/src/main/java/mage/server/Main.java b/Mage.Server/src/main/java/mage/server/Main.java index 028da301383..350dd6064ec 100644 --- a/Mage.Server/src/main/java/mage/server/Main.java +++ b/Mage.Server/src/main/java/mage/server/Main.java @@ -287,7 +287,7 @@ public final class Main { try { MageServer testServer = (MageServer) TransporterClient.createTransporterClient(serverLocator.getLocatorURI(), MageServer.class, metadata); if (testServer != null) { - testServer.serverGetState(); + testServer.getServerState(); return true; } } catch (Throwable t) {