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 Feb 1, 2013I believe as Sirrus posted for me in an earlier comment, you could go into the plugins/S86Powers/powers.yml and set the powers you do not want to use to false. Sirrus can probably answer your question better though.
-
View User Profile
-
Send Message
Posted Feb 1, 2013Hi, I am an op on my server, and I have ALL the powers and had to disable the plugin because it made the game almost unplayable, are there any permissions to disable certain powers?
-
View User Profile
-
Send Message
Posted Feb 1, 2013You're the best! I cannot donate to you right now, but if there is anything else I could provide in return let me know.
-
View User Profile
-
Send Message
Posted Jan 31, 2013@Carambaz
You sure can! If you're opped or have the permission s86powers.admin, just use the command /powers player [player] [power] -o to bypass the restriction.
-
View User Profile
-
Send Message
Posted Jan 31, 2013Thank you Sirrus86! It is now working. If I encounter any more bugs I'll be sure to let you know. So to clear it up for any other MCPC users who might find this post, following the advise in the previous post does in fact work! Thank you thank you thank you!
EDIT: On a side note, is there anyway to acquire more than one passive/offense/defense ability at a time? I'm fine using only one each however if I could give players more than one ability of each type that would be icing on the cake to really make the classes unique.
-
View User Profile
-
Send Message
Posted Jan 31, 2013@Carambaz
Actually if you're going so far as to modify the powerpack jar... Delete both the entities folder (along with its files) and the powers/elite/AutoGun class. That should eliminate any references to the EntitySmallFireball class.
-
View User Profile
-
Send Message
Posted Jan 31, 2013I appreciate the quick replies very much. Is there something I could do on my end to make your plugin compatible? Sadly I do not currently have the knowledge to identify an alternative route. If you could point me in the direction that would be most helpful.
There are no other mods of this quality which would fit in the RPG server I'm building. I'm going to mess with .jar probably in a catastrophic way and get back to you. Thank you for your help thus far Sirrus86.
EDIT: Deleting the AutoGun files from the .jar still prompted the exact same errors.
-
View User Profile
-
Send Message
Posted Jan 31, 2013@Carambaz
Actually MCPC may have something to do with the previous error, as it points to an NMS class that may not exist or may be different in MCPC.
The files groups.yml and regions.yml should be blank unless you've added groups or regions, and of course powers.yml will be blank since you haven't successfully started the plugin yet (my bad XD).
I'm going to go ahead and say the issue may be isolated to MCPC. This plugin isn't tested to work with it and that seems to be the only major determining factor I see here.
-
View User Profile
-
Send Message
Posted Jan 31, 2013I'm probably in over my head with this, I'm very new to minecraft modding.
When I edit the powers.yml it is completely empty, as is the groups.yml and regions.yml. The users.yml has myself added to it. Am I missing some prerequisite maybe? This may have to do with the fact I'm running the beta build MCPC server?
-
View User Profile
-
Send Message
Posted Jan 31, 2013@Travistyse
Yeah SpawnCrafter has become quite buggy lately. On my test server, placing a spawner causes an invisible pig spawner to always get placed first, so pigs constantly spawn until the server is restarted. I'm almost inclined to believe this is a Bukkit issue though.
As for the mobs being hostile, between 4.1.2 and 4.1.3 I tried making some changes to fix the above issue and may have forgotten to reimplement some things. I'll take a look.
@TeamCataract
Glad you like it!
Task errors mean there's an error occurring in a repeating task within a power. I checked Godspeed, and sure enough found a few errors. For anyone else curious, this is the power that's been causing glowstone blocks to break when you left-click with them, it'll be fixed for v4.1.4.
@Carambaz
The cause of this error is that your server can't find the class EntitySmallFireball, which is an NMS class (the same fireballs shot by Blazes). Normally I'd say the error is due to running the wrong version of Bukkit, but the rest of the error debunks this. My only suggestion is disabling the only power that ever references that class, which is AutoGun.
First go into plugins/S86 Powers/powers.yml, look for the line that says AutoGun: true, then change it to AutoGun: false. In the meantime I'll look into it.
-
View User Profile
-
Send Message
Posted Jan 31, 2013I get this error when trying to run S86 on my MCPC server. Can you help?
08:02:14 [INFO] [S86 Powers] Enabling S86 Powers v4.1.3 08:02:15 [SEVERE] Error occurred while enabling S86 Powers v4.1.3 (Is it up to ate?) java.lang.NoClassDefFoundError: net/minecraft/server/v1_4_R1/EntitySmallFirebal
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(Pow rClassLoader.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 27) at me.sirrus86.s86powers.S86Powers.loadClasses(S86Powers.java:94) at me.sirrus86.s86powers.S86Powers.onEnable(S86Powers.java:72) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoade .java:426) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManag r.java:381) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.loadPlugin(CraftServer.ja a:293) at org.bukkit.craftbukkit.v1_4_R1.CraftServer.enablePlugins(CraftServer java:275) at net.minecraft.server.MinecraftServer.j(MinecraftServer.java:546) at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:512) at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:438) at ho.c(DedicatedServer.java:195) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:668) at fy.run(ThreadMinecraftServer.java:16) Caused by: java.lang.ClassNotFoundException: net.minecraft.server.v1_4_R1.Entit SmallFireball 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(Pow rClassLoader.java:51) at java.lang.ClassLoader.loadClass(Unknown Source) ... 24 more
-
View User Profile
-
Send Message
Posted Jan 30, 2013Launch is perfect!! And I love that you've included options in the config to tweak how it runs. You are awesome!
This debt will be repaid soon enough!
On a side note, on 4.1.2 I was getting a Task #60 error (something to do with godspeed apparently). I'll post a ticket if it comes up again in the most recent version. If you did fix this, thanks.
-
View User Profile
-
Send Message
Posted Jan 30, 2013Just a small post involving bugs :)
SpawnCrafter has some issues. In order to use the Spawners in a way that makes them friendly, you have to destroy and place them yourself, and placing ones you gave yourself through the /give command or simply left clicking on them without breaking them and placing them again first, will cause the mobs to be hostile. This is simple to deal with once you know that, but is still clunky.
The spawnegg function just outright doesn't work. They're hostile. That's what I'd like to be fixed :l because otherwise all the eggs you get are pointless other than suiciding and setting up spawners.
-
View User Profile
-
Send Message
Posted Jan 26, 2013@TotalPotato
Sounds like something isn't updating... I'll look into it.
@Flameswy
No problem, glad you're enjoying it!
@uuuu5
Nah I encourage people to report oddities (though some people have gotten on my nerves in the past... my problem, not theirs). I'll test the fire resist and see what's up.
-
View User Profile
-
Send Message
Posted Jan 26, 2013@sirrus86
Fire Resistance for Supercharge is shown to be counting down, just doesn't do anything. Everything else works.
(I'm just reporting things I notice that seem somewhat off - if I get annoying, just lemme know)
-
View User Profile
-
Send Message
Posted Jan 25, 2013Just got this up on my server, and this is by far the best plugin I have ever run!
Thanks so much for updating!
-
View User Profile
-
Send Message
Posted Jan 25, 2013@sirrus86 I really like this plugin so I've gone back to the fix you posted that works fine except the groups. Hope you'll figure out what's wrong soon. Edit: Reinstalled bukkit and its working again but it seems groups still aren't working for me Edit: Edit: Some powers are permanently one once they're put on like stonestrider will constantly make blocks disappear even in creative mode and cant be turned off for some reason
-
View User Profile
-
Send Message
Posted Jan 25, 2013@TotalPotato
Well this kinda baffles me, I'm honestly not sure what the cause is. I will be removing the reliance on PowersAPI in the next update though, hopefully that will fix it.
And I know I seem to have problems with each update, I DO test the plugin before uploading it so it's always a downer to see people unable to get it working as it should... I'm really sorry for these complications and hope I can get working for everyone.
@uuuu5
Setting powers as a different type was removed because it's unnecessary. When it was first implemented, it was added as a means to bypass the "one of each kind" restriction. This still limited people to three powers per user, so overrides were added to allow up to thirty total powers, ten of each kind. With recent updates, a given user can now have unlimited powers assigned via override, so there's little reason to keep the "assign as a different type" functionality.
...And I just now realized using the /powers help power command shows it as a viable command. My bad!
As for Supercharge, it's supposed to grant temporary fire resistance, but it may not be set to last long enough. I'll add a config option to allow you to extend the resist duration.
-
View User Profile
-
Send Message
Posted Jan 23, 2013Also, Supercharge works, except after it heals you, you still take damage from the lightning's fire.
-
View User Profile
-
Send Message
Posted Jan 23, 2013/powers player <player> <power> <type>
^ Not working?