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 Jun 6, 2013@sirrus86
Thanks I guess I'll just have to wait.
-
View User Profile
-
Send Message
Posted Jun 6, 20132 issues with 2 powers that were alerted to me:
Jackpot - can sit there and mine a ore that is on protected land over and over and over and it will spawn diamond with no end due to the ore is legit but the land protection just spawns the ore back since its protected (im using residence plugin)
Diversion (On protected land with no PVP if punched it spawns your diversion and he just stands there and doesnt do anything, he never dissapears (Upon restart your "ghost" of you are gone) (protections: residence)
-
View User Profile
-
Send Message
Posted Jun 5, 2013@sirrus86
ill convert back to R0.1 and see if it does it again. I'll mess around with it and see what i can find out, but indeed the problem is still somewhere i think.
-
View User Profile
-
Send Message
Posted Jun 5, 2013Is there any chance that this plugin will work with MCPCPlus? It would be cool to add it to modded servers
-
View User Profile
-
Send Message
Posted Jun 5, 2013@kodama6
That's good to hear!
@jazzman170
Ah I think I know what part of the problem is...
Since v4.3.1-DEV I've added a custom plugin manager and task scheduler. The reason for this was so I could control how the plugin handled errors should any occur (email me the error, block the message to the console, etc). To test my plugin NoLagg needed access to a method that the custom plugin manager blocks, hence this line:
[SEVERE] Could not pass event BlockPhysicsEvent to S86 Powers v4.3.1-DEV java.lang.IllegalStateException: This method should never be called!
This is an issue in and of itself that I could see about rectifying in a future version. What I find interesting is that you were able to reduce the TPS issue by upgrading Bukkit to a DEV build (usually the opposite is expected). This version was built on and tested against Bukkit build 2771, which is 1.5.2-R0.1 BETA, so there's still something weird going on...
-
View User Profile
-
Send Message
Posted Jun 5, 2013@sirrus86
Ok so upon updating my craftbukkit from R0.1 to R0.2 which i needed to have to even run nolagg, it seems to not eat up TPS anymore, however once i run the examine nolagg feature, powers spams a LOT of this in console and it just keeps spamming with no end. Here is the error it spams and here is the nolagg exam file.
EXAM FILE: http://www1.datafilehost.com/d/e5a4916d
2013-06-05 01:25:26 [SEVERE] Could not pass event BlockPhysicsEvent to S86 Powers v4.3.1-DEV java.lang.IllegalStateException: This method should never be called! at me.sirrus86.s86powers.tools.utils.LoggedPluginManager$1.execute(LoggedPluginManager.java:82) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:35) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.v1_5_R3.World.g(World.java:494) at net.minecraft.server.v1_5_R3.World.applyPhysics(World.java:454) at net.minecraft.server.v1_5_R3.World.update(World.java:421) at net.minecraft.server.v1_5_R3.World.setTypeIdAndData(World.java:313) at org.bukkit.craftbukkit.v1_5_R3.block.CraftBlock.setTypeId(CraftBlock.java:108) at org.bukkit.craftbukkit.v1_5_R3.block.CraftBlock.setTypeId(CraftBlock.java:113) at org.bukkit.craftbukkit.v1_5_R3.block.CraftBlockState.update(CraftBlockState.java:124) at org.bukkit.craftbukkit.v1_5_R3.block.CraftBlockState.update(CraftBlockState.java:116) at net.minecraft.server.v1_5_R3.BlockGrass.a(BlockGrass.java:51) at net.minecraft.server.v1_5_R3.WorldServer.g(WorldServer.java:404) at net.minecraft.server.v1_5_R3.WorldServer.doTick(WorldServer.java:202) at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:555) at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226) at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477) at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410) at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
-
View User Profile
-
Send Message
Posted Jun 4, 2013I used a fishing plugin to alter the casting speed of the fishingpole, it got the result I wanted and didn't interfere with your plugin at all. Woot
-
View User Profile
-
Send Message
Posted Jun 4, 2013@TheSkinsAreComing
Sounds like there are some kind of limitations preventing the plugin from finding powers.
To find powers it literally skims through all class files within the plugins and plugins/S86 Powers/powers directories and adds any that extend the power class. Since the included files are internal, it sounds like it's either not being given a chance to check or it's producing an error and crashing.
When v4.3.1 comes out delete the config.yml file before running it, should make error-detection better.
@kodama6
You can change the velocity of the hook but it can be a little unpredictable. HOWEVER it gives me a cool idea...
-
View User Profile
-
Send Message
Posted Jun 4, 2013GrapplingHook Superpower- increase the cast speed and distance of the line. I tried to find a plugin that did that on it's own, so idk if it's possible. But it would be cool if the hook actually shot out at greater velocity, so you could get away faster, instead of waiting for the damn thing to land.
-
View User Profile
-
Send Message
Posted Jun 4, 2013@TheSkinsAreComing
In addition when I try to see the list of powers it says 0 available.
-
View User Profile
-
Send Message
Posted Jun 4, 2013@DuffstersATL
The problem is I run a server on minecraft-servers.com and it for some reason will not work.
-
View User Profile
-
Send Message
Posted Jun 4, 2013@TheSkinsAreComing
You don't necessarily need to find them; the config is available after the server generates the folder upon startup. Just install the plugin and it should work fine. :)
-
View User Profile
-
Send Message
Posted Jun 4, 2013@TheSkinsAreComing
There are no power packs, yet. All the powers are already implemented into this plugin. He did that system to others could create powers, but no one had done that yet. All you need is this plugin.
-
View User Profile
-
Send Message
Posted Jun 4, 2013I have a problem sirrus, and I am hoping you can help. I run a dedicated server that is run by another website. I am trying to use your plugin but I can't seem to find the content/power packs. Where are they?
-
View User Profile
-
Send Message
Posted Jun 3, 2013@jazzman170
I left my test server running for about three hours (no reloads), occassionally logging in on two seperate accounts, changing/using powers, etc. but was unable to witness any TPS drop. I wouldn't consider this too reliable however since my test server uses minimal other plugins, only has one or two people on at a time, and dedicates 16GB to itself, so performance issues are few and far between anyway.
See if you can run a NoLagg report on it (I tried on my server, but the results weren't much higher than usual), that can help pinpoint where the TPS drop is coming from.
-
View User Profile
-
Send Message
Posted Jun 3, 2013@sirrus86
Unfortunately there are zero errors, server is fine for first 5-10 minutes, then it starts eating TPS and its prety much unstable from that point on. I smell a nasty bug polluting in the shadows D:
-
View User Profile
-
Send Message
Posted Jun 3, 2013@sirrus86
i know its a DEV for that reason, thats why im alerting you to the issue ^_^ i'll run a copy of my server and see whats going on in console
-
View User Profile
-
Send Message
Posted Jun 3, 2013@jazzman170
@ValeraSTK
Well, it is a DEV version for a reason :P
One of the main changes in v4.3.1 is that it now uses a custom PluginManager and a custom Scheduler. These were to allow custom behavior should an error occur within any power, including the option of emailing me the error and silencing it on the server's console. The default config, mistakingly, was set to disable emailing AND silence errors by default, which left server owners and myself in the dark should something go wrong.
Have a look at the version notes for info on which config options to change, either turn on the email feature (you'll need to enable downloading files too) or enable showing errors as you could be getting errors and not knowing it.
Other than that nothing was substantially changed from v4.3.0 that I remember...
-
View User Profile
-
Send Message
Posted Jun 3, 2013@jazzman170
I think I have the same issue, I spent this weekend to findout, whats wrong with my server TPS.
-
View User Profile
-
Send Message
Posted Jun 3, 2013Something is seriously wrong with the DEV powers plugin. I got it and after 10 minutes of being online something starts lagging the entire server very badly (TPS goes from 20.0 down to 18, 17, 16, 15, ect. all the way down to 1.9 before i restart it)
Longer server stays on without a restart worse it gets. I tested many different ways to see if something else was the cause, and nothing helped until i removed the DEV powers plugin. Upon removeing it servers has been running great at 20.0 TPS for however long its up.
I went back to S86Powers V4.3.0 and everything is fine again, TPS is still 20.0, so something is going horribly wrong with dev version ^_^
Was horrible timing for me for it to mess up cause i just paid for dedicated hosting and canceled with them because it was too laggy after so much time of serving being on, now i know it was just the DEV version of plugin haha, oh well my fault for not testing the plugin first.
EDIT: Possible it might be ram related, while i was hosted it was eating ram fairly quickly and i ran out of ram (4GB) when only 3-6 people online. Doesnt matter how many are on tho, it was still eating ram just as fast as only 1 or 2 people on.