diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/statistics/Statistics.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/statistics/Statistics.java index 535feec..f200af5 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/statistics/Statistics.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/statistics/Statistics.java @@ -8,15 +8,14 @@ import org.bukkit.Material; import org.bukkit.Statistic; import java.util.*; -import java.util.stream.Collectors; public class Statistics extends Appliance { record StatisticsResponse(List playerStatistics) { - record PlayerStatistics(String player, Map values) { + record PlayerStatistics(String player, List statistics) { } } - record MaterialStatistic(String name, String material) { + record MaterialStatistic(String name, String material, int value) { } record StatisticsRequest(List categories) { @@ -34,14 +33,14 @@ public class Statistics extends Appliance { .map(player -> new StatisticsResponse.PlayerStatistics( player.getUniqueId().toString(), statistics.categories().stream() - .map(s -> new AbstractMap.SimpleEntry<>(s, s.material().isBlank() - ? player.getStatistic(Statistic.valueOf(s.name)) - : player.getStatistic(Statistic.valueOf(s.name), Material.valueOf(s.material())) - )) - .collect(Collectors.toMap( - Map.Entry::getKey, - Map.Entry::getValue - )) + .map(category -> { + String material = (category.material() == null || category.material().isBlank()) ? null : category.material(); + return new MaterialStatistic(category.name(), material, material == null + ? player.getStatistic(Statistic.valueOf(category.name())) + : player.getStatistic(Statistic.valueOf(category.name()), Material.valueOf(material)) + ); + }) + .toList() )) .toList(); return new StatisticsResponse(statisticsList);