Added new client-server incompatible checks:

* added strict mode (client and server versions must be same, see MAGE_VERSION_MINOR_PATCH_MUST_BE_SAME);
 * you must enable string mode after github code changes in serializeable classes (see #4459);
 * added client-side version checks;
 * added error message on wrong version disconnects.
This commit is contained in:
Oleg Agafonov 2019-01-18 13:32:37 +04:00
parent fa0e295932
commit f223bdab31
6 changed files with 52 additions and 13 deletions

View file

@ -1,6 +1,5 @@
package mage.client;
import java.util.*;
import mage.cards.decks.DeckCardLists;
import mage.client.chat.LocalCommands;
import mage.client.dialog.PreferencesDialog;
@ -16,19 +15,22 @@ import mage.remote.Session;
import mage.remote.SessionImpl;
import mage.view.*;
import java.util.*;
/**
* Created by IGOUDT on 15-9-2016.
*/
public final class SessionHandler {
private static Session session;
private static String lastConnectError = "";
public static void startSession(MageFrame mageFrame) {
session = new SessionImpl(mageFrame);
session.setJsonLogActive("true".equals(PreferencesDialog.getCachedValue(PreferencesDialog.KEY_GAME_LOG_AUTO_SAVE, "true")));
}
public static void ping() {
session.ping();
}
@ -46,7 +48,17 @@ public final class SessionHandler {
}
public static boolean connect(Connection connection) {
return session.connect(connection);
lastConnectError = "";
if (session.connect(connection)) {
return true;
} else {
lastConnectError = session.getLastError();
return false;
}
}
public static String getLastConnectError() {
return lastConnectError;
}
public static boolean stopConnecting() {