use of com.faforever.client.reporting.ReportingService in project downlords-faf-client by FAForever.
the class GameServiceImpl method startGame.
/**
* Actually starts the game, including relay and replay server. Call this method when everything else is prepared
* (mod/map download, connectivity check etc.)
*/
private void startGame(GameLaunchMessage gameLaunchMessage, Faction faction, RatingMode ratingMode) {
if (isRunning()) {
logger.warn("Forged Alliance is already running, not starting game");
return;
}
stopSearchLadder1v1();
replayService.startReplayServer(gameLaunchMessage.getUid()).thenCompose(aVoid -> iceAdapter.start()).thenAccept(adapterPort -> {
List<String> args = fixMalformedArgs(gameLaunchMessage.getArgs());
process = noCatch(() -> forgedAllianceService.startGame(gameLaunchMessage.getUid(), faction, args, ratingMode, adapterPort, clientProperties.getReplay().getLocalServerPort(), rehostRequested, getCurrentPlayer()));
setGameRunning(true);
this.ratingMode = ratingMode;
spawnTerminationListener(process);
}).exceptionally(throwable -> {
logger.warn("Game could not be started", throwable);
notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("game.start.couldNotStart"), ERROR, throwable, Arrays.asList(new ReportAction(i18n, reportingService, throwable), new DismissAction(i18n))));
setGameRunning(false);
return null;
});
}
use of com.faforever.client.reporting.ReportingService in project downlords-faf-client by FAForever.
the class JoinGameHelper method join.
public void join(Game game, String password, boolean ignoreRating) {
Player currentPlayer = playerService.getCurrentPlayer().orElseThrow(() -> new IllegalStateException("Player has not been set"));
int playerRating = RatingUtil.getRoundedGlobalRating(currentPlayer);
if (!preferencesService.isGamePathValid()) {
CompletableFuture<Path> gameDirectoryFuture = new CompletableFuture<>();
eventBus.post(new GameDirectoryChooseEvent(gameDirectoryFuture));
gameDirectoryFuture.thenAccept(path -> Optional.ofNullable(path).ifPresent(path1 -> join(game, password, ignoreRating)));
return;
}
if (!ignoreRating && (playerRating < game.getMinRating() || playerRating > game.getMaxRating())) {
showRatingOutOfBoundsConfirmation(playerRating, game, password);
return;
}
if (game.getPasswordProtected() && password == null) {
EnterPasswordController enterPasswordController = uiService.loadFxml("theme/enter_password.fxml");
enterPasswordController.setOnPasswordEnteredListener(this::join);
enterPasswordController.setGame(game);
enterPasswordController.setIgnoreRating(ignoreRating);
enterPasswordController.showPasswordDialog(StageHolder.getStage());
} else {
gameService.joinGame(game, password).exceptionally(throwable -> {
logger.warn("Game could not be joined", throwable);
notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("games.couldNotJoin"), ERROR, throwable, asList(new DismissAction(i18n), new ReportAction(i18n, reportingService, throwable))));
return null;
});
}
}
use of com.faforever.client.reporting.ReportingService in project downlords-faf-client by FAForever.
the class LeaderboardController method onDisplay.
@Override
public void onDisplay(NavigateEvent navigateEvent) {
Assert.checkNullIllegalState(ratingType, "ratingType must not be null");
contentPane.setVisible(false);
leaderboardService.getEntries(ratingType).thenAccept(leaderboardEntryBeans -> {
ratingTable.setItems(observableList(leaderboardEntryBeans));
contentPane.setVisible(true);
}).exceptionally(throwable -> {
contentPane.setVisible(false);
logger.warn("Error while loading leaderboard entries", throwable);
notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("leaderboard.failedToLoad"), Severity.ERROR, throwable, Arrays.asList(new ReportAction(i18n, reportingService, throwable), new DismissAction(i18n))));
return null;
});
}
use of com.faforever.client.reporting.ReportingService in project downlords-faf-client by FAForever.
the class AbstractChatTabController method sendMessage.
private void sendMessage() {
TextInputControl messageTextField = messageTextField();
messageTextField.setDisable(true);
final String text = messageTextField.getText();
chatService.sendMessageInBackground(receiver, text).thenAccept(message -> {
messageTextField.clear();
messageTextField.setDisable(false);
messageTextField.requestFocus();
}).exceptionally(throwable -> {
logger.warn("Message could not be sent: {}", text, throwable);
notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("chat.sendFailed"), Severity.ERROR, throwable, Arrays.asList(new ReportAction(i18n, reportingService, throwable), new DismissAction(i18n))));
messageTextField.setDisable(false);
messageTextField.requestFocus();
return null;
});
}
Aggregations