Git Product home page Git Product logo

statify's Introduction

Statify - Simple Minecraft Stats Done Right

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.

Why do I need this?

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.

Pros/Cons

Here's a list of pros and cons of this plugin (this isn't a perfect plugin)

Pros

  • Complex queries allowed (killed:zombie+killed:skeleton, (killed:zombie+killed:skeleton)^custom:beds_broken, or even tan(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

Cons

  • 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.

How do I even use these commands?

NB: [description] is NOT REQUIRED, equals sign after is DEFAULT VALUE, IS REQUIRED

/leaderboard, /lb

Format:

/leaderboard [number of top entries]=10 <complex expression>

Examples:

/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

Format:

/stat [username]=<player who is sending> <category> [number of top entries]=10

Examples

/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

Format:

/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>

Examples

/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

Format

/playerrank [number of top entries]=10

Examples

/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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.