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 Jan 23, 2013@sirrus86
Yeah im in 1.4.7
2013-01-23 23:21:31 [INFO] law4d96 issued server command: /p power 2013-01-23 23:21:31 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'p' in plugin S86 Powers v4.1.2 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186) at org.bukkit.craftbukkit.v1_4_6.CraftServer.dispatchCommand(CraftServer.java:514) at net.minecraft.server.v1_4_6.PlayerConnection.handleCommand(PlayerConnection.java:979) at net.minecraft.server.v1_4_6.PlayerConnection.chat(PlayerConnection.java:897) at net.minecraft.server.v1_4_6.PlayerConnection.a(PlayerConnection.java:852) at net.minecraft.server.v1_4_6.Packet3Chat.handle(Packet3Chat.java:44) at net.minecraft.server.v1_4_6.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.v1_4_6.PlayerConnection.d(PlayerConnection.java:112) at net.minecraft.server.v1_4_6.ServerConnection.b(SourceFile:39) at net.minecraft.server.v1_4_6.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:598) at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:224) at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:494) at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:427) at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.NullPointerException at me.sirrus86.s86powers.api.PowersAPI.getActivePowers(PowersAPI.java:35) at me.sirrus86.s86powers.commands.ComPower.<init>(ComPower.java:119) at me.sirrus86.s86powers.S86Powers.onCommand(S86Powers.java:100) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
-
View User Profile
-
Send Message
Posted Jan 23, 2013@sirrus86
Yap its fixed. I was an Idiot , just ignore it.
-
View User Profile
-
Send Message
Posted Jan 23, 2013@LazarusVec
By default you only need two of the required powers and be level 50 to use an elite power.
@steinm18
I'll see what I can do.
The error you're seeing could be from using v4.1.1 on a server running MC 1.4.7. Upgrade to v4.1.2 and let me know if that fixes it.
@TotalPotato
This might be a stupid question but is your server running MC 1.4.7? Version 4.1.2 will only work with MC 1.4.7. If so, please send me the error log when that error occurs.
-
View User Profile
-
Send Message
Posted Jan 23, 2013@TotalPotato
Same here , the Error is in that Pastie down there.
-
View User Profile
-
Send Message
Posted Jan 23, 2013@sirrus86
Ah thanks Edit: I updated to 4.1.2 but when ever i type a command for the plugin i keep getting the 'Internal Error Has Occurred' thing
-
View User Profile
-
Send Message
Posted Jan 23, 2013Oh Yeah. And that:
Pastie!
I get it when i try to do /powers Power
-
View User Profile
-
Send Message
Posted Jan 23, 2013Also could you make a Permission , which gives a Player a Random Power as soon as he gets it? So when People join my Server and are Registered (e.g. in the Right Perm Group) they get a Random Power and keep that till infinity.
-
View User Profile
-
Send Message
Posted Jan 23, 2013Hey! i just wanted check how the plugin was going and now its looking great. :) also i wanted to know do you need all of the powers to use the elite powers or just a few of them.
-
View User Profile
-
Send Message
Posted Jan 22, 2013@TotalPotato
The transformation via rotten flesh is a superpower, so it requires level 30. It also has to be night time, and will automatically deactivate at sunrise. Otherwise the transformation is automatic anytime there's a full moon.
-
View User Profile
-
Send Message
Posted Jan 22, 2013@sirrus86
Does it have any text to say that it has happened? When I left click with the rotten flesh nothing happens and it isnt consumed and no message appears.
-
View User Profile
-
Send Message
Posted Jan 21, 2013@TotalPotato
Should be... though it's hard for me to test as my test server doesn't have a public IP...
@uuuu5
/powers power.
-
View User Profile
-
Send Message
Posted Jan 21, 2013Sorry if this is a noob question, but is there a command that lists all the powers to choose from? I know there was one in the older versions, but I can't seem to find it in this one...
-
View User Profile
-
Send Message
Posted Jan 21, 2013@sirrus86 Hey is lycanthropy working properly? It doesn't transform on my server so I wasn't sure if it worked properly
-
View User Profile
-
Send Message
Posted Jan 21, 2013@TeamCataract
Glad you like the plugin! Yes I do still take requests, however I prefer they be posted in the forum here as it's easier to keep track.
Glide is essentially a power that allows temporary flight at the cost of an item, also requiring the user to maintain momentum.
I've uploaded an update for 1.4.7, just waiting for it to go through Bukkit's approval process.
-
View User Profile
-
Send Message
Posted Jan 21, 2013Hey Sirrus86, Love your plugin, I've played around with it alot in the past (EnderSoul is the best) and I'm returning to it for an exclusive feature for my server. Are you still doing power requests?
What I'm looking for is probably very similar to Glide. I haven't tried glide yet because of the up-to-date error but it seems you are getting on that already.
Keep up the good work!
-
View User Profile
-
Send Message
Posted Jan 21, 2013@tpoo40
"Error occurred while enabling S86 Powers v4.1.1a (Is it up to date?)"
Nope it isn't lol... I'm working on a version for 1.4.7 though, should be done soon.
-
View User Profile
-
Send Message
Posted Jan 21, 2013[S86 Powers] Enabling S86 Powers v4.1.1a 2013-01-20 21:58:59 [SEVERE] Error occurred while enabling S86 Powers v4.1.1a (Is it up to date?) java.lang.NoClassDefFoundError: net/minecraft/server/v1_4_6/EntitySmallFireball at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.lang.ClassLoader.defineClass(Unknown Source) at me.sirrus86.s86powers.powers.services.PowerClassLoader.loadClass(PowerClassLoader.java:42) at java.lang.ClassLoader.loadClass(Unknown Source) at me.sirrus86.s86powers.powers.services.PowersLoader.load(PowersLoader.java:149) at me.sirrus86.s86powers.powers.services.PowersLoader.load(PowersLoader.java:109) at me.sirrus86.s86powers.powers.services.PowersLoader.load(PowersLoader.java:81) at me.sirrus86.s86powers.powers.services.PowersLoader.list(PowersLoader.java:50) at me.sirrus86.s86powers.powers.services.PowersLoader.list(PowersLoader.java:32) at me.sirrus86.s86powers.powers.PowersHandler.<init>(PowersHandler.java:29) at me.sirrus86.s86powers.S86Powers.loadClasses(S86Powers.java:72) at me.sirrus86.s86powers.S86Powers.onEnable(S86Powers.java:49) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.loadPlugin(CraftServer.java:282) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.enablePlugins(CraftServer.java:264) at net.minecraft.server.v1_4_R1.MinecraftServer.j(MinecraftServer.java:321) at net.minecraft.server.v1_4_R1.MinecraftServer.e(MinecraftServer.java:300) at net.minecraft.server.v1_4_R1.MinecraftServer.a(MinecraftServer.java:259) at net.minecraft.server.v1_4_R1.DedicatedServer.init(DedicatedServer.java:149) at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:399) at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849) Caused by: java.lang.ClassNotFoundException: net.minecraft.server.v1_4_6.EntitySmallFireball at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.findSystemClass(Unknown Source) at me.sirrus86.s86powers.powers.services.PowerClassLoader.loadClass(PowerClassLoader.java:51) at java.lang.ClassLoader.loadClass(Unknown Source) ... 24 more
-
View User Profile
-
Send Message
Posted Jan 20, 2013@knightfallx66
Yeah that was an oversight in coding, it'll be fixed for the next update. Thank you for reporting.
-
View User Profile
-
Send Message
Posted Jan 20, 2013@sirrus86
10:28:03 PM [severe] Could not pass event EntityTargetLivingEntityEvent to S86 Powers v4.1.1
10:28:03 PM [javastacktrace] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
10:28:03 PM [javastacktrace] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
10:28:03 PM [javastacktrace] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
10:28:03 PM [javastacktrace] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
10:28:03 PM [javastacktrace] at org.bukkit.craftbukkit.v1_4_6.event.CraftEventFactory.callEntityTargetLivingEvent(CraftEventFactory.java:477)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.PathfinderGoalTarget.a(PathfinderGoalTarget.java:119)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.PathfinderGoalNearestAttackableTarget.a(SourceFile:54)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.PathfinderGoalSelector.a(PathfinderGoalSelector.java:66)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.EntityLiving.bl(EntityLiving.java:1473)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.EntityLiving.c(EntityLiving.java:1273)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.EntityMonster.c(EntityMonster.java:20)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.EntitySkeleton.c(EntitySkeleton.java:122)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.EntityLiving.j_(EntityLiving.java:534)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.EntityMonster.j_(EntityMonster.java:24)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.World.entityJoinedWorld(World.java:1334)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.WorldServer.entityJoinedWorld(WorldServer.java:548)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.World.playerJoinedWorld(World.java:1315)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.World.tickEntities(World.java:1193)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.WorldServer.tickEntities(WorldServer.java:445)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:580)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:224)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:494)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:427)
10:28:03 PM [javastacktrace] at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849)
10:28:03 PM [javastacktrace] Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_4_6.entity.CraftSkeleton cannot be cast to org.bukkit.entity.Player
10:28:03 PM [javastacktrace] at powers.defense.MobHunter.noTarget(MobHunter.java:49)
10:28:03 PM [javastacktrace] at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
10:28:03 PM [javastacktrace] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
10:28:03 PM [javastacktrace] at java.lang.reflect.Method.invoke(Unknown Source)
10:28:03 PM [javastacktrace] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
-
View User Profile
-
Send Message
Posted Jan 20, 2013@FSCarver
Error is caused either by a tamed mob attempting to navigate to its owner that no longer exists, or the mob itself is null (doesn't exist). I'll try to gt it fixed.
@knightfallx66
Yeah I'll need the full error in order to know what specifically is causing the error.