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
@Danioxo
Yeah, as soon as I'm sure everything works as intended, I'll update the main page and rename the whole dev.bukkit.org site (hopefully it's possible).
I don't have .* permissions, as they aren't supported by Bukkit itself (unless I define a permission with *). I found it more convenient to make .user and .admin permissions.
Also, your error seems to be related with NoItem. You should post the error there.
20:42:02 [SEVERE] Could not pass event InventoryClickEvent to NoItem v3.0.7-SNAPSHOT org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:1364) at net.minecraft.server.v1_6_R2.Packet102WindowClick.handle(SourceFile:31) at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296) at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116) at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37) at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:590) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.NullPointerException at net.worldoftomorrow.noitem.events.Handlers.handleNoWearInvClick(Handlers.java:406) at net.worldoftomorrow.noitem.events.Listeners.onInventoryClick(Listeners.java:67) at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 14 more
Error showed probably at item pickup/inventory open/workbench open. Didn't show again later.
Beta 3 works great. Had some problems with configuration cause I used old documentation. Also an idea - most plugins have permissions done in this way: buyskills.user.*, buyskills.admin.* (at least plugins that I use). In my opinion it will be easier (first I used exp permissions, then I used buyskill.user.XXX and then I figured out that it's different for user and for commands. Anyway thanks for this plugin, my project is heavily dependent on it.
@Danteland
I would recommend to use a plugin, that allows you to bind commands to a sign. And let users execute them on interact. (ServerSigns was one of these plugins afaik)
Adding this functionality to the plugin itself, would be pretty useless, as other plugins do this job already. :)
Hey, could you make it possible so you click on a sign to buy a permission? That would be great if you want to make a rpg server.
@combiney
Dann wäre es nützlich, wenn du mir eine Fehlerbeschreibung gibst, denn nur dann kann ich sie fixen.
Ansonsten:
dev.bukkit.org/server-mods/expskills/pages/buy-skills-beta/
BuySkills klappt bei mir nicht, nur ExpSkills 0.8.3
@combiney
Wenn du BuySkills Beta 2 nutzt, dann ja.
klappt das auch mit revoke_need_permissions: true ???
@missingscrews
Havn't got any error message/feedback in general for beta2 until now. If there is any problem I'll fix it as soon as possible.
Is this project still active? The beta2 seems to have a lot of issues.
@kraftman
The plugin itself should be ready. However, some config stuff, documentation and tests are still missing. Also I need to test another plugin I'm writing at, which is required for this one.
I hope to find the time (and motivation) to do this in the next few days. :)
@SydMontague
Github's looking pretty busy, any ETA on a bukkit release? Cheers!
@SydMontague
Rock on. I've been trying to remake this for my server using MagicSpells plugin, and while it works it's not as elegant and a pain in the back-side.
@ritipinheiro
I'm currently working on a complete rework of this plugin. I hope I'll be able to release a first beta this weekend, but I won't make promises.
However, you can already look at the new code via GitHub. :)
update?
@gastondonikian
Copy the testskill, rename it and change the values to your needs.
How do you add skills? Do you have a youtube video on how to configurate it?
@SydMontague
We ended up recompiling your source code and just dividing the xp dropped by the player on death by ten, which seems to fill our needs for now. It doesn't play well below level 1, but I'm not concern about a 15 xp math error. Yay open source code. You have a neat method of dropping the xp on death without letting them cheat the system in picking it up again.
@SydMontague
That's totally fine, I understand being busy, I've been there. Even if you have to give up this plugin, thank you for always being so cooperative and quick in response to our requests and issues. With a bit of effort we can manage to develop our own skill system, but your plugin was pretty much a perfect fit for our needs.
Again we thank you for this and everything else you've done for us :D