Bastian/bstats-metrics

Add Metrics#isEnabled()

Bobcat00 opened this issue · 2 comments

Metrics#isEnabled() was removed in bStats v2. Please add this back so plugins can determine if metrics have been enabled/disabled globally.

The use case is for plugins, in the interests of transparency, to print a message at startup indicating that metrics data collection is enabled for the plugin. Printing such a message when metrics has been globally disabled is confusing and inaccurate.

You can try that if you want:

Metrics metrics = new Metrics(this, yourid);
if (YamlConfiguration.loadConfiguration(new File(new File(this.getDataFolder().getParentFile(), "bStats"), "config.yml")).getBoolean("enabled", true)) {
    Bukkit.getLogger().info("[Metrics] Metrics are enabled!");
}

The use case is for plugins, in the interests of transparency, to print a message at startup indicating that metrics data collection is enabled for the plugin. Printing such a message when metrics has been globally disabled is confusing and inaccurate.

If this was intended, bStats would print such a message itself. Some Metrics classes (and in the future most likely every) log a message when the bStats config file gets created for the first time:
https://github.com/Bastian/bStats-Metrics/blob/cb92d2653c5aa478599c5638c446371d247d6123/velocity/src/main/java/org/bstats/velocity/Metrics.java#L87-L94

Additionally, a #isEnabled() method can (and has been) abused by plugin developers, e.g. by delaying server startup time, begging users to enable bStats, etc.