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 19, 2012Also, how do I get Decoy to work properly?
-
View User Profile
-
Send Message
Posted Nov 19, 2012Hello, I've used your plugin on my server for quite some time now and some of my members wanted me to suggest some powers:
Soul Tether Bind your soul to another player. If you die, that player dies too (lighting, fireball, explosion, or etc). creator: boombabux
Mind Control Looking at someone and holding down shift allows you to control them via looking in any direction.. Example: I look at a player and hold shift, then look to might right then up in the air. In turn, the player moves to the right then is suspended in air. creator: DuffstersATL
Cake Party Having cake in your inventory or placed nearby will result in a speed increase as well as a strength boost. creator: dv297
Impersonate Right clicking any mob or player with a poison potato will disguise you as that player or mob for a set period of time. creator: Sparkles0826
Blindness Right clicking on a player with gunpowder will give them the blindness potion effect for 60 seconds. creator: Mel_B13
-
View User Profile
-
Send Message
Posted Nov 19, 2012@n33dy1
Yes, powers can be completely negated by deleting them.
Using a program like WinRar, you can extract the classes out of the power pack. Just put all the classes in the powers folder, then delete whichever ones you don't want running. Note you're not going to want both the pack.rar and the classes both present, as it'll lead to powers being loaded twice.
I don't know with much certainty which resource it would save more (it would be both), but as with any situation, the less you've got running the better.
-
View User Profile
-
Send Message
Posted Nov 18, 2012@sirrus86
Hey, that's a very good point you made! If each power is like a plugin of it's own, if we disable the powers we never use like the ones I don't let anyone get, would that reduce resource usage as if I had just gotten rid of a plugin? I hope your recoding of the plugin works like that. Also, if it does, what will it reduce more? CPU or RAM?
-
View User Profile
-
Send Message
Posted Nov 18, 2012@convictedsaint
Instability is anticipated. For one, this is an alpha build for a reason: it works, but it probably doesn't work well. I've already identified a few possible memory issues and have addressed them for v4.0.0-Beta. Second, my plugin by nature is a lot more resource intensive than most plugins. Each power could be a plugin on its own, so having 80 run at a time all under the same name makes my plugin look like it's eating memory and bandwidth when really there's just a lot going on.
I wasn't aware a tool like that existed though, I'll see about making use of it in the future to improve the plugin.
-
View User Profile
-
Send Message
Posted Nov 18, 2012The 4.0.0 version of this plugin is rather unstable on CB1.4.4 dev, seems to be the most unstable plugin out of the other 50 that I have, even right after loading it :/
http://i1128.photobucket.com/albums/m498/gtafighter/s86.png
There is a graph I took based on a 500-tick timeframe using NoLagg examiner.
-
View User Profile
-
Send Message
Posted Nov 18, 2012@n33dy1
...I totally forgot not all servers use permissions plugins.
You got me. I'll see about putting override back in.
-
View User Profile
-
Send Message
Posted Nov 16, 2012@sirrus86
Okay so since I use the default permissions.yml that comes with Bukkit, should I add mine in like this? http://pastebin.com/raw.php?i=4JBEpny2
And if that's correct, what about case-sensitivity? Are the permissions for the powers all lowercase? Or is it like s86powers.use.Aquaphile: true where you put the "Tag" as shown on http://dev.bukkit.org/server-mods/s86-powers/pages/powers-db/ ?
EDIT: Giving them permissions to all the powers doesn't give them all the powers too, does it? It just makes it so their new powers won't cancel each other out? Also, is there a s86powers.use.all: true permission so I don't have to specify each one?
-
View User Profile
-
Send Message
Posted Nov 16, 2012@n33dy1
Aquaphile - Alright, I'll see about making the speed boost seperate from squid form... I meshed em together because squid form was going to be a shortcut to determining if the player was in water.
Stacking - I think you're misunderstanding what I meant... When I first put the plugin onto BukkitDev, one of the first requests was for allowing more than three powers. For this I added overrides. Later it was requested that I add permission-based powers. It turned out permission-based powers accomplished both requests (players can be given an unlimited amount of powers using permissions). Version 4.0 is the first to require users to start fresh with their config files, so I took the opportunity to remove overrides.
If you previously used a command to assign powers to players (like /powers player [name] [power] -o), all you'd need to do is change the command to /perm player setperm [name] s86powers.use.[power] true or whatever the correct syntax is for your permissions plugin. It won't show up in the database, but the power will work nontheless. There isn't a permission that allows stacking or overrides.
-
View User Profile
-
Send Message
Posted Nov 16, 2012@sirrus86
Aquaphile - Please make it so the speed boost doesn't require squid form. I was thinking the squid form would just be something optional. Not sure how many people want to PvP as a squid... they might want to afk as a squid, or use it as a disguise, but having to be one to go fast in the water again? :(
Stacking - There are some users on my server that buy multiple powers. Like... 10 or so. I can only assign them as different types so-many ways, can't I? I really liked the way the override worked, or if you could just remove the limitations altogether that would be nice. You said override was obsolete. Do we even really need the permissions for the powers? I mean, an op has to give them out anyway, right? I'm op, so I should have had all the permissions, but the two offensive powers still cancelled each other out for me.
EDIT: All these bugs aren't really a bad thing. The fact you got all the powers back into the newly coded plugin finally is good news. Now you just have to fix a crapton of bugs for each power and when that's finished it should be better than before. Next step? New powers again hopefully! :D
-
View User Profile
-
Send Message
Posted Nov 15, 2012@n33dy1
Decoy - From the code there's no reason it shouldn't work on bats... Maybe because they're a unique entity type. Ender dragons aren't coded to not work, but I know for a fact they're handled a little differently.
Feather Fall - The feathers used to control the knockback of shockwave, I recoded it so when the user lands and takes damage (which they can only do while holding sneak) it applies velocity to all nearby entities. I just tested and confirmed that this is not working. I'll get on it boss.
Reflection - This power is hit and miss, some arrows will damage them but most won't. I have no idea why this is.
Vampirism - The transformation is a superpower, so you must be at least level 30 (by default) to use it. I just confirmed the transformation does work, but it never ends... So yeah that needs a fix.
Pig Fever - Since right-clicking edible items makes you eat them, I coded it so if an item is edible it has to be triggered via left-click, try that.
Creeper Blood - All I can think is you might've typed the command wrong the first time? Also to use a power you either have to assign it via command or permission, if you do neither it won't work.
Aquaphile - The speed boost is currently setup to only work in squid form, just tested and it does work (a little too well, just launched myself to my death). Also squid form apparently isn't ending if you launch yourself onto land, so I'll need to fix that. The healing and infinite air part was working as well.
Bloodbend - This isn't working because I botched some of the code. Upon correcting it I found it possible to bloodbend yourself, so that's two problems fixed!
Stacking - Since Aero Blade and Bloodbend are both offensive powers, each will cancel the other if you assign them that way. Either assign one as a different type or give yourself the permission.
-
View User Profile
-
Send Message
Posted Nov 15, 2012@sirrus86
Decoy is amazing aside from that packet issue. You have no idea how happy I was to see a Wither flying around attacking people with my user skin on. Really epic. Couldn't do it to the Enderdragon or Bats though.
Feather Fall seemed to be working flawlessly, however it wouldn't do shockwave. I read "No longer shoots feathers everywhere when using the shockwave ability." but I assumed shockwave was supposed to still work. I had this guy standing still for me and I went into the sky numerous times trying to use it from various heights but no use.
Reflection sends arrows back to the shooter, but it does not damage them! :(
Vamprism would not change me into a bat. I tried with Rose Red, Red Wool, Redstone, and even Nether Wart to see if maybe you confused dye or described it wrong but it wouldn't change me into a bat.
Pig Fever did not change me into a piggy. I right-clicked with a raw and with a cooked porkchop.
Aero Blade is still dropping free feathers just like how Eldruin is giving free glowstone.
I was going to test Creeper Blood with all 4 leaf block types but it wasn't working at first. It didn't work until I did /powers player n33dy1 creeperblood again, then I was able to make the creepers. Creeper Blood works like a charm, however because I had to give myself the power again, I'm not entirely sure these powers are stacking. I'm op, so I shouldn't need all the permissions for all the powers, right?
Aquaphile turned into a squid and back just fine, however blocking with a sword no longer propelled me through the water! My users would cry. We love using it to jump over bridges and do water PvP battles and stuff... ALSO, it doesn't heal you in water and you can't breathe under water anymore!
Bloodbend doesn't work at all. No animation. No little hover. No healing. No harming.
AHA!!! I did /powers player n33dy1 bloodbend and then tried to use Aero Blade and it didn't work, so I did /powers player n33dy1 aeroblade and it did work, then I gave myself Bloodbend again and Aero Blade wouldn't work anymore. This means it's not stacking.
Going to stop testing for now... let you catch up some.
-
View User Profile
-
Send Message
Posted Nov 15, 2012@n33dy1
That's actually one of the hurdles I'm trying to get over: if a player loses sight of an entity using a packet (for example decoys and diversions), when they see the entity again the packet isn't seen anymore.
Fortunately packets are all handled in one class in v4.0 so once I have a fix it'll fix it for all current and future packet-using powers.
Edit: "So do I just give everyone permissions to all the powers and then I no longer have to add the override when I give them more than one of the same type of power?" Essentially yes. You can still assign powers as different types, for example /powers player [name] [power] passive will always assign a power as passive.
-
View User Profile
-
Send Message
Posted Nov 15, 2012@sirrus86
It's cool. I'll just keep posting issues I find here lol
When a player dies, Decoy no longer shows player skins on entities that should show as clones. I spawned some pigmen and used decoy on them and some guy killed me and I came back and they looked like pigmen and I asked if they still looked like clones to him and he said yes, so it's only if the person dies.
I'm testing these on another server with a friend.
EDIT: So do I just give everyone permissions to all the powers and then I no longer have to add the override when I give them more than one of the same type of power?
-
View User Profile
-
Send Message
Posted Nov 15, 2012@n33dy1
Overrides have become somewhat obsolete since permission-based power assignments were added.
I'll have to test Aero Blade. I'm not gonna lie, I didn't test a lot of these powers...
Edit: Just tested Aero Blade. You have to activate it first with the item (feather by default). And holy crap is it overpowered.
-
View User Profile
-
Send Message
Posted Nov 15, 2012@sirrus86
What happened to the /powers player n33dy1 -o?
I can't do override anymore? :( Or is this obsolete now? :)
EDIT: Also... Aero Blade does nothing?
EDIT 2: Eldruin also doesn't always go straight. It sometimes went to the left for me. Like it was curving.
-
View User Profile
-
Send Message
Posted Nov 15, 2012@n33dy1
Fortunately as this is only an alpha build my plan is to tweak stuff based on feedback. El'druin uses a different code altogether from what it used before. The code is vastly more efficient but the effect is... well, you saw it. I'll see what I can do to fix it.
An option to allow Thunder Bow's superpower can be added.
-
View User Profile
-
Send Message
Posted Nov 15, 2012@sirrus86
Well, I tried out the 4.0.0-ALPHA and I gotta' say I don't like what's happened to Eldruin. It isn't as fluid and straight. It seems to bundle up on itself in your face and not go any further some times. It is also dropping random glowstone sometimes. I miss the old coding for it, minus the destroying stuff part. It would have been perfect like that, to me. Think you could maybe add a useOldCodeMinusDestroyingStuff: false option so I could set mine to true? I don't mind the cooldown option and stuff being in the old code version (if you re-added it). I'll just set mine to 1s.
Thunderbow seems like a lot less of a disturbance now. I like that it basically only strikes where it lands. Could we get an option for the superpower part back though?
-
View User Profile
-
Send Message
Posted Nov 14, 2012@sirrus86
Oh, I will try and read/learn some more things and see if i could get something to work and if not i will ask you a little:)
-
View User Profile
-
Send Message
Posted Nov 13, 2012@n33dy1
Fake Weapons - I'll see what I can do. Remind me if it isn't done by v4.0.
Tumble - Aah I see where you're going... Again, the Acrobat option may not be done for v4.0 but if not just bug me and I'll get it in there.
Bug - Yeah that shriek occurs no matter what you right-click I think. I removed it altogether for v4.0.
Glad you think I'm a good dev, even though it's taken over TWO months for me to update *hangs head in shame*. I grinded out another ten power rewrites tonight though, and with the next few days off I hope to get this finally wrapped up soon.