XPStrength
XPStrength
You can allow players to achieve bonuses at certain levels - when they have a certain level, defined by you, they will get a certain bonus to their attack damage, defined by you. You can define as many levels as you want.
Features
- Toggling - You can use /xpbonus to toggle the level-attack bonus. If your level is lower than the lowest level defined by you (the script works this out automatically from the config file) then it will not let you use the /xpbonus command. If you are above the lowest level, you toggle the /xpbonus on and then you drop to below level 30 (see XP draining) it will be automatically turned off. The player's /xpbonus saves.
- Permissions - The permission node is xpstrength.bonus. If the player doesn't have this, they will not be able to use any of the XPStrength features.
- XP draining - You will (configurable) lose xp every time you hit. There is a 50% chance that you will lose xp (you will lose the amount of hearts that you hit - take away 10 hearts and you lose 10 xp), a slightly-less-than-50% chance that you will not lose xp, and a 1% chance that you will lose double the amount that you hit.
- User-friendly config - There is a configuration file that allows the user to modify all the levels and their bonuses easily. It uses .txt rather than .yml to avoid the pesky tab errors.
- Customisable language files - There is a file containing every message sent by the plugin, so the user can customise every single message at the touch of a button.
- Level cap - You can set a level cap that players cannot bypass.
Installation
To install, simply place the .jar in your /plugins/ folder and start the server. Inside /plugins/XPStrength/ you can find the user's accounts (I'm not sure why you'd want to edit these, although if for some reason a user's account breaks, submit a bug report and then delete the file.)
The plugin will automatically create a config file using some default values for you to get the idea of how to modify it, although for more information on the configuration file you can click here.
The plugin will automatically create a language file uses the default English values. You can modify the language file yourself by reading it, although for more information on the language file you can click here.
A configuration editor has been kindly created by papand13 and can be found here.
Permissions
There are two permissions nodes for XPStrength.
- xpstrength.bonus - this allows the player to gain a damage bonus from XPStrength.
- xpstrength.bypass.cap - this allows the player to bypass the level cap.
- xpstrength.bypass.drain - this allows the player to bypass the experience drain.
Thanks!
Thanks for reading, and possibly using my plugin. If you have any suggestions or bugs, submit them and I will look at the bugs and consider the suggestions!
Helping
Are you interested in helping develop XPStrength? Head over to the GitHub repository and fork it in order to contribute. Thanks for the help!
Woot! That was quick! Thanks.
@jameskmonger
Very true. One is better for the ease of use, and the other is better for raw customization. In the end, it is your call, I just favored the interval fashion and suggested it :D
@UltrafaceGuy Hmm, I'm not sure, that could be quite hard for the user. What if the user wants the bonuses to start at level 30, then 50, then 60, then 65, then 68, then 70 (or any other non-regular "pattern", this is just off the top of my head
@MattSheridan Yes yes, the features will be configurable. I'm going to implement them all before making them configurable, I think.
@jameskmonger
I mean without limit, as in they'd never have to manually define levels.
start: 20
bonus: 1
interval: 5
So they'd get +1/2 a heart at level 20, and +1/2 more every 5 levels thereafter, indefinitely.
@MattSheridan
I use a modified levelsplus myself actually. And I hope this replaces it as well.
Aw, hey, this looks cool. I hope this plugin will grow to replace the sadly-abandoned LevelsPlus.
I'm hoping the XP loss feature will be configurable. Between vanilla enchanting, the MagicSpells plugin, and the occasional death, I don't think my players are in much danger of holding onto game-breaking amounts of XP.
Is there any chance you could make XP levels influence more than attack power? Things like healing rate, sprint speed, jump height, mining speed, hunger rate, and drowning rate come to mind.
@UltrafaceGuy What do you mean by an "endless interval"? If the config was this:
Then players with a level between 5 and 19 would hit one extra damage, and players of level 20 or above would hit two extra damage.
@antikx I'm implementing them at the moment :)
I vote for permissions as well as I would like this for a warrior class but not necessarily a farmer class of character. :)
@jameskmonger
That would work well, and I don't mind the .txt at all. Though I think an endless interval would still be better, mainly because who knows what the exp rate is on a server. I used to have one where people frequently hit lvl 150.
Also I'm just too lazy for typing numbers and such.
Yup.
titen: yes. This is my first plugin and I'm not completely used to the API yet (I've been programming Java for around five years now, but this is my first attempt in Bukkit) and I just haven't got around to looking into permissions. Expect it to come soon.
ultrafaceguy: I was thinking the config file (It'd be config.txt - I'm really not a fan of YAML. If I use a .txt then the user won't have to be so careful when using it) would be structured a bit like this:
If the config.txt used that exact code, then at level 5 they would do 1 extra damage (half a heart), at level 15 they would do 2 extra damage (one heart), at level 25 they would do 3 extra damage (one and a half hearts), at level 35 they would do 4 extra damage (two hearts) and at level 40 they would do 5 extra damage (two and a half hearts).
Love the idea, I have a semi-similar plugin but THIS looks like it'll do the job even better! If you do decide to make a config however, I have some suggestions, as an avid fan of experience plugins.
Anyways that's my two cents. I'll probably end up using your plugin either way, and some of those suggestions are not on the behalf of me, but others servers I've seen.
Great idea! I look forward to this plugin''s future :D
think youll add permissions in the future?