From 1eadddee47bb429e830695bcc31ff14ff7f836a9 Mon Sep 17 00:00:00 2001 From: Florian CUNY Date: Sun, 24 Mar 2019 10:14:27 +0100 Subject: [PATCH] Made addons opt-in by default to the addons metrics --- .../java/world/bentobox/bentobox/BStats.java | 32 +++++++++++++------ .../bentobox/api/addons/AddonClassLoader.java | 2 +- .../bentobox/api/addons/AddonDescription.java | 2 +- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/main/java/world/bentobox/bentobox/BStats.java b/src/main/java/world/bentobox/bentobox/BStats.java index 077a62039..6a6bcc664 100644 --- a/src/main/java/world/bentobox/bentobox/BStats.java +++ b/src/main/java/world/bentobox/bentobox/BStats.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.Map; import org.bstats.bukkit.Metrics; +import world.bentobox.bentobox.api.addons.GameModeAddon; /** * @author Poslovitch @@ -35,13 +36,12 @@ public class BStats { // Simple Pie Charts registerDefaultLanguageChart(); registerDatabaseTypeChart(); + registerAddonsChart(); + registerGameModeAddonsChart(); // Single Line charts registerIslandsCountChart(); registerIslandsCreatedChart(); - - // Simple Bar Charts - registerAddonsChart(); } private void registerDefaultLanguageChart() { @@ -76,16 +76,30 @@ public class BStats { } /** - * Sends the enabled addons of this server. + * Sends the enabled addons (except GameModeAddons) of this server. * @since 1.1 */ private void registerAddonsChart() { - metrics.addCustomChart(new Metrics.SimpleBarChart("addons", () -> { - Map map = new HashMap<>(); + metrics.addCustomChart(new Metrics.AdvancedPie("addons", () -> { + Map values = new HashMap<>(); plugin.getAddonsManager().getEnabledAddons().stream() - .filter(addon -> addon.getDescription().isMetrics()) - .forEach(addon -> map.put(addon.getDescription().getName(), 1)); - return map; + .filter(addon -> !(addon instanceof GameModeAddon) && addon.getDescription().isMetrics()) + .forEach(addon -> values.put(addon.getDescription().getName(), 1)); + return values; + })); + } + + /** + * Sends the enabled GameModeAddons of this server. + * @since 1.4.0 + */ + private void registerGameModeAddonsChart() { + metrics.addCustomChart(new Metrics.AdvancedPie("gameModeAddons", () -> { + Map values = new HashMap<>(); + plugin.getAddonsManager().getGameModeAddons().stream() + .filter(gameModeAddon -> gameModeAddon.getDescription().isMetrics()) + .forEach(gameModeAddon -> values.put(gameModeAddon.getDescription().getName(), 1)); + return values; })); } } diff --git a/src/main/java/world/bentobox/bentobox/api/addons/AddonClassLoader.java b/src/main/java/world/bentobox/bentobox/api/addons/AddonClassLoader.java index 257a36af2..10e663308 100644 --- a/src/main/java/world/bentobox/bentobox/api/addons/AddonClassLoader.java +++ b/src/main/java/world/bentobox/bentobox/api/addons/AddonClassLoader.java @@ -87,7 +87,7 @@ public class AddonClassLoader extends URLClassLoader { private AddonDescription asDescription(YamlConfiguration data) { AddonDescription.Builder builder = new AddonDescription.Builder(data.getString("main"), data.getString("name"), data.getString("version")) .authors(data.getString("authors")) - .metrics(data.getBoolean("metrics", false)) + .metrics(data.getBoolean("metrics", true)) .repository(data.getString("repository", "")); if (data.getString("depend") != null) { diff --git a/src/main/java/world/bentobox/bentobox/api/addons/AddonDescription.java b/src/main/java/world/bentobox/bentobox/api/addons/AddonDescription.java index f334268e4..fee2c3201 100644 --- a/src/main/java/world/bentobox/bentobox/api/addons/AddonDescription.java +++ b/src/main/java/world/bentobox/bentobox/api/addons/AddonDescription.java @@ -111,7 +111,7 @@ public final class AddonDescription { private @NonNull List authors = new ArrayList<>(); private @NonNull List dependencies = new ArrayList<>(); private @NonNull List softDependencies = new ArrayList<>(); - private boolean metrics = false; + private boolean metrics = true; private @NonNull String repository = ""; /** * @since 1.1