Search in sources :

Example 1 with DismissAction

use of com.faforever.client.notification.DismissAction 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;
    });
}
Also used : Arrays(java.util.Arrays) RehostRequestEvent(com.faforever.client.fa.relay.event.RehostRequestEvent) CompletableFuture.completedFuture(java.util.concurrent.CompletableFuture.completedFuture) LoggerFactory(org.slf4j.LoggerFactory) ReadOnlyBooleanProperty(javafx.beans.property.ReadOnlyBooleanProperty) ReportingService(com.faforever.client.reporting.ReportingService) ConnectionState(com.faforever.client.net.ConnectionState) GameInfoMessage(com.faforever.client.remote.domain.GameInfoMessage) Collections.singletonList(java.util.Collections.singletonList) ListChangeListener(javafx.collections.ListChangeListener) Map(java.util.Map) GameStatus(com.faforever.client.remote.domain.GameStatus) URI(java.net.URI) PlayerService(com.faforever.client.player.PlayerService) Path(java.nio.file.Path) ClientProperties(com.faforever.client.config.ClientProperties) CancellationException(java.util.concurrent.CancellationException) MethodHandles(java.lang.invoke.MethodHandles) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Set(java.util.Set) ObservableMap(javafx.collections.ObservableMap) Observable(javafx.beans.Observable) DismissAction(com.faforever.client.notification.DismissAction) FeaturedMod(com.faforever.client.mod.FeaturedMod) Platform(javafx.application.Platform) Player(com.faforever.client.player.Player) Nullable(org.jetbrains.annotations.Nullable) RatingMode(com.faforever.client.fa.RatingMode) BooleanProperty(javafx.beans.property.BooleanProperty) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) ForgedAllianceService(com.faforever.client.fa.ForgedAllianceService) PostConstruct(javax.annotation.PostConstruct) ModService(com.faforever.client.mod.ModService) Lazy(org.springframework.context.annotation.Lazy) ObservableList(javafx.collections.ObservableList) NotNull(org.jetbrains.annotations.NotNull) PreferencesService(com.faforever.client.preferences.PreferencesService) WeakChangeListener(javafx.beans.value.WeakChangeListener) GameLaunchMessage(com.faforever.client.remote.domain.GameLaunchMessage) LoginMessage(com.faforever.client.remote.domain.LoginMessage) FXCollections(javafx.collections.FXCollections) CompletableFuture(java.util.concurrent.CompletableFuture) ArrayList(java.util.ArrayList) IceAdapter(com.faforever.client.fa.relay.ice.IceAdapter) PlatformService(com.faforever.client.fx.PlatformService) GameUpdater(com.faforever.client.patch.GameUpdater) EventBus(com.google.common.eventbus.EventBus) Inject(javax.inject.Inject) HashSet(java.util.HashSet) NotificationService(com.faforever.client.notification.NotificationService) Service(org.springframework.stereotype.Service) ERROR(com.faforever.client.notification.Severity.ERROR) Subscribe(com.google.common.eventbus.Subscribe) ReportAction(com.faforever.client.notification.ReportAction) Collections.emptyMap(java.util.Collections.emptyMap) Logger(org.slf4j.Logger) Collections.emptySet(java.util.Collections.emptySet) Executor(java.util.concurrent.Executor) JavaFxUtil(com.faforever.client.fx.JavaFxUtil) Action(com.faforever.client.notification.Action) ReplayService(com.faforever.client.replay.ReplayService) IOException(java.io.IOException) MatchmakerMessage(com.faforever.client.rankedmatch.MatchmakerMessage) PersistentNotification(com.faforever.client.notification.PersistentNotification) FafService(com.faforever.client.remote.FafService) Consumer(java.util.function.Consumer) SimpleBooleanProperty(javafx.beans.property.SimpleBooleanProperty) Severity(com.faforever.client.notification.Severity) SimpleObjectProperty(javafx.beans.property.SimpleObjectProperty) LADDER_1V1(com.faforever.client.game.KnownFeaturedMod.LADDER_1V1) ImmediateNotification(com.faforever.client.notification.ImmediateNotification) NONE(com.faforever.client.fa.RatingMode.NONE) ExternalReplayInfoGenerator(com.faforever.client.replay.ExternalReplayInfoGenerator) VisibleForTesting(com.google.common.annotations.VisibleForTesting) I18n(com.faforever.client.i18n.I18n) MapService(com.faforever.client.map.MapService) Collections(java.util.Collections) NoCatch.noCatch(com.github.nocatch.NoCatch.noCatch) ImmediateNotification(com.faforever.client.notification.ImmediateNotification) DismissAction(com.faforever.client.notification.DismissAction) ReportAction(com.faforever.client.notification.ReportAction) Collections.singletonList(java.util.Collections.singletonList) List(java.util.List) ObservableList(javafx.collections.ObservableList) ArrayList(java.util.ArrayList)

Example 2 with DismissAction

use of com.faforever.client.notification.DismissAction in project downlords-faf-client by FAForever.

the class MapVaultController method onLoadMoreButtonClicked.

public void onLoadMoreButtonClicked() {
    moreButton.setVisible(false);
    loadingLabel.setVisible(true);
    currentSupplier.get().thenAccept(maps -> {
        appendSearchResult(maps, searchResultPane);
        enterSearchResultState();
    }).exceptionally(e -> {
        notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("vault.replays.searchError"), Severity.ERROR, e, Collections.singletonList(new DismissAction(i18n))));
        enterShowroomState();
        return null;
    });
}
Also used : Button(javafx.scene.control.Button) StageStyle(javafx.stage.StageStyle) UiService(com.faforever.client.theme.UiService) LoggerFactory(org.slf4j.LoggerFactory) NavigateEvent(com.faforever.client.main.event.NavigateEvent) WindowController(com.faforever.client.fx.WindowController) ScrollPane(javafx.scene.control.ScrollPane) Path(java.nio.file.Path) SearchableProperties(com.faforever.client.query.SearchableProperties) Pane(javafx.scene.layout.Pane) MethodHandles(java.lang.invoke.MethodHandles) AbstractViewController(com.faforever.client.fx.AbstractViewController) DismissAction(com.faforever.client.notification.DismissAction) Collectors(java.util.stream.Collectors) Platform(javafx.application.Platform) List(java.util.List) FlowPane(javafx.scene.layout.FlowPane) AnchorPane(javafx.scene.layout.AnchorPane) ObservableList(javafx.collections.ObservableList) PreferencesService(com.faforever.client.preferences.PreferencesService) SearchController(com.faforever.client.vault.search.SearchController) SearchConfig(com.faforever.client.vault.search.SearchController.SearchConfig) MapUploadedEvent(com.faforever.client.map.event.MapUploadedEvent) CompletableFuture(java.util.concurrent.CompletableFuture) Supplier(java.util.function.Supplier) Iterators(com.google.common.collect.Iterators) Scope(org.springframework.context.annotation.Scope) EventBus(com.google.common.eventbus.EventBus) Inject(javax.inject.Inject) NotificationService(com.faforever.client.notification.NotificationService) Subscribe(com.google.common.eventbus.Subscribe) DirectoryChooser(javafx.stage.DirectoryChooser) SortConfig(com.faforever.client.vault.search.SearchController.SortConfig) ObjectProperty(javafx.beans.property.ObjectProperty) Modality(javafx.stage.Modality) Logger(org.slf4j.Logger) JavaFxUtil(com.faforever.client.fx.JavaFxUtil) Node(javafx.scene.Node) CLOSE(com.faforever.client.fx.WindowController.WindowButtonType.CLOSE) ShowLadderMapsEvent(com.faforever.client.main.event.ShowLadderMapsEvent) File(java.io.File) Component(org.springframework.stereotype.Component) Stage(javafx.stage.Stage) Severity(com.faforever.client.notification.Severity) SimpleObjectProperty(javafx.beans.property.SimpleObjectProperty) ImmediateNotification(com.faforever.client.notification.ImmediateNotification) I18n(com.faforever.client.i18n.I18n) ConfigurableBeanFactory(org.springframework.beans.factory.config.ConfigurableBeanFactory) Collections(java.util.Collections) ImmediateNotification(com.faforever.client.notification.ImmediateNotification) DismissAction(com.faforever.client.notification.DismissAction)

Example 3 with DismissAction

use of com.faforever.client.notification.DismissAction in project downlords-faf-client by FAForever.

the class ModVaultController method displayModsFromSupplier.

private void displayModsFromSupplier(Supplier<CompletableFuture<List<ModVersion>>> modsSupplier) {
    this.currentSupplier = modsSupplier;
    modsSupplier.get().thenAccept(this::displayMods).exceptionally(e -> {
        notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("vault.replays.searchError"), Severity.ERROR, e, Collections.singletonList(new DismissAction(i18n))));
        enterShowroomState();
        return null;
    });
}
Also used : ImmediateNotification(com.faforever.client.notification.ImmediateNotification) DismissAction(com.faforever.client.notification.DismissAction)

Example 4 with DismissAction

use of com.faforever.client.notification.DismissAction in project downlords-faf-client by FAForever.

the class ModVaultController method onRefreshButtonClicked.

public void onRefreshButtonClicked() {
    modService.evictCache();
    switch(state) {
        case SHOWROOM:
            displayShowroomMods();
            break;
        case SEARCH_RESULT:
            currentPage--;
            currentSupplier.get().thenAccept(this::displayMods).exceptionally(e -> {
                notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("vault.mods.searchError"), Severity.ERROR, e, Collections.singletonList(new DismissAction(i18n))));
                enterShowroomState();
                return null;
            });
            break;
        default:
    }
}
Also used : ImmediateNotification(com.faforever.client.notification.ImmediateNotification) DismissAction(com.faforever.client.notification.DismissAction)

Example 5 with DismissAction

use of com.faforever.client.notification.DismissAction in project downlords-faf-client by FAForever.

the class OnlineReplayVaultController method displayReplaysFromSupplier.

private void displayReplaysFromSupplier(Supplier<CompletableFuture<List<Replay>>> mapsSupplier) {
    currentPage = 1;
    this.currentSupplier = mapsSupplier;
    mapsSupplier.get().thenAccept(this::displaySearchResult).exceptionally(e -> {
        notificationService.addNotification(new ImmediateNotification(i18n.get("errorTitle"), i18n.get("vault.replays.searchError"), Severity.ERROR, e, Collections.singletonList(new DismissAction(i18n))));
        enterResultState();
        return null;
    });
}
Also used : ImmediateNotification(com.faforever.client.notification.ImmediateNotification) DismissAction(com.faforever.client.notification.DismissAction)

Aggregations

DismissAction (com.faforever.client.notification.DismissAction)12 ImmediateNotification (com.faforever.client.notification.ImmediateNotification)11 I18n (com.faforever.client.i18n.I18n)6 NotificationService (com.faforever.client.notification.NotificationService)6 ReportAction (com.faforever.client.notification.ReportAction)6 Severity (com.faforever.client.notification.Severity)6 MethodHandles (java.lang.invoke.MethodHandles)6 Logger (org.slf4j.Logger)6 LoggerFactory (org.slf4j.LoggerFactory)6 PreferencesService (com.faforever.client.preferences.PreferencesService)5 EventBus (com.google.common.eventbus.EventBus)5 Inject (javax.inject.Inject)5 JavaFxUtil (com.faforever.client.fx.JavaFxUtil)4 NavigateEvent (com.faforever.client.main.event.NavigateEvent)4 Path (java.nio.file.Path)4 List (java.util.List)4 CompletableFuture (java.util.concurrent.CompletableFuture)4 Platform (javafx.application.Platform)4 AbstractViewController (com.faforever.client.fx.AbstractViewController)3 ReportingService (com.faforever.client.reporting.ReportingService)3