diff --git a/src/main/java/org/skriptlang/skript/bukkit/SkriptMetrics.java b/src/main/java/org/skriptlang/skript/bukkit/SkriptMetrics.java index 4fa2865378c..072dbf71a1a 100644 --- a/src/main/java/org/skriptlang/skript/bukkit/SkriptMetrics.java +++ b/src/main/java/org/skriptlang/skript/bukkit/SkriptMetrics.java @@ -10,11 +10,14 @@ import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table; import org.bstats.bukkit.Metrics; +import org.bstats.charts.AdvancedPie; import org.bstats.charts.DrilldownPie; import org.bstats.charts.SimplePie; import org.jetbrains.annotations.Nullable; +import org.skriptlang.skript.addon.SkriptAddon; import java.text.SimpleDateFormat; +import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Objects; @@ -34,6 +37,9 @@ public static void setupMetrics(Metrics metrics) { // sets up the old charts to prevent data splitting due to various user version setupLegacyMetrics(metrics); + // addon registration + setupAddonCharts(metrics); + // add custom version charts for easier reading: metrics.addCustomChart(new DrilldownPie("drilldownPluginVersion", () -> { Version version = Skript.getVersion(); @@ -188,6 +194,21 @@ public static void setupMetrics(Metrics metrics) { )); } + /** + * Helper to set up addon-related charts + * @param metrics The Metrics object to which charts will be added. + */ + private static void setupAddonCharts(Metrics metrics) { + metrics.addCustomChart(new AdvancedPie("registeredAddons", () -> { + Map addons = new HashMap<>(); + for (SkriptAddon addon : Skript.getAddons()) { + addons.put(addon.name(), 1); + } + return addons; + })); + } + + /** * Helper method to set up legacy charts (pre 2.9.2) * @param metrics The Metrics object to which charts will be added.