use of com.faforever.client.config.ClientProperties.Server in project downlords-faf-client by FAForever.
the class FafServerAccessorImpl method connectAndLogIn.
@Override
public CompletableFuture<LoginMessage> connectAndLogIn(String username, String password) {
sessionFuture = new CompletableFuture<>();
loginFuture = new CompletableFuture<>();
this.username = username;
this.password = password;
// TODO extract class?
fafConnectionTask = new Task<Void>() {
@Override
protected Void call() throws Exception {
while (!isCancelled()) {
Server server = clientProperties.getServer();
String serverHost = server.getHost();
int serverPort = server.getPort();
logger.info("Trying to connect to FAF server at {}:{}", serverHost, serverPort);
Platform.runLater(() -> connectionState.set(ConnectionState.CONNECTING));
try (Socket fafServerSocket = new Socket(serverHost, serverPort);
OutputStream outputStream = fafServerSocket.getOutputStream()) {
FafServerAccessorImpl.this.fafServerSocket = fafServerSocket;
fafServerSocket.setKeepAlive(true);
localIp = fafServerSocket.getLocalAddress().getHostAddress();
serverWriter = createServerWriter(outputStream);
writeToServer(new InitSessionMessage(Version.VERSION));
logger.info("FAF server connection established");
Platform.runLater(() -> connectionState.set(ConnectionState.CONNECTED));
blockingReadServer(fafServerSocket);
} catch (IOException e) {
Platform.runLater(() -> connectionState.set(ConnectionState.DISCONNECTED));
if (isCancelled()) {
logger.debug("Connection to FAF server has been closed");
} else {
logger.warn("Lost connection to FAF server, trying to reconnect in " + RECONNECT_DELAY / 1000 + "s", e);
Thread.sleep(RECONNECT_DELAY);
}
}
}
return null;
}
@Override
protected void cancelled() {
IOUtils.closeQuietly(serverWriter);
IOUtils.closeQuietly(fafServerSocket);
logger.debug("Closed connection to FAF lobby server");
}
};
executeInBackground(fafConnectionTask);
return loginFuture;
}
use of com.faforever.client.config.ClientProperties.Server in project downlords-faf-client by FAForever.
the class LoginController method onLoginButtonClicked.
public void onLoginButtonClicked() {
String username = usernameInput.getText();
String password = passwordInput.getText();
boolean autoLogin = autoLoginCheckBox.isSelected();
Server server = clientProperties.getServer();
server.setHost(serverHostField.getText());
server.setPort(Integer.parseInt(serverPortField.getText()));
Replay replay = clientProperties.getReplay();
replay.setRemoteHost(replayServerHostField.getText());
replay.setRemotePort(Integer.parseInt(replayServerPortField.getText()));
clientProperties.getApi().setBaseUrl(apiBaseUrl.getText());
login(username, password, autoLogin);
}
Aggregations