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
@sethgandy
i might have missed tying that into the logging levels, i'll look into it.
edit: It's set to info level in the current in dbo release it seems.
Latest CI build (#124 and up) has it set to use log level fine (Which if the logger system is not being messed up by bukkit or something else, should NOT show up on console unless debugging is enabled).
Good deal! Thank you! One more question while I have you at the podium Mr. Beard..
The saving time dialogue that pops up in the console, is there a way to disable that reporting? Or is that set in stone? It's just cluttering up my log that I have to review almost daily (little kids just don't know how to play nice xP )
@sethgandy
It shouldn't be (the config default is to only track in survival mode)
Is it all stats or just some that are tracked in creative?
Also, have you tried adding a section for the creative world to see if the problem persists?
I have the worlds config file like so:
And I basically just want stats recorded for my primary world (world), not the creative world (creative). Though it still records info for it...?
@moose517
Can't seem to replicate /stats and /played not working on the latest jenkins build, could you be running a plugin that is conflicting with names of these commands?
@Tehbeard
yeah i had noticed that already and updated both the plugin and webpage, much better with names being clickable however in game no commands work still. build was lastest you had last night.
@moose517
Same github as the plugin (planning to seperate it to stop jenkins firing on each update to it though), and already added that to the develop branch :) Feel free to do a PR if you have any more ideas to improve the web gui.
Edit: Looks to be the one on here, I'd try the latest build from jenkins, it should be working, I'll do some more tests before I push it onto dbo (Currently testing that nothing broke with 1.7 bukkit)
@Tehbeard
0.7-SNAPSHOT-Ambrosia-git-"7718bff" is the version i'm running, fairly certain its one i got from here, but i could be mistaken. Thanks on getting permissions nodes. do you have a github for the web page part of the plugin? if so i can submit a PR to make names clickable to go to there stats page from the scoreboard.
So anyone getting the error:
[BeardStat] Duplicate entry '' for key 'uuid'
Run this on the SQL tab of myPHPadmin
@sethgandy
New installation?
Mistake on my part, forgot to remove the unique constraint from the create table. If you drop the uuid index (NOT FIELD, INDEX) on the *_entity table it should fix the issue.
@moose517
Which version has the command issues (from here on dbo or from Jenkins?)
worlds.yml entries are the same as the default one, substituting default for the world's name, if an entry doesn't exist it uses the values in default.
Will work on getting a permission nodes list together.
Having a couple issues with beardstats. all the commands are saying they are needing implemented yet which is fine i can use the web gui. Documentation is lacking for one thing so the worlds.yml file. do i need to put each world i want stats recorded on in there? Also the web gui could really use a bit of work, like when in the scoreboards clicking a name should go to show the players actual stats.
EDIT: also permission nodes list?
Any idea what's going on here? The uuid key says it's duplicated. When I look in my database, the uuid field under the user entity data is blank, so it won't create more than one user's info.
Has anybody created a clean plugin front end version for wordpress? I still haven't found a clean way to implement with an existing theme on a stats page.
@ArttuJarvinen
flatfile database is no longer supported, I'd recommend using the "sqlite" type instead (note: there's a bug in the latest release on dbo with sqlite, build 98 on jenkins has the fix.)
Hey,
When i try to use database type 'file' it gives an error on startup
"Error loading database, disabling plugin."
What should I do?
@KDMinecraftServer
Which stats is it doing this on? There's a number of timestamp based stats.
I'm having an issue where the web UI is showing the unix timestamp instead of the formatted date and times. Is there something that I should be doing?
@jaggy80
Squashed in build 96, BeardAch build should be out in next day or two, as stated in previous comment was waiting for BeardStat to be fairly stable.
@Tehbeard
Can u squash this one? =)
http://pastie.org/8479009
Seems to be running fine other than that.. Also beardach needs updated for this version of beardstat i think.. it won't load at startup :(
http://pastie.org/8479010
Just tested latest beardach build and same error on load Thanks much!!!
@jaggy80
Let me know if you find any bugs for me to squash :)