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 Mar 31, 2012@rbos
Did you add your worlds to the stats blacklist? If so they won't record them.
Recognised this is causing enough trouble that I'm gonna have to change the defaults to include 'ThisIsABlackListOfWorldsNotToRecordStatsFor' as an entry :)
-
View User Profile
-
Send Message
Posted Mar 30, 2012Some stats aren't incrementing - distance traveled, blocks placed, a few other things. Others are. you can connect to 'minecraft.novylen.net' and see the stats page at 'minecraft.novylen.net/stats' if you want to confirm.
-
View User Profile
-
Send Message
Posted Mar 30, 2012@AidenShaw99
There is no auto conversion, but BeardAch has many parallels to Achievements, alongside many extra features.
The next version of BeardAch will be out within 24-48 hours, with more triggers and features.
-
View User Profile
-
Send Message
Posted Mar 30, 2012@Tehbeard
Hi Tehbeard, my mistake, i set my world name in config :), now is OK, thanks!!
And i have one question to BeardAch, it is possible convert default achievements from Stats 2.0 to BeardAch? Thanks.
-
View User Profile
-
Send Message
Posted Mar 30, 2012@AidenShaw99
1) have you made sure you are punching blocks?
2) the worlds list in the config is a blacklist of worlds NOT to record stats on (login and such ignore it.
-
View User Profile
-
Send Message
Posted Mar 30, 2012Hi all, i need help.
I have problem with mysql, when i use type: mysql, i get only this:
Aiden stats login 1 Aiden stats playedfor 97 Aiden stats playedfor 217 Aiden stats playedfor 337 Aiden stats armswing 508 Aiden stats firstlogin 1333139771 Aiden stats lastlogin 1333142151
no blocks data.
But when i set type: file, i get data with blocks log.
Someone can help me with this?
Sorry for my english.
-
View User Profile
-
Send Message
Posted Mar 30, 2012@jdastrup
Started to work on cleaning that part up, let me know if it needs some more detail.
-
View User Profile
-
Send Message
Posted Mar 29, 2012May I suggest a page here about permissions and more details about command usage? I had to peak inside the jar file to figure out permissions, but would be nice if it was documented here.
-
View User Profile
-
Send Message
Posted Mar 29, 2012Good news, crafting stats get tracked in the 1.2.4 RB.
Bad news, it seems they do not behave as expected for shift click crafting, so if you shift click to craft, only one of the item is tracked (i.e. shift click crafting a stack of logs into wood only counts as 4 planks).
Hope to have this fixed for the next release.
-
View User Profile
-
Send Message
Posted Mar 27, 2012@Tehbeard
Thank man! i should dig deeper into the docs
@Tehbeard
DO NOT GET ME WRONG!!!
not only your API helped but inspired me!!
I am not creating an API as a competition but rather cause my needs are different!
There is already quite a bit of code that work with PEX and other SQL plugins(and we are moving to more and more alternative plugins that use SQL to create something we have in mind, your API simply wasn't made for what i am trying to do here and had to code something my self, then i saw yours and since adding a few stuff to it to make it usuable by others isn't a big deal i simply am.
There are quite a few things i am doing differently and you will see it when i feel ready to release the code.
I would love to share code with you just not publicly yet.
As for the data in the database, i really want everything available even if it is not Perfect for the eyes, so what i am doing is reading everything, format it as the configs dictate, and show it to the user, if my code or the config files do not predict for some stat there is code do handle that and show it in a human readable way (you will see diodeblockon/off for repeaters, for example).
Please tho, keep in mind that i saw this as a challenge! My first PHP coding was 1 month back, so you guys are just interesting to me, and i am trying to learn with this process.
@Tehbeard
@Tehbeard
I think i could make something to help out, it will have limitations, but i thing i could get a decent result, interested?
-
View User Profile
-
Send Message
Posted Mar 27, 2012@jefe323
I hardcoded it for Escapecraft. I have no plans to make it available for anyone else, as it's not very customizable.
-
View User Profile
-
Send Message
Posted Mar 27, 2012@Tehbeard
is that signature thing something that will one day be publicly available or is it just an in-house thing?
-
View User Profile
-
Send Message
Posted Mar 27, 2012@JohnKapsis
Heya. I understand your curiosity for which stat is a record for which event and all of that. Tehbeard provided me with a list that I included in the readme file for the Web API part. If you open up readme.txt and search for "[DATABASE]" you should find the section that contains all the stats and what they are for if they don't appear obvious. This list will change with each new version of Minecraft as new blocks and items are added.
I'm saddened that my API didn't help you out as much as you wanted, but I think I did a good enough job with it. As the stats are recorded as vague descriptions of the actual stat, or odd block names (diodeblockon/off for repeaters, for example), I felt it necessary to add (and require) the ability to name such stats, and the ability to combine stats into one value (for music discs, as an example).
The stats don't just list what's in the database, as that changes based on what players actually have recorded for stats. Some players may not have a certain stat, so it won't be in the database. A central "format" was my solution to that. Don't dismiss the API simply because of the way it deals with data. There are variables that are set when you load a player that you can run through with a foreach loop to display all the stats they've ever recorded, if that is what you want.
However, it's your data, your database, and if you have the know-how to make a solution to displaying stats yourself, I encourage you to do so. :-)
-
View User Profile
-
Send Message
Posted Mar 27, 2012@JohnKapsis
Check the readme that comes with the web api, it has a table of all the stats.
-
View User Profile
-
Send Message
Posted Mar 27, 2012Hey!! whats up?!
Well, i must say again the same thing as i did a week or so ago!
We need to know what is what in the database!!!
i.e.
kills.enderpearl for how many enderpearls you killed?? wtf?)
kills.fall (stands for killing someone by pushing?? yeah right...)
kills.entityattack
deaths.custom
deaths.entityattack
damagetaken.lightning
damagetaken.lightningstrike
damagetaken.blockexplosion
damagetaken.tntprimed
damagetaken.egg (egg does damage?? or is it how many times you got hit?)
damagetaken.snowball (same as above)
I hope you understand my confusion...
Also let me say that the API you published inspired me to write my own,
it is not ready yet to release i need to clean it up and make all the documentation for it.
because i keep a logic very similar to your plugins(it will be able to show whatever is in the database even if me the coder or the admin haven't coded it in so the user can have access to all the data in the database) it would be nice to have that list for what is what, in plain English and for every possible stat that would require explanation.
(item pick up wouldn't need explanation)
Anyway i think you got the point, i hope you can help out.
(i will send you a sample of my API soon, great plugin man i invest time on it cause of that)
John
-
View User Profile
-
Send Message
Posted Mar 27, 2012@jefe323
http://escapecraft.net/stats.php?player=tehbeard
The image signature is a custom thing furdabip did for our site, apart from that and the style (colors, background) it's the same.
-
View User Profile
-
Send Message
Posted Mar 26, 2012Is there a sample page for the web part? I'd like to know what it looks like before setting this plugin up on my server
-
View User Profile
-
Send Message
Posted Mar 26, 2012@Tehbeard
Yes I did. I didn't make any tables, just the database.
Also gave the user the rights to write in the database.
I'll go everything over now, I watched it three times over now, I'm pretty sure that's not a problem.
-
View User Profile
-
Send Message
Posted Mar 26, 2012@Superkuuk Our server is running on 1.2.4, using mysql and its connecting just fine. Apart from the obvious thing of recheck the sql details, i'm a bit stumped :S
Did you create a database for the BeardStat to use?
-
View User Profile
-
Send Message
Posted Mar 26, 2012@Tehbeard Thanks for your response, nut it didn't work, I tried on 127.0.0.1 (via browser it works) and I removed all the worlds.
Still get the same error.
Are you sure it will work on 1.2.4?