use of com.faforever.client.notification.ReportAction 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.notification.ReportAction in project downlords-faf-client by FAForever.
the class CreateGameController method onCreateButtonClicked.
public void onCreateButtonClicked() {
ObservableList<ModVersion> selectedModVersions = modListView.getSelectionModel().getSelectedItems();
try {
modService.overrideActivatedMods(modListView.getSelectionModel().getSelectedItems());
} catch (IOException e) {
logger.warn("Activated mods could not be updated", e);
}
Set<String> simMods = selectedModVersions.stream().map(ModVersion::getUid).collect(Collectors.toSet());
NewGameInfo newGameInfo = new NewGameInfo(titleTextField.getText(), Strings.emptyToNull(passwordTextField.getText()), featuredModListView.getSelectionModel().getSelectedItem(), mapListView.getSelectionModel().getSelectedItem().getFolderName(), simMods);
gameService.hostGame(newGameInfo).exceptionally(throwable -> {
logger.warn("Game could not be hosted", throwable);
notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("game.create.failed"), Severity.WARN, throwable, Collections.singletonList(new ReportAction(i18n, reportingService, throwable))));
return null;
});
onCloseButtonClicked();
}
use of com.faforever.client.notification.ReportAction in project downlords-faf-client by FAForever.
the class ModDetailController method onUninstallButtonClicked.
public void onUninstallButtonClicked() {
progressBar.progressProperty().unbind();
progressBar.setProgress(-1);
uninstallButton.setVisible(false);
modService.uninstallMod(modVersion).exceptionally(throwable -> {
notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("modVault.couldNotDeleteMod", modVersion.getDisplayName(), throwable.getLocalizedMessage()), Severity.ERROR, throwable, singletonList(new ReportAction(i18n, reportingService, throwable))));
return null;
});
}
use of com.faforever.client.notification.ReportAction in project downlords-faf-client by FAForever.
the class MapDetailController method onUninstallButtonClicked.
public void onUninstallButtonClicked() {
progressBar.progressProperty().unbind();
progressBar.setProgress(-1);
uninstallButton.setVisible(false);
mapService.uninstallMap(map).thenRun(() -> setInstalled(false)).exceptionally(throwable -> {
notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("mapVault.couldNotDeleteMap", map.getDisplayName(), throwable.getLocalizedMessage()), Severity.ERROR, throwable, singletonList(new ReportAction(i18n, reportingService, throwable))));
setInstalled(true);
return null;
});
}
use of com.faforever.client.notification.ReportAction in project downlords-faf-client by FAForever.
the class ReplayVaultController method loadLocalReplaysInBackground.
public CompletableFuture<Void> loadLocalReplaysInBackground() {
// TODO use replay service
LoadLocalReplaysTask task = applicationContext.getBean(LoadLocalReplaysTask.class);
replayVaultRoot.getItems().clear();
return taskService.submitTask(task).getFuture().thenAccept(this::addLocalReplays).exceptionally(throwable -> {
logger.warn("Error while loading local replays", throwable);
notificationService.addNotification(new PersistentNotification(i18n.get("replays.loadingLocalTask.failed"), Severity.ERROR, asList(new ReportAction(i18n, reportingService, throwable), new DismissAction(i18n))));
return null;
});
}
Aggregations