Time Rank - Time/Economy based group advancement Version: v0.1.0b Download Latest version: Time Rank.zip (jar) Source: GitHub This plugin will allow you to promote people to different groups based upon how long they have been playing. It also lets player buy or rent ranks using money or blocks. Requires permissions 3.x or Group Manager Optional: iConomy 4, iConomy 5, Essentials Eco, BOSEconomy Features: Change a persons group after they have played for a set amount of time Allow players to buy groups using blocks Allows players to buy ranks using money Supports all 4 major economy plugins Supports multiple groups Can be removed from one group when added to another. Works with permissions' globalUsers and globalGroups Configurable messages upon promotion Ability to rent ranks for a set number of minutes. Please feel free to post comments, bugs, or feature requests here and I will do my best to help or add the requested features in. Asking for help Please include the following in your post. server.log - With out the server log we can't really tell what error your getting, which plugin it might be from, where the error is in our plugin.... Error message - Sometimes you might be getting more then one error. What error are you trying to fix? Also if the server log is missing or very long, this will help us locate it. Which permissions plugin your using. - We need to know if your using permissions or Group Manager. It might be an error specific to that plugin. Also both work very differently. The steps to fix one might be different then the steps to fix the other. Config files are different... Explain the problem - Simply posting it doesn't work doesn't help. We need what you were doing, what caused the error and other any information that could help. Config example Config (Move your mouse to reveal the content) Config (open) Config (close) Code: settings: #Show debug messages. Will spam your console if turned on debug: false #Only show ranks/abilities people can gain when doing /listranks or /listabs hideUnavaible: false #config version. Do not change. Used internally to know when to auto-update the config file. configVersion: 2 #All your ranks go here. ranks: #Rank name. This is what is used with /buyrank and such. Trusted: #This is the group the rank grants when it is earned/bought/rented group: Trusted #This is the world the group belongs to. world: world #This is the group that the person must be in before they can buy/rent/earn the rank. Can be removed to allow anyone access to it. oldgroup: Default #Amount of time, in minutes, before the rank is earned. This can be removed or set to -1 to disable it. time: 60 #Description shown in /listranks description: Can build, use basic commands, has access to water. #If we should remove the oldGroup after adding the new group. Most of the time this should be true unless your using Permissions 3.x and want to have people in more then 1 group. remove: true Vet: group: Vet world: world oldgroup: Trusted time: 2520 #Allow this rank to be bought with /buyrank. buy: #Amount of the resource to require when buying. amount: 25000.0 #Broadcast to the whole server when this rank is bought. broadcast: true #What to broadcast. See messages below for variables that are allowed. msg: '&B<player.name> &Ehas been promoted to &B<rank.group>' #What this costs to buy. This can be any block ID (example 266 for gold ingots) or Money to use a supported Economy plugin. cost: Money #The minimum amount of play time required before they are able to buy this rank. -1 disables this. minTime: -1 description: Has access to tnt and lava. remove: true #Rent would be set up the same way, See rent from the abilities section below for examples. Elite: group: Elite world: world oldgroup: Vet time: 5040 buy: amount: 5.0 broadcast: true msg: '&B<player.name> &Ehas been promoted to &B<rank.group>' cost: 266 minTime: -1 description: Has the ability to fly and to tp to other players. remove: true #These grant just permission nodes with out changing a persons group. abilities: #Ability name. Superpick: #World that this person will gain the permission for. Use * for all worlds world: world #The permission node the person must have before they can earn/buy/rent this ability. Can be set to whatever you want. Just make sure to give the person/group this node so they can get this ability. Can be removed to allow everyone to get it. permission: timerank.ab.Superpick #List of nodes this ability grants. These will be added when bought/rented/earned and removed when time runs out if it was rented. nodes: - worldedit.superpickaxe - worldedit.superpickaxe.area description: Enable Superpick #Categories the ability will show up in. This helps organize large sets of abilities. Later these may be used for permissions but right now it's just for /listabs <category> categories: - pick - worldedit - mining #See above for what these all mean. Set up exactly the same as ranks buy: amount: 250.0 broadcast: true msg: '&B<player.name> &Ehas bought superpick' cost: Money minTime: -1 rent: time: 5 amount: 25.0 broadcast: true msg: '&B<player.name> &Ehas bought superpick' cost: Money minTime: -1 gainedMsg: '&B<player.name> &Ehas rented &B<ability.name>' lostMsg: '&B<player.name> &Ehas lost the &B<ability.name> ability' time: -1 Jump: world: world permission: timerank.ab.Jump nodes: - worldedit.navigation.jumpto description: Enable Jump categories: - navigation - worldedit - movment buy: amount: 250.0 broadcast: true msg: '&B<player.name> &Ehas bought <ability.name>' cost: Money minTime: -1 rent: time: 5 amount: 25.0 broadcast: true msg: '&B<player.name> &Ehas bought <ability.name>' cost: Money minTime: -1 gainedMsg: '&B<player.name> &Ehas rented &B<ability.name>' lostMsg: '&B<player.name> &Ehas lost the &B<ability.name> ability' time: -1 Messages Messages (Move your mouse to reveal the content) Messages (open) Messages (close) Messages must be enclosed in ' ' or you will get errors. They support both colors and variables. Colors are done by using &<color>, such as &3 or &a. If you want to use a & in your message, place two of them. Example. 'He is a gentlemen && a scholar' would print out 'He is a gentlemen & a scholar' Here is a list of variables. All variables should be enclosed in < > and lower case Player player.name = Players name who has been promoted player.world = Current world the player is in Rank Follows pretty much the config names. rank.name = Name of the rank rank.group = New group person is getting promoted to rank.oldgroup = Old group the person was in rank.world = The world that group and oldgroup are a part of. rank.time = Amount of time in minutes it took to get this promotion rank.cost = The cost, money, or block id they used for this promotion rank.amount = The amount of money, or blocks, they paid rank.remove = If they were removed from the old group Ones you'll likely never use but are there... rank.broadcast = If this was broadcast to the whole server rank.msg = The raw msg before it is processed. Abilities Same as rank with the following changes There is no group or oldgroup. Commands Commands (Move your mouse to reveal the content) Commands (open) Commands (close) Code: /playtime <player> will show how long a player has been playing for. This keeps track of time logged in to the server and playing. Permission node: timerank.playtime Code: /listranks [filter/page] [page] List all the ranks loaded and there costs and other information. Filter and page is optional. Filter can be time, buy, or rent. Adding a filter will only list the ranks with the selected information. Page can be used to limit the output to 5 at a time. Permission node: timerank.listranks Code: /buyrank <name> Will allow you to buy the rank with that name if you have enough to pay for it. Permission node: timerank.buyrank Code: /rentrank <name> Will allow you to rent the rank with that name if you have enough to pay for it. Permission node: timerank.rentrank Code: /timerank Show version number and other information /timerank reload Reloads config file /timerank groups List a lot of information on the loaded groups Permission node: timerank.timerank Current Bugs None Planned features Add in support for Permissions 2.7.x - May not happen. Doesn't have an API for managing groups. May have to edit the config files directly which is a very ugly way of doing it. Reformat the listrank output to make it look better. Make oldGroups a list instead of a single value. Make this list an OR list so they have to be in anyone of these groups, remove any that they are in. Add in a use: section to limit the abilities to a number of uses instead of just buy/rent. Features I'm thinking about Add an option so you have to visit a set place to get your rank advancement such as an alter or temple. Come up with a better name to describe this since it now does more then just time. Maybe call it Ranker.I'm open to suggestions. PermissionsEx support Change Log Version 0.1.0b Fixed serialize bug so we could save rented abilities across reboots. Version 0.1.0a Fixed bug where only the first permission node was added. Version 0.1.0 Fixed null pointer error when rent was present but empty. Added ability to earn/buy/rent abilities and permission nodes. Version 0.0.9 Fixed bug when loading play times and it coming back null. Added in description field. Added message to reload command to let you know it worked. Added better error messages, trapped a few more errors. Preserved ordering for rank list so that /listranks is printed in a logical order. Fixed but where rented abilities would not turn off if the server was rebooted. Config file changed. Should auto-update to the new format. You may want to back up your config file first before upgrading. Old change log (Move your mouse to reveal the content) Old change log (open) Old change log (close) Version 0.0.8 Fixed reload option to reload config instead of needing a reboot. Fixed not being able to buy ranks when using blocks. Added minTime node to require a minimum time before being able to buy a rank Added rentMinTime node to require a minimum time before being able to rent a rank. Version 0.0.7b Fixed bug where people were removed from the group right after adding them to it. Version 0.0.7a Fixed bad bug where it made a folder for each player in the permissions folder. Version 0.0.7 A lot of small bug fixes. Added timer to handle rank up checks, checks every 10 seconds, instead of using player animation Added ability to rent ranks and all the goodies that go with that Made it easier to work with single permission nodes for when buying single nods gets added in Added filters to /ranklist. Now it is /ranklist <time|buy|rent> to only show that group. Added /timerank groups to list more (Admin) information about groups. Works with the same filters as /ranklist Version 0.0.6 Made OldGroup optional. Now if it is not specified it will always promote them if available. Added BroadCast to ranks, allows turning server broadcasts off when a person is promoted. If off, will only msg the person who was promoted. Added msg to ranks, configurable message for when a play gains a rank. Version 0.0.5d Fixed a bug added in 0.0.5 that would only allow people to be promoted to first group listed in config. Fixed /timerank reload causing errors. Added in some more error handling. Version 0.0.5c Really fixed this time. Made a typo that stopped permissions from loading. Version 0.0.5b Fixed for latest permissions Version 0.0.5a Fixed detecting Group Manager Version 0.0.5 Added auto detection of permissions plugin. Now ignores the permissions setting. Added in support for globalUsers and globalGroups if no world is given. Reformated /timerank to show settings. Added /timerank reload Version 0.0.4 Added /timerank to show version and as a placeholder for other commands. Added support for group manager. Version 0.0.3 Added /listranks to display all the ranks you can buy Added support for iConomy 4, iConomy 5, EssentialsEco, and BOSEconomy Version 0.0.2 Added ability to buy ranks. Made it save play times on world save in case server crashed or was stopped. Added check a single players rank when they run animations. This way they get promoted sooner after they reach the right time Added Settings node and settings.debug to the config file instead of setting debug in the source. Changed name of plugin from Time Rank to TimeRank. Folder must be renamed. Made it handle reloads with out losing player times. Version 0.0.1 First public release.