Hi! I'm @quantumbagel, and this is my first plugin - Statify. It's a tiny (<50kb), resource-efficient, and powerful serverside plugin to get stats for one player - or the entire server.
If you want a way to aggregate stats throughout the server (not just through the Statistics menu for one player - this plugin allows easy visualization of stats.
Here's a list of pros and cons of this plugin (this isn't a perfect plugin)
- Complex queries allowed (
killed:zombie+killed:skeleton
,(killed:zombie+killed:skeleton)^custom:beds_broken
, or eventan(killed:zombie) + killed:skeleton
) - Ranking of individual categories for a certain player
- Ability to create and save complex queries under a shorthand
- Yes, there is a recursion detector
- No autocomplete, you have to know the general layout of MC stats (for an excellent guide, check https://minecraft.fandom.com/wiki/Statistics)
- My first plugin, so there are probably copious quantities of bugs and glitches
- Doesn't work well with offline-mode (cracked Minecraft) because of the possibility of duplicate usernames
- No multithreading
- No custom command sanity checks
- Bugginess with really big numbers >:(
This is a Bukkit plugin, so put the .jar in the
plugins
folder of your Spigot/Bukkit/CraftBukkit server.
NB: [description] is NOT REQUIRED, equals sign after is DEFAULT VALUE, IS REQUIRED
/leaderboard [number of top entries]=10 <complex expression>
/lb killed:zombie
(A simple request for the top 10 player zombie kills)
/lb 5 killed:zombie
(A request for the top 5 player zombie kills)
/lb killed:total
(A request for the player with the highest sum of the "killed" category (most entity kills))
/lb APlayerOfMinecraft:kd
(APlayerOfMinecraft is username, kd is custom command that user defined (in this case kill differential))
/lb killed:zombie + APlayerOfMinecraft:kd
(You can use both in conjunction using these stats as numbers)
/lb killed:zombie * APlayerOfMinecraft:kd + custom:walk_one_cm
/stat [username]=<player who is sending> <category> [number of top entries]=10
/stat killed
(returns top 10 ranking of the "killed" category for the player who sent the message)
/stat killed 5
(returns top 10 ranking of the "killed" category for the player who sent the message)
/stat APlayerOfMinecraft killed
(returns top 10 ranking of the "killed" category of the player "APlayerOfMinecraft")
/stat APlayerOfMinecraft killed 5
(returns top 5 ranking of the "killed" category of the player "APlayerOfMinecraft")
/custom set <command name> <complex expression>
/custom list [username]=<player who is sending>
/custom get [username]=<player who is sending> <command name>
/custom delete <command name>
/custom set kd killed:total-killed_by:total
(Set the player who is sending's custom command "kd" to "killed:total-killed_by:total". If the player's name was "APlayerOfMinecraft," this could be referenced the exact same way as the /leaderboard
examples above.)
/custom list
(List the current player's defined commands)
/custom list APlayerOfMinecraft
(List the player "APlayerOfMinecraft"'s defined stats)
/custom get kd
(Print the current definition of the custom stat kd
for the current player)
/custom get APlayerOfMinecraft kd
(Print the current definition of the custom stat kd
for the player "APlayerOfMinecraft")
/custom delete kd
(Delete the command kd
for the current player, if defined)
/playerrank [number of top entries]=10
/playerrank
(List the top 10 players on the server using the PlayerScore algorithm that I made up on the spot)
/playerrank 5
(List the top 5 players on the server)
That's all - I hope you enjoy this little plugin!