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
@Swords761 aww, there was a error on my testserver, so it doesn't occured for me. Fixed it, but the new file needs to be approved first. If you can't wait download the dev version, it's exactly the same file.
@Indeleble The config should not be lost, but I recommend, as on every update process, to make a backup. :)
Hello SydMontague! Great job with that plugin, i love it.
One question, Im using 0.7, if I update to 0.8 I will lost my config?
Thx!
Hey Syd, so now after our talk on the forums I saw you made a new build of ExpSkills, so when I went to install it on my server I got this error message when I enabled it from in-server:
08:04:23 [INFO] [ExpSkills] Loading ExpSkills v0.8. 08:04:23 [SEVERE] Error occurred while enabling ExpSkills v0.8 (Is it up to date?): null
java.lang.NullPointerException at com.syd.expskills.ExpSkills.onEnable(ExpSkills.java:44) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:231) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:1057) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:379) at me.ryanclancy000.plugman.PlugManCommands.loadPlugin(PlugManCommands.java:112) at me.ryanclancy000.plugman.PlugMan.doCommand(PlugMan.java:101) at me.ryanclancy000.plugman.PlugMan.onCommand(PlugMan.java:37) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:386) at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:777) at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:737) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:725) 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:100) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:537) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:435) at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
The same message appears on a plugin reload or a server reboot. Any idea what the problem is? I do have a long list of other plugins installed but...
@InflamedSebi Well, another this for my To-Do List -> update sample config Skilllevel isn't added yet. It's planned to extend the skill_cap with this. (e.g. you can buy 3 Level 1 and 2 Level 2 skills while there are 4 Level 1 und 5 Level 2 skill) The playtime node is 'time: <seconds>' The rent node is 'renttime: <seconds>' The renttime is the upper limit of time, you rent a skill with '/exp rent <skill> <time>'. If time is empty 'renttime:' is used.
Further documentation is comming soon^^
@SydMontague
Uhm i dont get where to sdefine a "Skilllevel" "needed playtime" and the rent option. still under development or simply not updated the config? :D
@InflamedSebi Good idea, will be added in the next version as /exp list all and /exp list <filter> all. :)
@SydMontague
nice thanks, maybe u cann add a full list of skills? if i do /exp list only the skills are shown, wich i can buy atm so f.e.: skill1 needs skill0 and i type /exp list i am not enable to see skill1 ... just skill0 also if i add a filter ... only atm buyable skills are shown ... but is would bee nice if u can see the complete skilltree when adding a filter, so f.e. all magic skills are shown, even if i cant buy the higher ones now.
@InflamedSebi
yes, spaces in 'name:' are not supported as of now. I´ll write it on my To-Do List, but don't expect it in 0.8, I need to release it some day...^^
The missing space is added in my code. I will update the dev version when I made some more changes/fixes...^^
thanks for you report :)
uhm i found out a little problem ... i named my skills like:
but only the first one is shown .... (i use dev version now)
if i try to buy the 1st one "/exp buy disguise I - Animals" -> too much/less arguments also put in " or ' didnt change the result. "/exp buy skill0" - skill not found or something ...
but "/exp buy disguise" did work but all are beginning with disguise oO so is it possible to get spaces in the skillname work? (or that skill0 will work)
also found a "bug": in the deskription for the cost is a space missing: it says "5skillpoints" instaed of "5 Skillpoints"
LG hop u get it work :)
@InflamedSebi The /exp list command is bugged in 0.7, maybe it's related to this. It should be fixed in the dev version.
@SydMontague
and the exp system is great :D it sould stay as seperated as it is ... maybe just add a percentage of the level u will lose on death ( so i can decide if player lose 10% or even 50%)
i used register only for a short moment ... i changed a lot of things so i dunno if iconomy or something else is causing the error. just recognized it didnt work and on the register site someone posted it is not working ...(now the last post say it works fine).
i dont get skill0 shown? is this ok? just skill1 and + are shown ...
Edit: error fixed: just forgot to disable economy plugin xD (dont have one)
@InflamedSebi When you die you´ll loose all xp you have collected to the next level. That means if you are level 2, you can't go to level 1 or 0 again. In the other way the enchantment points/exp are more or less seperated from my exp. That means the ExperienceOrbs are used to gather EXP, but the enchantment level is not the same as your PluginLevel. So you can enchant and die without sorrow to lose skills.
However, if it's needed I would add a few options to configure this in the one or other way.
PS: How do you see that Register does not work? I havn't tested it as much as I maybe should.^^
@SydMontague
Ok ... maybe just a settings problem ...
Im currently setting up my server and adding tonns of features ... (ur plugin is on of them :D) but atm its not possible to test some features ... maybe u can help me:
if i become lvl 2 in EXP ... il gain 4 Skillpoints and buy "blah1.perm" for 3 Skillpoints. After that i will die and loose all of my exp (so im lvl 0 again) do i loose my skillpoint too? Whats about my already brought permission node? Is it the same when i enchant something with my exp? will i start lvling from a lower level (and get the skillpoints much quicker) or is ur exp system seperated from the minecraft exp?
LG
btw will u add a sign or something to put exp in, so if i die not all is lost?
@InflamedSebi
Register still seems to work fine for me on R1 as well as on R3. However, Vault support is included in the dev version. As of the great number of changes it needs some testing, but as of now it is pretty stable.
uhm Register seems not to work on the latest Bukkit Build. is there an alternitive one ? maybe vault can handle this too? And will u add something to store exp?
LG
@Zephedge
Thank you, I hopefully fixed it. :) It has to do with the new languagefile. I havn't tested it widely due lack of time yesterday.
As of dev build 1/15 /exp current is throwing an internal error on our server.
Edit 1: Also throws an error when trying to buy a skill you already have.
Edit 2: And when you try to buy a skill when you have run out of skillpoints (im sort of guessing for this one)
Oh god internal errors everywhere
@Straevaras
The /exp list is fixed in the dev version. It was always intended to show only avaible skills.^^
A filtered list is avaible through the "categories:" node an /exp list <page> <category>
@SydMontague
I appreciate your recommendation. Your plugin was just what I was looking for and even some more. But I have a suggestion. When you do /exp list you list every single skill, even if you're not capable of buying it. Perhaps you could add a hard filter to the list via config? For example "filter:" and have options where only skills you have the required group(s) for will show?
@SydMontague
Correct, we are currently using PermBukkit. At the moment we have 30 skills set in the plugin, and about 64 nodes, including some dummy and duplicate nodes. I'll send you a PM with links to the console output and our current config. I just ask you don't make these public, because we don't want all our plugins being leaked.
I would imagine its because of the shear number of node removal.