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
Bug(?): I've not assigned any permissions (we don't need the commands) but everybody still have permission to certain commands as if they have the permission 'stat.command.stat'. Everybody can use the '/stats' for example.
Suggestion: I don't feel like recording stats for players who just visit the server for a short while and never returns. I suggest adding a permission node which players will need before stats are logged for them. I think it could be optional! -OR- make some sort of feature to trim new and/or inactive users (possibly two different features).
Other than that I really dig this plugin - loving it :-) I just wish I was better at integrating webstats with XenForo but that's my own headache!
(I've also made a comment on BeardAch)
@Tehbeard
Yes, it was definitely something with my mysql setup. I had to comment bind-address in my.cnf for it accept other ips than local.
So it's working and really loving it :-)
@MsPtibiscuit
There is a list in the readme for the web folder that lists all the stats.
Heypoday,
I've made a plugin, iProfessions (http://dev.bukkit.org/server-mods/iprofessions-new/), using BeardStat to make an experience system for professions' required. (Btw, BeardStat is the best Stat plugin I've found :) ), I tried to make a list of all kind of stats, but it is pretty hard. Do you have that kind of list, because it is pretty important to my users that they can have all the possibilities ? :) Thanks again for this plugin. :)
@moose517
I have old database with stats from Stats 0.99 and Stats 2.0 and now using BeardStats. Did you managed to merge those stats somehow? I sent this comment while ago, so I will resend it:
Hello, I have quite a problem here. I have long running server with stats from beginning. I had Stats, Stats 2.0 and now BeardStat and here is my problem. My stats db is kinda messy, because of Stats or Stats 2.0 and it looks like this:
Each one of those is torch, but I need to find a way, how to merge them for every player, every category and each block, that have data value stored. Isn't there any way, how to do it?
@RevoMods
yes
Does this work on 1.2.5?
@Infuscu
The issue looks like it could be related to your mysql server not being accessible from the game server.
Do you have other plugins that use mysql?
If so and they work, have you tried using their credentials?
is the db user setup with the right permissions on the database?
I am receiving the following error (in the browser) when I try to connect to the mysql server (it's remote):
"Couldn't connect to the database.
Error returned: Lost connection to MySQL server at 'reading initial communication packet', system error: 111"
I know this is probably not your fault and most likely has something to do with my mysql setup. I've searched the internet but haven't had any luck with a solution. Maybe you've dealt with something similar earlier?
@moose517
Some help, in the web/readme.txt, there is a section detailing all the statistics, a search for [blocks] will tell you the name of certain blocks in the database.
It's available online here: https://github.com/tehbeard/BeardStat/blob/master/web/readme.txt
@Tehbeard
Thats no big deal, i can modify my database with the number values where needed if thats all it takes. Glad to hear that as i really loved it!
@moose517
They have the same structure, and most of the stats exist in BeardStat.
but I offer no guarentees they are the same name. stats towards the end of it's life went slightly "buggy" for us, you may find it has stored say moose,blockdestroy,101,20 rather than
moose,blockdestroy,ironbar,20 (which beardstat stores it as).
So yes, it is compatible, but some stats won't transfer without you running queries to update them from a number to the text.
will beardstat work with the stats database from this plugin waaaaay back when? http://forums.bukkit.org/threads/inactive-info-stats-v0-99-and-achievements-v0-99-1000.1328/page-33
@ursak
It has a soft dependency on it. Basically if you have BeardStat you can use the stat triggers.
If not, the stat triggers won't fire, you'll get warnings if you use them, but shouldn't get any error spam
Doesnt BeardAch require that you have BeardStat? Just asking since Achivements are updated but not this.
<<reply 712303="">>
The full error dump: http://pastebin.com/uJtLrkma
You don't have to reply to this. I was pointing the plugin to the database on my site instead of my server. That's what happens when you don't sleep. I'm just posting this in case anyone else makes the same mistake.
Thank you so much, your second point is what got me thinking.
@kiligir
I'll check later about _ issues. For now two things.
1) Can you please provide a full dump of the error, so I can find exactly where it's erroring (if it's a connection issue, or an issue building the table).
2) If the database is on a seperate server to bukkit, make sure the db user has access from it. if your on shared hosting, this might not be something you are able to do, depending on provider.
Should it fail, use this to construct the table.
I keep getting a [SEVERE] java.sql.SQLException: Access denied for user... flag thrown every time I try to start it. The table is set up with the correct permissions and I've checked at least five times to make sure that the username, password, host, and database are all correct. I even remade the user and database to mimic the ones in the config.yml. The username has to have an underscore in it since that's the way my host forces me to name it. Is that the problem? Otherwise, I guess I just need to know how to make the .stats table by hand.
@AssRealm
You need to host the web files contained in the download. Not sure if you have the ability to do that with enjin.
How to i make the stats show on my website?
I am using enjin.