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 Oct 14, 2012@fletch_to_99
PM'd a link to ya.
-
View User Profile
-
Send Message
Posted Oct 14, 2012@sirrus86
Can you send me a zip folder containing a few powers so I can test if I fixed the reloading? Thanks :)
-
View User Profile
-
Send Message
Posted Oct 13, 2012@aaomidi
To be honest I generally prefer to work alone so as to learn from my mistakes, which I think ultimately leads to me becoming a better coder in the end. My biggest hurdle with v4.0 was dynamic power loading, which fletch was kind enough to help me with (read: let me copy).
Once v4.0 is finished however it will be possible for other developers and coders to create their own power packs that S86 Powers can essentially import and use. This will lighten the load on me to fulfill the 100+ requests, which in itself would be a HUGE contribution.
Aside from that of course I do like donations, but it's in no way a requirement, and to be honest it wouldn't speed up the release of v4.0 so this would be completely to your discretion.
If neither of these are what you had in mind, you can still contribute when v4.0 Alpha comes out. I'll need people testing it and providing feedback to help iron out any issues.
@fletch_to_99
Just pushed what I've got to GitHub, the powers themselves are in a different package that I'll work on getting on there later. It's still a mess but so far it's working great. The only main obstacles I have with the power loading are that 1) The power reload method simply deactivates a given power then can't find it again to reactivate it, and 2) Doing a server reload (/reload command) after altering any powers causes all powers to create errors and not load.
-
View User Profile
-
Send Message
Posted Oct 12, 2012Hey sirrus commit the latest to github and I'll see if I can find anything else I can optimize. I've got all weekend free, the first in a month and a half :)
Also how's the new power loading system I made working out, run into any more problems? Or need anything added to it?
-
View User Profile
-
Send Message
Posted Oct 12, 2012@sirrus86
I would also want to know, if you are looking for any contributors to this plugin?
-
View User Profile
-
Send Message
Posted Oct 12, 2012@sirrus86
Yeah I understand, I wouldn't have thought about any other way to make this plugin, good job man. You are pretty active which is epic. Thanks and keep up the great work ;)
-
View User Profile
-
Send Message
Posted Oct 12, 2012@aaomidi
My plugin taps into far more events than most do simply because of what the plugin does.
For every power several events are tracked. When these tracked events are executed, a check is done to see if a player using a given power triggered it. If so, it alters the behavior. Because this modification is on a case-by-case basis, the amount of times the event is checked is exponentially higher than for most plugins.
For example, let's say we have Plugin A and Plugin B.
Plugin A checks for five events, and when they're executed changes their behavior. This results in five events being tracked total, regardless of who triggered it. Behavior changes can be static, and therefore limited.
Plugin B consists of what you could consider eighty sub-plugins, each of which track the same five events Plugin A tracks but changes their behavior depending on which sub-plugin a given player has assigned to them. Let's say a given player can have up to three of these eighty sub-plugins assigned to them. That alone gives each player one of 492,960 different sub-plugin assignment sets, so changing behavior must be dynamic and therefore much more complex. Plugin B would therefore register 400 different events (80 sub-plugins, 5 events each), to account for all 492,960 combinations.
S86 Powers is more or less a core plugin packed with eighty sub-plugins. Divide the number of events by the number of powers and it provides a more accurate representation of what each power is actually doing. In your case, on average each power accounts for around 2.3 seperate events... less than most plugins.
In any case you can reduce this number by disabling powers that aren't being used. Version 4.0 will also allow you to delete them altogether.
-
View User Profile
-
Send Message
Posted Oct 12, 2012@sirrus86
Have you seen the profiling of this plugin? http://pastebin.com/3CRXxg9w Gosh thats soooo high, compared to other plugins. I think the method youve used for coding this is that it reads all the players?
-
View User Profile
-
Send Message
Posted Oct 12, 2012@n33dy1
I like your ideas! Added to the list.
@aadd2012
Looks like Holy Shield's stuck in a loop. I'm in the middle of rebuilding all the powers from scratch, if I remember right I came across this and fixed it. Should be fixed for v4.0. In the meantime you can either disable Holy Shield or do a reload if this happens again.
-
View User Profile
-
Send Message
Posted Oct 12, 2012Hi~
Holy Shield bug .....
S86 Powers 3.2.6 version
-
View User Profile
-
Send Message
Posted Oct 8, 2012I thought of new powers:
RapidFire - Drawback speed of your bows is removed.
Multishot - You fire one arrow normally when under lvl 10, two arrows when under lvl 20, and three arrows when lvl 30+. If you could make the arrows be like a right after each other that'd look cool. Like "pewpewpew" instead of just "pew" or even "pew pew pew" which would have a delay. Like a machine gun, not like a shotgun, and not like a revolver.
-
View User Profile
-
Send Message
Posted Oct 8, 2012@n33dy1
Once I finish rewriting the powers I'll be releasing an Alpha build for testing.
I can't give an exact ETA because I don't have enough free time to just burn right through it. I am however commiting a majority of my free time to working on it.
-
View User Profile
-
Send Message
Posted Oct 8, 2012ETA other than soon, shortly, or anything else that isn't a specified date in the near future? :)
-
View User Profile
-
Send Message
Posted Oct 8, 2012@sirrus86
I think temporary perms would be a nice idea ;)
-
View User Profile
-
Send Message
Posted Oct 8, 2012@aaomidi
Most likely, as it negates fall damage.
S86 Powers inherently doesn't work well with AntiCheat, NoCheat, and similar plugins because its main goal is to alter some base mechanics in the game, which cheat plugins are designed to detect and "fix". It's most noticeable with powers like El'druin, where NoCheat prevents the power from damaging anything because the damage occurs too far away from the user.
If it becomes too common or severe an issue I can bring back bypass codes that basically give a user temporary permission to "cheat" while using a power.
-
View User Profile
-
Send Message
Posted Oct 7, 2012@sirrus86
Does the acrobat cause NC+ detect hacks?
-
View User Profile
-
Send Message
Posted Oct 7, 2012@Si7VdeR
A lot of people have requested themed powers. Once v4.0 is done I'm gonna try to mix some in with the donator requests.
@RandomSomething98
Nope, never again. Just kidding, it's been a low priority since I'm not able to work on powers until v4.0 is finished. I'll start updating it again once it's done.
@Humanfiend
MobTamer - Yeah, I believe MobTamer doesn't check to make sure you're barehanded when attempting to ride a pet mob. This will be addressed in v4.0; items will be assignable to practically all powers that require interaction. MobCatcher is probably overriding the entity-click event at the last second, hence why it looks like you're gonna ride it then it spawns a new mob instead.
SoulShatter - Yes, this is the exploit I tried to prevent before by making all changed blocks unbreakable until the effect finished, but this caused more issues than it fixed. What's supposed to happen is when you break the gold block, it'll drop glowstone (which is what it was originally). I'll take a look at it.
SpawnCrafter - Looks like the spawner spawned a cow in the pic? If so then it's working; the spawner block just doesn't update sometimes until it's reloaded.
SpawnBlaze - I'll have this fixed for v4.0.
Thunderbow - At level 30+ Thunderbow will continuously create lightning strikes when fired (you're level 116 in the pic). Below level 30 it only strikes when it hits something.
-
View User Profile
-
Send Message
Posted Oct 7, 2012Bit of testing on our end (trying not to completly destroy our server :P) Mob catcher mixed with mobtamer: right clicking on a spider wont let you ride it bit will drag your screen like you are about to ride it for a split second, then spawns another spider. http://imgur.com/LVZsm,HrBhy (click second immage at the top)
the power that absorbs all light: can spawn and obtain gold blocks easily. http://imgur.com/a/nST78 (the redstone torches were regular torches)
spawn crafter just diddnt work :P http://imgur.com/SjCr5
spawn blaze/wolf power has no limit per player. http://imgur.com/EA9Wr
Thunderbow shot up creates a trail of lightning wherever its shot (dont think this is intended...thought it was 1 strike where it landed) http://imgur.com/kwEDM (arrow in the air)
-
View User Profile
-
Send Message
Posted Oct 6, 2012Will you ever update the list?
-
View User Profile
-
Send Message
Posted Oct 6, 2012Awesome man I can't wait for the next update.
Shame that it is gonna take some time because I promised my Server for some new features. I will just keep an eye open see when it's updated.
I also had some suggestion maybe it would be stupid for you but I was going to create Players with passives that work together for example a Lightning God, or a Fire Elemental. So I guess I request more Themed powers or powers that just fit together. (You already have lots because I made a list already but more themed is always fun)
Thanks a lot for this plugin it is too good to be true.