From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: AlphaKR93 Date: Sun, 5 Nov 2023 10:26:26 +0900 Subject: [PATCH] Add more metrics diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java index 0b3d87d2d43148e6370e7a03e0bb6074891ac800..dce6445e02a16a87df3b0e81ed9076fe558da48b 100644 --- a/src/main/java/com/destroystokyo/paper/Metrics.java +++ b/src/main/java/com/destroystokyo/paper/Metrics.java @@ -636,16 +636,52 @@ public class Metrics { return map; })); + // Plazma start - Add more metrics information + metrics.addCustomChart(new DrilldownPie("datapacks", () -> { + int datapacks = Bukkit.getDatapackManager().getEnabledPacks().size(); + Map entry = Collections.singletonMap(String.valueOf(datapacks), 1); + + if (datapacks == 0) return Collections.singletonMap("0", entry); + else if (datapacks <= 5) return Collections.singletonMap("1-5", entry); + else if (datapacks <= 10) return Collections.singletonMap("6-10", entry); + else if (datapacks <= 25) return Collections.singletonMap("11-25", entry); + else if (datapacks <= 50) return Collections.singletonMap("26-50", entry); + else return Collections.singletonMap("50+", entry); + })); + + List plugins = Arrays.stream(Bukkit.getPluginManager().getPlugins()).toList(); + + metrics.addCustomChart(new DrilldownPie("plugins", () -> { + int pluginCount = (int) plugins.stream().filter(Plugin::isEnabled).count(); + Map entry = Collections.singletonMap(String.valueOf(pluginCount), 1); + + if (pluginCount == 0) return Collections.singletonMap("0", entry); + else if (pluginCount <= 5) return Collections.singletonMap("1-5", entry); + else if (pluginCount <= 10) return Collections.singletonMap("6-10", entry); + else if (pluginCount <= 25) return Collections.singletonMap("11-25", entry); + else if (pluginCount <= 50) return Collections.singletonMap("26-50", entry); + else return Collections.singletonMap("50+", entry); + })); + + metrics.addCustomChart(new DrilldownPie("disabled_plugins", () -> { + int disabled = (int) plugins.stream().filter(java.util.function.Predicate.not(Plugin::isEnabled)).count(); + Map entry = Collections.singletonMap(String.valueOf(disabled), 1); + + if (disabled == 0) return Collections.singletonMap("0 \uD83D\uDE0E", entry); // :sunglasses: + else if (disabled <= 5) return Collections.singletonMap("1-5", entry); + else if (disabled <= 10) return Collections.singletonMap("6-10", entry); + else if (disabled <= 25) return Collections.singletonMap("11-25", entry); + else if (disabled <= 50) return Collections.singletonMap("26-50", entry); + else if (disabled <= 100) return Collections.singletonMap("50-100 \uD83D\uDE2D", entry); // :cry: + else return Collections.singletonMap("101+ \uD83D\uDC80", entry); // :skull: + })); + // Plazma end - Add more metrics information + metrics.addCustomChart(new Metrics.DrilldownPie("legacy_plugins", () -> { Map> map = new HashMap<>(); // count legacy plugins - int legacy = 0; - for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) { - if (CraftMagicNumbers.isLegacy(plugin.getDescription())) { - legacy++; - } - } + int legacy = (int) plugins.stream().filter(p -> CraftMagicNumbers.isLegacy(p.getDescription())).count(); // Plazma // insert real value as lower dimension Map entry = new HashMap<>();