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
@BrvtvsC I hope I found it. It would be nice if you download the lastest Dev-Build to test it. Please tell me if it works now.
@SydMontague
I use multiinv to have exp levels per world, and that is how it worked on the 0.8.1. However, on 0.8.2, even though they only have expskills.use on the event world, they can use all the commands and level up on the default world.
@BrvtvsC
The Problem is Minecraft related, as I use the same experience values as enchantment levels. The only solution would be a "Exp per World" Plugin.
@Qwahchees
I actually support PermissionsBukkit as far as possible, but it lacks of a API, which means my plguin/vault actually needs to "type in" the command in the console. This is slow and dirty, but the only way.
I recommend you bPermissions, PermissionEx or any other Permissions plugin, which is fully supported by Vault.
PermissionsBukkit support would be greatly appreciated.
Hi, I use this plugin to create my own progression system on an event world of mine, and with the updated version, there seems to be a permissions issue. Players seem to have "expskills.use" on any world, even though I have it only on my event world, which is a big issue because it allows them to gain XP for their progression on other worlds where it is much easier. For now I cannot update, but I hope this issue gets fixed.
Thanks, this plugin is very useful to me.
@danielboyz
I just tested it, and it worked as it should. It works with 0.8.1 but not with 0.8.2? Did you changed something in the config? Can you send me a skillentry which does not work?
Thanks
This wont work for me it won't add the new groups to the permissions file (I use latest pex expskills and vault) it will give no errors it just wont edit the perms. However when I use Expskills 0.8.1 it does work
@tincopper2
I don't see why this plugin should not work. If you specify your problem with the plugin, I could help you/fix it.
@Joobehy
You need to define at least one skill. I need to add a additional null check...
I have an Error when I try to do ANY command.
-----org.bukkit.command.CommandException: Unhandled exception executing command 'exp' in plugin ExpSkills v0.8.1 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:16 6) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:4 60) at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler. java:801) at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:761)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:744) at lishid.orebfuscator.hook.NetServerHandlerProxy.a(NetServerHandlerProx y.java:101) at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:33) at net.minecraft.server.NetworkManager.b(NetworkManager.java:226) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:111) at lishid.orebfuscator.hook.NetServerHandlerProxy.a(NetServerHandlerProx y.java:44) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8 ) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:536) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:434) at net.minecraft.server.ThreadServerApplication.run(SourceFile:465) Caused by: java.lang.NullPointerException at com.syd.expskills.funcs.getSkills(funcs.java:323) at com.syd.expskills.funcs.getList(funcs.java:610) at com.syd.expskills.CommandManager.onCommand(CommandManager.java:228) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40) ... 14 more
---I have Vault and bPermissions. I also have a bunch of other plugins, but I don't know if that's the issue here..
Is anyone else having a problem with ExpSkills? =/
@Tomskied
Thank you, I´ll try to add more permission nodes as soon as possible.
Urgh just got 502'd, I'll start again -.-
Would it be possible to break up the admin commands a bit more. For example give permission nodes for each command as follows:
/exp <set/add> <player> <xp/level/skill> <amount> -
But also have a node so that you could give permissions to add, but not to self. so
expskills.add.player.xp/skill/level.self Would be needed to give to the own player.
/exp current <player> -
/exp revoke/grant <player> <skill> -
/exp reset <player> [total/level] -
Obviously all of these would be encompassed by expskills.admin But this would be really usefull if you could break up the commands with nodes a little.
Sorry if this doesn't make sense! Tom
I added the advanced skill renting and the per world permissions in the newest dev version.
@SydMontague
Honestly, that would be great and very much appreciated. There are skills we want people to be able to use in our survival map that we don't want them to have in creative.
As an unrelated note, I would definitely shy people away from using PermissionsBukkit with your plugin. In our experience, permBukkit can't handle large flat-file storage of users and groups very well, and every time you add a node with this many entries it lags the server. This is especially bad when your plugin adds nodes to people, because every time a user buys a skill it lags the server. Not your fault of course.
@Zephedge
With PEX currently not. It did it in a older version, but I got major problems on my own server with it, as the node was added to the world you were at this time. So I used the global permissions.
To solve this I would add a "world: " key in every skill to define the world(s) the node is added. Would this help you?
Is there a way to make nodes be purchased per world while using PEX? (We dumped permBukkit because like you said, it has way too many server breaking flaws.)
For example, we want to give them permission.node in survivalWorld, but we don't want them to be able to use permission.node in creativeWorld. Does Expskills currently have a way to set the skill config to make the skill(s) per world nodes?
@Master_Zangetsu
I´ll check this out as soon as I´m home. (end of this week)
Are you using the 0.8.1 version or the dev version? If you use the dev version: are you using Vault, too?
Based from the source code it should work. However, I DON'T recommend to use PermissionsBukkit with my plugin, as it has no API to add/remove permissions/groups.
cant seem to get the groups_earn: part to work, i am using permissionsbukkit however i had come to understand that the only restrictions were on the groups_need:
@SydMontague
Ah ok, didn't realise this. I hope you could get that done though, would be a really good plugin if you could. Thanks for your reply, Tom
@Tomskied
no, /exp list all shows all skills, no matter of category or avaibility. Usualy /exp list shows only for you buyable skills.
The renting system isn't finishedyet. Rented skills are only for a amount of time, but cost the same amount as a bought skill. It's not possible to set a skill only for renting/buying. I need to flesh this out.^^
I´m currently not at home, so it might take a while until the next update/dev build.