From 78654d65529967a5a0eac12bad83fa9adfc83b35 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Sun, 25 Aug 2019 11:26:05 +0300 Subject: [PATCH] Fixed player page kills formatting --- .../com/djrapitops/plan/data/container/PlayerKill.java | 4 ++++ .../plan/data/store/mutators/PlayerKillMutator.java | 4 ++++ .../com/djrapitops/plan/system/json/PlayerJSONParser.java | 7 +++++-- .../main/resources/assets/plan/web/js/sessionAccordion.js | 4 +++- 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/data/container/PlayerKill.java b/Plan/common/src/main/java/com/djrapitops/plan/data/container/PlayerKill.java index da3de1e40..7aab04622 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/data/container/PlayerKill.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/data/container/PlayerKill.java @@ -113,4 +113,8 @@ public class PlayerKill implements DateHolder { "date=" + date + ", " + "weapon='" + weapon + "'}"; } + + public boolean isSelfKill() { + return getVictimName().map(v -> v.equals(killerName)).orElse(false); + } } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/data/store/mutators/PlayerKillMutator.java b/Plan/common/src/main/java/com/djrapitops/plan/data/store/mutators/PlayerKillMutator.java index 1e80322dd..df691dcb7 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/data/store/mutators/PlayerKillMutator.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/data/store/mutators/PlayerKillMutator.java @@ -37,6 +37,10 @@ public class PlayerKillMutator { this.kills = kills; } + public PlayerKillMutator filterNonSelfKills() { + return new PlayerKillMutator(kills.stream().filter(PlayerKill::isSelfKill).collect(Collectors.toList())); + } + public List> toJSONAsMap(Formatters formatters) { return kills.stream().map( kill -> { diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/json/PlayerJSONParser.java b/Plan/common/src/main/java/com/djrapitops/plan/system/json/PlayerJSONParser.java index 2e7fdf14c..f7821a92e 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/json/PlayerJSONParser.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/json/PlayerJSONParser.java @@ -17,6 +17,7 @@ package com.djrapitops.plan.system.json; import com.djrapitops.plan.data.container.GeoInfo; +import com.djrapitops.plan.data.container.PlayerKill; import com.djrapitops.plan.data.store.containers.PlayerContainer; import com.djrapitops.plan.data.store.keys.PlayerKeys; import com.djrapitops.plan.data.store.mutators.*; @@ -89,6 +90,8 @@ public class PlayerJSONParser { SessionsMutator sessionsMutator = SessionsMutator.forContainer(player); Map worldTimesPerServer = PerServerMutator.forContainer(player).worldTimesPerServer(); List> serverAccordion = new ServerAccordion(player, serverNames, graphs, year, timeAmount).asMaps(); + List kills = player.getValue(PlayerKeys.PLAYER_KILLS).orElse(Collections.emptyList()); + List deaths = player.getValue(PlayerKeys.PLAYER_DEATHS_KILLS).orElse(Collections.emptyList()); Map data = new HashMap<>(); data.put("info", createInfoJSONMap(player, serverNames)); @@ -101,8 +104,8 @@ public class PlayerJSONParser { data.put("connections", player.getValue(PlayerKeys.GEO_INFO) .map(geoInfo -> ConnectionInfo.fromGeoInfo(geoInfo, year)) .orElse(Collections.emptyList())); - data.put("player_kills", player.getValue(PlayerKeys.PLAYER_KILLS).orElse(Collections.emptyList())); - data.put("player_deaths", player.getValue(PlayerKeys.PLAYER_DEATHS_KILLS).orElse(Collections.emptyList())); + data.put("player_kills", new PlayerKillMutator(kills).filterNonSelfKills().toJSONAsMap(formatters)); + data.put("player_deaths", new PlayerKillMutator(deaths).toJSONAsMap(formatters)); data.put("sessions", sessionsMutator.toServerNameJSONMaps(graphs, config.getWorldAliasSettings(), formatters)); data.put("sessions_per_page", config.get(DisplaySettings.SESSIONS_PER_PAGE)); data.put("servers", serverAccordion); diff --git a/Plan/common/src/main/resources/assets/plan/web/js/sessionAccordion.js b/Plan/common/src/main/resources/assets/plan/web/js/sessionAccordion.js index 050737d84..ed38a682f 100644 --- a/Plan/common/src/main/resources/assets/plan/web/js/sessionAccordion.js +++ b/Plan/common/src/main/resources/assets/plan/web/js/sessionAccordion.js @@ -104,7 +104,9 @@ function createKillsTable(player_kills) { for (var i = 0; i < player_kills.length; i++) { var kill = player_kills[i]; table += '' + kill.date + '' + - '' + kill.killer + '' + kill.victim + '' + + '' + kill.killer + + (kill.killer === kill.victim ? '' : '') + + kill.victim + '' + '' + kill.weapon + '' }