Search in sources :

Example 36 with Player

use of com.faforever.client.player.Player in project downlords-faf-client by FAForever.

the class PircBotXChatService method onPrivateMessage.

private void onPrivateMessage(PrivateMessageEvent event) {
    User user = event.getUser();
    if (user == null) {
        logger.warn("Private message without user: {}", event);
        return;
    }
    logger.debug("Received private message: {}", event);
    Player sourcePlayer = playerService.getPlayerForUsername(user.getNick());
    if (sourcePlayer != null && sourcePlayer.getSocialStatus() == SocialStatus.FOE && preferencesService.getPreferences().getChat().getHideFoeMessages()) {
        log.debug("Suppressing chat message from foe '{}'", user.getNick());
        return;
    }
    eventBus.post(new ChatMessageEvent(new ChatMessage(user.getNick(), Instant.ofEpochMilli(event.getTimestamp()), user.getNick(), event.getMessage())));
}
Also used : Player(com.faforever.client.player.Player) User(org.pircbotx.User) ChatMessageEvent(com.faforever.client.chat.event.ChatMessageEvent)

Example 37 with Player

use of com.faforever.client.player.Player in project downlords-faf-client by FAForever.

the class UserInfoWindowController method plotGamesPlayedChart.

@SuppressWarnings("unchecked")
private void plotGamesPlayedChart() {
    Player currentPlayer = playerService.getCurrentPlayer().orElseThrow(() -> new IllegalStateException("Player must be set"));
    leaderboardService.getEntryForPlayer(currentPlayer.getId()).thenAccept(leaderboardEntryBean -> Platform.runLater(() -> {
        int ladderGamesCount = leaderboardEntryBean.getGamesPlayed();
        int custonGamesCount = currentPlayer.getNumberOfGames();
        Platform.runLater(() -> gamesPlayedChart.setData(FXCollections.observableArrayList(new PieChart.Data(i18n.get("stats.custom"), custonGamesCount), new PieChart.Data(i18n.get("stats.ranked1v1"), ladderGamesCount))));
    })).exceptionally(throwable -> {
        log.warn("Leaderboard entry could not be read for current player: " + currentPlayer.getUsername(), throwable);
        return null;
    });
}
Also used : StageStyle(javafx.stage.StageStyle) UiService(com.faforever.client.theme.UiService) AchievementDefinition(com.faforever.client.api.dto.AchievementDefinition) EVENT_BUILT_AIR_UNITS(com.faforever.client.events.EventService.EVENT_BUILT_AIR_UNITS) XYChart(javafx.scene.chart.XYChart) AchievementState(com.faforever.client.achievements.AchievementService.AchievementState) PlayerEvent(com.faforever.client.api.dto.PlayerEvent) InvalidationListener(javafx.beans.InvalidationListener) EVENT_BUILT_NAVAL_UNITS(com.faforever.client.events.EventService.EVENT_BUILT_NAVAL_UNITS) FXCollections.observableList(javafx.collections.FXCollections.observableList) WindowController(com.faforever.client.fx.WindowController) TimeService(com.faforever.client.util.TimeService) ScrollPane(javafx.scene.control.ScrollPane) EVENT_AEON_PLAYS(com.faforever.client.events.EventService.EVENT_AEON_PLAYS) LeaderboardService(com.faforever.client.leaderboard.LeaderboardService) EVENT_UEF_WINS(com.faforever.client.events.EventService.EVENT_UEF_WINS) Map(java.util.Map) TableView(javafx.scene.control.TableView) PlayerService(com.faforever.client.player.PlayerService) Pane(javafx.scene.layout.Pane) Data(javafx.scene.chart.XYChart.Data) Collectors(java.util.stream.Collectors) StatisticsService(com.faforever.client.stats.StatisticsService) AchievementService(com.faforever.client.achievements.AchievementService) Platform(javafx.application.Platform) Player(com.faforever.client.player.Player) PieChart(javafx.scene.chart.PieChart) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) Region(javafx.scene.layout.Region) OffsetDateTime(java.time.OffsetDateTime) ToggleButton(javafx.scene.control.ToggleButton) EVENT_BUILT_TECH_3_UNITS(com.faforever.client.events.EventService.EVENT_BUILT_TECH_3_UNITS) ObservableList(javafx.collections.ObservableList) NumberAxis(javafx.scene.chart.NumberAxis) NotNull(org.jetbrains.annotations.NotNull) EventService(com.faforever.client.events.EventService) PlayerAchievement(com.faforever.client.api.dto.PlayerAchievement) EVENT_AEON_WINS(com.faforever.client.events.EventService.EVENT_AEON_WINS) StackedBarChart(javafx.scene.chart.StackedBarChart) EVENT_CYBRAN_PLAYS(com.faforever.client.events.EventService.EVENT_CYBRAN_PLAYS) FXCollections(javafx.collections.FXCollections) EVENT_BUILT_TECH_1_UNITS(com.faforever.client.events.EventService.EVENT_BUILT_TECH_1_UNITS) HashMap(java.util.HashMap) CompletableFuture(java.util.concurrent.CompletableFuture) Bindings(javafx.beans.binding.Bindings) Scope(org.springframework.context.annotation.Scope) TableColumn(javafx.scene.control.TableColumn) Inject(javax.inject.Inject) RatingHistoryDataPoint(com.faforever.client.domain.RatingHistoryDataPoint) NotificationService(com.faforever.client.notification.NotificationService) LineChart(javafx.scene.chart.LineChart) KnownFeaturedMod(com.faforever.client.game.KnownFeaturedMod) EVENT_CYBRAN_WINS(com.faforever.client.events.EventService.EVENT_CYBRAN_WINS) EVENT_UEF_PLAYS(com.faforever.client.events.EventService.EVENT_UEF_PLAYS) UNLOCKED(com.faforever.client.achievements.AchievementService.AchievementState.UNLOCKED) AchievementItemController(com.faforever.client.achievements.AchievementItemController) CountryCode(com.neovisionaries.i18n.CountryCode) OffsetDateTimeCell(com.faforever.client.fx.OffsetDateTimeCell) Modality(javafx.stage.Modality) RatingUtil(com.faforever.client.util.RatingUtil) Label(javafx.scene.control.Label) IdenticonUtil(com.faforever.client.util.IdenticonUtil) Controller(com.faforever.client.fx.Controller) Node(javafx.scene.Node) CLOSE(com.faforever.client.fx.WindowController.WindowButtonType.CLOSE) StringConverter(javafx.util.StringConverter) EVENT_SERAPHIM_WINS(com.faforever.client.events.EventService.EVENT_SERAPHIM_WINS) EVENT_SERAPHIM_PLAYS(com.faforever.client.events.EventService.EVENT_SERAPHIM_PLAYS) EVENT_BUILT_TECH_2_UNITS(com.faforever.client.events.EventService.EVENT_BUILT_TECH_2_UNITS) Assert(com.faforever.client.util.Assert) Component(org.springframework.stereotype.Component) Stage(javafx.stage.Stage) ImageView(javafx.scene.image.ImageView) EVENT_BUILT_LAND_UNITS(com.faforever.client.events.EventService.EVENT_BUILT_LAND_UNITS) DateTimeFormatter(java.time.format.DateTimeFormatter) NameRecord(com.faforever.client.player.NameRecord) Window(javafx.stage.Window) I18n(com.faforever.client.i18n.I18n) ConfigurableBeanFactory(org.springframework.beans.factory.config.ConfigurableBeanFactory) Collections(java.util.Collections) Player(com.faforever.client.player.Player) PieChart(javafx.scene.chart.PieChart) RatingHistoryDataPoint(com.faforever.client.domain.RatingHistoryDataPoint)

Example 38 with Player

use of com.faforever.client.player.Player in project downlords-faf-client by FAForever.

the class FafServiceImpl method saveModVersionReview.

@Override
@Async
public CompletableFuture<Void> saveModVersionReview(Review review, String modVersionId) {
    ModVersionReview modVersionReview = (ModVersionReview) new ModVersionReview().setScore(review.getScore().byteValue()).setText(review.getText());
    if (review.getId() == null) {
        Assert.notNull(review.getPlayer(), "Player ID must be set");
        ModVersionReview updatedReview = fafApiAccessor.createModVersionReview((ModVersionReview) modVersionReview.setModVersion(new com.faforever.client.api.dto.ModVersion().setId(String.valueOf(modVersionId))).setId(String.valueOf(review.getId())).setPlayer(new com.faforever.client.api.dto.Player().setId(String.valueOf(review.getPlayer().getId()))));
        review.setId(updatedReview.getId());
    } else {
        fafApiAccessor.updateModVersionReview((ModVersionReview) modVersionReview.setId(String.valueOf(review.getId())));
    }
    return CompletableFuture.completedFuture(null);
}
Also used : ModVersion(com.faforever.client.mod.ModVersion) Player(com.faforever.client.player.Player) ModVersionReview(com.faforever.client.api.dto.ModVersionReview) Async(org.springframework.scheduling.annotation.Async)

Example 39 with Player

use of com.faforever.client.player.Player in project downlords-faf-client by FAForever.

the class ReplayDetailController method setReplay.

public void setReplay(Replay replay) {
    this.replay = replay;
    replayIdField.setText(i18n.get("game.idFormat", replay.getId()));
    titleLabel.setText(replay.getTitle());
    dateLabel.setText(timeService.asDate(replay.getStartTime()));
    timeLabel.setText(timeService.asShortTime(replay.getStartTime()));
    Optional<MapBean> optionalMap = Optional.ofNullable(replay.getMap());
    if (optionalMap.isPresent()) {
        MapBean map = optionalMap.get();
        Image image = mapService.loadPreview(map, PreviewSize.LARGE);
        mapThumbnailImageView.setImage(image);
        onMapLabel.setText(i18n.get("game.onMapFormat", map.getDisplayName()));
    } else {
        onMapLabel.setText(i18n.get("game.onUnknownMap"));
    }
    Temporal endTime = replay.getEndTime();
    if (endTime != null) {
        durationLabel.setText(timeService.shortDuration(Duration.between(replay.getStartTime(), endTime)));
    } else {
        durationLabel.setVisible(false);
    }
    modLabel.setText(replay.getFeaturedMod().getDisplayName());
    playerCountLabel.setText(i18n.number(replay.getTeams().values().stream().mapToInt(List::size).sum()));
    qualityLabel.setText(i18n.get("percentage", (int) ratingService.calculateQuality(replay) * 100));
    replay.getTeamPlayerStats().values().stream().flatMapToInt(playerStats -> playerStats.stream().mapToInt(stats -> RatingUtil.getRating(stats.getBeforeMean(), stats.getBeforeDeviation()))).average().ifPresent(averageRating -> ratingLabel.setText(i18n.number((int) averageRating)));
    replayService.getSize(replay.getId()).thenAccept(replaySize -> Platform.runLater(() -> {
        if (replaySize > -1) {
            String humanReadableSize = Bytes.formatSize(replaySize, i18n.getUserSpecificLocale());
            downloadMoreInfoButton.setText(i18n.get("game.downloadMoreInfo", humanReadableSize));
            watchButton.setText(i18n.get("game.watchButtonFormat", humanReadableSize));
        } else {
            downloadMoreInfoButton.setText(i18n.get("game.replayFileMissing"));
            downloadMoreInfoButton.setDisable(true);
            watchButton.setText(i18n.get("game.replayFileMissing"));
            watchButton.setDisable(true);
        }
    }));
    Optional<Player> currentPlayer = playerService.getCurrentPlayer();
    Assert.state(currentPlayer.isPresent(), "No user is logged in");
    reviewsController.setOnSendReviewListener(this::onSendReview);
    reviewsController.setOnDeleteReviewListener(this::onDeleteReview);
    reviewsController.setReviews(replay.getReviews());
    reviewsController.setOwnReview(replay.getReviews().stream().filter(review -> review.getPlayer().equals(currentPlayer.get())).findFirst());
    // These items are initially empty but will be populated in #onDownloadMoreInfoClicked()
    optionsTable.setItems(replay.getGameOptions());
    chatTable.setItems(replay.getChatMessages());
    teams = replay.getTeamPlayerStats();
    populateTeamsContainer();
}
Also used : Button(javafx.scene.control.Button) UiService(com.faforever.client.theme.UiService) Rating(com.faforever.client.util.Rating) TimeService(com.faforever.client.util.TimeService) ScrollPane(javafx.scene.control.ScrollPane) Duration(java.time.Duration) Map(java.util.Map) TableView(javafx.scene.control.TableView) PlayerService(com.faforever.client.player.PlayerService) Pane(javafx.scene.layout.Pane) ClientProperties(com.faforever.client.config.ClientProperties) TextField(javafx.scene.control.TextField) Collection(java.util.Collection) ObservableMap(javafx.collections.ObservableMap) MapBean(com.faforever.client.map.MapBean) Collectors(java.util.stream.Collectors) Bytes(com.faforever.commons.io.Bytes) Platform(javafx.application.Platform) Player(com.faforever.client.player.Player) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) Clipboard(javafx.scene.input.Clipboard) Optional(java.util.Optional) ClipboardContent(javafx.scene.input.ClipboardContent) Temporal(java.time.temporal.Temporal) Setter(lombok.Setter) PreviewSize(com.faforever.client.map.MapServiceImpl.PreviewSize) MouseEvent(javafx.scene.input.MouseEvent) GameOption(com.faforever.client.replay.Replay.GameOption) Function(java.util.function.Function) Scope(org.springframework.context.annotation.Scope) ChatMessage(com.faforever.client.replay.Replay.ChatMessage) TableColumn(javafx.scene.control.TableColumn) ArrayList(java.util.ArrayList) TeamCardController(com.faforever.client.game.TeamCardController) ReviewsController(com.faforever.client.vault.review.ReviewsController) StringCell(com.faforever.client.fx.StringCell) RatingUtil(com.faforever.client.util.RatingUtil) Label(javafx.scene.control.Label) Controller(com.faforever.client.fx.Controller) JavaFxUtil(com.faforever.client.fx.JavaFxUtil) Node(javafx.scene.Node) RatingType(com.faforever.client.game.RatingType) Component(org.springframework.stereotype.Component) PlayerStats(com.faforever.client.replay.Replay.PlayerStats) ImageView(javafx.scene.image.ImageView) ReviewService(com.faforever.client.vault.review.ReviewService) RatingService(com.faforever.client.rating.RatingService) I18n(com.faforever.client.i18n.I18n) MapService(com.faforever.client.map.MapService) ConfigurableBeanFactory(org.springframework.beans.factory.config.ConfigurableBeanFactory) Validity(com.faforever.client.api.dto.Validity) Image(javafx.scene.image.Image) Review(com.faforever.client.vault.review.Review) Assert(org.springframework.util.Assert) Player(com.faforever.client.player.Player) MapBean(com.faforever.client.map.MapBean) Temporal(java.time.temporal.Temporal) Image(javafx.scene.image.Image)

Example 40 with Player

use of com.faforever.client.player.Player in project downlords-faf-client by FAForever.

the class ReplayDetailController method populateTeamsContainer.

private void populateTeamsContainer() {
    if (!replay.getValidity().equals(Validity.VALID)) {
        showRatingChangeButton.setDisable(true);
        showRatingChangeButton.setText(i18n.get("game.notValid"));
    } else if (!replayService.replayChangedRating(replay)) {
        showRatingChangeButton.setDisable(true);
        showRatingChangeButton.setText(i18n.get("game.notRatedYet"));
    }
    Map<Integer, PlayerStats> statsByPlayerId = teams.values().stream().flatMap(Collection::stream).collect(Collectors.toMap(PlayerStats::getPlayerId, Function.identity()));
    Platform.runLater(() -> teams.forEach((team, value) -> {
        List<Integer> playerIds = value.stream().map(PlayerStats::getPlayerId).collect(Collectors.toList());
        TeamCardController controller = uiService.loadFxml("theme/team_card.fxml");
        teamCardControllers.add(controller);
        playerService.getPlayersByIds(playerIds).thenAccept(players -> controller.setPlayersInTeam(team, players, player -> {
            PlayerStats playerStats = statsByPlayerId.get(player.getId());
            return new Rating(playerStats.getBeforeMean(), playerStats.getBeforeDeviation());
        }, RatingType.EXACT));
        teamsContainer.getChildren().add(controller.getRoot());
    }));
}
Also used : Button(javafx.scene.control.Button) UiService(com.faforever.client.theme.UiService) Rating(com.faforever.client.util.Rating) TimeService(com.faforever.client.util.TimeService) ScrollPane(javafx.scene.control.ScrollPane) Duration(java.time.Duration) Map(java.util.Map) TableView(javafx.scene.control.TableView) PlayerService(com.faforever.client.player.PlayerService) Pane(javafx.scene.layout.Pane) ClientProperties(com.faforever.client.config.ClientProperties) TextField(javafx.scene.control.TextField) Collection(java.util.Collection) ObservableMap(javafx.collections.ObservableMap) MapBean(com.faforever.client.map.MapBean) Collectors(java.util.stream.Collectors) Bytes(com.faforever.commons.io.Bytes) Platform(javafx.application.Platform) Player(com.faforever.client.player.Player) Slf4j(lombok.extern.slf4j.Slf4j) List(java.util.List) Clipboard(javafx.scene.input.Clipboard) Optional(java.util.Optional) ClipboardContent(javafx.scene.input.ClipboardContent) Temporal(java.time.temporal.Temporal) Setter(lombok.Setter) PreviewSize(com.faforever.client.map.MapServiceImpl.PreviewSize) MouseEvent(javafx.scene.input.MouseEvent) GameOption(com.faforever.client.replay.Replay.GameOption) Function(java.util.function.Function) Scope(org.springframework.context.annotation.Scope) ChatMessage(com.faforever.client.replay.Replay.ChatMessage) TableColumn(javafx.scene.control.TableColumn) ArrayList(java.util.ArrayList) TeamCardController(com.faforever.client.game.TeamCardController) ReviewsController(com.faforever.client.vault.review.ReviewsController) StringCell(com.faforever.client.fx.StringCell) RatingUtil(com.faforever.client.util.RatingUtil) Label(javafx.scene.control.Label) Controller(com.faforever.client.fx.Controller) JavaFxUtil(com.faforever.client.fx.JavaFxUtil) Node(javafx.scene.Node) RatingType(com.faforever.client.game.RatingType) Component(org.springframework.stereotype.Component) PlayerStats(com.faforever.client.replay.Replay.PlayerStats) ImageView(javafx.scene.image.ImageView) ReviewService(com.faforever.client.vault.review.ReviewService) RatingService(com.faforever.client.rating.RatingService) I18n(com.faforever.client.i18n.I18n) MapService(com.faforever.client.map.MapService) ConfigurableBeanFactory(org.springframework.beans.factory.config.ConfigurableBeanFactory) Validity(com.faforever.client.api.dto.Validity) Image(javafx.scene.image.Image) Review(com.faforever.client.vault.review.Review) Assert(org.springframework.util.Assert) Rating(com.faforever.client.util.Rating) List(java.util.List) ArrayList(java.util.ArrayList) PlayerStats(com.faforever.client.replay.Replay.PlayerStats) TeamCardController(com.faforever.client.game.TeamCardController)

Aggregations

Player (com.faforever.client.player.Player)51 AbstractPlainJavaFxTest (com.faforever.client.test.AbstractPlainJavaFxTest)17 Test (org.junit.Test)17 Pane (javafx.scene.layout.Pane)8 I18n (com.faforever.client.i18n.I18n)7 PlayerService (com.faforever.client.player.PlayerService)7 UiService (com.faforever.client.theme.UiService)7 ClientProperties (com.faforever.client.config.ClientProperties)6 Controller (com.faforever.client.fx.Controller)6 ArrayList (java.util.ArrayList)6 Platform (javafx.application.Platform)6 Node (javafx.scene.Node)6 Scope (org.springframework.context.annotation.Scope)6 Component (org.springframework.stereotype.Component)6 JavaFxUtil (com.faforever.client.fx.JavaFxUtil)5 NotificationService (com.faforever.client.notification.NotificationService)5 TimeService (com.faforever.client.util.TimeService)5 Collection (java.util.Collection)5 List (java.util.List)5 Map (java.util.Map)5