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
-
View User Profile
-
Send Message
Posted Oct 5, 2013@Bl0c
Bug is fixed in 0.6.3, waiting on DBO to approve the jar for download.
-
View User Profile
-
Send Message
Posted Oct 5, 2013I try to find the cause of the error, which triggers it. No results .... I will generate the error references so that you can review the
http://pastebin.com/A93kWatN
-
View User Profile
-
Send Message
Posted Sep 27, 2013@jaggy80
Should be fixed next version.
-
View User Profile
-
Send Message
Posted Sep 26, 2013@Tehbeard
FYI I had to increase the statistic and name column size for stats_statistic table so it would fit this: splashpotioneffecttype[19, poison]
It was generating database errors on the console every time it tried to put it in. Probably the same for all splash potions. Just a heads up :)
-
View User Profile
-
Send Message
Posted Sep 22, 2013@dickwick
Ok, lets take the block place:
Old code, used to wool += 1 (add one to wool)
new code,
wool +=1
wool_x +=1
so, in theory wool = sum(wool_x's), but doesn't in practice for older databases.
-
View User Profile
-
Send Message
Posted Sep 22, 2013@Tehbeard
And can you tell me how does this wool_x counting works? I would love to try it by myself. Trying to get from 0.5 to 0.6, but I'm worry that these odd numbers would be unfixable after upgrade.
-
View User Profile
-
Send Message
Posted Sep 21, 2013@dickwick
The issue is the age of the db and the metadata (wool_x entries) coming along in a later version (thus wool got a head start on counting). Adding a retrofix to rebalance the total vs. meta is very low priority on my todo list.
-
View User Profile
-
Send Message
Posted Sep 21, 2013How is block counting working for wool?
When someone break/place for example pink wool, how does counting work? I counts +1 to regular wool and then +1 to wool_5 ? So wool should be sum of all wool_x ?
I have 2 years old db and trying to figure out how to fix counting, because totalizer for blockbreak/place it completely off. Player have 1,8mil wool placed and 905k wool_x placed. So what does that exacly means and where is the truth about these numbers?
-
View User Profile
-
Send Message
Posted Sep 19, 2013@Tehbeard
Seems like the only stat not reporting is player kills and deaths.. Maybe a plugin is interfering.. That's the #1 achievement players want. Any ideas? The total mob kills stat is working, just not total player kills or player deaths.
Not seeing any smelting or brewing stats.. you may not have added them yet, but seems like theres stats for almost everything else lol
-
View User Profile
-
Send Message
Posted Sep 18, 2013@Tehbeard
Thanks much!!! I just manually added "timestamp" to those fields and "time" to that one other.. works perfect :) Thanks so much.. time to start thinking of achievements now...
-
View User Profile
-
Send Message
Posted Sep 18, 2013@jaggy80
It might be a bug in how I setup the metadata updating. Try this to force it to run the update:
1) Make a backup of the config 2) open the config.yml (plugins/BeardStat/config.yml) 3) under general: there should a mcver: ... Delete the line and save, restart the server (don't use /reload, its kinda derpy and can cause issues like files not being re-read from disk).
You should see the line: "Different version to last boot! Running built in metadata script." appear, hopefully that will fix the issue.
if it doesn't and you feel confident with SQL, you can try to manually update the formatting, using the updateMetadata.sql file as reference (https://github.com/tehbeard/BeardStat/blob/develop/src/main/resources/sql/maintenence/updateMetadata.sql#Ll516)
Nice modification of the web UI by the way :)
I plan to get 0.6.3 (for 1.6.2+) out which adds tracking leashing animals and a small DB update to fix some issues with truncation soon, still need to run some tests. Admin area for the web UI should be the next major release after that.
Sometime after that I plan to rewrite BeardAch's webUI to be more similar to BeardStats (separate the logic from presentation)
-
View User Profile
-
Send Message
Posted Sep 18, 2013On the WebUI, it doesn't format things with date/time properly, just leaves it in UNIX epoch time. I don't know enough about php to fix it :( It also doesn't seem to report Login count correctly. It's like api.php's formatstat function isn't triggered..
I did some customization of the WebUI and included BeardAch achievements if you're curious: Jaggy.org Stats Wasn't easy, but pretty sweet. Thanks for the awesome plugins!
-
View User Profile
-
Send Message
Posted Sep 16, 2013@Bl0c
Looking into it, next version will double the allowed length of the keys.
Do you happen to know how to reproduce the error/ What action causes it to occur?
Edit: have a dev build with the fix for MySQL. SQLite migration is a little bit trickier (no support for altering an exisitng column), have to figure something out for it.
-
View User Profile
-
Send Message
Posted Sep 11, 2013http://pastebin.com/TQvw01yw
-
View User Profile
-
Send Message
Posted Sep 6, 2013@LordFitter
... Post the whole of the error stacktrace on the appropriate dev bukkit page?
-
View User Profile
-
Send Message
Posted Sep 6, 2013@Tehbeard
I dosn't work with the available version. Im getting an error where it says (is this up to date?)
-
View User Profile
-
Send Message
Posted Sep 6, 2013@beaurelic01
Should work with latest versions.
-
View User Profile
-
Send Message
Posted Sep 6, 2013is there coming a beardach update for 1.6.2 or does it work with version there is now
-
View User Profile
-
Send Message
Posted Sep 3, 2013@Tehbeard
Found it. Small bug in the function that determines the id's for parts of a stat. It was only getting the first digit (fine for 0-9, causes a problem for id's 10+)
Should have a zip with the fixes out tomorrow.
-
View User Profile
-
Send Message
Posted Sep 3, 2013hmm, It's using the wrong Id's for the scoreboard's query (trying to do deaths::playedfor on my local build). Investigating