Adds a simple command to see any Minecraft statistic for all players on a server (individually, or in top 10 format)
Go to file
2022-07-01 11:13:21 +02:00
.idea Improved annotations and method names, experimented with MessageFactory related reload settings, looked into ways to improve config updates, and implemented ConfigUpdater (#48) 2022-06-15 01:08:00 +02:00
src/main Removed isValid from StatRequest, turned some Components into Builders to reduce amount of redundant Component-making, added unit for distance-based stats (#75) 2022-07-01 11:13:21 +02:00
dependency-reduced-pom.xml Improved reload process, excluded unnecessary files in pom.xml and deleted some unnecessary error throwing 2022-06-29 21:30:25 +02:00
LICENSE Create LICENSE 2022-05-31 18:58:15 +02:00
PlayerStats.iml initial commit 2022-04-24 12:42:53 +02:00
pom.xml Improved reload process, excluded unnecessary files in pom.xml and deleted some unnecessary error throwing 2022-06-29 21:30:25 +02:00
README.md Update README.md 2022-06-25 10:52:15 +02:00

About

PlayerStats is a Minecraft server plugin that adds a command to view player statistics in top-10 format or individually. Currently tested on all versions between 1.18 and 1.19 on platforms:

  • Bukkit
  • Spigot
  • Paper
  • Purpur

Features

  • Easy to use

    • One central command that can:
      • Explain how to use the plugin with /statistic Usage
      • Show you the top 10 on your server for all possible statistics with /statistic ... top Top_10
      • See those same statistics for any individual player with /statistic ... player Individual_Stat
      • Or look up the combined total of everyone on your server! New_Numbers
      • Guide you through the available options while you type with an extensive tab-complete feature Tab_Complete
  • No set-up required

    • PlayerStats will work correctly regardless of how long your server has already existed - it doesn't have to be present when you start a new world
    • Data is retrieved directly from already existing playerfiles, so you don't have to set up a database, use scoreboards, or anything of the sort
  • Safe

    • PlayerStats uses multi-threading to ensure server performance does not suffer and players cannot crash the server by spamming its commands
    • This also means that for small to medium-sized servers, calculating statistics will be very fast
      For large servers (10.000+ players), please read the disclaimer below
  • Customizable

    • You can customize the following (and more!):
      • Automatically translate statistics to the language of the client that views them: Translated
      • Only show statistics for whitelisted players
      • Exclude statistics from banned players
      • Limit statistics based on when a player last joined.
        This option can be particularly useful if you have had a lot of players join your server in the past whose statistics aren't of particular interest to your current player-base. On top of that, limiting the amount of players shown in the top 10 will greatly increase performance speed.
      • The colors you want the output to be
      • You can go for default Minecraft chat colors, or use hex colors
      • Whether you want the output to have additional style, such as italics
    • You can configure the following permissions:
      • playerstats.stat for using the general command (true for everyone by default)
      • playerstats.reload for reloading the config (only for OP players by default)

Disclaimer

How PlayerStats performs, will heavily depend on the amount of unique players that have joined your server, and on the specs of the machine it is running on. I have done elaborate testing on my local server, and it is currently also running on the SMP I play on. Looking up an individual statistic is always nearly instant, but for a top statistic it can vary.

If you have a large amount of unique players (10.000+), you could run into performance issues. If you notice it takes a long time to calculate top statistics, I recommend limiting the amount of included players by setting a number-of-days-since-last-joined limit in the config. Additionally, if you run into issues, you could revoke the permission playerstats.stat for most players, and only allow selected players (such as staff, for example) to use it.

I am working to improve performance for larger servers in the future, and I'd love to hear feedback on how the plugin is performing!

Author Info

I am a relatively new programmer, and this is one of my first projects. I greatly enjoyed making it, and I tried to make it as efficient as I could. If you have any questions, remarks, or suggestions, please let me know! You can find me here on GitHub.

Licence

PlayerStats is licenced under the MIT licence. Please see LICENCE for more information.