Search in sources :

Example 1 with GeoInfoMutator

use of com.djrapitops.plan.delivery.domain.mutators.GeoInfoMutator in project Plan by plan-player-analytics.

the class DataUtilityCommands method sendInGameMessages.

private void sendInGameMessages(CMDSender sender, PlayerContainer player) {
    long now = System.currentTimeMillis();
    com.djrapitops.plan.delivery.formatting.Formatter<DateHolder> timestamp = formatters.year();
    Formatter<Long> length = formatters.timeAmount();
    String playerName = player.getValue(PlayerKeys.NAME).orElse(locale.getString(GenericLang.UNKNOWN));
    ActivityIndex activityIndex = player.getActivityIndex(now, config.get(TimeSettings.ACTIVE_PLAY_THRESHOLD));
    Long registered = player.getValue(PlayerKeys.REGISTERED).orElse(0L);
    Long lastSeen = player.getValue(PlayerKeys.LAST_SEEN).orElse(0L);
    List<GeoInfo> geoInfo = player.getValue(PlayerKeys.GEO_INFO).orElse(new ArrayList<>());
    Optional<GeoInfo> mostRecentGeoInfo = new GeoInfoMutator(geoInfo).mostRecent();
    String geolocation = mostRecentGeoInfo.isPresent() ? mostRecentGeoInfo.get().getGeolocation() : "-";
    SessionsMutator sessionsMutator = SessionsMutator.forContainer(player);
    String table = locale.getString(CommandLang.HEADER_INSPECT, playerName) + '\n' + locale.getString(CommandLang.INGAME_ACTIVITY_INDEX, activityIndex.getFormattedValue(formatters.decimals()), activityIndex.getGroup()) + '\n' + locale.getString(CommandLang.INGAME_REGISTERED, timestamp.apply(() -> registered)) + '\n' + locale.getString(CommandLang.INGAME_LAST_SEEN, timestamp.apply(() -> lastSeen)) + '\n' + locale.getString(CommandLang.INGAME_GEOLOCATION, geolocation) + '\n' + locale.getString(CommandLang.INGAME_TIMES_KICKED, player.getValue(PlayerKeys.KICK_COUNT).orElse(0)) + '\n' + '\n' + locale.getString(CommandLang.INGAME_PLAYTIME, length.apply(sessionsMutator.toPlaytime())) + '\n' + locale.getString(CommandLang.INGAME_ACTIVE_PLAYTIME, length.apply(sessionsMutator.toActivePlaytime())) + '\n' + locale.getString(CommandLang.INGAME_AFK_PLAYTIME, length.apply(sessionsMutator.toAfkTime())) + '\n' + locale.getString(CommandLang.INGAME_LONGEST_SESSION, length.apply(sessionsMutator.toLongestSessionLength())) + '\n' + '\n' + locale.getString(CommandLang.INGAME_PLAYER_KILLS, sessionsMutator.toPlayerKillCount()) + '\n' + locale.getString(CommandLang.INGAME_MOB_KILLS, sessionsMutator.toMobKillCount()) + '\n' + locale.getString(CommandLang.INGAME_DEATHS, sessionsMutator.toDeathCount());
    sender.send(sender.getFormatter().table(table, ": "));
}
Also used : DateHolder(com.djrapitops.plan.delivery.domain.DateHolder) ActivityIndex(com.djrapitops.plan.delivery.domain.mutators.ActivityIndex) GeoInfo(com.djrapitops.plan.gathering.domain.GeoInfo) GeoInfoMutator(com.djrapitops.plan.delivery.domain.mutators.GeoInfoMutator) SessionsMutator(com.djrapitops.plan.delivery.domain.mutators.SessionsMutator)

Aggregations

DateHolder (com.djrapitops.plan.delivery.domain.DateHolder)1 ActivityIndex (com.djrapitops.plan.delivery.domain.mutators.ActivityIndex)1 GeoInfoMutator (com.djrapitops.plan.delivery.domain.mutators.GeoInfoMutator)1 SessionsMutator (com.djrapitops.plan.delivery.domain.mutators.SessionsMutator)1 GeoInfo (com.djrapitops.plan.gathering.domain.GeoInfo)1