✅ AdvancedBCRanks - Great for RPG Servers icon

✅ AdvancedBCRanks - Great for RPG Servers -----

RPG Style ranks | Over 5000 optional dependencies! | Highly customizable | Timed ranks




- make it work with mc 1.21
----------, Sep 24, 2024

- update for mc 1.20.4 (fe06e1b
----------, Mar 10, 2024

- mcmmo add powerlevel (934e84e)
----------, Feb 8, 2024

- mc 1.20.2 (505b978)
----------, Sep 23, 2023

- fix missing displayname for custom icon items (4580afc)
- fix gui re-drawing background inside tier loop (3a27a34)
> this caused the previous tier to hide
----------, Aug 17, 2023

- update for mc 1.20
----------, Jun 7, 2023

- update for mc 1.19.4
----------, May 1, 2023

- update for 1.19.3
- make /bcr create command work and fix help command ( #3)
- minor fixes
----------, Dec 23, 2022

This update is brought to you by @enterih and @MasterCake

Added 1.18.1 support

Current version does NOT support 1.17.x
----------, Dec 21, 2021

+ Added 1.16.4 support
----------, Nov 2, 2020

+ Added /bcr refer <player>
+ Added a config setting:

# How long must a person have in playtime(using seconds) before they can refer their inviter
referenceTime: 36000

Config setup used (image)
Code (Text):
    Supporter:
      Icon: NAME_TAG
      Display-Name: '&dServer Supporter'
      Display-Slot: 26
      Lore:
      - '&9&m==========='
      - '&3Ranks: %ranks%'
      - '&9&m==========='
      Ranks:
        Supporter:
          Rank-Requirements: none;&2Complete everything to unlock this rank!
          Hide-No-Rank-Requirement: false
          Hide-No-Rank-Icon: BARRIER
          Hide-No-Rank-Message: '&4Complete previous sections to unlock!'
          Icon: FEATHER
          Display-Name: '&dServer Support'
          Use-Prefix: true
          Chat-Prefix: '&7I'
          Eco-type: none
          Eco-amount: 0
          Requirements:
          - ''
          - 'reference;10;&7[&a✔&7] Invited %s Players;&7[&4✘&7] Invite %s players.
            &4Now: %current%'
          - ''
          - '&bRewards:'
          - ''
          - '&f❆ &dSupport &bprefix'
          Commands:
          - shout &9%name% &3just achieved rank &9%rank%&3!
          - pref set %player% &dSupporter
 


upload_2020-11-1_0-15-2.png
----------, Oct 31, 2020

* Fixed minor issues

+ Added live version check to /bcr version
+ Added a secondary tier example to Tiers.yml to showcase how to setup a second tier system.
----------, Oct 24, 2020

* Fixed an issue that caused the config.yml to not load with any settings
----------, Oct 21, 2020

* Fixed 'player;exp;....' to return proper exp values
+ Added a "voting" section in config.yml that you can enable to let console/ops run the command: /bcr add vote <player> <amount> for servers running NuVotifier
- Removed NuVotifier as a possible depend since it runs on bungee only

# Updated wiki pages to be clearer and have more examples

If you have requests or idea's feel free to join our discord(link on the main page!)
----------, Oct 17, 2020

Experimental build.

+ Added some minor changes
+ Added a config option for servers using nuvotifier
^ In your reward plugin receiver add:
- /bcr add vote *player name*

BCR has a vote receiver build in that activates when votifier or nuvotifier is detected, however since nuvotifier is a bungee plugin it may not activate the event, for this reason you may be required to use the command instead.
----------, Oct 11, 2020

* Fixed jobs returning twice upon having the requirements.
----------, Oct 4, 2020

+ Added hex color support to messages.(1.16+ only)
^ Please note: Gui's may not support this function and that is not something i can fix for you, however, all message based returns are supported.
+ Added Color(inc hex) and placeholder support to command lines.

(Experimental):
+ Added [player] placeholder to commandlines.
This function should allow a command to be ran as a player aslong as the command exists/has permission to it.

If bugs or other are found please join our discord.

Example(hex):

upload_2020-9-28_12-32-54.png
Code (Text):

          - 'shout #bba9f5I, #9ae3a3%name%, #bba9f5earned the rank #9ae3a3%rank%
            #bba9f5with hard work!'
Example([player]):
Code (Text):

- '[player] say hello'
 
----------, Sep 28, 2020

* Fixed an issue using $hasPermission inside the list section of requirements. Formerly didn't require it and infact wouldn't make it function, now it accepts both.

The following issues only apply to servers without PlaceholderAPI usage:

* Fixed a double return when using vault requirements and the player had the required monotairy value.
* Fixed %current% never changing while %s returning amount of the players wallet rather than what was required while the player didn't have said value.

Thanks @violetCU for reporting the haspermission issue initially..
----------, Sep 9, 2020

* This update is a minor improvement to the code used to define items in versions.

Updating is not required but it might add minor improvement to how fast bcr responds to inputs.
----------, Sep 3, 2020

+ Added 1.16.2 support.

* When unsupported versions are found it should properly disable now.
----------, Aug 13, 2020

Security measure for empty location.
----------, Aug 9, 2020

Sorry for the delay on this update as it was requested some time ago and brought to light recently.

You are now able to completely change the Tier lore.

Code (Text):
# Now include a Display-Name: (can be anything)
# and specify a slot in which the item should be displayed.
      Display-Name: '&4Tier 1'
      Display-Slot: 10
      Lore:
        - '&9==========='
        - '&3Ranks: %ranks%'
        - '&9===========
upload_2020-8-9_21-7-41.png

To show the rank amounts use %ranks%, it supports all other placeholderapi related placeholders would you need it.
----------, Aug 9, 2020

+ Added towny support(Requested in mass)
+ Added aliases options in the config(Thanks to @MasterCake).

Every alias added(/rank /test etc) whatever you name it, will act as /bcr but wont work with arguments(i.e: /bcr open)

Wiki for towny can be found here
Towny has placeholderapi support for placeholder messages same as everything else.
----------, Jun 30, 2020

+ Updated to 1.16.1

^ Added an npe catcher incase staff decides to "/reload" the server rather than properly restart, telling the player to log out, back in and notify staff of their....actions... NEVER USE RELOAD!

---------------------------

Update notification
Due to the release of 1.16 and within 24 hours even 1.16.1 the plugin has only been tested on its own with luckperms, vault and essentials and verified to work. i'm at this moment in time, NOT responsible for things breaking with plugins such as mcmmo as while they should work, they may not be updated to work with 1.16 itself.
----------, Jun 26, 2020

* This should fix an random issue with the update checker on enable.

If the error still occurs, simply set the update checker (config.yml) to false.
----------, Jun 13, 2020

+ Finished adding support on missing area's
+ Added /bcr hooks(info below)
+ Added the option to add slot locations to rank items(info below)

- Removed debug messages.


/bcr hook
This command allows you to easily verify which plugins has been seen by the plugin during its enabling session.


Ranks
Ranks can now be set in specific slots(Default -1)
When anything from 0-53(it counts from 0) it will attempt to add it to the given slot, if no value has been input or -1 is set it will just add it to the next available slot.

How to do the Slot option:

Code (Text):
Find the location with your Icon for the rank,
Add: "Slot" as seen below, this way it will not default to -1.


          Icon: FEATHER
          Display-Name: '&4First Tier Rank'
          Slot: -1
 

If you have any suggestions, feel free to dm me, use our discord or use the git to share them and i'll look into it.


tl;dr How do hooks work:
Supported plugins, aka hooks, are plugins or methods a plugin may use (or need) in order to work.
ABCR is made to work on its own, mainly only requiring vault and a permissions plugin + eco plugin(for vault)
Hooks such as mcmmo, mmocore and more are depending on the plugin type, a soft depend, meaning that the plugin does not "need" them to run, and will only use it if its active.

Hooks always enable prior to the plugin that needs them, this is to ensure a plugin can make optimal use of whatever is required.

In some cases(including acbr) it can work with 3rd party plugins via placehoderapi(or its own api when its stable).
This means that 3rd party plugin does not need to activate prior to abcr since it runs via placeholderapi which abcr loads behind.

Just some background to some that were curious.
----------, Jun 8, 2020

+ Placeholder support has been added to the following sections:
- Advancements,
- BCGems,
- Jobs Reborn,
- Mcmmo(Including original)
- MmoCore(Including skills)
- Vault
- playerstats (such as blockplaced, world, hunger levels etc)

+ Added blockplaced under playerstats(was missing)

To do:

- Points, quests, playerstatistics(server side data), votes, skillapi

These were missing in the conversion, apoligies for this.

Dev note:

While placeholders were always available already, they required "placeholderapi" as a start.

The currently added support options(for instance vault) allows a message like this:
Code (Text):
          - 'vault;2000;&7[&a✔&7] Eco level %vault_eco_balance_fixed% reached;&7[&4✘&7]
            Reach Cash value %s. Current: %vault_eco_balance_fixed%'

 
None informative and custom placeholders(those not directly activated but translated by placeholderapi) are also available in these messages, meaning you no longer need to start a line using: 'placeholderapi,....' but its still suggested if you are comparing value's from non directly supported plugins.(such as tournamentXXL)
----------, Jun 2, 2020

* This version was build against Mmocore 1.3, this should fix the noclassfoundexception
----------, May 18, 2020

+ Added debug messages to some locations
+ Added reported missing messages to the messages.yml
+ Added permission information to "no-permission: " using {0}

* Made permissions such as >bcranks.open< default as there is no reason to make them op or false

- Removed minor functions that didnt go anywhere.

Due to currently world going ons but more so work being on and off again having moved out and dealing with a power surge my time is limited to update properly in time.

The plugin/project is not dead by any means, hoping within the next 2 months to properly continue.
Support still has priority and will help when i can no worries there.

Good luck to all, and speak to you soon.

To keep updated make sure to join our discord found on the main page.

Currently rework is planned/on-going for the wiki to make things clearer, this does take time so bare with us.
----------, May 13, 2020

+ Added ProgressBar

Usage: - progressbar;<bar length>;<bar type>
Example: - progressbar;20;|

Will be improved next year(so in a week or so)
Best used at the bottom
----------, Dec 26, 2019

+ Added 1.15 support.

* Improved /bcr reload
----------, Dec 13, 2019

This version should hopefully fix /bcr reload to also properly reload tier systems.

I haven't been able to test this as i'm extremely buzy.
Hoping to have some more time updating everything!
----------, Dec 10, 2019

Think its time for another sale, how bout you?

20% off!

Not alot has changed in this version
Improved some of the functions to retrieving and showing data for each player
----------, Nov 25, 2019

People reported last update had some minor issues, hopefully this fixes everything including the version bump that the last update caused.
----------, Nov 16, 2019

This version should hopefully fix a rare issue enabling the plugin for the first time(fresh)

Incase of an existing error coming back, measures have been made to possible ways to fix this off-shore.(Both main page and in console)
----------, Nov 12, 2019

+ Added /bcr add vote <player> <amount>

* Fixed some issues created by the last build.

If you have suggestions/desires of what you want to be added, please do so using the support link!!
----------, Nov 10, 2019

+ Re-Added "mmocoreskills" alongside "mmocoreskill" as valid inputs.
+ Added minor small visual features.

* Fixed advancements not being shown unless the player had it.(woops)

I'm aware versions pre-dating 1.13 may not support some items very well.
This is because mc itself didnt have most of the current names we now have.
The default item "feather" is 1 such item, however, you can use Fire or other items as display items.
Hoping to have an alternative asap!
----------, Nov 6, 2019

+ Test server now runs this plugin completely(link on main page)
+ Added bcranks.prefix Placeholder

Under Display-Name(Tier.yml)
Simply add:

Chat-Prefix: '&3First' #Requires Placeholderapi(bcranks.prefix)

* Fixed vote listener not...listening
* Fixed statistics giving errors rarely
----------, Nov 5, 2019

+ Added permission "bcranks.admin.bypass"(Default: false)
Those with this permission will see ranks they dont have access to, tho doesnt allow them to purchase it.

* Fixed minor bugs in the ranks section namely if "none" was specified in the requirements section
* Fixed plugin requirements(i.e votes) not being read properly
----------, Nov 4, 2019

Jar has been renamed to AdvancedBCRanks officially!
This means .ymls are now located under AdvancedBCRanks.

Simply move known .ymls to the new location to solve this.

+ Renamed .jar to AdvancedBCRanks
+ Added utils.yml(will store features later)
+ Added 1.11.2 support
+ Added a configurable help file(Messages.yml).

* try catched import on update(some reason broke on later jar updates)
* Base permissions follow command protocol(i.e /bcr reload = bcranks.reload)

- Removed Settings.yml
- Removed converters(Use 2.0.0 for this)

Dev Note: Some features may be missing in this version, Messages have been added in more area's

Tons of testing went through every single versions currently supported.
Specific version support can be requested but as of right now:

Versions supported(Latest on all):
1.11.2
1.12.2
1.13.2
1.14.4
----------, Nov 3, 2019

This update is related to v1.12.2 and v1.13.2.
1.14.4 users do not need to update, tho it is still adviced.

* An update in 1.14.4 renamed a package for no reason to "craftbukkit" making it unable to work on 1.12 and 1.13 since this import does not exist prior to 1.14's release... Fixed this by using a different import which works on all 3 versions.
* Fixed classnotfound/imports on tag sections of which classes did not exist(my mistake).
Specifically tier and rank item creations.
* The update checker didnt work for these versions for the same sake as point 1...
* Changed api-version from 1.14 to 1.13 so it works on all versions.

Please note: Currently AdvancedBCRanks only works on the latest of:
- 1.12(1.12.2)
- 1.13(1.13.2)
- 1.14(1.14.4)

1.9-1.11 May be supported in a future update, however sub versions(i.e 1.14.1-2-3) will never be supported.
----------, Oct 31, 2019

+ Options to hide ranks players cant access yet has been activated.
^ This option works for tier and permission based ranks.

Example:
upload_2019-10-27_11-55-47.png
This feature can be found by default on the first rank in the default configuration of tiers.yml.
+ Added a debug in config.yml option.
While you shouldn't ever need it, it can be requested in the future to enable it.

* Fixed a can buy due to the creation was made, but the item in question never properly updated.
----------, Oct 27, 2019

Discount sale.

AdvancedBCRanks is on sale for the next 7 days.
----------, Oct 26, 2019

+ Added LATEST versions support of 1.12.2 1.13.2 and 1.14.3.

Versions below(1.12.1) etc MIGHT but isn't guaranteed, if you run any lower version you should update anyway.
This is both better for your servers safety and fixes many bugs.
----------, Oct 24, 2019

From this update on, AdvancedBCRanks focus is 100% on Tiers and timed ranks(Maybe different types in the future).
The principal of the plugin remains as always the same, however, the setup has been made easier and more customizable.

+ Added a warning message for custom ranks not opening(settings based)

* minor fixes

- Removed custom from config.yml
- Removed gui listeners for the custom(old) ranks.
- Removed old depends for these ranks.
- Removed setup for old ranks

This update removes the ability to use everything "set" in the settings.yml and starts its focus completely on tiers.yml and TimedRanks.yml.

To convert your settings.yml use /bcr convert settings tier
If you prefer to make sure the conversion matches your old rank setup(as close as possible)
Please refer to update 2.0.0 which still supported both and explains the conversion in more details.

Wiki will be updated asap!
----------, Oct 24, 2019

+ Added a warning message for those using settings.yml
+ Added /bcr version

* Fixed minor issues

- Removed some debug(system) messages

If you're aware of the upcoming changes and already use the tier system, there is no real need to update(unless you may experience issues)
----------, Oct 22, 2019

+ Added the following to be placed under "Rank-Requirements".
Code (Text):
          Hide-No-Rank-Requirement: true
          Hide-No-Rank-Icon: 'BARRIER'
          Hide-No-Rank-Message: '&4Complete previous sections to unlock!'
Currently dont do anything yet. They will become active in a near update.

* Fixed an NPE in the command /bcr open <section> (name) when used improperly
* Fixed permission improperly being registered

- Removed left over debug messages
----------, Oct 21, 2019

Warning: This update will break old files!
The converter will attempt to create a tier.yml proper layout based on your current settings.yml!
This conversion is not perfect however and errors may occur, or names may be altered in the process.
A Full guide on how to upgrade can be found here.


Everything related to the custom ranks(Settings.yml) will eventually be removed.
This will happen in stages.
If you run bcranksfree just add the settings.yml to this version and run the command to convert.


An awaited update finally arrived.
This update changes a lot of things but also adds a lot of cool options.
Full changelog can be found here.

+ Added a tier system
+ Added a settings to tier converter(supports 90% of all settings)

* Resolved how the gui's are read
* Renovated Class Locations
* Renovated how storage works(this may make old saved data invalid)


Please note: This is not a small update, and it still holds the old system somewhat intact for now.

Adviced is to open/run a test server and test it before bringing it over to your live server!

A lot of testing and creation hours went into this, along with beta testers(Thank you for this!)
----------, Oct 21, 2019

+ Added Settings.show-title-section (boolean)

This option when set to false, hides the ====<stat> section making it all 1 big list.

Nothing else has changed thus far for public use.
The new setting will be added automatically to your config.yml!

Note: Im in the middle of recoding everything.
This update was a current quick solution to a new system eventually taking over.
This however will take time to implement.
----------, Oct 18, 2019

* Fixed some enablings(advancements)
* Fixed minor issues

Example layout:
Code (Text):
Settings:
  Ranks:
    BearCub:
      Custom-permission: bcranks.rankup.bearcub
      No-purchase-perm: bcranks.norankup.bearcub
      Display-Name: '&7BearCub'
      Icon: GREEN_CONCRETE
      Icon-no-permission: RED_CONCRETE
      Slot: 10
      Requirements:
        mcmmo:
        - mining
        - woodcutting
        - excavation
        mcmmocombined: 60
        jobs:
        - Woodcutter
        - Miner
        - Builder
        - Digger
        - Farmer
        - Hunter
        - Explorer
        - Crafter
        - Fisherman
        - Weaponsmith
        - Brewer
        jobsSum: 10
        money: 5000
        takeMoney: false
        votes: 14
        playerStatistics:
        - ANIMALS_BRED:4:&7[&a✔&7] Bred %s animals!:&7[&4✘&7] Breed %s Animals! &4Now;
          %current%
        - cake_slices_eaten:3:&7[&a✔&7] Eaten %s slices of cake:&7[&4✘&7] Eat %s slices
          of cake. &4Now; %current%
        - MINE_BLOCK:10:DIAMOND_ORE:&7[&a✔&7] Mine %s diamond ores:&7[&4✘&7] Mine
          %s diamond ores. &4Now; %current%
        - PLAY_ONE_MINUTE:10800:&7[&a✔&7] Spend time on the server for %s:&7[&4✘&7]
          Spend %s on the server playing. &4Now; %current%
        advancements:
        - minecraft;story/mine_stone:&7[&a✔&7] Reached the stone age:&7[&4✘&7] Mine
          some stone
        - minecraft;husbandry/breed_an_animal:&7[&a✔&7] Achievement Unlocked; animal
          Breeder.:&7[&4✘&7] Breed an animal
      rewardLore:
      - ' '
      - '&4✇ &7Shiny new prefix!'
      - '&9Maybe more?'
      commands:
      - lp user %name% group set bearcub
      - shout &4%name% &7just ranked up to&4 %rank%
upload_2019-10-16_21-21-59.png
----------, Oct 16, 2019

* Fixed an npe caused by McRPG check when players leave the server if mcrpg wasnt active on the server
----------, Oct 15, 2019

* Fix update notification due to wrong naming
----------, Oct 13, 2019

* Fixed placeholders being parsed too early
----------, Oct 13, 2019

+ Extended placeholderapi support
+ Full support on McRPG
+ Additional checks for statistics
+ Tons new requirements(More on this below)

* Several changes
* Fixed PlaceholderAPI name check(was PlaceholderApi) - woops..

- Removed bad code

With the introduction of placeholderapi inside the actual ranks, this means they can be used and add a ton more requirements!
Every plugin you know that has a placeholder can thus be used.

Some plugins require the papi's ecloud, a sub section inside placeholderapi which allows plugins to hook into that dont want to enable the placeholders themselves.

This requires /papi ecloud download <plugin> and /papi reload to become active.

Other plugins enable placeholders themselves which is fine, dont require ecloud but will work non the less.
A List of ecloud supported plugins can be found here.

The setup for this is fairly simple, most placeholders can only require a string or often an integer.

The setup and examples can be found here.

Thats all!
----------, Oct 10, 2019

* More renovations

+ Added basic support for McRPG(Premium)
^ All info and settings about the supported sections can be found here
+ Added the line:
not-enough-mcrpg: '&4You need more McRPG requirements...'
in the Messages.yml under Messages:

Changes are still on-going but shouldn't change the files drastrically.
The support for McRPG is currently Alpha stage, meaning any bugs will be addressed but depending on degree of function do not take priority yet.
----------, Oct 9, 2019

* Core alterations
- Removed Debug messages(sorry)
----------, Oct 6, 2019

* Fixed a bug where everything was either 0 or null

Past update notification: Some debugs are left upon opening the gui by accident. These will be removed in the next update
----------, Oct 5, 2019

* Internal changes
* Fixed advancement reader
----------, Oct 4, 2019

/ This marks a point for many internal changes improvements and more.
Some sections are receiving massive/minor overhaults.

Note: All files shall stay as they are(untouched)

Idea's have been given which will be implemented(where available) after this is done.
----------, Oct 1, 2019

+ Added update notifications.

Permission: bcranks.update.notify(Default op)
----------, Sep 28, 2019

* Fixed possible material error.

Now when mistyping a material type name(I.e: irong_ingot instead of iron_ingot) or an invalid type as a whole, it will replace the icon with a name tag and notify you in console.
----------, Sep 27, 2019

+ Added original-mcmmo support(untested)

This should fix the noclassdef error for original mcmmo users.

Setup is exactly the same.
----------, Sep 26, 2019

+ Added Message.yml (will be added automatically)
+ Added metrics
+ Added comments (#) to config.yml(only shows on freshly generated configs)
> Moved the messages in config.yml to Messages.yml

Code (Text):
# #######################
#
# Developer: Scorpion|Neo
# Wiki: https://git.spaceio.xyz/Scorpion/BCRanks/wiki/BCRanks
#
# #######################
Settings:
  # Inventory size Custom ranks.
  # Default 27
  inventory-size: 27

  # Inventory size Timed ranks.
  # Default 27
  timed-size: 27

  # true: hides all tasks completed.
  # false: keeps everything intact.
  # Default: true
  hide-completed: true

  # Hide completed tasks.
  # Default: false
  hide-complete-single: false

  # true: Use rank system with requirements.
  # Default: true
  use-normal-ranks: true

  # true: Enables timed rank system.
  # Requires server restart.
  # Default: false
  use-timed-ranks: false

  # Amount in seconds for each timed rank check.
  # Default: 300(5 minutes)
  time-check-in-seconds: 300

  # Hide Ranks players cannot access yet.
  # Does not hide ranks players already own!
  # Default: false
  hide-no-buy: false

  # The Connect Gui is used when both custom & timed ranks are enabled.
  connect-gui-name: Connect Gui

  # The name for the Custom Ranks Gui(Dependency ranks).
  custom-gui-name: '&4BCRanks'

  # The name for Timed Ranks Gui
  timed-gui-name: Timed Gui

  # Days
  time-days: 'Days '

  # Hours
  time-hours: 'Hours '

  # Minutes
  time-minutes: 'm '

  # Seconds
  time-seconds: s

 
----------, Sep 25, 2019

+ Added hide-no-buy: false to the Settings in config.yml
^ Rquested

If set to true, this should hide all additional ranks you set the player has not yet access to.

In example:

bcranks.buy.bearcub (first rank)
bcranks.buy.poohbear (second)
bcranks.buy.baloo (third)

If a player is bearcub they will(if they have poohbear buy perms) see what they need to obtain it, but if they cant skip it to get baloo, they wont see it yet, if the hidenobuy setting is true.
----------, Sep 23, 2019

+ Added SkillAPI support.

Guide on setup can be viewed here: https://git.spaceio.xyz/Scorpion/BCRanks/wiki/SkillAPI

Currently it supports 4 sections as i couldnt find many decent once to use.
If you have any, let me know and ill add it.

For those that don't quite know what skillapi is, skillapi is an rpg api that allows rpg plugins(such as MMOCore to create skills and other things.

This should support most plugins using skillapi for skilling and other, however if need be support for induvidual plugins is possible too.

Please note: i did not have the time to test this, nor the means, since i dont own any plugins using skillapi
----------, Sep 21, 2019

^ Wiki updated
* Minor gui fixes
----------, Sep 21, 2019

+ Added official support for PlayerPoints

Settings:

points: <amount> #Amount of points a player needs to have
pointTake: true #Wether to take points or not

https://dev.bukkit.org/projects/playerpoints
----------, Sep 19, 2019

+ Added MMOCore skill support.

Setup:
Code (Text):
      Requirements:
        mmoCoreSkills:
        - woodcutting:30
        - mining:20
        - smithing:10
Due to skills in mmocore being customizable, make sure names are correct.
Skills return 1 if player has no level or skill doesn't exist.
----------, Sep 18, 2019

+ Added MMOCore Support(Requested)

* Fixed a string splitter to return numbers not value


MMOCore was requested and now supported!

Please note i do not use this plugin, i do not know the indepts of this plugin.
Support for the plugin MMOCore can be found here: https://www.mc-market.org/resources/11372/ (Premium)

PS: Skills tracker will be next update, took a bit longer to set up

If you do own MMOCore you can add the following lines to your settings.yml

Code (Text):
        mmoCore:
          - 'mana:20:&7[&a✔&7] Have %s Mana!:&7[&4✘&7] Obtain %s mana &4Now; %current%'
          - 'level:20:&7[&a✔&7] Aquired level %s!:&7[&4✘&7] Aquire level %s &4Now; %current%'
          - 'classpoints:100:&7[&a✔&7] Aquired %s Class Points!:&7[&4✘&7] Aquire %s Class Points &4Now; %current%'
          - 'exp:2000:&7[&a✔&7] Aquired %s Experience!:&7[&4✘&7] Aquire %s Experience &4Now; %current%'
          - 'friends:2:&7[&a✔&7] Aquired %s Friends! yay!!:&7[&4✘&7] Aquire %s Friends &4Now; %current% :('

I didn't track all options, if 1 is missing let me know and ill see what i can do!
Example below:
upload_2019-9-17_15-52-4.png

Huge thanks to @Indyuce for helping on this and allowing me to add support for it!

Info on the setup of MMOCore can be found here: https://github.com/Indyuce/mmocore/wiki

The setup for bcranks mmocore: https://git.spaceio.xyz/Scorpion/BCRanks/wiki/MmoCore

When i find what else to support mmmocore wise, i'll add them, if you instead found something, let me know!
----------, Sep 17, 2019

* Fixed an npe using /bcr setitem
* Fixed default settings.yml to include the setitem placeholders(connect gui etc)

This should also clear up the empty connect gui interface.

To update these items manually:

- Grab an item(for example a clock for timed ranks)
- Rename it however you like.
- perform: /bcr setitem timed while holding the item in hand.

Done.

/bcr setitem custom = Updating the custom ranks(connect gui)
/bcr setitem placeholder = Updating all empty slots in all gui's(default black stained glass pane)

The player statistics(esc ->stats) will now try to explain the line/statistic in question that failed.

For instance: kill_entity requires 3 inputs, (the stat itself + amount + type)
When such line has failed, it will announce this in console along with the error.
----------, Sep 16, 2019

+ added /bcr reload (Permission: bcranks.reload)
Please note that while its now an option, the best results is still shutting down the server.

* Attempt to fix a class loading error for player voting when no votifier or nuvotifier was found(Using plugin manager or other plugin loaders to load in votifier afterwards will not work to makethe plugin see this change)
This also means if you unload the votifier plugin while running, it may break something on this plugin
----------, Sep 15, 2019

* Fixed an NPE when players didnt have the job level requirements(Reading wrong section) -Typo-
----------, Sep 14, 2019

Big version update:

+ Added Time based ranks.(Requested)
+ Added TimedRanks.yml
+ Added a Connection Gui(More on this later)

* Updated the command /bcr setitem to now listen to: /bcr setitem (timed/custom/placeholder) *Default placeholder if no input given*
* Updated the config.yml to feature the new settings:
Code (Text):
Settings:
  inventory-size: 27
  timed-size: 27
  hide-completed: true #Hides all tasks (not the bar) when all section tasks are completed
  hide-complete-single: false #Hides a single completed task from showing(Better for when ranks have many requirements)
  title-section: '&a&m=====&6{0} Statistics&a&m====='
  use-normal-ranks: true
  use-timed-ranks: true
  time-check-in-seconds: 300

  connect-gui-name: 'Connect Gui'
  custom-gui-name: '&4BCRanks'
  timed-gui-name: 'Timed Gui'

Core-Settings:
  time:
    days: 'Days '
    hours: 'Hours '
    minutes: 'm '
    seconds: 's'
Messages:
  not-enough-mcmmo: '&4You need to train more mcmmo!'
  not-enough-cash: '&4You are lacking some money!'
  not-enough-gems: '&4You are lacking some gems!'
  not-enough-jobs: '&4You need a higher job power level!'
  not-enough-votes: '&4You need to vote more!'
  not-enough-other: '&4You are missing several other requirements...'
  no-buy-permission: '&4You do not have permission to buy {0}'
  buy-too-high: '&4You already own a rank equal or higher than this!'
  not-enough-world-stats: '&4You need to do more in-game'
  display-item-set: '&7New Display item has been created.'
  use-ranks: 'Serious error occured, both normal and timed ranks are offline. Shutting down the plugin...'


Completed:
  section-complete: '&2You completed everything in this section!'
  other-stats: '&7[&a✔&7] {0} Level Reached.'
  world: '&7[&a✔&7] You are in the correct world.'
  block-placed: '&7[&a✔&7] Placed {0} blocks.'
  gems: '&7[&a✔&7] Reached {0} Gems.'
  jobs: '&7[&a✔&7] Reached Job Power Level {0}.'
  mcmmo: '&7[&a✔&7] Reached Mcmmo {0} Level {1}.'
  quests-points: '&7[&a✔&7] Reached {0} quest points.'
  quests-completed: '&7[&a✔&7] Completed {0} quests.'
  vault: '&7[&a✔&7] Money: {0}.'
  votes: '&7[&a✔&7] Votes: {0}.'

Incompleted:
  other-stats: '&7[&4✘&7] {0} Required: {1}. Now: {2}'
  world: '&7[&4✘&7] World Required: {0}. Now: {1}'
  block-placed: '&7[&4✘&7] Block Placement Required: {0}. Now: {1}'
  gems: '&7[&4✘&7] Gems Required: {0}. Now: {1}'
  jobs: '&7[&4✘&7] Jobs Power level Required: {0}. Now: {1}'
  mcmmo: '&7[&4✘&7] {0} Required: {1}. Now: {2}'
  quests-points: '&7[&4✘&7] Quest Points Required: {0}. Now: {1}'
  quests-completed: '&7[&4✘&7] Quests Completion Required: {0}. Now: {1}'
  vault: '&7[&4✘&7] Cash Required: {0}. Now: {1}'
  votes: '&7[&4✘&7] Votes Required: {0}. Now: {1}'
 

Update Info:
Code (Text):
Ranks:
  MyTimedRank:
    timeInSeconds: 50000
    last-rank: true
    custom-permission: mytimedrank.custom.permission
    no-buy-permission: mytimedrank.nobuy.permission
    display-Name: '&8MyTimedRank'
    icon: yellow_wool
    icon-no-perm: red_wool
    slot: 11
    lore:
    - '&3Time required:&2 {1}'
    - '&3Your time:&4 {0}'
    - '&3Rank Name: {2}'
    - '&3Available: {3}'
  MyTimedRankMore:
    timeInSeconds: 5000000
    last-rank: true
    custom-permission: mytimedrankMore.custom.permission
    no-buy-permission: mytimedrankMore.nobuy.permission
    display-Name: '&8MyTimedRankMore'
    icon: yellow_wool
    icon-no-perm: red_wool
    slot: 12
    lore:
    - '&3Time required:&2 {1}'
    - '&3Your time:&4 {0}'
    - '&3Rank Name: {2}'
    - '&3Available: {3}'
 

The timed ranks are limited to time only, however the api has been updated to allow outside sources to still change these.
The setup permission wise is exactly the same as the bcranks original setup(Settings.yml) so a buy and no buy permission(albeit automated)

In the config servers can choose which rank system to use, either custom(perks) or timed, or both.
Incase a server has both a Gui is created to let players choose which section they want information about.
Example:
upload_2019-9-13_11-51-22.png

upload_2019-9-13_11-51-41.png

Clicking the custom rank section works as normal, it loads the rank requirements for the player, checks if they have it, both permission and set requirements(Settings.yml).

Clicking the timed ranks only shows information what that rank requires, such as time.
These cannot be interacted with and are just display items you can use to inform your users.

The lore in time ranks uses messageformat type placeholders, simply put, Similar to %s in some plugins, this is numerical based {0} {1} etc.
{0} = The players time.
{1} = The time they need for that rank
{2} = The ranks name
{3} = Do they own it or not/Can they grab it.

The RankupCheckEvent has been updated to comply with both custom and Timed ranks simultaiously.
The e.getInventory() which returns the inventory incustom ranks is null in timed, and a boolean has been added to display if the event fired, is timed or not (e.getTimed()); //Returns true|false

Dev Note:
I have not fully tested the time ranks, bugs may appear but a lot of time was spend debugging sections where possible,
If you found a bug, or a missing addition, let me know and i'll help you fix it!
----------, Sep 13, 2019

Wiki & page been updated to support latest changes.
----------, Sep 11, 2019

+ Added an api(Usage: https://git.spaceio.xyz/Scorpion/BCRanks/wiki/API)
+ Added custom listener(Usage: https://git.spaceio.xyz/Scorpion/BCRanks/wiki/CL)
+ Made changes for future updates.

* Fixed minor bugs

(Devs)
The api can be used to add lore to each rank created by the server owners.
The listener is called upon a player attempting to get a rank(after passing all requirements by the plugin itself)

This allows you to create requirements/dependencies from outside the server.
----------, Sep 11, 2019

+ Added weather. walkspeed, hunger, time under player: category.
+ Added /bcr as alias to /bcranks for easier usages.
+ Added "hide-complete-single: false" to the config under Settings:
^ What this option does is hide requirements that the player already had obtained previously.
This incase servers use 300 dependencies in 1 rank the gui would not be able to show all of them.
"hide-compled" will still if set show all are completed when the last req for that section has been met.(configurable)

* Fixed how advancements are read
^ Previously it would read : as spaces(next lines) now instead of:
minecraft:<section>/<advancement>:has:hasNot servers should use:
minecraft;<section>/<advancement>:has:hasNot.
Simply switch the first : with ; and you should be fine :)

/ Settings.yml has been updated with some additionals to show most settings.
Please note that some reqs require other plugins(such as Quests) to be shown in the gui,
A set requirement without a supporting plugin will not be shown nor counted so shouldnt interfere with players trying to adchieve the rank you created.

If you have any suggestions for what to add as a req, or other.
A plugin you'd like to be supported, let me know and i'll take a look with you what we can do with it
----------, Sep 10, 2019

+ Added Advancement Support( https://minecraft.gamepedia.com/Advancements)
+ Added takeMoney/takeGems support for money: and gems: section.
^ This means after they have the money/gems and can obtain it, the money will be taken upon gaining it.

Advancements(previously adchievements) are things players in survival gain by performing certain tasks, such as: mining stone(stone age) breeding 2 animals(bats and the bees) you name it.

All above linked achievements work.

While untested both custom advancements(created by other plugins) and those under the sections "recipe" should work too but cannot confirm this.

Setup:

advancements:
- minecraft:husbandry/breed_an_animal:&7[&a✔&7] Achievement Unlocked; animal Breeder.:&7[&4✘&7] Breed an animal

* Fixed some section reading wrong
* Overhauled many classes to work more fluently

<folder>:<section><advancement>:<hasAdvancement>:<NotAchieved>
----------, Sep 9, 2019

+ Added "vote" support: (vote: <amount>(Requires nuvotifier or votifier)
+ Added "play_one_minute" time support(requested)
+ Redone the "Settings.yml"

* All stats from the spigot statistics page, should now 100% be supported(This includes entities killed, items destroyed, items crafted and blocks mined)

In order for each stat to have configurable support, methods to support those messages were added,
I.e:
<statType><amount><PlayerHasStat>:<PlayerDoesNot>
Code (Text):
        playerStatistics:
          - ANIMALS_BRED:200:&7[&a✔&7] Bred %s Animals!:&7[&4✘&7] Breed %s Animals.
            Now; %current%
          - DAMAGE_ABSORBED:20:&7[&a✔&7] Damage Absorbed %s!:&7[&4✘&7] Absorb %s% Damage.
            Now; %current%
          - HORSE_ONE_CM:30000:&7[&a✔&7] Ridden %s CM on a horse!:&7[&4✘&7] Ride %s
            on a horse. Now; %current%
          - MINE_BLOCK:200:GRASS_BLOCK:&7[&a✔&7] Dug out %s Grass Blocks!:&7[&4✘&7]
            Dig out %s Grass Blocks. Now; %current%
          - PLAY_ONE_MINUTE:999999999:&7[&a✔&7] Spend time on the server for
            %s:&7[&4✘&7] Spend %s on the server playing. Now; %current%

Per Request and by default, the playerstatistics has login support for how long a player has been with the server.
This statistic is called "play_one_minute".
This name is actually wrong as it goes by ticks.

An example on how to use this setting is:
PLAY_ONE_MINUTE:999999999:&7[&a✔&7] Spend time on the server for %s:Spend a total of %s on the server, Now; %current%

The first section is the name of the stat in question.
Then you need a time, this case 9x9.
The plugin will translate ticks into seconds, then those seconds into 1 minute, so ((9x9)*20)*1 minute
The end result is then converted into days/hours/mins/seconds to make it easier to read(as seen below)
upload_2019-9-9_10-51-18.png
----------, Sep 9, 2019

+ Made mcmmo, eco, gems, pstats and quests configurable in config.
+ All messages should now support placeholders incase you need them.

ToDo:
- Overhaul the entire worlds hook, make them configurable.
----------, Sep 8, 2019

+ Added Quests Support( https://www.spigotmc.org/resources/quests.3711/)
+ Added /bcranks setitem (Works for any item) >This item is the display item on empty spots<

* Fixed dependencies check happening too late/too often
* Fixed some player stats lookups(NPE's)
* Fixed some checks for requirements

> Working on making more sections configurable completely.
----------, Sep 8, 2019

Resource Information
Author:
----------
Total Downloads: 110
First Release: Sep 7, 2019
Last Update: Sep 24, 2024
Category: ---------------
All-Time Rating:
13 ratings
Find more info at docs.spaceio.xyz...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings