Professional full-stack developer & open source enthusiast
bastian / bstats Goto Github PK
View Code? Open in Web Editor NEWbStats collects data for plugin authors. It's free and easy to use!
Home Page: https://bstats.org/
License: MIT License
bStats collects data for plugin authors. It's free and easy to use!
Home Page: https://bstats.org/
License: MIT License
Professional full-stack developer & open source enthusiast
Do you think it could be possible to add a forge section?
Thus it will be possible to know the number of players using a mod?
Just wasted 5 minutes trying to find this project
I would prominently state on the main page that the project and the gists are open source as this is a huge selling point.
Hey.
When you enter a site which does not exist (e.g. https://bstats.org/abc), you'll get a stacktrace instead of a 404 page or something like that. ^^
The color is okay and makes me think of Minecraft slightly, but it can be a bit overwhelming. I think it would be interesting to provide a color selector somewhere in the footer(or anywhere) to switch to other material color schemes.
I know these are pretty minor, so probably won't be very high on the priority list, but I'll list them anyway.
Not strictly design-related, but can you add a way to stay logged in for longer? It gets quite tedious to have to login each time. I know there are security concerns, but I'm thinking more along the lines of one of those 'remember me' boxes.
I recently looked into transferring my plugins away from mcstats and ran into the problem that I can't add plugins that run on more than just one server software. In my case I have on that runs on both, Bukkit and BungeeCord servers. (And yes, selecting nothing does not work for those wondering)
I saw that other ticket about Sponge + Bukkit support and the issue that global stats are generated from that category. This could be avoided if the type of server the plugin is running on wasn't generated by the plugin's category on the site but send directly with the metrics request.
Following scenario:
I have a plugin that has some number of inventory games. Every server can have different games and a different amount of games. Now I'd like to have a drilldown pie with the number of games on the first stage and the games distribution of all servers with the same number of games on the second stage.
metrics.addCustomChart(new Metrics.DrilldownPie("games_drill_down", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>();
Map<String, Integer> entry = new HashMap<>();
for (String gameID : getPluginManager().getGames().keySet()) {
entry.put(getOriginalGameName(gameID), 1);
}
map.put(String.valueOf(getPluginManager().getGames().size()), entry);
return map;
}));
I would expect that every plugin instance gets a weight of 1 for the first stage (it's 1 time n games). So if I have 4 servers with different numbers of plugins every server gets 25% of the cake. But instead, with the code above, the value on the first stage is given by the number of games (screenshots).
I am not 100% sure that this is an issue. Maybe you want the drilldown pie to act like this, but I was ecpecting a different behaviour.
For example I am adding a new Plugin - thats has existed for over 10 years - up until now it use the old Metrics so I am switching it to bstats - but when I add the plugin it says it already exists despite the fact there is no plugin by that name listed.. This presents a problem from the point of view its highly likely there will be 2 plugins with the same name that are completely different - I think it would be smarter to assign a Plugin a UUID on the website and initialize it
Metrics metrics = new Metrics(plugin);
metrics.setPluginID();
metrics.addCustomChart(charts);
The "Online mode" statistic is a really nice thing to be able to refer to, however, it's usefulness is limited as the statistic doesn't truly represent the state. Servers which use BungeeCord will report as being 'offline' - when in most cases, they're are in fact authenticating, just via the proxy.
I notice the setting is currently represented by an integer (although I assume it may be converted to a boolean at some point internally??):
https://github.com/BtoBastian/bStats-Metrics/blob/master/bstats-bukkit/src/main/java/org/bstats/bukkit/Metrics.java#L215
Perhaps a third value could be added there using a value of 2
for Offline due to BungeeCord.
This would mean 'Online mode' would have the following possible values:
Because bcrypt-nodejs is no longer maintained.
shaneMangudi/bcrypt-nodejs@5325524
New packages => broken links.
Thanks to brooky1010 for reporting.
first thing i noticed was that the system arch is not reporting correctly. the two servers i have it being tested on are both Intel(R) Xeon(R) CPU E5-2670 and it is being reported as amd64
CanaryMod is admittedly dead is some people's eyes - I prefer hibernating - we've used mcstats for some time now, internally to track users of CanaryMod and by extension NeptuneMod.
bStats has now been around long enough, that I'm happy to start using it with NeptuneMod and work its way into CanaryLib as a replacement for mcstats.
Talking more broadly than adding a Canary category, I'd like to pose the question as to whether having different categories is such a good idea? To me it seems like unnecessary fragmentation - forcing plugins to not be able to see their total stats from one location. As far as plugins go, platform should be irregardless when considering statistics other than platform statistics of course.
https://bstats.org/When%20your%20error%20404%20has%20an%20error%20404
Title says it all, don't know what else to put.
Today I had a good idea for some custom data for my plugin to send, and while a simple pie was an awesome option for me, I couldn't stop thinking that a drilldown pie chart would had fit even better for that case.
If it's not much of a chore, do you think you could implement these in the future?
When i try to delete charts created by me it doesn't want to delete them. Please fix this issue!
Hi there,
thanks for the alternative to MCStats, since it's down again for several days, I'm currently looking for alternatives I can use and stumbled upon the relative young project bStats ๐
What's your priority (and possible ETA) for the maven repository?
It's important for me, since it's much easier for me to check for updates. Currently I need to manually check if your gist updated.
Thanks,
Tim
You did mention adding customizable plugin pages with a description, so here are some optional features I think would be interesting:
Hi I have just added bStats in my plugin MobHunting and it works. (most of the time) :-)
BUT once in a while I get this HTTP error.
[MobHunting] Could not submit plugin stats of MobHunting javax.net.ssl.SSLException: Received fatal alert: internal_error at sun.security.ssl.Alerts.getSSLException(Alerts.java:208) ~[?:1.8.0_121] at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) ~[?:1.8.0_121] at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2023) ~[?:1.8.0_121] at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1125) ~[?:1.8.0_121] at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) ~[?:1.8.0_121] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) ~[?:1.8.0_121] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) ~[?:1.8.0_121] at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559) ~[?:1.8.0_121] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[?:1.8.0_121] at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1316) ~[?:1.8.0_121] at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1291) ~[?:1.8.0_121] at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) ~[?:1.8.0_121] at org.bStats.Metrics.sendData(Metrics.java:278) ~[MobHunting-4.3.7-SNAPSHOT-Bnull.jar:?] at org.bStats.Metrics.access$200(Metrics.java:26) ~[MobHunting-4.3.7-SNAPSHOT-Bnull.jar:?] at org.bStats.Metrics$2.run(Metrics.java:237) [MobHunting-4.3.7-SNAPSHOT-Bnull.jar:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
Some plugins, such as GriefPrevention, are able to run on both Spigot and Sponge. It would be nice if it was possible to register a plugin of bStats for multiple platforms.
I have a plugin called UltimateCore, which is available for both Bukkit and Sponge.
Both plugins send the same data, and I would like a way to combine the bukkit and sponge plugin into one, instead of both seperate plugins.
So one page which shows both data for the Bukkit and for the Sponge plugin.
(The bukkit plugin doesn't exist yet, the sponge plugin is at https://bstats.org/plugin/sponge/UltimateCore)
Is it more easier to replace Metrics metrics = new Metrics(this);
with new Metrics(this);
?
I think it'd be really cool to portray on your plugin website / on spigot a "Shield" like GitHub has, where it would say "Server #/#" and "Players #/#" to show people interested in your plugin that this many servers are using it currently.
I think it would be useful if statistics could be filtered based on other statistics. For example, filtering based on Minecraft version, it would be possible to see the distribution of certain statistics for a given Minecraft version, such as plugin versions or Java versions.
I'm not sure how feasible this would be to implement, but it would certainly provide some more useful insights into how plugins are being used.
I think it would be a good idea to have a global statistics page that is platform agnostic.
This would include similar data to the plugin pages but with data combined from every unique server, plus a graph or two showing which server software, then maybe one showing individual versions. This can help server owners and plugin creators to analyze this data to figure out what the information is like for the whole population compared to for just one plugin.
It would be nice to have a Bukkit/Spigot/Sponge URL of the plugin.
Example:
Hi there,
I'm a big fan of automating all the things and tests for a higher code quality and noticed some things that could be improved in this repository. ๐
Below are some ideas.
.editorconfig
file for consistent code style rules^ vs ~ vs fixed
)If you have any questions, I'm happy to elaborate or even assist - though my time for open source is limited.
Could you add:
https://bStats.org/submitData/nukkit
https://bStats.org/submitData/forge
And nukkit + forge as an option when adding a plugin
For some reason there is a gap in the line charts exactly every 12 hours.
No clue why, but it sucks...
"req.flash is not a function"
I don't know if this is intentional or not, but sometimes I try to get to a plugin's page by just typing in the link but it seems they are case sensitive. Personally I feel like it should ignore case but I am fine with it staying how it is if it is intended.
For example my plugin Latch can be found here: https://bstats.org/plugin/sponge/Latch
but it gives me an "unknown plugin" error when I switch "Latch" to "latch": https://bstats.org/plugin/sponge/latch
A nice idea would be to create a system that provides JPG images with plugin's stats written in (a.k.a. badges/buttons), something like: "400 servers are using PluginName", a reference to bStats in the bottom right (for instance) and the HTML code (also BBCode) that includes the image with a link to the plugin page on bStats.
An example could be: https://i.imgur.com/cV6RzF4.png (it's really bad and done in 10 secs just to show the concept)
or the GitHub buttons (with counts) to fork and star a repo: https://buttons.github.io/
or something like this: https://github.com/dwyl/repo-badges
And it doesn't show versions like "1.2.6a"!
Hi, I created an account on bstats, and I think Firefox remembered the incorrect password because it says I entered the wrong password.
So I tried looking for an option to reset the password and there is none, which kinda sucks because I have a plugin on there and now there is no way to manage it
Can you add an option to register an email address with an account? That way if you lose your password you can recover it
To the detriment of statistics collection, It's looking more and more likely that Sponges plugin review guidelines are going to state that stats need to be opt-in by default.
This isn't a ticket to implement this yet, it may yet not make it into the guidelines.
I'm mostly asking to just see if you would be receptive to making the Sponge stats collection either:
Do you have any other ideas? Parts of the team have been pretty vocal about at minimum not sending stats until users get a chance to opt out, if not need to opt-in for stats collection.
I want to make a basic bar chart.
The usecase is, my plugin has different modules and for each module I want to see how many people are using the module.
https://gyazo.com/fa77bee4788bdef039893c13aec64027
You might also want to add column charts
I don't need this, but someone else might.
https://gyazo.com/1d8c3dd43449d0c3340877fa2e875148
Currently the only way to get an overview what kind of servers are used is when the creators of these servers added statistics for their version under the Server Implementation category.
It would be a lot more useful if the plugin stats itself could read the server's implementation and report that. This way we could have some stats about distribution of different forks e.g. CraftBukkit vs. Spigot to decide which features our plugins can (not) support.
I have 4 plugins that currently all submit information to the bStats metrics system. and 5 current plugins on my production server
https://bstats.org/plugin/sponge/MMCReboot
https://bstats.org/plugin/sponge/MMCLogger
https://bstats.org/plugin/sponge/SimpleGamemode
https://bstats.org/plugin/sponge/mmcprefix
These are my plugins, all of which should be reporting that there is 1 server in france using it. (where mine is located), It showed this for when i tested my Reboot plugin before adding the rest and updated another plugin which included bStats.
(Enhancement) Please add a "Remember Me" option in the login screen so we don't have to repeatedly log in every time, thanks.
I have a library plugin that includes an external lib for plugins dependent on my plugin. In order to version incompatibility for plugins expecting a different version of that external lib, I've done some hackery to include the version name in my plugin's name. example-1.1
. Unfortunately, the bStats website does not allow me to add this plugin to the site. Is it possible you can make the system a bit more lenient on plugin names?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.