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
Sorry for the long waiting time, I just uploaded a new dev version, which should improve the Enchantment level drop.
The development of the plugin is, however, quite dead at the moment, as I need to focus on other things now. (University, other projects/plugins) So don't expect to much updates in the future...
@SydMontague
Any update on my request for the exp dropping function?
@SydMontague
Thank you Syd!! Now I understand the concepts and the plugin works! I very much appreciate your quick response!
@mchavez
Are you in the group "Newcomer"? Permissions_need: is a list of permissions you need to buy this skill, like you need essentials.afk for buying essentials.compass.
The /exp info error is caused by cost_type: dollar which needs to be either "money", "skillpoints" or "both"
I am not able to get this plugin to work. If I do /exp list in game, I just get double dotted lines. If I try to buy the "testskill" in the config.yml, I get the message "You don't have the needed Permissions." However, expskills.use permission node is being used. I am not sure what permissions_needed is used for. I was trying an example permission node, essentials.compass, to test. In the config.yml file, I have under permissions_earn: essentials.compass. Not sure what needs to go under permissions_need since I am already using expskills.use. So, yeah, I'm confused. Help! Thanks!
Edit: I tried /exp info testskill and got the message "error! please contact admin!" and then the description and requirements for the skill (which are both at zero). So, again, I'm totally lost...which is sad cuz I'm usually good at configuring plugins.
@MelonCraftServer
It should work without problems with 1.4.2. It does on my own server.
Does this work for 1.4.2? I want to put this in, but it SEEMS to be causing crashes? I'm not sure.
Any chance for a MySQL backend?
@SydMontague
How it works is that you do indeed on death lose all of your vanilla xp, and then it drops some xp on the ground. I don't know the exact amount, but the amount dropped on the ground generally isn't much. For example, just killed myself with 22500 xp (level 100) and I picked up 100 xp (level 5) off my cold dead corpse.
@Zephedge
Hm... the last time I played vanilla MC I dropped 100% of my XP. :D I wrote it on my TODO list, to add a config value to regulate the enchantmentlevel drop.
In overall the ModAPI is a great thing and I can't wait to use it. However, I hope there will be an 1.4 Bukkit build, to make the transition from Bukkit to ModAPI as smootly as possible.
@SydMontague
I'm not sure I understand. In vanilla when a player dies they lose all of their enchantment xp except for a very small percentage of what they had, like maybe a max of 5 enchantment levels. Currently expskills is dropping a bottle of enchanting that gives 100% of their previous xp back, which is quite different from vanilla functionality
Also, I feel bad for you plugin devs and the whole mod api thing. Mojang hasn't given any information, and it was SUPPOSED to come out in 1.3, and now it looks like it won't even be out in 1.4. The regular Minecraft update cycle is hectic enough without also knowing if you need to totally rewrite your plugin for the mod api.
@Zephedge
I kept the enchantment level, as it's vanilla behavior.
The /exp current console thingy is a bug. However, it's unlikly that I update anything for Bukkit until I know how they proceed with 1.4 and the new ModAPI.
@SydMontague
The problem with change_expdrop: true is that it drops their entire enchantment xp value when they die as a bottle of enchanting. Is there any way to make it so when they die they lose their enchanting xp, but retain their expskills xp?
Also another problem, when running /exp current <player> on a player to see what skills they have, it seems to be running the command as console, and spitting back "Consoles dont have skills!"
Can someone make some good skill trees?
@SydMontague
I love you, but you should really update your documentation :)
Edit: Oh god you already did, all of my regret....
@Zephedge
Add change_expdrop: true under general in your config.yml
I seem to be having a problem with experience and death. In the past when we used expskills players kept their expskills xp on death, and regardless of your enchantment level xp. I'm not sure if this is a bug, or a feature of expskills. I'm guessing the expskills xp is now read directly from their current enchanting xp. Is there a way make players not be reset back to expskills level 0 on death?
Basically I want expskills xp to be tracked independently of enchantment level xp, and not be lost on death.
@Zephedge
Try the lastest dev. version and add "useGlobalPermissions: true" node to the "general" section in config.yml.
@Lostferret13
On my own server it works without the permissions_need node. Which version are you using?
Back in February I requested a per world feature for buying skills. Honestly I haven't even tried if the "world:" parameter in the skills works yet, but i notice now when you buy a skill it buys it for the world you are currently in. I now need to make skills buy for global permissions for users. Is there a way to force the skill to buy for the user globally?
Example when I buy a skill that gives me permission.node.i.want in The End:
How I WANT it to add the skill when i buy it in the end
Is there any sort of separate world: option like world: global that I would use to make it buy the skill globally?
I cannot get permissions to rent or buy a skill.
I am using GroupManager, and have the expskills.use node. but i keep getting
"you do not have the needed permissions"
the requirments to buy/rent the skill are skill: no perm requirements, no group requirements, 1$ 0 skillpoints
I am using vault and have 100$ with /bal.
it only works when i have the permissions_need filled. otherwise it does not work. what is the format for assigning no perms are needed to buy/rent