Ranker
Usage and Scalability
Ranker can automatically run commands to give players rewards/permissions based on their performance/stat (pvp, pve, time, and wealth) that satisfy requirements defined by server Ops/Admins. With absolutely no configuration, Ranker works as a light-weight and simple stats tracker. Ranker's features and functions depends on the data in config.yml. Unlock as much or as little features and functions as you wish. Add Vault.jar and Ranker will use your server's economy currency as a stat. Define requirements, rewards, custom messages and commands and ranker works automatically. Set commands to do anything including grant players permissions, powers, items, and/or other rewards. Ops/Admins can control Ranker completely from within the game using commands. Commands can also provide feedback of current values in config.yml. Players and Console can display both online and offline player stats as well as modify them.
Ranker config.yml
Ranker's typical config.yml is organized into the following root sections:
- autorank - contains the ranks, requirements, rewards, messages, and commands
- stats - contains the appearance of of /ranker stats
- chatformat - contains the appearance of each rank title
- general - ranker chat mode, debug mode, How Ranker affect operators
- mysql - MySQL support for synchronizing player stats to database
Simple Config.yml Example
autorank: world: Peon: rankupcommand1: server:/perm player setgroup {PLAYER} {RANK} requirement: money=10 Citizen: rankupcommand1: server:/perm player setgroup {PLAYER} {RANK} requirement: money=20 stats: line2: ' &3{RANK} &2{PLAYER}' chatformat: Peon: '&a{RANK} {PLAYER}&3: &9' Citizen: '&a{RANK} {PLAYER}&3: &9' general: debug: false chat: false operator: false mysql: enable: false ip: 127.0.0.1 username: root password: password port: 3306 database: minecraft table: ranker update: 45 keepalive: true
Extended Config.yml Example
general: chat: false debug: false operator: false mysql: enable: false ip: 127.0.0.1 username: root password: password port: 3306 database: minecraft table: ranker update: 45 keepalive: true autorank: world: Peon: rankupmessage1: '&8--------------------------------------------' rankupmessage2: ' You earned Peon rank!' rankupmessage3: '&8--------------------------------------------' rankdownmessage1: '&8--------------------------------------------' rankdownmessage2: ' You ranked down to Peon rank!' rankdownmessage3: '&8--------------------------------------------' rankupcommand1: server:/perm player setgroup {PLAYER} {RANK} rankupcommand2: server:/perm reload rankupcommand3: server:/give {PLAYER} wood 100 rankupcommand4: server:/give {PLAYER} dirt 100 rankdowncommand1: server:/perm player setgroup {PLAYER} {RANK} rankdowncommand2: server:/perm reload rankdowncommand3: server:/give {PLAYER} wood 1 rankdowncommand4: server:/give {PLAYER} dirt 1 rewardinfo: '100 stacks of wood, dirt, and some new commands!' requirement: money=0 Citizen: rankupcommand1: server:/perm player setgroup {PLAYER} {RANK} rankupcommand2: server:/perm reload rankupcommand3: server:/give {PLAYER} wood 100 rankupcommand4: server:/give {PLAYER} stone 100 rankupmessage1: '&8--------------------------------------------' rankupmessage2: ' You earned Citizen rank!' rankupmessage3: '&8--------------------------------------------' rankdownmessage1: '&8--------------------------------------------' rankdownmessage2: ' You ranked down to Citizen rank!' rankdownmessage3: '&8--------------------------------------------' rankdowncommand1: server:/perm player setgroup {PLAYER} {RANK} rankdowncommand2: server:/perm reload rankdowncommand3: server:/give {PLAYER} wood 1 rankdowncommand4: server:/give {PLAYER} dirt 1 requirement: money=1000 Recruit: requirement: money=2000 rankupcommand1: server:/perm player setgroup {PLAYER} {RANK} rankupcommand2: server:/perm reload rankupcommand3: server:/give {PLAYER} wood 100 rankupcommand4: server:/give {PLAYER} stone 100 rankupcommand5: server:/give {PLAYER} stonesword 1 rankupmessage1: '&8--------------------------------------------' rankupmessage2: ' You earned Recruit rank!' rankupmessage3: '&8--------------------------------------------' rankdownmessage1: '&8--------------------------------------------' rankdownmessage2: ' You ranked down to Recruit rank!' rankdownmessage3: '&8--------------------------------------------' rankdowncommand1: server:/perm player setgroup {PLAYER} {RANK} rankdowncommand2: server:/perm reload rankdowncommand3: server:/give {PLAYER} wood 1 rankdowncommand4: server:/give {PLAYER} dirt 1 world_the_end: Peon: rankupmessage1: '&8--------------------------------------------' rankupmessage2: ' You earned Peon rank!' rankupmessage3: '&8--------------------------------------------' rankdownmessage1: '&8--------------------------------------------' rankdownmessage2: ' You ranked down to Peon rank!' rankdownmessage3: '&8--------------------------------------------' rankupcommand1: server:/perm player setgroup {PLAYER} {RANK} rankupcommand2: server:/perm reload rankupcommand3: server:/give {PLAYER} wood 100 rankupcommand4: server:/give {PLAYER} dirt 100 rankdowncommand1: server:/perm player setgroup {PLAYER} {RANK} rankdowncommand2: server:/perm reload rankdowncommand3: server:/give {PLAYER} wood 1 rankdowncommand4: server:/give {PLAYER} dirt 1 rewardinfo: '100 stacks of wood, dirt, and some new commands!' requirement: money=0 Citizen: rankupcommand1: server:/perm player setgroup {PLAYER} {RANK} rankupcommand2: server:/perm reload rankupcommand3: server:/give {PLAYER} wood 100 rankupcommand4: server:/give {PLAYER} stone 100 rankupmessage1: '&8--------------------------------------------' rankupmessage2: ' You earned Citizen rank!' rankupmessage3: '&8--------------------------------------------' rankdownmessage1: '&8--------------------------------------------' rankdownmessage2: ' You ranked down to Citizen rank!' rankdownmessage3: '&8--------------------------------------------' rankdowncommand1: server:/perm player setgroup {PLAYER} {RANK} rankdowncommand2: server:/perm reload rankdowncommand3: server:/give {PLAYER} wood 1 rankdowncommand4: server:/give {PLAYER} dirt 1 requirement: money=1000 King: requirement: money=2000 rankupcommand1: server:/perm player setgroup {PLAYER} {RANK} rankupcommand2: server:/perm reload rankupcommand3: server:/give {PLAYER} wood 100 rankupcommand4: server:/give {PLAYER} stone 100 rankupcommand5: server:/give {PLAYER} stonesword 1 rankupmessage1: '&8--------------------------------------------' rankupmessage2: ' You earned King rank!' rankupmessage3: '&8--------------------------------------------' rankdownmessage1: '&8--------------------------------------------' rankdownmessage2: ' You ranked down to King rank!' rankdownmessage3: '&8--------------------------------------------' rankdowncommand1: server:/perm player setgroup {PLAYER} {RANK} rankdowncommand2: server:/perm reload rankdowncommand3: server:/give {PLAYER} wood 50 rankdowncommand4: server:/give {PLAYER} dirt 50 stats: line1: '&8--------------------------------------------' line2: ' &3{RANK} &2{PLAYER}' line3: '&6 {PVP} &aplayers killed!' line4: ' &6{PVE} &amonsters/animals killed.' line5: ' &6{TIME} &aminutes played.' line6: ' &6${MONEY} &ain wealth.' line7: '&8--------------------------------------------' chatformat: Peon: '&a{RANK} {PLAYER}&3: &9'
Ranker Commands allows Complete Control over config.yml
The following are 2 examples of defining requirement(s) for the Peon rank
- description: (player must have atleast $1000 AND a pvp score of 4)
- command: /ranker worldName.Peon.requirement money=1000+pvp=4
- description: (player must have atleast $1000 AND a pvp score of 4) OR (have playtime of atleast 120 minutes) OR (have killed atleast 50 monsters) OR (have killed atleast 30 players)
- command: /ranker worldName.Peon.requirement money=1000+pvp=4;time=120;pve=50;pvp=30
More on how to Modify config.yml by Commands
Command parameter corresponds directly to the format within the config.yml file. The following demonstrates a sequence of changes to the config.yml with each command used. Also Note Below: Ranker displays the current value of the config node if no value parameters are included!
- permission node: ranker.* (default: op)
- command: /ranker autorank.world.Peon.rankupcommand1 server:/give {PLAYER} wood 100
autorank: world: Peon: rankupcommand1: server:/give {PLAYER} wood 100
- command: /ranker autorank.world.Peon.rankupmessage2 ' You earned Peon rank!'
autorank: world: Peon: rankupcommand1: server:/give {PLAYER} wood 100 rankupmessage2: ' You earned Peon rank!'
- command: /ranker autorank.world.Peon.requirement time=0
autorank: world: Peon: rankupcommand1: server:/give {PLAYER} wood 100 rankupmessage2: ' You earned Peon rank!' requirement: time=0
- command: /ranker autorank.world.Peon.requirement
- displays: (existing) time=0
- command: /ranker autorank.world.Peon.requirement remove
autorank: world: Peon: rankupcommand1: server:/give {PLAYER} wood 100 rankupmessage2: ' You earned Peon rank!'
Commands
/ranker list description: list all ranks, requirements, and rewards within a world. /ranker stats description: show stats /ranker stats <player> description: show stats of <player> /ranker autorank.<worldName>.<rankName>.<options> <values> description: edit autorank data in config.yml /ranker chatformat.<rankName> <values> description: edit chatformat in config.yml /ranker stats.line<1-8> <values> description: edit stats format in config.yml /ranker save-all description: saves all player's stats to server before a /reload /ranker general.chat <true|false> description: turn Ranker chat mode on/off. /ranker general.debug <true|false> description: turn Ranker debug mode on/off. /ranker general.operator <true|false> description: include/exclude operators from calling Ranker's messages/commands, (false prevents operators from getting downranked) /ranker reset <player> rank description: reset player rankName /ranker reset <player> <pvp|pve|time> <value> description: reset player stats to specified value. /ranker give <player> <pvp|pve|time> <value> description: add value to specified player stats. /ranker import autorank description: imports autorank player's time into Ranker playerData
Permissions
ranker.*: description: Allow use of op commands. default: op children: ranker.stats.self: true ranker.stats.other: true ranker.list: true ranker.save.all: true ranker.stats.self: description: Show my stats. ranker.stats.other: description: Show other player's stats. ranker.list: description: List the ranks, requirements, and rewards within a world. ranker.command.rankup: description: Call rank commands when rank up to that rank. ranker.command.rankdown: description: Call rank commands when rank down to that rank ranker.message.rankup: description: Call rank messages when rank up to that rank. ranker.message.rankdown: description: Call rank messages when rank down to that rank. ranker.rankup: description: Change your rank when you rank up. Setting this to false will disable both message and command. ranker.rankdown: description: Change your rank when you rank down. Setting this to false will disable both message and command. ranker.save.all: description: Allow player to save all player's stats to server.
Player and Server Command Example
- command: /ranker autorank.world.Peon.rankupcommand1 server:/give {PLAYER} wood 100
- description: console server will send the command
- command: /ranker autorank.world.Peon.rankupcommand2 player:/me just ranked!
- description: the player will send the command
Mechanics with Permissions
- permission node: ranker.command.rankup (default: op)
- description: Call rank commands when rank up to that rank.
- permission node: ranker.command.rankdown (default: op)
- description: Call rank commands when rank down to that rank
- permission node: ranker.message.rankup (default: op)
- description: Call rank messages when rank up to that rank.
- permission node: ranker.message.rankdown (default: op)
- description: Call rank messages when rank down to that rank.
-
View User Profile
-
Send Message
Posted Jan 7, 2013Hey man, im actually not having any issues at all on the latest dev build with 1.4.6 R0.3
The only thing I can see wrong, is that this plugin wont let me use my PermissionsEX prefix's for each of the groups, is there a way you can make it so this plugin doesn't edit the chat format at all? Possibly a setting?
I want my players to be able to have PEX prefix's and Clan Tags
-
View User Profile
-
Send Message
Posted Jan 7, 2013I'm at school, when I get home I will do a quick fix and have a working Ranker tonight. Please continue to report all bugs to me ASAP so Ranker can be released. Thanks!
-
View User Profile
-
Send Message
Posted Jan 7, 2013When can we expect the permissionsEX error to be sorted? Im relaunching my server in a few days and your plugin is a key part of how my server is going to work! Please respond!
-
View User Profile
-
Send Message
Posted Jan 7, 2013@goldftwcom No not really! the debug mod is fine (no one has it), expect once your
> OP <- you have the debug if you need it or not. and in pex [ -* ] allows you to have all perms,most dev. make there debug mode to be changeable throw conf.!
-
View User Profile
-
Send Message
Posted Jan 6, 2013I see the problem now, I just downloaded PermissionsEx, and it's treating permissions differently from the permission plugin I'm using. That's disappointing that not all permissions stick to bukkit plugin.yml standard. I will have to remove Ranker Chat feature or add it in the config.yml.
This brings several concerns with other features such as the debug-mode of Ranker. To those of you who use PermissionEx, are you guys getting Ranker-debug messages without the ranker.debug permission node too? If you are, please let me know. I would like to stick to permission nodes, but if this causes an inconsistency across permission plugins then I'll have to start adding it to the config.yml instead of permissions.
-
View User Profile
-
Send Message
Posted Jan 6, 2013what A21SWAT said!!!! How do i disable the chat for OP's!! this is super annoying. I also have another chat program. every i say gets repeated. i didnt download this plugin for chat...
-
View User Profile
-
Send Message
Posted Jan 6, 2013@goldftwcom
Hai yea I think the chat can't falsed for OPs! if you want to know I have add "ranker.chat: false" in pex! and I'm using "livechat" plugin as a chatmanger!
I would say to you make it falsed throw conf. but you mentioned it xD! When do you think you can have it released? any suggestions for me in the mean time? c;
-
View User Profile
-
Send Message
Posted Jan 6, 2013@A21SWAT
Don't give out the ranker.chat permission, or set it to false.
-
View User Profile
-
Send Message
Posted Jan 6, 2013when will be able to disable chat :o?
-
View User Profile
-
Send Message
Posted Jan 5, 2013@lucky___13
Try the 1.2.2 in debug mode, should be able to catch it.
-
View User Profile
-
Send Message
Posted Jan 5, 2013@goldftwcom
It was just the default config that is produced
-
View User Profile
-
Send Message
Posted Jan 5, 2013@lucky___13
Can you link what's in your config.yml?
-
View User Profile
-
Send Message
Posted Jan 5, 2013Seems I was wrong about being wrong :/
This error occurs when players die. As well as another error I couldn't catch.
04:50:32 [SEVERE] Exception in thread "pool-1-thread-52" 04:50:32 [SEVERE] org.apache.commons.lang.UnhandledException: Plugin Ranker v1.2.1 generated an except ion while executing task 6 at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:56) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at com.goldftw.chaos350z.ranker.RankProcessor.passRequirement(Ranker.java:543) at com.goldftw.chaos350z.ranker.RankProcessor.calculatePlayerRankUpdateMemory(Ranker.java:925) at com.goldftw.chaos350z.ranker.RankProcessor.calculatePlayerRankUpdateMemoryAll(Ranker.java:8 51) at com.goldftw.chaos350z.ranker.RankProcessor$1.run(Ranker.java:531) at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53) ... 3 more
-
View User Profile
-
Send Message
Posted Jan 5, 2013Seems to be working now, my mistake!
-
View User Profile
-
Send Message
Posted Jan 5, 2013What craftbukkit build is your latest beta 1.2 built against, doesn't seem to work on 1.4.6? Am I wrong?
-
View User Profile
-
Send Message
Posted Jan 3, 2013Ranker Beta 1.2 Here!
-
View User Profile
-
Send Message
Posted Jan 3, 2013@goldftwcom
Give us link please, i need it very much ;)
-
View User Profile
-
Send Message
Posted Jan 3, 2013Ranker Beta is out! Let me know what you think. I'll have my own repository for instant download soon.
-
View User Profile
-
Send Message
Posted Jan 1, 2013Please tell me you're still continuing to work on this plugin!
-
View User Profile
-
Send Message
Posted Dec 26, 2012I have been searching for a plugin like this for a long time, and I haven't found one. The reason why i'm not going to use this is because you it doesn't work with other group and economy plugins. If there was a way to integrate other group/permission plugins + economy plugins, I would use it :D