mirror of
https://github.com/magefree/mage.git
synced 2025-12-23 20:11:59 -08:00
* UI: fixed wrong server reconnect on multiple apps runs (#5495);
This commit is contained in:
parent
978f35a6ca
commit
f81142459d
5 changed files with 43 additions and 15 deletions
|
|
@ -246,8 +246,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
|||
SessionHandler.startSession(this);
|
||||
callbackClient = new CallbackClientImpl(this);
|
||||
connectDialog = new ConnectDialog();
|
||||
try
|
||||
{
|
||||
try {
|
||||
whatsNewDialog = new WhatsNewDialog();
|
||||
} catch (NoClassDefFoundError e) {
|
||||
// JavaFX is not supported on old MacOS with OpenJDK
|
||||
|
|
@ -760,10 +759,10 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
|||
|
||||
private boolean performConnect(boolean reconnect) {
|
||||
if (currentConnection == null || !reconnect) {
|
||||
String server = MagePreferences.getServerAddress();
|
||||
int port = MagePreferences.getServerPort();
|
||||
String userName = MagePreferences.getUserName(server);
|
||||
String password = MagePreferences.getPassword(server);
|
||||
String server = MagePreferences.getLastServerAddress();
|
||||
int port = MagePreferences.getLastServerPort();
|
||||
String userName = MagePreferences.getLastServerUser();
|
||||
String password = MagePreferences.getLastServerPassword();
|
||||
String proxyServer = PREFS.get("proxyAddress", "");
|
||||
int proxyPort = Integer.parseInt(PREFS.get("proxyPort", "0"));
|
||||
ProxyType proxyType = ProxyType.valueByText(PREFS.get("proxyType", "None"));
|
||||
|
|
@ -1423,7 +1422,7 @@ public class MageFrame extends javax.swing.JFrame implements MageClient {
|
|||
hideTables();
|
||||
SessionHandler.disconnect(false);
|
||||
if (askToReconnect) {
|
||||
UserRequestMessage message = new UserRequestMessage("Connection lost", "The connection to server was lost. Reconnect?");
|
||||
UserRequestMessage message = new UserRequestMessage("Connection lost", "The connection to server was lost. Reconnect to " + MagePreferences.getLastServerAddress() + "?");
|
||||
message.setButton1("No", null);
|
||||
message.setButton2("Yes", PlayerAction.CLIENT_RECONNECT);
|
||||
showUserRequestDialog(message);
|
||||
|
|
|
|||
|
|
@ -88,6 +88,9 @@ public class ConnectDialog extends MageDialog {
|
|||
MagePreferences.setUserName(serverAddress, txtUserName.getText().trim());
|
||||
MagePreferences.setPassword(serverAddress, String.valueOf(txtPassword.getPassword()).trim());
|
||||
MageFrame.getPreferences().put(KEY_CONNECT_AUTO_CONNECT, Boolean.toString(chkAutoConnect.isSelected()));
|
||||
|
||||
// last settings for reconnect
|
||||
MagePreferences.saveLastServer();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package mage.client.preference;
|
|||
|
||||
import com.google.common.collect.Sets;
|
||||
import mage.client.MageFrame;
|
||||
import mage.client.util.Config;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.prefs.BackingStoreException;
|
||||
|
|
@ -16,9 +17,13 @@ public final class MagePreferences {
|
|||
private static final String KEY_PASSWORD = "password";
|
||||
private static final String KEY_EMAIL = "email";
|
||||
private static final String KEY_AUTO_CONNECT = "autoConnect";
|
||||
|
||||
private static final String NODE_KEY_IGNORE_LIST = "ignoreListString";
|
||||
|
||||
private static String lastServerAddress = "";
|
||||
private static int lastServerPort = 0;
|
||||
private static String lastServerUser = "";
|
||||
private static String lastServerPassword = "";
|
||||
|
||||
private static Preferences prefs() {
|
||||
// TODO: Move MageFrame.prefs to this class.
|
||||
return MageFrame.getPreferences();
|
||||
|
|
@ -138,4 +143,26 @@ public final class MagePreferences {
|
|||
return prefs().node(NODE_KEY_IGNORE_LIST).node(serverAddress);
|
||||
}
|
||||
|
||||
public static void saveLastServer() {
|
||||
lastServerAddress = getServerAddressWithDefault(Config.serverName);
|
||||
lastServerPort = getServerPortWithDefault(Config.port);
|
||||
lastServerUser = getUserName(lastServerAddress);
|
||||
lastServerPassword = getPassword(lastServerAddress);
|
||||
}
|
||||
|
||||
public static String getLastServerAddress() {
|
||||
return lastServerAddress.isEmpty() ? getServerAddress() : lastServerAddress;
|
||||
}
|
||||
|
||||
public static int getLastServerPort() {
|
||||
return lastServerPort == 0 ? getServerPort() : lastServerPort;
|
||||
}
|
||||
|
||||
public static String getLastServerUser() {
|
||||
return lastServerUser.isEmpty() ? getUserName(getLastServerAddress()) : lastServerUser;
|
||||
}
|
||||
|
||||
public static String getLastServerPassword() {
|
||||
return lastServerPassword.isEmpty() ? getPassword(getLastServerAddress()) : lastServerPassword;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,9 @@
|
|||
|
||||
package mage.interfaces;
|
||||
|
||||
import mage.interfaces.callback.CallbackClient;
|
||||
import mage.utils.MageVersion;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
*/
|
||||
public interface MageClient extends CallbackClient {
|
||||
|
|
@ -14,7 +12,7 @@ public interface MageClient extends CallbackClient {
|
|||
|
||||
void connected(String message);
|
||||
|
||||
void disconnected(boolean errorCall);
|
||||
void disconnected(boolean askToReconnect);
|
||||
|
||||
void showMessage(String message);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package org.mage.test.load;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.interfaces.MageClient;
|
||||
import mage.interfaces.callback.ClientCallback;
|
||||
import mage.remote.Session;
|
||||
|
|
@ -8,6 +7,8 @@ import mage.utils.MageVersion;
|
|||
import mage.view.GameView;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* For tests only
|
||||
*
|
||||
|
|
@ -38,7 +39,7 @@ public class SimpleMageClient implements MageClient {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void disconnected(boolean errorCall) {
|
||||
public void disconnected(boolean askToReconnect) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
|
|
@ -62,11 +63,11 @@ public class SimpleMageClient implements MageClient {
|
|||
}
|
||||
|
||||
public void setSession(Session session) {
|
||||
((LoadCallbackClient) callbackClient).setSession(session);
|
||||
callbackClient.setSession(session);
|
||||
}
|
||||
|
||||
public boolean isGameOver() {
|
||||
return ((LoadCallbackClient) callbackClient).isGameOver();
|
||||
return callbackClient.isGameOver();
|
||||
}
|
||||
|
||||
public void setConcede(boolean needToConcede) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue