BuySkills
BuySkills
Please note: BuySkills is not compatible with the old ExpSkills Plugin. You need to update your config by yourself.
BuySkills is a plugin that allows your users to buy or rent skills (i.e. permissions or groups) for money or other currencys. It has a built in skilltree feature, perfect for level based classes.
To make sure you can use everything you want as costs or requirement, this plugin requires the CurrencyHandler Plugin.
Update from 0.x to 1.0
The new version is not compatible with 0.x versions. You need to update your config files yourself.
The level und skillpoint function has been removed but can be achieved with the SkillLevels plugin.
Metrics
This plugin utilises Hidendra's plugin metrics system. You can opt-out under <yourPluginFolder>/PluginMetrics/config.yml
The following informations will be collected:
- A unique identifier
- The server's version of Java
- Whether the server is in offline or online mode
- The plugin's version
- The server's implementation and game version
- The OS version/name and architecture
- The core count for the CPU
- The number of players online
- The Metrics version
- Your online-mode
- Your server location
Dependencies
Vault: BukkitDev
CurrencyHandler: BukkitDev
Usage
Commands
User Commands
/skill help [command] - get help for this plugin
/skill list <page> <filter> - list available skills
/skill info <skill> - get information to a specific skill
/skill buy <skill> - buy a skill
/skill rent <skill> - rent a skill
/skill current [player] - shows bought skills
/skill rented - show's your rented skills
Admin Commands
/skill grant <player> <skill> [charge] [rent] - grant a skill
/skill recalculate <player> - recalculate permissions
/skill reload - reload config files
/skill reset <player> - reset all skills of a player
/skill revoke <player> <skill> - revoke a skill from a player
Permission Nodes
buyskills.user - all user permissions buyskills.command.help - access to /help command buyskills.command.list - access to /list command buyskills.command.info - access to /info command buyskills.command.buy - access to /buy command buyskills.command.rent - access to /rent command buyskills.command.current - access to /current command buyskills.command.rented - access to /rented command buyskills.admin - all admin permissions buyskills.command.recalculate - access to /recalculate command buyskills.command.reload - access to /reload command buyskills.command.reset - access to /reset command buyskills.command.revoke - Grant access to /revoke command buyskills.command.grant - access to /grant command
Configuration
Example Skill
example: name: Example # Name of the skill, used for every ingame interaction. Must be unique description: "Example skill" # A short description of the skill info: "This skill allowes you to do nothing" # A more detailed description of the skill category: # A list of categories the skill can be found at (used for /list) - example perm_earn: # A list of permission nodes the player earns with this skill - ex.ample perm_need: # A list of permission nodes the player needs for this skill - exam.ple group_earn: # A list of groups the player earns with this skill - examlpe group_need: # A list of groups the player needs for this skill - player skill_need: # A list of skills, needed to buy this skill - notexample skill_illegal: # A list of skills the player is not allowed to own for this skill - examlpe2 skills_needed: 1 # Number of skills of the skill_need list the player needs for this skill worlds: # A list of worlds where you can buy this skill. Leave empty for global. - world revoke_group: false # Revoke needed groups when buying this skill? revoke_perm: false # Revoke needed permissions when buying this skill? regrant_perm: false # Regrant needed permissions when this skill is revoked? regrant_group: false # Regrant needed groups when this skill is revoked? buyable: true # Is this skill buyable? rentable: false # Is this skill rentable? renttime: 200 # Time in seconds the skill is rented for buy_costs: # The costs to buy this skill, uses CurrencyHandler plugin food: 10 health: 10 rent_costs: # The costs to rentthis skill, uses CurrencyHandler plugin food: 10 health: 10 buy_need: # This currencies are needed to buy this skill food: 20 rent_need: # This currencies are needed to rent this skill food: 20
Source Code: GitHub
@Zephedge
Which Permissions Plugin do you use? (I guess PermBukkit, after you questions :D) About which number of skills and nodes do we talk about?
I have a clue what could cause the lag, as there is a bit nonsense in the code what could cause a slow down. It's hopefully fixed in the next build.
As of the Jan 9th dev build, previous issues I had noticed have been fixed, thanks! (Assuming the next bukkit build doesn't break it).
However, I notice with the reset command you are revoking every possible node in the plugin from the user. The problem here is that it can cause major server lag while doing this command. Any idea if this will be fixable?
@Zephedge
yep, as I see now it's not correctly implemented. Will fix this now. Thank you. (This is why I don't like PermissionsBukkit, it does not have any API...)
@SydMontague
Hmm, I love you.
But in all seriousness, if you had already reimplemented PermBukkit support, I may have not realized it due to a possible bug in the plugin. I'll do some more testing and post a ticket or two in the next day or so, after I get another opinion from one of our other administrators.
@Zephedge
PermBukkit support is updated in the lastest dev version. The only thing which is not supported is "groups_need:" A easy workaround for that is to give the groups a unique permission (e.g. 'group.builder') and include this into "perrmissions_need:"
It's also not bad to make requests, as it shows me what I realy need to add.^^
So I hate to be a bother and flood you with requests, but did you ever figure out if you will support permissionsBukkit? Hate to switch to bPerms just based on one plugin, but we won't have a choice if you can't.
@Zephedge Just updated the dev Version to work with Vault.^^
It's not very well tested, but buying a skill worked.
Feel free to test it^^
@SydMontague
Alright, thank you and good luck :D
@Zephedge
I´ll start to implement it in the next few days. I was at vacations until now.
I hate to post again requesting Vault support, but it's really the only thing holding our server up from full functionality. Do you have a timetable for using Vault rather than Register?
@retricide It's on my To-Do List, but I haven't started yet...
@TeamAss I´ll put it on my To-Do List^^
Thank you VERY MUCH for the revoke; much appreciated :)
Vault support?
Register does funny things in my server :(
Would it be possible to add temporary skills - For example, you would lose rights to them after a certain amount of time or a certain number of uses of a command?
@federan
It's already changed to /exp in dev Version.
If you want to use it you should look in the config, there are new nodes for the level formula. level_formula: 0 -> 0 = new formula from 1.0, 1 = old formula from 1.8, 2 = own formula based on level_formula_a-e: with the form y=ax⁴+bx³+cx²+dx+e where x is the level and y the experience.
0.7 with a more detailed documentation will be released after bukkit has a new RB for 1.0
PS: thanks^^
Hi again! It have some conflicts with another /xp command (to gives exp to players). Will you change the command? Thank you so much!
Oh my god! I was looking for this a long time ago! Really nice work is an excellent plugin! Thank you!
This is exactly the plugin I was looking for! totally downloading this when the update for 1.0.0 comes out! Keep it up ;)!
@ryuklikesapples
group-revoke is planned.
skill_illegal: <list> means if you own one of this skills, you cant buy this skill.
Would you be able to add a "group-revoke" function?
I have my permissions set up in different "classes," and if you "buy" a class you should lose every skill from the other class.
I see skill_illegal: #list of skills which block this skill
but can this be used for that purpose?