From e6d509c3e665bc637c966f77c0b1be806c657c04 Mon Sep 17 00:00:00 2001 From: Mike Primm Date: Fri, 24 Aug 2012 22:37:48 -0500 Subject: [PATCH] Add some more feature metrics --- .../java/org/dynmap/bukkit/DynmapPlugin.java | 91 +++++++++++++++++-- 1 file changed, 85 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/dynmap/bukkit/DynmapPlugin.java b/src/main/java/org/dynmap/bukkit/DynmapPlugin.java index 83c2573f..79f0e7a7 100644 --- a/src/main/java/org/dynmap/bukkit/DynmapPlugin.java +++ b/src/main/java/org/dynmap/bukkit/DynmapPlugin.java @@ -69,6 +69,7 @@ import org.dynmap.DynmapWebChatEvent; import org.dynmap.DynmapWorld; import org.dynmap.Log; import org.dynmap.MapManager; +import org.dynmap.MapType; import org.dynmap.PlayerList; import org.dynmap.bukkit.permissions.BukkitPermissions; import org.dynmap.bukkit.permissions.NijikokunPermissions; @@ -82,6 +83,7 @@ import org.dynmap.common.DynmapCommandSender; import org.dynmap.common.DynmapPlayer; import org.dynmap.common.DynmapServerInterface; import org.dynmap.common.DynmapListenerManager.EventType; +import org.dynmap.hdmap.HDMap; import org.dynmap.markers.MarkerAPI; import org.dynmap.utils.MapChunkCache; @@ -634,12 +636,7 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI { registerEvents(); /* Submit metrics to mcstats.org */ - try { - metrics = new Metrics(this); - metrics.start(); - } catch (IOException e) { - // Failed to submit the stats :-( - } + initMetrics(); Log.info("Enabled"); } @@ -1294,4 +1291,86 @@ public class DynmapPlugin extends JavaPlugin implements DynmapAPI { public boolean testIfPlayerInfoProtected() { return core.testIfPlayerInfoProtected(); } + + private void initMetrics() { + try { + metrics = new Metrics(this); + + Metrics.Graph features = metrics.createGraph("Features Used"); + + features.addPlotter(new Metrics.Plotter("Internal Web Server") { + @Override + public int getValue() { + if (!core.configuration.getBoolean("disable-webserver", false)) + return 1; + return 0; + } + }); + features.addPlotter(new Metrics.Plotter("Spout") { + @Override + public int getValue() { + if(plugin.has_spout) + return 1; + return 0; + } + }); + features.addPlotter(new Metrics.Plotter("Login Security") { + @Override + public int getValue() { + if(core.configuration.getBoolean("login-enabled", false)) + return 1; + return 0; + } + }); + features.addPlotter(new Metrics.Plotter("Player Info Protected") { + @Override + public int getValue() { + if(core.player_info_protected) + return 1; + return 0; + } + }); + + Metrics.Graph maps = metrics.createGraph("Map Data"); + maps.addPlotter(new Metrics.Plotter("Worlds") { + @Override + public int getValue() { + if(core.mapManager != null) + return core.mapManager.getWorlds().size(); + return 0; + } + }); + maps.addPlotter(new Metrics.Plotter("Maps") { + @Override + public int getValue() { + int cnt = 0; + if(core.mapManager != null) { + for(DynmapWorld w :core.mapManager.getWorlds()) { + cnt += w.maps.size(); + } + } + return cnt; + } + }); + maps.addPlotter(new Metrics.Plotter("HD Maps") { + @Override + public int getValue() { + int cnt = 0; + if(core.mapManager != null) { + for(DynmapWorld w :core.mapManager.getWorlds()) { + for(MapType mt : w.maps) { + if(mt instanceof HDMap) { + cnt++; + } + } + } + } + return cnt; + } + }); + metrics.start(); + } catch (IOException e) { + // Failed to submit the stats :-( + } + } }