S86 Powers
Introduction
Minecraft is a great game on its own, but chances are if you're here and you're a server admin then you're looking for more to offer your clients. As you may know by now, when it comes to the extras every player wants something unique. Some want new mechanics, others want better weapons. Some want to help their friends, others want to dominate them. The problem is most plugins often offer a blanket solution. While it may fulfill the needs of a few, the remaining may not want to participate. Sure you can mess with permissions to exclude some people, but why not just cut to the chase and give every player EXACTLY what they want?
For the server that wants its players to each have individual benefits and abilities, S86 Powers is the plugin for you.
How It Works
S86 Powers is a plugin that allows users to have powers assigned to them. The core plugin comes with internal powers, but is also capable of importing powers made by others (more info to come).
To get started, simply place the S86Powers.jar file where you put your other plugins. Note that ProtocolLib is required for S86 Powers to function. On first run, several configuration files are created with default values. It is recommended that you not edit these files directly unless the server is off, as entered values may be overwritten the next time the server shuts down or restarts.
Next, you'll want to review permissions and configuration options. Operators by default get permission to everything, otherwise assigning the permission s86powers.admin will accomplish the same thing. To view configuration options, use the command /p config list [page#] (for example, /p config list 2 shows you page 2). For more information on what an option does, use the command /p config info [config], and to change config options use the command /p config set [config] [value].
Finally, for players to use powers they must first have them assigned, and before they can do that they'll want to know what's available. Use the command /p power list to get a list of loaded powers, then /p power [power] for more info on a specific power. If you don't like how a power is setup, you can check and set its configurable options with /p power [power] option. Note that changes to power options affect all users, and may require a server reload/restart for changes to take effect.
Players can be assigned powers in several ways, the two most prominent being admin-assigned or self-assigned. Admin-assigned requires a user with the s86powers.manage.user permission to use the command /p user [player] add [power]. Note that the above permission allows the user to set anyone's powers and shouldn't be given to most players. Self-assigned requires a user to have the s86powers.manage.self permission, and use the command /p add [power]. This method is safer, as the user can only modify their own powers.
What Are Powers?
Most powers come in three categories: offensive, defensive, and passive. Offensive and defensive powers operate similarly: the player does something with a specified item, and it causes an effect. Offensive powers usually do something that causes damage to others, while defensive powers usually do something to protect the player in some way. Passive powers tend to work automatically and provide some kind of bonus that neither hurts others nor protects the player (though there are exceptions).
An example of an offensive power is Laser. In its default configuration, left-clicking while holding a dispenser will fire a laser in the direction that the player is looking. This laser steadily does damage to anything it hits but uses redstone dust as fuel. The laser turns off when either the player left-clicks while holding a dispenser again, or when the player runs out of redstone dust. After using Laser, the player has to wait for a 10 second cooldown before using it again.
An example of a defensive power is Celestial Pillars. Left-clicking the ground while holding a sea lantern will create pillars of light around you. While these pillars stand, nothing can pass between the pillars except for the player. Pillars last for 45 seconds, however the player can't create new ones until the old ones expire.
An example of a passive power is Lumberjack. With Lumberjack assigned, breaking one log block of a tree with an axe will cause all adjacent tree blocks to break as well, essentially harvesting the entire tree at once. By default, a threshold is put in place so players can't level entire jungles.
Some powers have additional effects when they're used a lot. For example, after creating 60 pillars with the Celestial Pillars power, you gain the ability to create a second set of pillars by left-clicking the same block with a sea lantern again.
By default, players can only have one of each of the above power types assigned to them, though this limit can be removed with config options.
The last power type is utility. Utility powers can be used by anyone, including players with no assigned powers. Neutralizer Grenade allows players to throw lapis lazuli like a grenade, temporarily disabling the powers of any players nearby when it hits. Neutralizer Beacon allows players to create a block that constantly disables the powers of players who go near it.
Commands / Permissions
All commands can be viewed by simply using the /powers help command. You can view additional pages using /powers help [page], or view help on specific topics like /powers help player.
Donate
Creating and maintaining a plugin this size can be a full-time job on its own. I enjoy working on this plugin and don't mind doing it for free, but the fact remains that I must commit a majority of my free time to do this. If you like my work and would like to support it, please consider donating.
Need support? Have an idea for a power? Join my Discord server!
@grimm294
pickpocket=Genius idea
@sirrus86
Thx. Im trying to kinda make something like a corrupted city, so that would be perfect.
@grimm294
I like it! I'll put it on the list for sure!
OMFG! THIS PLUGIN IS AMAZING! I have a really bad time with permissions, so it's nice to have it on by default. Great job man! :D *Goes and installs* Just one suggestion. Maybe a pickpocket power, so that when you right-click on a person while you have a bare hand, you steal the item they're holding?
@Abominas
Heh I was thinking the same thing when I added the "set as different type" command. I'll see about shortening the commands, or allowing alias commands to work (like "give" instead of "set").
Love your plugin but I suggest shortening the commands. For example instead of /powers info power (powername) try /p i (powername) and /p i player (player) and others like /p list or /p players and /p give (power) (player). That last one was really confusing on my server for a short time. Thanks!
@Faldonboy
This plugin wasn't tested against mcMMO, in fact it was originally developed for a server where the owner didn't want to force player participation, and basically became a lightweight alternative to it. Since I'm assuming mcMMO works by listening for certain actions (which some powers perform several times per second) I'm gonna second your recommendation that it shouldn't be used in addition to it.
Neutralizing regions is a great idea, I'll definitely look into getting that implemented.
Setting cooldowns and assigning trigger items are some ideas I want to get implemented soon, definitely a good idea and I'll see that it gets added.
Not really a compatibility issue but, this plugin shouldn't be used with mcMMO at the moment, a few of the powers can quickly advance a players level by over 100 in a matter of minutes.
A suggestion/request: the neutralizers are great but do you think you could add an option to use worldguard and make it so we can neutralize entire regions?
Being able to set cooldowns on powers would be helpful to, as it is a lot of them are far to overpowered to allow normal players to use them
@Travistyse
That would be incredibly helpful! I'm glad you did eventually get it to work, but it sucks that there's a conflict with another plugin. Let me know which one caused the conflict and I'll work on a workaround in a future update. Last thing I want is for my plugin to limit what other plugins admins can use.
Powers like Acrobat and Haste use potion effects. While coding the first potion effect powers, there was some bug in Bukkit where potion effects wouldn't wear off, but would have to be forced off. I'm not sure if the issue was fixed on Bukkit's end but I never recoded the powers, might have something to do with why they aren't working.
ahh thanks for your help :) I got permissions set up and everything.. and I tested it with Acrobat and Haste but neither seem to work :l when in acrobat if I click with a feather it does cycle from jump powers 1 through 4 but nothing changes, and haste doesn't increase the digging speed.. Thinking it might have been a conflict between your plugin and another, I removed all the other plugins from the folder.. but that didn't change a thing :l sorry to be such a bother.. just want to get this working because it looks amazing haha
Edit: Got it working by getting rid of EVERY plugin other than permissions and yours. Going to slowly add them all back and tell you which ones caused the interference. :)
@Umonical
Done. I'm new, if you couldn't tell already...
I also have this: http://forums.bukkit.org/threads/fun-rpg-s86-powers-v3-0-2-give-players-unique-powers-1-2-5-r4-0.87685/
I have an idea...
post a forum -__-
Version 3.0.2 has been uploaded and will be available once approved.
- The permission node required to use powers was false by default, it's assumed this has been the culprit for why some people have not been able to get this to work. The node now defaults as true.
- Powers can now be assigned as types other than their default type using the command "/powers set [player] [power] [type]", for example: "/powers set sirrus86 acrobat defense" will set Acrobat as a defensive power rather than a passive one. The power's behavior will remain unchanged. Keep in mind this may create conflicts depending on what powers you mix together.
@Travistyse
To set up permissions you're first going to need a permissions plugin. The plugin I've tested this with is PermissionsBukkit. PermissionsEx and bPermissions should also work fine, though I'm not as experienced with them. Once you've done this you can assign permissions from the server console.
For PermissionsBukkit, a command to allow your powers to work would be "/perm player setperm Travistyse s86powers.enable true" (assuming your IGN is Travistyse). If you have other people on your server and begin using groups in the permissions plugin, you can assign the permission to the entire group if you want: "/perm group setperm default s86powers.enable true", where default is the name of the group.
The reason the enable node defaults to false is to allow servers with multiple worlds to easily choose specific worlds to allow powers, or to pick certain players to allow powers. I may implement it to default to true if no permissions plugin is found, or just default to true in general.
Edit: You may want to wait and get v3.0.2, which has the permission set to true by default.
:3 I really like what you've done with this plugin, honestly this is incredible. But, I only just started modding my server and have NO idea how to set nodes and permissions.. and I've been trying to get your plugin to work :l
I've successfully set my passive to acrobat, and I've pasted s86powers.enable - Default: true Into the permissions file I found in the main folder (With plugins, world, RUN, Bukkit, ect. The main directory essentially) but it doesn't seem to have made a difference whatsover :l I've restarted the server and all that as well... Any help? Sorry to bother you but this is one of the few instances google hasn't solved my queries :O
@Faldonboy
Currently powers can be toggled off either by having the player go into creative mode, setting the s86powers.enable permission to false, or by using a neutralizer (which I totally forgot to explain in the description, my bad! I'll add info on that later today). As it's coded right now, if you carefully edited the config.yml file, you can actually assign powers of one type as another and it'll still work, for example Acrobat, which is passive, can be assigned as someone's offense. This still limits players to three powers though, but I can allow admins to override this in the next update.
@uuuu5
I compiled this using Java 1.6. I tested it with Java 7 64-bit, and it's running on a server using Java 6 32-bit. So long as you have Java 6+ you should be fine.
@sirrus86
Which version of Java? Or does it matter...
A command that toggles whether or not a players powers will be triggered would be nice, having some of the passives activated all the time can become rather annoying.
A way for ops or someone with the correct permission to bypass the one power per type rule would be nice too.
Other then those two things I have no complaints and am loving this plugin so far.
@uuuu5
Well, apparently a Bukkit moderator needs to look over any uploaded plugins, and they never gave me any ETA... It's up now though.
@sirrus86
Looks awesome... Can't wait XD
How long (approx) until the download's available?