NEW THREAD BuyAbilities - Purchase Abilities: Version: v0.8.9 BuyPermissions is a plugin that allows your players to purchase abilities or permissions with iConomy/EssentialsEco/BOSEconomy money! This way, players can finally have a long-term investment for their virtual money, instead of spending it on items. Also, the time-based and use-based rent systems allow temporary access to permissions. Abilities are groups of related permission nodes, which are granted to the player upon purchase. Abilities are also grouped into categories, which the server admins can deny or allow access to via permissions. Original Suggestion Thread Purchasable Permissions/Abilities Features: Rent abilities for a specified duration Purchase uses of an ability and its associated commands Purchase abilities permanently and retain its benefits forever (theoretically) Download Help Source Code Requirements: An economy plugin (iConomy 4, EssentialsEco, BOSEconomy) A permissions plugin (Permissions 2.7, GroupManager) Usage Instructions: Plugin commands are "/bab" and "/buyab". Each can be used instead of the other. From player's chat: "/bab categories" returns all accessible categories. "/bab category <categoryname>" returns all abilities in the category. "/bab page" lists all accessible abilities. "/bab current" lists all active abilities. "/bab buy <abilityname>" buys an ability. "/bab rent <abilityname>" rents an ability for a period of time. "/bab rentuse <abilityname>" purchases uses of an ability. "/bab info <abilityname>" returns information about that ability. "/bab help <abilityname>" returns the help text about that ability. From server console: "/bab listall" prints out a list of all active abilities for all players. "/bab status" prints out the current status of the hooks into the permissions and economy plugins. For admins: To allow usage of the /bab command, grant the permission "buyabilities.use". To allow access to a category, grant the permission "buyabilities.abilities.<categoryname>" where <categoryname> is the name of the category, with periods replacing spaces. NOTE: A user can access an ability if he can access any single one of its categories. It does not matter if he can access its other categories, just one. NOTE: If an ability or category name is misspelled, this plugin will provide suggestions for the correct spelling of the name. Changelog: Version 0.8.9 Fixes ability removal bug. Iterators finally get a use. Version 0.8.8 Update for CB 740. Version 0.8.7 ? Version 0.8.6 Fixed regex matching whole string bug Version 0.8.5 Fixed bugs because of Permissions caching old permissions. Version 0.8.4 Fixed NPE when saving player data Fixed permissions bug Added BOSEconomy support. Version 0.8.3 Fixed data.yml not being created. Version 0.8.2 Removed interfering code from another git branch. Version 0.8.1 Fixed cost data not loading. Version 0.8 Auto-loading and auto-saving of player data during join/quit events. Version 0.7.3 General fixes. Version 0.7.2 Recompile for CB 617. Version 0.7.1 Recompile for CB 602. Version 0.7 Added suggestions for ability/category names in case it is misspelled. Version 0.6 Added usage counters. Version 0.5.6 Changed package names to conform to Java's naming conventions. Version 0.5.5 Minor optimisations. Version 0.5.4 Abilities can belong to multiple categories. Version 0.5.3 Fixed another NPE due to FakePermissions confusing the plugin. Added permissions to use /bab. Changed category permission format. Version 0.5.2 Fixed actual cause behind NPE. Version 0.5.1 Fixed NPE bug when hooking into economy. Version 0.5 First release. Permissions unsupported though. Version 0.01 First announced version. Not working yet. TODO FIX ALL BUGS Better and easier implementation of ranks Add requirements for rank advances Graphical editor for costs.yml Scripts for activation/deactivation. Suggestions and ideas are welcome! Credits: I would like to credit the people whose code I used: Programmer's Cookbook for the line-wrapping algorithm. Sean's Blog for the Damerau-Levenshtein algorithm. Report bugs by enclosing the exception's stack trace, your costs.yml and data.yml in spoilers.