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
We used this since end of 2011 or so, it finally broke completely for us with 1.10... No chance of an update? We have ancient and awesome stats throughout the years. Pity if we have to switch. Regardless, thanks for this over time @Tehbeard
@oddare
If I can find the time and figure out how to seperate the core code (data structures) from the bukkit specific code yes.
Are there any plans for porting this over to Sponge?
@Lostwave
I've got some more time of late to work on this (albeit weekends mostly).
Been working towards a 1.8 release for spigot, and I'm probably going to migrate to having this sort of page over on their site as well since dbo is dying.
I've opened up a github issue for the /played and time commands, will have a look this weekend.
In the mean time there's a newer build on the github releases https://github.com/tehbeard/BeardStat/releases (The result of playing with Travis-CI over the weekend)
Latest Official build works on spigot 1.8.
But, any chance of an official update? its been since Nov 2013 and we have been limping along. I have 4 years worth of stats and would rather not go with a different plugin and have to port over all those statistics.
Also, any way you can clean up the played command so it shows days, hours, minutes, seconds like it used to instead of just minutes. EDIT: Noticed that lastlogin, lastlogout and lastsession stats doesn't usually work.
Thanks.
@pulsehh
Huh, looks like the player name is not being set somewhere. I'll look into this and see if it's an issue with my code or a change in what spigot provides in certain events.
@Tehbeard
Did some tests with only PEX and beardstat on your latest devbuild #159 (27 December)
Here are the error logs:-
Full server log: http://pastebin.com/gRHjBHb7 Error on player join: http://pastebin.com/hDuHHBKw Error thrown on /stats command: http://pastebin.com/RU7v7JA7 Error on server start with MYSQL instead of sqlite: http://pastebin.com/hPkb3u5Y
@pulsehh
Got a stacktrace?
Latest dev build not compatible with SPIGOT 1.8. :-(
Got a blank database setup and it creates all the database stuff just fine, but when I try to join, it doesn't create an entity for me and errors out this:
I know its not supported yet, but thought I'd report it. Tried the latest dev build with latest spigot build... getting UUID database errors. This is with a new blank config and new empty database. Thanks! :)
Column 'name' cannot be null [07:37:30] [pool-17-thread-1/WARN]: com.tehbeard.beardstat.NoRecordFoundException: Failed to locate stat record for null [player] uuid: 654b4adb7d6d3a27bd94cabaa739921b
http://pastie.org/9283492
I have a other problem:
@HadrienCubic
open an sql client on the database and run.
on the database to drop the uuid index (it was a mistake that made it into a previous build)
@GodsDead
Not sure on the stats not recording, will investigate, as for the error. Short of it is you need a more recent craftbukkit build (There was a change to the projectiles so that we can now tell which block fired them as opposed to an entity or something not an entity)
Help me please I have a problem :
Ok, I wiped everything beardstats, re-added the latest development build, and used a different mysql database on a different server, this stopped some error messages, The tables were generated, but no user stats are being stored. Then the errors started again, Also It takes a long while when booting the server, it pauses on "creating tables" every time. http://pastebin.com/ifT4JdNG
I am not behind bungeecord and the server is online...
@Tehbeard
We're set to online in the server config, As far as I know Im not on bungeecord, I will email support to ask though. I do have a RemoteToolkitPlugin in-front of my server?
@nejento
Only other things I can think. 1) Issue with that spigot build 2) Offline mode server.
Thanks you Tehbeard !
No I haven't.