Stats by Lolmewn
Stats - made by Lolmewn
Plugin description
Stats is an advanced statistics gathering plugin, currently focused on player statistics. Information such as PVP kills, blocks broken, playtime and much more. You can store this data as simple files, or store them in a MySQL database. The benefit of using the database is that you can also use any web-end out there to display your players' statistics on your website.
Installation instructions
To install the plugin, simply drag-and-drop the Stats.jar into your 'plugins' folder.
When you start the server, a "Stats" folder will be created, containing a config file.
For a detailed description on the config file, click here.
The most important option is "storage", which can be set to either "flatfile" or "mysql" by default.
If you choose MySQL, there is another file (mysql.yml). Fill in your MySQL details there. That's all!
If you're installing a web-end as well, please read the instructions for said web-end on how to install it.
A list of web-ends compatible with Stats 3:
Made one, too? Let me know!
List of available Stats
This is a list of all available stats. Please note that there might be more stats in your environment, as other plugins can add their own stats to the plugin. For those stats, please see the documentation of the plugin providing them.
Stat name | Description | Available Metadata |
Arrows | Amount of arrows shot (not hit!) | world |
Beds entered | Self-explanatory | world |
Blocks broken | Self-explanatory | world, name, data (see here for more info) |
Blocks placed | Self-explanatory | world, name, data (see here for more info) |
Buckets emptied | Self-explanatory | world |
Buckets filled | Self-explanatory | world |
Commands done | Amount of commands done | world |
Damage taken | Self-explanatory | world, cause |
Death | Amount of times died | world, cause |
Eggs thrown | Self-explanatory | world |
Fish caught | Self-explanatory | world |
Items crafted | Self-explanatory | world, name |
Items dropped | Self-explanatory | world, name |
Items picked up | Self-explanatory | world, name |
Joins | Amount of times joined the server | None |
Kill | Amount of kills gotten | world, (name of) weapon, entityType |
Last join | Last time (in milliseconds epoch time) joined the server | world |
Last seen | Last time (in milliseconds epoch time) left the server | world |
Money | Not yet functional | world |
Move | Amount of blocks moved | world, type (0 = walking, 1 = boat, 2 = minecart, 3 = pig, 4 = on a pig in a minecart, 5 = horse, 6 = flying) |
Omnomnom | Amount of food eaten | world |
PVP | PVP kills gotten | world, victim (UUID of the other player), time (in milliseconds epoch time), (name of) weapon |
PVP streak | Current kill-chain, gets reset when killed | world |
PVP top streak | Highest PVP streak ever achieved - may be moved to Highscores in the future | world |
Playtime | Time in seconds played on the server | world |
Shears | Amount of sheeps sheared | world |
Teleports | Amount of times teleported | world |
Times kicked | Self-explanatory | world |
Tools broken | Self-explanatory | world, name |
Trades | Amount of times traded with a villager | world |
Votes | Removed since 3.1.1-RC due to incompatibility. If the player name is not found, the vote is ignored | None |
Words said | Amount of words said | world |
Times changed world | Self-explanatory | None |
Xp gained | Amount of XP gained in total | world |
Permissions
Some commands require special permissions to be executed. Here is a list with all permission nodes:
Node | Default value | Description |
stats.view | true | Access to /stats |
stats.view.others | true | Access to /stats <player> |
stats.custom | op | Gives access to nodes stats.add and stats.create |
stats.add | op | Access to /stats add |
stats.create | op | Access to /stats create |
stats.admin | op | Access to /stats admin |
stats.reset | op | Gives access to nodes stats.reset.self and stats.reset.others |
stats.reset.all | op | Access to /stats reset all |
stats.set | op | Access to /stats set |
stats.sign.place | op | Can create [Stats] signs |
More info soon
Donations
If you feel like giving something back to me, you can donate to me. All income from donations will be spent on coffee or similar.
I'm accepting donations through:
- Bitcoins on address 1QC19kut8nuMJNAsMZ3QneKuW2a8f5QgQG
- Dogecoins on address DKN8Lrm4KfC7Jh9M2KopjPkwcRfA7Ak3zj
- Paypal, either via email lolmewn(at)gmail.com or via this link
@EarlyReflex
Ah. Stats 3 contains a converter which converts the data from Stats 2 -> Stats 3 format so it *should* work. However, do make backups as there have been reports of conversions going wrong, leading to errors in the Stats plugin. (Usually related to the PVP table not being converted)
@Lolmewn
Not what I meant but nvm.
When going to your dev builds, that big red bar on top tells me Stats 3 is still "unuseable". But if it is, how well will it fare with a 6 months old Stats 2 database? Will the change be transparent or will we have to completely start over?
@EarlyReflex
I literally just released 3.0.1, which brings back support for signs.
Any progress on Stats 3? We heavily use Autorank, and we desperately need to update it to fix some serious bugs, but latest dev releases only support Stats 3... :(
@dec4234
The latest is fine :) I don't think the plugin is bound by a version of MySQL.
@Lolmewn
I need some help, I don't know which edition of MySQL to download. Thanks!
@dec4234
You use the information from the config? That's just default, you should use your own MySQL connection details.
Hey, I'm having troubles installing this. The wizard starts and I fill out all of the information from the config. But it keeps dis-connecting. Help?
@Lolmewn
Thanks for the quick response. I also would argue that you should completely switch to spigot as it provides a better website. It has a better discussion page which will allow you to interact with users a lot better. Also the notifications on spigot will allow you to quickly respond to anyone. Switch now and follow what many other developers did. :D wish you the best of luck. Also it would be nice if you made better error messages.
@fastgamer602
https://www.spigotmc.org/resources/stats.3638/
I'll be adding a more detailed description to the error messages soon so I can actually see what's going wrong.
@Lolmewn Also could you link me to the spigot page because I can not find your plugin on spigot. I see a payed version but its 3 stars and does not seem like it is worth the money.
@Lolmewn The reason why you would want to move over to spigot is because they have a better website than bukkit, also officially bukkit should be closed.
On the topic of stable version of your plugin ,I would beg to differ. As you said stats 3 is in dev and here is a error that I found if you want. http://pastebin.com/rEC8ydCi But I also found out that stats2 is completely not working on my server. I dont know if it is me not setting up your plugin correctly or that spigot 1.8.x is incompatible with you plugin.
@fastgamer602
Why on earth would I do that? I'm fine right here and there's already a project on the spigot site anyway. Stable versions compatible with 1.7+ (any version, ANY version that has UUID support) is currently 2.0.1 and I'd say that the latest Stats 3 DEV version (NOT the one from DBO, the one from my CI) is also pretty stable.
is it possible to completely move this project over to spigot? Also I really need a stable version of this plugin for spigot 1.8.3 if you can do that. I still have yet to get this plugin to be stable but if it as stable it sure would have a lot of features that I would love.
@Stranic
I have no idea what you mean by that.
Stats 3 have plugin support?
@apesgrapes
I hope it's better in Stats 3 anyway. Didn't test yet :P
@Lolmewn
ok thx, it doesn't affect playtime so not a major issue. might sumit a REQ for online attribute in stats_players but probably not if no-one has asked for it so far.
@apesgrapes
Query is correct as far as I can see. It is known that Stats (for whatever reason) sometimes doesn't save the lastjoin/lastleave for some reason.
trying to work out an mysql query to list online player, using this:
SELECT name FROM `Stats_players` INNER JOIN `Stats_player` on Stats_player.player_id = Stats_players.player_id GROUP BY Stats_player.player_id HAVING MAX(lastjoin)>MAX(lastleave);
its showing offline players and missing out some who are online. what am i doing wrong?