BeardStat
BeardStat is statistics tracking plugin for bukkit. It tracks a wide variety of user statistics and makes them available to your playerbase and plugins.
Recorded stats
- last Login and logout time
- Total playtime
- block placement and breaking (including sub/metadata blocks like wool, logs etc)
- Items picked up/dropped
- Damage dealt and recieved
- Kills and deaths
- Food consumed
- Sheep sheared and dyed
- TNT detonated
- Distance travelled on foot/boat/cart/horse/pig
- Items crafted
- Animals tamed
- Teleports
- Fishing
Web interface (under development)
BeardStat also comes with a web interface for stats, this allows players to view their own and friends stats on your servers website. the Web interface also includes a scoreboard system to rank players based on various statistics (playtime, creepers killed)
Commands
Stats are recorded per world, and you can blacklist worlds/gamemodes from tracking. BeardStat also has a number of commands: * /stats - access to all stats information * /played - shows a players playyime. * /laston - Returns the last time the player was on * /statpage - Allows showing a selection of player stats, useful with Bukkit's command aliasing
Dev builds
Development builds of this project can be acquired at the provided continuous integration server.
These builds have not been approved by the BukkitDev staff. Use them at your own risk.
(Please note, zips in dev builds currently contain a broken implementation of the web interface, please instead download the .jar file instead. The web interface available on the right of this page) Development builds fresh from Jenkins
Issues
BeardStat has an issue tracker on github, https://github.com/tehbeard/beardstat/issues.
For error reports please include the following: * full stacktrace of the error * plugin version (inc. build number if using one from CI) * Bukkit version * Database type used (SQLite / MySQL)
Plugin integration
BeardStat provides a rich API for plugin developers to hook into BeardStat and read / record statistics.
For Developers
BeardStat stats are identifiable by a unique Id generated from 4 sub components: * Domain * World * Category * Statistic
Domain is the primary namespace for a collection of stats, the "default" domain is used by BeardStat, I ask that you use your own unique domain for your plugin (i.e. if you make a PvP arena plugin, you could use the domain "pvparena").
World represents the world in which this stat was recorded, these are for the most part the name of the world.
Two special cases exist however. "__global__" is a reserved world name, meant for stats that do not pertain to a world. The second case is "__imported__", this is a reserved world for stats that have been imported from an older version of BeardStat before per world storage was implemented.
While not intended, you can use the world id for a unique area that is not a whole world (Going back to our pvp arena example, you could use the arena names instead, such as old_forge, broken_bow instead of a world name)
Current plugins that are known to integrate BeardStat: * BeardAch - Achievements plugin * SimpleSpleef Evolution
Metrics
BeardStat includes the plugin metrics code developed by Hidendra (author of LWC), which collects anonymous information about the plugins deployment (minecraft, server, plugin version, assumed server location at country level and database type used by BeardStat, aggregated into graph form.) More information on this system, including how to disable it can be found here
@Tehbeard
Indeed, i thought it was to enable T_T
Thanks a lot for your fast fixes and answers.
@Tchovvy
Should be a list in config.yml called worlds: where you can switch it off on certain worlds.
One last issue, it seems it doesn't support Multi worlds :p
I use Multiverse 2 : http://dev.bukkit.org/server-mods/multiverse-core/
*edit* There is a new version of M2, i'll test it.
@Tchovvy
found the issue, I screwed up the index on the table so only 1 stat per player was valid (oops).
Run:
on the database to fix it, I'll patch the creation code to fix this.
Sorry about that.
I have a new issue now, without any error log.
The plugin seems to work but registers only "playedfor" with mysql. And it registers everything with the flat file.
http://gyazo.com/839339888778aab274c067a4dcf61dcb
Server version: 5.1.49-3 (Debian)
Any idea ? Thanks.
one of the admins I work with noticed a small error on unload. Sometimes it will throw an NPE when calling PrintDebugCon. It's patched but really worth updating at the moment since it won't smash anything, i so for now it'll stay and will be fixed in the next release, which will hopefully include more potion tracking.
@Tehbeard
Thank you, thank you, thank you!
Bug fix is out along with a few new shiny features! 0.4 (doughnut) contains a fix (read: I uncommented code I forgot to uncomment) for the flat file driver, some error checking to prevent errors on cross world teleports, as well as some shiny new statistics.
NOTE: THIS VERSION IS NOT COMPATIBLE WITH 0.2 BeardAch, expect an update for BeardAch within the next 24 hours.
@Kekec852
Looking into it, looks like bukkit might have changed the order move/teleports are called in. Adding to code to patch against that.
@Tchovvy
Have you tried against RB1.1-R3? If it still errors on 1.1-R3 link me the config to have a look at.
http://dev.bukkit.org/paste/4646/
CraftBukkit: #1818
I tried with and without plugins, same errors.
http:dev.bukkit.org/paste/4640/
This exception was thrown when player teleported to nether using Stargate plugin
@Tchovvy
adding to the next release.
Is there any way to disable/enable per world ? Thanks.
@Tehbeard
I did eventually figure it out.. seems that the setup was a little bit different than other plugins I've used. Thanks for the reply.
@aufdemrand
Have a look in the BeardStat.yml file and input the host/user/pass/database in there.
The user will need create table and CRUD (Create/read/update/delete) privilges to setup the database.
Having troubles getting this to connect to my database. Any additional information besides what is listed here?
Edit: Eh, ok... snagged info off an update log to find out that type:file worked... but I'd still like to get mySql going. I have a database in use with different plugins.
@GameCharmer
I'll add a /bstats alias in the next release
Also I've got a php class for sql backend that lets you pull stats out of the database, great for making reports or stats pages for your users.
A little snowed under with uni work, so It might be post 1.9 I get this out.
Awesome plugin. Been using it for a couple of days and love the way it's handling data. Out of all of the stats plugins, this one seems to have the greatest amount of accessible data (not to mention it's the only one that works on my server). I have experienced no lag since adding it, so I am assuming how it flushes data periodically is what is making i function so fast.
Would there be any way we could change the name of the /stats command, or perhaps alias it with something like /bs or /bstats? Hitting conflicts with McMMO and it's /stats. I haven't looked into changing the McMMO commands yet (will probably get around to that tomorrow).
Thanks for the great plugin! I design php websites for a living, so I'll see if I can't come up with a nice reporting page.