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
-
View User Profile
-
Send Message
Posted May 7, 2014@Lolmewn
Oh, thats lame, I was going to ask why this didnt work:
-
View User Profile
-
Send Message
Posted May 7, 2014@GodsDead
Right now it only understands the main Stat, without any arguments. I might have to extend those features.
I'm not sure what would be most stable, I suggest you try both and see which works best! That's how I always do things :p
WebUI is coming along great, there's a thread here: http://forums.bukkit.org/threads/fluid-mc-stats.245117/ with some (older) screenshots and links to demo websites.
-
View User Profile
-
Send Message
Posted May 7, 2014@Lolmewn Alright, sounds simple enough, but how do I add in travel by boat for example? Is there a method to use multiple /stats pages? to find specific stats from the in-game commands?
So its just for show :( Aha! So for multiple servers! Doh! I assumed it was a backup system, The way I planned on using it, is to send a copy of the stats to my main web-servers database so I could write my own small stats UI for my homepage, at present I have Minecraft Server sending stats to Mysql server which is Iframmed into main Webserver, Which isnt ideal. The mysql server is in the same datacenter as the minecraft centre for quick response times, wouldn't be ideal sending this crazy data live to my web server! The only other thing I can think of is somehow mashing together a PHP script to download the database every so often onto my web-servers databases, instead of reading direct over servers.. Not sure what would be most stable!
I can't start work on anything until I update to the new database structure, which I cant do until autorank gets updated to work with it :(
Hows the web UI coming along? you should put a demo link on this page for people to see what it looks like, or maybe embed an image of it too!
-
View User Profile
-
Send Message
Posted May 6, 2014@GodsDead
commandList indeed. Just plug the StatName in and you're done.
As for cross-server, this is not yet implemented but is meant to provide a solution against loss of stats when going from one to the other server (both are on the same database).
-
View User Profile
-
Send Message
Posted May 6, 2014@Bambucha91
Autorank only supports an old version of stats, hes waiting for a stable stats release, Im also waiting on this before I can update, that and the web UI needs massive work.
Stats question, how do I customize /stats in game? to show other stats? is it commandList? (Still using 1.3.7) Second question, Does cross-server send a second copy of the stats to another server? Like a web server? This sounds superb if it is.
-
View User Profile
-
Send Message
Posted May 6, 2014@Bambucha91
So... mind telling me what the error is?
-
View User Profile
-
Send Message
Posted May 6, 2014Cant hook it with Autorank... Got a small error that dont allows me to enable stats plugin... :D Tried 25 times... When i delete config and start - everything is fine, reload = Error, with big E
3.1 - autorank 0.1.3 - Stats - dev
-
View User Profile
-
Send Message
Posted May 5, 2014@mateusrenno
And what exactly is that supposed to do?
-
View User Profile
-
Send Message
Posted May 5, 2014PLEASE, add a /setkill and /setdeath or in the confg
-
View User Profile
-
Send Message
Posted May 5, 2014@Lolmewn
Guess I'm moving plugins then.
-
View User Profile
-
Send Message
Posted May 5, 2014@Hockeymikey
Idk what kind of hacky sh*t they do, so if it works on CB and doesn't work with Spigot, then... well.
-
View User Profile
-
Send Message
Posted May 4, 2014@Lolmewn
What's the issue with Spigot?
-
View User Profile
-
Send Message
Posted May 4, 2014@Gamerxd1999
Try using Craftbukkit instead of Spigot.
@jadyha
Yes.
-
View User Profile
-
Send Message
Posted May 4, 2014Do we have to have a MySQl database?
-
View User Profile
-
Send Message
Posted May 4, 2014@Lolmewn
I got this error message [Server thread/ERROR]: Error occurred while enabling Stats v1.37-quickfix (Is it up to date?) java.lang.LinkageError: loader constraint violation: loader (instance of org/bukkit/plugin/java/PluginClassLoader) previously initiated loading for a different type with name "org/mcstats/Metrics$Graph" at nl.lolmewn.stats.Main.startMetrics(Main.java:1008) [?:?] at nl.lolmewn.stats.Main.onEnable(Main.java:131) [?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:250) [spigot.jar:git-Spigot-1402] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:324) [spigot.jar:git-Spigot-1402] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-1402] at co.technius.PluginManager.PMCommandExecutor.reloadCmd(PMCommandExecutor.java:710) [PluginManager.jar:?] at co.technius.PluginManager.PMCommandExecutor.onCommand(PMCommandExecutor.java:499) [PluginManager.jar:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [spigot.jar:git-Spigot-1402] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:180) [spigot.jar:git-Spigot-1402] at org.bukkit.craftbukkit.v1_7_R3.CraftServer.dispatchCommand(CraftServer.java:717) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.PlayerConnection.handleCommand(PlayerConnection.java:985) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:830) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.PacketPlayInChat.handle(PacketPlayInChat.java:65) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:162) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.ServerConnection.c(ServerConnection.java:77) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:713) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:283) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:576) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:482) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1402] [09:32:02] [Server thread/INFO]: gamerxd1999 lost connection: Disconnected [09:32:02] [Async Chat Thread - #0/ERROR]: Could not pass event AsyncPlayerChatEvent to Stats v1.37-quickfix org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) [spigot.jar:git-Spigot-1402] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot.jar:git-Spigot-1402] at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) [spigot.jar:git-Spigot-1402] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-1402] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:484) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.PlayerConnection.chat(PlayerConnection.java:904) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:844) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.PacketPlayInChat$1.run(PacketPlayInChat.java:59) [spigot.jar:git-Spigot-1402] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0_51] at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_51] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [?:1.7.0_51] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [?:1.7.0_51] at java.lang.Thread.run(Thread.java:744) [?:1.7.0_51] Caused by: java.lang.NullPointerException at nl.lolmewn.stats.EventListener.chat(EventListener.java:447) [?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [?:1.7.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.7.0_51] at java.lang.reflect.Method.invoke(Method.java:606) [?:1.7.0_51] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) [spigot.jar:git-Spigot-1402] ... 13 more [09:32:02] [Async Chat Thread - #0/INFO]: [0;31;22m[Admin]gamerxd1999[0;37;1m: [0;37;1ms[m [09:32:02] [Server thread/ERROR]: Could not pass event PlayerQuitEvent to Stats v1.37-quickfix org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) [spigot.jar:git-Spigot-1402] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot.jar:git-Spigot-1402] at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) [spigot.jar:git-Spigot-1402] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-1402] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.PlayerList.disconnect(PlayerList.java:307) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:718) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.ServerConnection.c(ServerConnection.java:73) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:713) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:283) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:576) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:482) [spigot.jar:git-Spigot-1402] at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1402] Caused by: java.lang.NullPointerException at nl.lolmewn.stats.EventListener.logout(EventListener.java:253) [?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [?:1.7.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.7.0_51] at java.lang.reflect.Method.invoke(Method.java:606) [?:1.7.0_51] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) [spigot.jar:git-Spigot-1402] ... 12 more
and that's not the only one error message
Hope you can help me
-
View User Profile
-
Send Message
Posted May 3, 2014In v2.0.0-DEV, stats still hangs up at boot, idk why. I can't update to the last one cause of UUID and i'm still running on 1.6.4...
-
View User Profile
-
Send Message
Posted May 3, 2014Cool, thanks. Ticket added.
@Lolmewn
-
View User Profile
-
Send Message
Posted May 3, 2014@mattekure
Yup, just make a ticket!
@Gamerxd1999
Why wouldn't it?
-
View User Profile
-
Send Message
Posted May 3, 2014Does it work on Spigot?
-
View User Profile
-
Send Message
Posted May 2, 2014Is it possible to add a new Stat? I'd like to track the number of trades a player does with villagers.