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!
-
View User Profile
-
Send Message
Posted Nov 26, 2012Not sure if you have answered this already but there seems to be a problem with the config.. I edited the config files for a few powers and started up the server; everything seemed fine until I tried to use commands.. It would not let me assign any powers to any player regardless of whether the power's config had been edited.. I tried -o -u and even -r as well but no commands would work, they would just say internal error.. I fixed this by deleting the powers folder and uploading it again.. How can I edit the configs without this happening?
-
View User Profile
-
Send Message
Posted Nov 26, 2012@LazarusVec
You might want to make sure that the powers are set to true in the powers.yml and currently there is a bug that'll be fixed in the next release where if the user has capital letters in their name, the name needs to have capital letters in the users.yml also. For some reason, there is a check somewhere causing it to be case-sensitive.
See my post here and here was sirrus86's response.
-
View User Profile
-
Send Message
Posted Nov 26, 2012@LazarusVec
Send me whatever error reports it gave you. Also you shouldn't have to downgrade to 1.4.2, it works just the same on 1.4.5.
-
View User Profile
-
Send Message
Posted Nov 26, 2012For me none of the powes are working my friends and I downgraded our minecrafts to 1.4.2 and got the right version of craftbukkit but for some reason although it says we have the powers they do not work and when you try to toggle them it says there is an internal error and the power isnt loaded :( help would be great. Thanks
-
View User Profile
-
Send Message
Posted Nov 25, 2012@n33dy1
The toggling of AeroBlade was added before power toggling was added, I may as well remove it entirely.
*takes your feathers*What feathers?Yeah Thunderbow's not supposed to cause lightning after it hits anything. Looks to me like it fell into the void or an unloaded chunk. I'll see about adding a max lifespan for it.
-
View User Profile
-
Send Message
Posted Nov 25, 2012Please remove the feather-toggling for Aero Blade. Having Acrobat + Aero Blade = annoying. I know I can toggle it with a different item if I choose to set it to something other than FEATHER in the config, but we can toggle with commands now too. Or just add a disable-toggle-item: true option in the config, please. Thanks. :)
EDIT: I'm still getting some free feathers from it too btw.
EDIT 2: I went into the Nether and heard a lot of annoying lightning so I did /j to jump to the top of it and teleported the only one on my server who had Thunderbow to me and he said he was the cause of this. http://i.imgur.com/dLl4B.png Apparently it's been like that for days but nobody ever let me know... Anyway, I reset my nether to fix it. Not sure if it was Thunderbow, but he says he did it with it.
-
View User Profile
-
Send Message
Posted Nov 25, 2012@n33dy1
I'm trying to prevent requiring users to use commands to activate powers, but other than that I love it.
-
View User Profile
-
Send Message
Posted Nov 25, 2012Got an idea for a new power, inspired by Naruto's substitution jutsu.
Substitution: When the player types /substitution they become invisible and in their place is this guy http://i.imgur.com/rSI81.png If the wood is destroyed, the real player becomes visible again. If the real player attacks or is attacked, they become visible again. Once the player becomes visible, the wood, 2 levers, and head are removed. Basically, you force the other players to find the real guy or attack the clone. It'd be fun, funny, and impressive.
-
View User Profile
-
Send Message
Posted Nov 25, 2012@n33dy1
In the first few versions of this plugin, powers were made specifically for players on the server I frequent. Most players were happy with powers I'd made, but some requested different ones to replace ones I'd already made for them. Unfortunately I didn't think to set them aside, so I wound up deleting some functional powers.
Other than that no, once I start developing a power I either finish it or scrap it before moving on.
The current build of v4.0 I'm working on has no new powers yet, just fixes. My plan is to rebuild the packet system and add a few powers, including the first elite power.
-
View User Profile
-
Send Message
Posted Nov 25, 2012@sirrus86
Ender Spray - Oh yeah. We'll come up with something. Maybe crouching with it in hand instead of right-clicking. Or maybe left-clicking with one instead.
Godspeed - Since some people might like it, I guess just make that configurable.
EDIT: Do you have a version of the plugin with like... a bunch of unfinished powers or anything? I was just curious if you ever tried starting any powers in your free time or something.
-
View User Profile
-
Send Message
Posted Nov 25, 2012@n33dy1
Burning Hands - I can't force the player's arm to extend. So holding right-click makes you constantly burn what you touch? I'll see what I can do.
Laser - You mean the nether star item? Hah it'd probably be wicked laggy but I'm sure I could do it.
Absorb - Doable, see what I can do.
Ender Spray - Players can't block with ender pearls (unless you meant blocking while pearls are in their inventory). Otherwise it's doable.
Shadow Aura - Sounds good.
Shuriken - Sure thing.
Godspeed - I might be able to turn off the effect when the player stands still, but I can't lower the intensity (this is a common complaint from other developers as well).
-
View User Profile
-
Send Message
Posted Nov 24, 2012Thanks for the tip about putting the pumpkin on my head. I thought of another power idea. What about Burning Hands? Instead of simply igniting a target when you right-click them, you right-click while barehanded (like with Bloodbend but hey, it can be toggled off now) and when you do this, it produces a flame on your right hand. You can follow players around holding down right-click (maybe it extends your arm? don't want it to slow you down like blocking though) and you can chase people around trying to keep your hand on them so they take fire damage. Causing the player to ignite from the fire and keep burning even when not being touched could be something configurable.
And... we need a laser, man. But what's small and could resemble a laser, you ask?
A Nether Star. Here's the power. Laser: Holding right-click with a Nether Star in your hand causes a laser to extend 10 blocks (configurable) to extend from your hand, doing 1 hearts damage per second the laser is on them. You know how you have Eldruin go out like a beam and break from behind? Make this be a trail of Nether Stars packed closely together like a beam, but they don't break. When you move the lazer across an object (such as a wall or a player), the tip of the laser is trimmed off (or it could go through up to you if it's easier to code) and damage starts ticking on the player, if it's a player. It won't damage blocks of any type, just players and mobs. When you let go of right-click, the laser disappears and has a 3 second (configurable) cooldown.
Here's another one! Absorb: While crouching and blocking with a Zombie Head (configurable), all players/mobs within 5 blocks (configurable) of you take 1 heart damage per 1 second (configurable) while you heal by 1 heart per number of players within the 5 blocks of you, per second. Whatever the configured rates are. But, this needs an animation, so I was thinking it could make Eyes of Ender draw from the mobs/players into the player using Absorb. It would look like it was sucking stuff into his body. The drawbacks of this ability would be you're moving slow and are unable to do other attacks due to having to block.
EDIT: The Burning Hands could maybe even have an effect like the feathers on Feather Fall while you are falling (not the shockwave stuff), but only from your hand?
And, Ender Spray: Do a spray of Ender Pearls (you don't have to have more than one) up to 3 blocks in front of you (configurable) while blocking with an Ender Pearl. Each second a target is caught in the spray, they take 1 hearts poison damage.
Just trying to think up some cool animation-based powers you might be able to do. We all know those are the most impressive. :)
We can't forget Shadow Aura: Smoke particles puff out from your feet causing melee attackers to miss you 10% (configurable) of the time. While crouching, the chance to miss becomes 20% (configurable).
Pretty sure you can throw in Shuriken with whatever your next update is at least. That's already coded, just replace Cookies with Flint. I hope the damage is configurable.
Oh, and can you make the fire on Godspeed less intense or off when the player isn't moving? Too much fire when they just stand there.
-
View User Profile
-
Send Message
Posted Nov 24, 2012@sirrus86
I actually tried both of those, too. I disabled Vampirism in the powers.yml to see if that'd fix it but nope, not even that did the trick! I even removed Vampirism off my name in the users.yml and it still won't go away! Jeez dude... I did a /plugman reload S86 Powers and a /reload after that too. It doesn't want to stop. I'm a vampire FIVE-ever now.... (dat mean moar dan 4evr)
fix if u crey everytim
-
View User Profile
-
Send Message
Posted Nov 24, 2012@n33dy1
Reload the power with /powers power vampirism -r. The reason you're still burning is because I forgot to include a check to see if the player still has Vampirism before burning them in sunlight. If that doesn't work just do a /reload.
-
View User Profile
-
Send Message
Posted Nov 24, 2012@sirrus86
Oh, that's what you were talking about. Also, I can't remove Vampirism from myself. I do /powers player n33dy1 vampirism -u and it says it's removed but the sun still hurts me. I don't have any other powers that would cause this. I have to use Boiling Blood to not die, or go into Creative mode...
-
View User Profile
-
Send Message
Posted Nov 24, 2012@n33dy1
From previous post:
"I tested the toggling system with the PermissionsBukkit plugin, I know for a fact that PermissionsBukkit, PermissionsEx, and bPermissions consider all unset permissions as true. As you're using the default Bukkit permissions, that may be the exception. My only option may be to add "s86powers.toggle.Acrobat: true" to the plugin.yml file for EVERY power I've created, and this wouldn't work for powers I didn't create. Again I'll figure it out."
I already fixed it for release though, there's a way to dynamically register permissions.
-
View User Profile
-
Send Message
Posted Nov 24, 2012@sirrus86
Cool and you never replied to it in your post but are you gonna' make it so when I give people powers they don't have to toggle it on? (maybe an auto-toggled-on config option?) I tell them to toggle it on and they go "It's not working" and I'm like "Yeah read what I said noob" and they're like "Oh" tl;dr: my players don't read.
-
View User Profile
-
Send Message
Posted Nov 24, 2012@n33dy1
The error in the pastebin was triggered by the method getNearbyPlayers(entity), which sifts through all entities near the original entity and sets aside any player entities it finds. The only way this can cause an NPE is if the original entity itself does not exist. I've just now added several checks to ensure the same error doesn't occur in the future.
NPEs don't normally cause the entire server to crash though, just the class it occurred in. I plan to completely rework packets to a setup similar to what MobDisguise and iDisguise use since they seem to handle them much better than my setup does.
And yeah I can add an option to disable squid form.
-
View User Profile
-
Send Message
Posted Nov 24, 2012Is there any reason turning into a squid might cause the server to crash? Perhaps being a squid and flying? It seems like everytime someone on my server does it, we get a "Server closed" message. I checked my server.log and found this http://pastebin.com/raw.php?i=Z7i4kFa5
Also, I don't want players to be able to turn into a squid and harass other players anonymously. Could you make it so in the config for Aquaphile I can disable the ability to turn into a squid?
-
View User Profile
-
Send Message
Posted Nov 23, 2012@sirrus86
Thanks guy