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())));
}
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;
});
}
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);
}
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();
}
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());
}));
}
Aggregations