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
0.6.2 is awaiting verification and includes the webui, admin panel will arrive soon(tm).
@GodsDead
The webui is on git already, it's mainly missing documentation and regex support scoreboards (working on it today).
BeardAcg will carry on, not much dev work of late due to it being pretty stable.
@Tehbeard
Awesome! My servers kind of dead from having to wait so long for bukkit to play catchup, so I plan on implementing everything before advertising again, you should definitely upload the webui to git, Ill be playing around with it anyway to work inside my wordpress.
Is BeardAch going to carry on too? I was planning on using it to auto-promote people on my server so make life easier!
@GodsDead
Almost done, run into a little issue with scoreboards, (can't think how to do a "nice" multiple stats thing like total of playtime from overworld, nether and not creative)
How is the progress of the web UI coming along?
@sethgandy
As a reward you would put "/pex promote <PLAYER>" and as a trigger you use the stat "playedfor" which is in seconds, 3 hours would be 10800 for example.
@sethgandy
With beardach
How would I go about leveling rank depending on play time? I have pex
@kraftman
New stats supports regex syntax. There's support in game, I'm working on finishing up support in the web API. unfortunately this week and next are kinda hectic IRL (graduated, packing up to move back home).
What's the best way to combine cross-world stats with the new setup? Define custom statistics?
For the last few weeks, I've been getting SQL errors every so often..
·
2013-07-04 12:27:42 [SEVERE] [BeardStat] Duplicate entry 'slime' for key 'statistic
2013-07-04 14:32:58 [SEVERE] [BeardStat] Duplicate entry 'pig' for key 'statistic'
Is there a known fix for this?
@Bl0c
Horses should be automatically supported for distance if Bukkit keeps them as "vehicles".
As for the TPS, that event should be asynchronous, and not affecting the main game loop (instead running in parallel, I will go and double check in the code, but it may be an error in the reporting for timings. That task is likely to be high and really not too optimizable as it's the save task, whish has to talk to a database over network I/O
Will you mettres stats block number traversed on horseback, many times ride a horse? Number of horses killed.
Here are my timings merged there tjs lot of latency (the tps remain high, but if you could improve that): http://www.aikar.co/timings.php?url=5837764
@Tehbeard
This is awesome, great work! Bootstrap was definitely the way to go, its awesome, I loath tables! is the width flexible? Also Could we have a dashboard as the first page, so you can get a quick overview of top 3 players in multiple areas, maybe some fun stats like total blocks destroyed by all players, server wide statistics, most online players at one time? Can you pick up ingame colors of usernames, this would bring a nice smooth transition form ingame, Most placed block, or favorite block could be a cool addition, what about picked up and dropped items? What about most dominated players, so people can see who hates who! What about implementing chats, this is really nice http://www.chartjs.org/ you could have a chart in the players profile panel that shows the dates they have played. You should put it on git so people can add features!
I have no idea if my plugins are causing a conflict to not record PVP data, its a pain, The plugins I use are: cannons, dynmap, essentials, gpflags, gprealestate, griefprevention, groupmanager, healthbar, motdmanager, nocheatplus, playerheads, RPGtrades, simpleautoanoucer, vault,worldborder, worldedit.
@Bl0c
Implemented into the new web api. It uses a javascript head renderer I wrote and posted on r/admincraft, and falls back to minotar's service if that fails (e.g. if someone uses Internet exploder)
@GodsDead
That seems a strange one, are other stats recorded properly?
Blacklisted the world by accident?
CB version (inc. RB, dev or beta) and BeardStat version.
Maybe another plugin is causing a conflict? (Cancelling the damage events, which are the only way for BeardStat to reliably track damage)
For those awaiting the web api, I bring tidings of delicious teaser screenshots. This one is of the improved scoreboard/top ten API.
http://i.imgur.com/Jy8lJbs.png
This is one of several scoreboards, loaded from a json config file. As shown the new scoreboards can have multiple entries, and support multiple levels of ordering (e.g., order by most kills, then least deaths, then most diamonds mined).
web api is split into three parts:
API - A set of php and json config files that interact with the db and present a wordpress-esqe "loop" mechanic for accessing stats / generating scoreboards. This is mostly complete now (Back-documenting and adding some sanity checks).
Reference app - php, css and js files that use the api functions/classes to present the stats and scoreboards. Simply setup up the config file and it runs.
The reference app is written using bootstrap for presentation (if you hate bootstrap deal with it or write your own web frontend using the api :) There are themes out there for bootstrap.
The reference app will NOT integrate with other web applications and never will. It is too much effort to do so and maintain BeardStat. It will instead be the goto choice for admins with limited php/web dev skills to provide there users with access to their stats in an easy to use manner.
The app is currently being worked on, as shown above. Scoreboards are working. A player stats page has been written and works, the remaining primary feature to implement is searching of users.
Web Admin console - Admin area
Planning phase,
The current plan is to finish up the reference app, then test and release a build of BeardStat with the new database changes (which auto migrates :) ). This will not feature the admin console. You will be able to setup the api config (db connection details), as well as the tabs and scoreboards json files manually ( I will answer questions on doing this).
The admin console will come along sometime after (Most likely alongside the build for 1.6)
After this there shouldn't be too much work to do on BeardStat's core code beyond adding new events and default metadata, so I can start to work on some projects related to pulling data from other plugins into BeardStat's database (Main one's I'm looking at currently are factions and war, also looking at adding a "mob stats" plugin that'll track stats for mobs using BeardStat)
Question, No stats are being recorded for "Damage Done To Players" any ways I can fix this?
Can you add the skin of the player ? You can download a good script for help you here : http://dl.dropbox.com/u/431832/skin2.zip Look here: http://earthiverse.ath.cx/skin2/?user=earthiverse
@GodsDead
The web UI is planned to be a lot more improved over the old one.
From the piece of paper on my desk, planned features are:
Admin UI:
Going to hold off updating until the web side is up. I came across a competitor the other day just called statistics, their web ui is something to be desired, is much work going into the beardstat UI? http://dev.bukkit.org/bukkit-mods/statistics/
The one thing they are lacking is an achievement plugin to work alongside like beardstat.
Hi, with stats can we disp on our site??