UltimateRankup - A Different Rankup Plugin

Discussion in 'Plugin Requests' started by Zerecrafter, Aug 18, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    Zerecrafter

    UltimateRankup

    Hello everyone! I have been looking for a rankup plugin that meets what I'm looking for but I have yet to find it so I guess I'll post my idea here. It's going to be quite a long post so I'll try to keep it clean and simple to read as well as straight to the point. Thanks for taking the time to read this!

    Please note: This plugin is being written with the intent to be highly customizable to fit most server's (if not, all) needs.
    Also, I only made some of the letters in this post bold to try and help you guys see better with the color contrast and also to point out important things and whatnot. The plugin itself does not use any bold letters unless the player adds them in themselves using Essential's color codes when configuring the plugin, etc.
    Also, please know that the "Peasant", "Citizen", and "Merchant" ranks used in here are just ranks I made up to use in examples in hopes of helping you better understand how I want this plugin to work.

    I made this post very in-depth so it's easier for you to understand how it will work/is setup/etc.

    Objective: Rank up players.
    ---------------------------------------------------------------------------------------------------------------------

    Commands
    /ur createrank <rankname> <"description"> (please make sure that players are able to put the description in quotation marks so it can be put as a string) <price> <slot number in GUI> <order #> creates rank name and it's description and adds the rank tied to a specific item that is being held in hand to showcase the rank with that block/item in the specified slot number of the GUI and also set's the rank's order number (I'll explain this so it's less confusing).

    Here's an example of what I mean:
    [​IMG]
    In this case, the wool is the item/block-holder that holds the rank's title (in this case, if someone were to have created the peasant rank, it would have been (please make sure that this plugin supports Essential's color codes) "/ur create rank &ePeasant "No extra perks" 0 19 1" (a price of "zero" should by default be written as "Free" in the GUI but that can be changed in the config and you can change that "zero" to any string that you'd like, or even just put the actual number zero instead of having it say "Free"). The number "1" that you see there is the rank's order number, so in this case, it would be 1, which by default, on the rank system's ladder, 1 would be the very first rank and also the rank that new players in-game will be put into by default unless otherwise stated in the config.

    Please disregard the bottom half of my inventory, lol.
    I believe the slot numbering in inventories goes like this: [​IMG]
    PLEASE NOTE: The rank's order number is in no way associated with the positioning of it in the GUI!! That's what the "<slot number in GUI>" parameter in the command is for!
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur delrank <rankname> - delete's a rank
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur modify name <rankname> <new rank's name> - modifies a rank's name
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur modify order <rankname> <new-order-number> - modifies a rank's order number
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ranklist - lists ranks and their prices in chat with their respective colors with the shop's title above it
    Example: So let's say I have three ranks; Peasant(written in yellow) with the price of 0, Citizen(written in blue) with the price of 100, and Merchant (written in purple) with the price of 150. Let's also supposed I set my rank's shop title to be "---Ranks---" in red color. If a player were to do /ranklist, it would show up in chat like this:
    ---Ranks---
    Peasant - Free (or it can say zero, again, this should be configurable in the config file; the default should be that it displays as "Free" but they should be able to configure it so it says "0") Sorry about the bad color contrast here!
    Citizen - $100
    Merchant - $150

    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur addcommand <rankname> <command> - adds a command to be executed when the specified rank is achieved (should be able to add multiple commands to execute in one rank alone)
    Example: So lets say I want the server to run a broadcast when a player achieves the Citizen rank having been in the Peasant rank, I would do "/ur addcommand Citizen broadcast %playername% has just achieved the Citizen rank!"
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /rankup - tells in chat the player what their next rank is and tells them to confirm that they want to rankup by doing /buyrank.
    Example of what it should look like in-game:
    Lets say I'm a Citizen rank and I want to rank up to Merchant so I do /rankup. It should read like this
    Your next rank is <rankname (make sure the rank name shows up exactly in the color that the rank was created in! in this case, Merchant)> for <rank'sprice> (should also be in the color that the rank was created in, so in this case, it would be $100), please confirm by typing "/buyrank."
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /buyrank - buy's the player's next rank
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ranks - opens up a GUI showing the ranks and their prices (if you click a rank in the GUI, it should run the command /rankup by default, but this can be configurable in the config so that it doesn't do that)
    ---------------------------------------------------------------------------------------------------------------------------------------------/ur addp <rankname> <permission> - adds a permission node to the rank specified so that the rank can use specific permissions allowed
    Example: So let's say I want my Citizen rank to be able to set two homes from essentials, I would do "/ur addp essentials.sethome.multiple.2" (or whatever the permission for that is lol). So now, the Citizen rank will only be able to set a maximum of 2 homes.
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur addi <rankname1> <rankname2> - makes RANKNAME2 inherit RANKNAME1. So essentially, the SECOND rank NAMED, will be inheriting the FIRST rank NAMED'S permission nodes.
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur removei <rankname1> <rankname2> - makes RANKNAME2 disinherit RANKNAME1. So essentially, the SECOND rank inputted will be not be inheriting the first rank inputted.
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur settitle <title> - set's the rank shop's title as well as the GUI's title (if you look at the top of the screenshot that I put earlier, it says "ranks" but that should be configurable with this command. Also, you can change it in the config
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur modify title <newtitle> - modifies BOTH the rank shop's title and the GUI's title
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur addprefix <rankname> <prefix> - Adds a prefix that shows in chat for the rank when a player talks in chat
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur modify prefix <rankname> <newprefix> - modifies a rank's prefix
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur delprefix <rankname> - deletes a rank's prefix
    ---------------------------------------------------------------------------------------------------------------------

    Notifications

    So, by default, notifications are like what comes up when a player performs a certain command. They should also be in blue by default but that and the notifications themselves can be modified in the config. So here goes the default setup:

    /ur createrank <rankname> <"description"> <price> <slot number in GUI> <order #>:
    "
    <rankname> (make sure the rank name shows up with the rank's specified color!) created with the price of $<price>."
    Example: So if I was adding the Merchant rank and I made it worth $150 and I did it successfully, I would be notified: "Merchant rank created with the price of $150."
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur delrank <rankname>:
    "<rankname> (make sure that the rank's name corresponds with the rank's color) has been deleted."
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur modify name <rankname> <new rank's name>:
    "<rankname's> new name is now <new rank's name>."
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur modify order <rankname> <new-order-number>:
    "<rankname's> (please remember to make the rank's name color appear the same as when it was setup!) new order number is now <new-order-number>."
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /ur addcommand <rankname> <command>:
    "
    <Command> has been added to the <rankname>(again, please make sure it corresponds with the rank's colors) rank."
    Example: So if I was adding a broadcast command (/broadcast <message>)to the Merchant rank, I should be notified: ""broadcast" command has been added to the Merchant rank."
    ---------------------------------------------------------------------------------------------------------------------------------------------
    /rankup:
    "Your next rank is <rankname (make sure the rank name shows up exactly in the color that the rank was created in!> for <rank'sprice> (should also be in the color that the rank was created in,), please confirm by typing "/buyrank."
    ---------------------------------------------------------------------------------------------------------------------
    /buyrank:
    "Congratulations! You just achieved the <rankname> (again, rank's color) rank!"
    ---------------------------------------------------------------------------------------------------------------------
    /ur addp <rankname> <permission>:
    "<permission> permission added to the <rankname> rank."
    ---------------------------------------------------------------------------------------------------------------------
    /ur addi <rankname1> <rankname2>:
    "<rankname2> (<---- should show up as the rank's color) now inherits <rankname1>'s (same thing for <rankname1>) permissions!"
    --------------------------------------------------------------------------------------------------------
    /ur removei <rankname1> <rankname2>:
    "<rankname2> no longer inherits <rankname1>." (you already know how the rank name's colors should show up)
    ---------------------------------------------------------------------------------------------------------------------
    /ur settitle <title>:
    "
    The GUI's title is now <title>."
    ---------------------------------------------------------------------------------------------------------------------
    /ur modify title <newtitle>:
    "The rank system's new title is now <newtitle>."
    ---------------------------------------------------------------------------------------------------------------------
    /ur addprefix <rankname> <prefix>:

    "The <prefix> prefix has been set for the <rankname> (rank's name should be displayed in it's color that it was created in) rank."
    --------------------------------------------------------------------------------------------------------
    /ur modify prefix <rankname> <newprefix>:
    "The <rankname>'s (remember about the ranks' colors) new prefix is now <prefix>."
    ---------------------------------------------------------------------------------------------------------------------
    /ur delprefix <rankname>:
    "The <rankname>'s (you already know about the rank name's colors) prefix is now deleted."
    ---------------------------------------------------------------------------------------------------------------------

    Prefixes
    Okay so I want this plugin to be able to display player's ranks in chat.

    I would basically want the players to be formatted this way [rankprefix][groupmanager group name][playername] - please make this compatible with Factions and Towny so that it can be configurable to add Towny's/Faction's prefixes/suffixes in there.

    Basically, I want the [rankname] to be displayed as a prefix by default and it should show up all the way to the left no matter what.
    ---------------------------------------------------------------------------------------------------------------------


    General Concept
    Okay so the general concept like I said before is to basically rank up players, by default, the very first rank that is made is the default one but that should change as the order number of the ranks start to be put in.

    Adding permissions: A player can add only one permission at a time, but a rank can have multiple permissions at a time. So lets say I'm adding the ability for a player to have fly and be able to do god mode and also have the ability to set creative for themselves in the Citizen rank, I would run the command to add permissions to a rank 3 times as such:
    "/ur addp citizen essentials.fly"
    "/ur addp citizen essentials.godmode"
    "/ur addp citizen essentials.creative"

    (Idk if those are the actual permissions to be able to run those commands as a player but I'm just using them to explain my example)

    Adding commands: Exact same concept as adding permissions.

    Permissions and commands should both be configurable in the config file for a rank. Like if I wanted the Citizen rank (for example) to have those three permissions mentioned above, I could add it directly in the config file where the rank SHOULD show up in the config file.
    ---------------------------------------------------------------------------------------------------------------------

    Things You Should Know
    • All the bold text and stuff in this post is just to make it more clear.
    • A rank should be able to execute unlimited amounts of commands at the same time when achieved. Like if I wanted it to run a broadcast and add a player to a certain group in Group Manager (or any other group management plugin) or teleport the player to a certain area etc, it should be able to do that upon achieving the rank.
    • A rank can be configurable in the config file to display more than one lines of description in the GUI. An example would be this: [​IMG]
    • Whenever you see <rankname> in the Notifications area or anywhere else, you should know that all <rankname>s are the same color as the color specified when the rank was created.
    • All ranks should show up in the config file and have an area within them for every single one in the config where you can manually add/remove permissions, commands, inheritances and prefixes, !
    ---------------------------------------------------------------------------------------------------------------------

    Defaults - Can be configurable
    • The default color of the plugin is blue, so that's why in the notifications most of it is blue. However, this can be set to another color in the config file
    • By default, the very first rank created is the default rank that users go into but this can be changed by changing the order number later on
    • A price of "0" (zero) should be displayed as "Free" by default in both the chat when listing ranks and the GUI, but can be configurable in the config file
    • By default, the GUI's title should be "Ranks"
    And well I can't think of any more defaults but if I do then I'll add them in here. Also, if you find some stuff that should be by default, please reply so I can add it in and it's easier for everyone to see.
    ---------------------------------------------------------------------------------------------------------------------

    Permission Nodes



      • ur.createrank - Ability to create ranks
      • ur.delrank - Ability to delete ranks
      • ur.modify.name - Ability to modify a rank's name
      • ur.modify.order - Ability to modify a rank's order
      • ur.modify.title - Ability to modify the rank system's title, which modifies the rank system's GUI's title as well
      • ur.modify.prefix - Ability to modify a rank's prefix
      • ur.ranklist - Ability to do /ranklist
      • ur.addcommand - Ability to add an executable command to a rank that the console runs
      • ur.rankup - Ability to do /rankup
      • ur.buyrank - Ability to do /buyrank
      • ur.ranks - Ability to pull up the GUI showing the ranks
      • ur.addp - Ability to add permissions to a rank
      • ur.addi - Ability to make a rank inherit another rank
      • ur.removei - Ability to make a rank disinherit another
      • ur.addprefix - Ability to add a prefix to a rank
      • ur.delprefix - Ability to delete a rank's prefix
      • ur.settitle - Ability to set the rank system's title, which sets the rank system's GUI's title as well
    ---------------------------------------------------------------------------------------------------------------------

    Commands
    Here are the commands again so that you can see them more clearly without their descriptions as shown above!
    • /ur createrank <rankname> <"description"> <price> <slot number in GUI> <order #>
    • /ur delrank <rankname>
    • /ur modify name <rankname> <new rank's name>
    • /ur modify order <rankname> <new-order-number>
    • /ur modify title <newtitle>
    • /ur modify prefix <rankname> <newprefix>
    • /ur addcommand <rankname> <command>
    • /ur addp <rankname> <permission>
    • /ur addi <rankname1> <rankname2>
    • /ur addprefix <rankname> <prefix>
    • /ur delprefix <rankname>
    • /ur removei <rankname1> <rankname2>
    • /rankup
    • /buyrank
    • /ranks
    • /ranklist
    • /ur settitle <title>
    ---------------------------------------------------------------------------------------------------------------------

    Candid Requests

    Please make this compatible and not have conflict with Group Manager and Essentials!
    Also, please make it work with Vault, Towny, Factions and any other plugin you think is important to be compatible with.
    ---------------------------------------------------------------------------------------------------------------------

    Thanks!
    I appreciate tremendously your time. Thanks again for everything and taking the time to read this. Please reply if you are going to take on this project or if I should make any changes to this post to make the plugin better or anything I might've missed or if you have any questions. In my opinion, I think that this plugin could be a big hit since it's so customizable and convenient. Again, thank you so much for taking the time to read this!

    ~Zere
    ---------------------------------------------------------------------------------------------------------------------
     
    Last edited: Aug 25, 2015
  2. Offline

    timtower Administrator Administrator Moderator

    Don't underestimate that please.
    How does a rankup plugin needs to be compatible with Towny and factions? What would make them not compatible? They should be different systems.
     
  3. Offline

    Zerecrafter

  4. Offline

    Zerecrafter

  5. Offline

    mrCookieSlime

    @Zerecrafter
    Ehm, just a little tip for the future:
    Detailed description are of course better than keeping it short and simple.
    But not to an extent which even scares off a horde of Creepers.
     
    exbower2 and LolDragonFire like this.
  6. Offline

    exbower2

    Please someone make this plugin I Love This Idea!!
     
  7. Offline

    Zerecrafter


    Alright, did you read the whole post though?



    I agree!!
     
  8. Offline

    mrCookieSlime

    @Zerecrafter
    I did read everything. Whether I did that or not is unrelated to my advice though.
    While it may be detailed I was just pointing out that large walls of text are not really that great. A lot of it could be summarised.
     
  9. Offline

    Zerecrafter

    Oh okay
     
Thread Status:
Not open for further replies.

Share This Page