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 19, 2013@n33dy1
I appreciate you supporting my plugin! I've already added the feature that tells you which class is causing a given error, but only when using the custom plugin manager and scheduler. I'll see about re-adding the debug command too.
Yeah I can add an option to disable Launch from using items.
@kodama6
Wow, I totally didn't think of that; configs won't populate if they never turn on, so new config options won't appear until someone who's online has the power assigned.
@winningar
Yeaah this ties in with the previous statement, since config options aren't populated until someone has the power assigned, the options remain null. I'll see about getting that fixed for v4.3.3.
@FSCarver
Well that's no good... I did alter the code a bit, because previously you couldn't absorb blocks with 0xp even if the option to modify cost was zero. Sounds like now it's going the other way.
@kodama6
I REALLY appreciate you helping people, it helps me immensely!
-
View User Profile
-
Send Message
Posted Jun 19, 2013@kodama6
Actually now that I checked (which I kinda forgot), there are no errors shown on the console :/ I'm not even sure if our server uses the exact same version of Powers that is available here.
It was just something I noticed while playing, nothing major. And I get where you're coming from. I hate having to disturb Sirrus with minor problems so I just post them in the area he reads, mainly to inform him.
-
View User Profile
-
Send Message
Posted Jun 19, 2013@FSCarver
I understand lol, but without posting the errors it's hard to fix an issue that can't be duplicated. I just reply when I know something about the topic. If I can fix 1 or 2 peoples problems, that's less for Sirrus to do, and gives him more time to make updates. Maybe he can fix that issue for you, sorry if my suggestions didn't help. =D
-
View User Profile
-
Send Message
Posted Jun 19, 2013@kodama6
Oh it's updated on my server, I have Sirrus to take care of that. I'm just posting it here to inform him. I hate to bug him personally with every slight problem.
And who knows, there still might be other people having the same/similiar problem.
-
View User Profile
-
Send Message
Posted Jun 19, 2013@sirrus86
BTW, any chance of a finished config for gunblade on next update? currently you can only alter the items required for freezing, flaming, and shock... If i remember right.
-
View User Profile
-
Send Message
Posted Jun 19, 2013@kodama6: thanks so much plugin is working perfectly so far and once again thanks(:
-
View User Profile
-
Send Message
Posted Jun 19, 2013@winningar
Do me a favor, try wearing the power before using the /powers power command.
The way it's set up atm, someone has to have the power ON to view its details and config.
I got the same error as you, but I THINK it's doin it because no one has the power on... so the plugin shuts the power completely off. This is to reduce lag cuz he has sooo many powers now.
When i put the power on... i got no error, even runnin it in console.
-
View User Profile
-
Send Message
Posted Jun 19, 2013@FSCarver
Mine works fine. The power wont let me absorb blocks without the correct amount of exp. Just play with it, there is a lot you can try, make sure you're updated? check yer config? reload the power? see if any errors are happening? But it aint broke.
-
View User Profile
-
Send Message
Posted Jun 19, 2013Whenever I have OanAlteration assigned, I will pick up blocks when right clicking on them no matter how much XP I have. (In my case zero)
-
View User Profile
-
Send Message
Posted Jun 19, 2013the error im getting this is the only plugin i have intalled atm 2013-06-19 08:52:35 [INFO] vivapinata issued server command: /powers power shockwave 2013-06-19 08:52:35 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'powers' in plugin S86 Powers v4.3.2 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189) at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:523) at net.minecraft.server.v1_5_R3.PlayerConnection.handleCommand(PlayerConnection.java:971) at net.minecraft.server.v1_5_R3.PlayerConnection.chat(PlayerConnection.java:889) at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:846) at net.minecraft.server.v1_5_R3.Packet3Chat.handle(Packet3Chat.java:44) at net.minecraft.server.v1_5_R3.NetworkManager.b(NetworkManager.java:292) at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:115) at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35) at net.minecraft.server.v1_5_R3.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:581) 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) Caused by: java.lang.NullPointerException at java.lang.String.replace(Unknown Source) at me.sirrus86.s86powers.commands.ComPower.createDesc(ComPower.java:210) at me.sirrus86.s86powers.commands.ComPower.<init>(ComPower.java:132) at me.sirrus86.s86powers.S86Powers.onCommand(S86Powers.java:397) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ... 15 more
-
View User Profile
-
Send Message
Posted Jun 18, 2013@n33dy1 I see the option to change feathers. use /powers power launch -o item <itemid> in game to change the item required to fly.
Almost every power has a config now, BUT, with the new system he uses, you need to be sure someone has the power enabled or the config will not show up, because the power gets shut off if no one has it on.
-
View User Profile
-
Send Message
Posted Jun 17, 2013@sirrus86
I wasn't saying it in a rude way I was saying it in a omg-I-need-help playful way. Also, when you stopped taking donations and offered refunds to those who had power requests in, I intentionally didn't ask for mine back because I wanted to support your plugin. I still do. Sorry I came across as demanding. I hope the new error printstacks work, and I would still like it if there were a method to tell which power was causing an issue so I could disable it while I wait for you to release a patch as opposed to having them all disabled until that time. I don't always mean to sound negative on here by finding bugs and stuff I just like getting to the point. Also, can you make an option for Launch to not consume a feather? Had a user buy (with in-game money that's how I roll because I get 0 donations on my server since mine is the best ever) it and want to swap it out for a different power because he didn't want to make a chicken farm to have enough feathers. I checked the config file and no option to stop it from consuming the feathers...
-
View User Profile
-
Send Message
Posted Jun 17, 2013@n33dy1
First of all, I'm more than happy to help people any way I can with issues... when they ask. Demands in all caps on the other hand make me not want to do anything. It's one of the biggest reasons I stopped doing bribe requests. Yeah, this is my plugin, and I want it to work and for people to enjoy it. Outside of this I work 40 hours a week in retail where people yell at me all the time, I'm basically paid to take it like a bitch, and paid poorly. Downtime between shifts is precious to me, I CHOOSE to come on here and respond to feedback, tickets, requests, etc. Outside of donations I don't get any material compensation for this, I do this FOR FREE because I like helping people. Treat me like shit and you'll get shit back.
Now with that said, the reason I'm not telling you what task #180 is is because I have no idea. Task numbers are generated as tasks are started, not just for my plugin but all plugins, so the best answer I can give is it's the 180th task that your server's plugins initiated since you started it. It's like you shuffling a deck of cards and then asking me to tell you what the fifth card you drew is, I couldn't possibly know. HOWEVER, if task #180 does point to a task initiated by S86 Powers (which we've concluded it does), is logged (which I'm assuming is the case), and the emailer is active, it actually tells me in the email it sends me which class is causing the error. Unfortunately for a quick fix this requires you using the emailer, a scenario I hadn't thought of before that I'd like to avoid (I don't like forcing features on people).
I removed the debug command because (to my recollection) no one used it when reporting errors. Your previous post did give me an idea to modify error printstacks though, so as to give better info on which class is actually causing the error without the user having to have email enabled. The less work an admin has to do, the better.
-
View User Profile
-
Send Message
Posted Jun 17, 2013@sirrus86
TELL ME WHAT TASK #180 IS IN YOUR NEXT POST MAN JEEZ!
Also please add it back in because that emailer isn't going to help me any when I want to fix the issue now before your patch. I'd rather keep some powers working instead of losing them all.
-
View User Profile
-
Send Message
Posted Jun 17, 2013@clawx207
Aah yeah, might have to do with it not running on Bukkit, didn't think of that... I'll see about getting that fixed.
@n33dy1
Yeah the debug command was removed when the emailer was added... Speaking of which, your emailer is either disabled or the error wasn't logged, 'cause I didn't receive anything. But we ARE getting closer to the problem.
Yeah I can have powers disable when players switch game modes.
-
View User Profile
-
Send Message
Posted Jun 17, 2013Tons of this...
2013-06-17 03:59:49 [WARNING] [S86 Powers] Task #180 for S86 Powers v4.3.2 generated an exception
AND, /powers debug gettask 180 gives me Unknown command: 'debug'.
It goes on until it runs out of memory.
EDIT: Can you also make it so powers disable if the player isn't in creative mode? (for those with that feature)
I have a lot of powers and some could be not running when I'm in creative mode, which is most of the time.
-
View User Profile
-
Send Message
Posted Jun 17, 2013ehhhh the powers load but none of them work, and when i removed the plugin it crashed Towny
[S86 Powers] Enabling S86 Powers v4.3.2 2013-06-17 15:19:23 [SEVERE] Error occurred while enabling S86 Powers v4.3.2 (Is it up to date?) java.lang.StringIndexOutOfBoundsException: String index out of range: -5 at java.lang.String.substring(Unknown Source) at me.sirrus86.s86powers.tools.utils.VersionManager.getBukkitBuild(VersionManager.java:63) at me.sirrus86.s86powers.tools.utils.VersionManager.<init>(VersionManager.java:46) at me.sirrus86.s86powers.S86Powers.getVersionManager(S86Powers.java:368) at me.sirrus86.s86powers.tools.utils.NoGrief.<init>(NoGrief.java:48) at me.sirrus86.s86powers.S86Powers.getNoGrief(S86Powers.java:295) at me.sirrus86.s86powers.S86Powers.onEnable(S86Powers.java:78) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:396) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:383) at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:309) at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:291) at net.minecraft.server.MinecraftServer.func_71243_i(MinecraftServer.java:470) at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:436) at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:387) at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:214) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:579) at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)
Same error?
-
View User Profile
-
Send Message
Posted Jun 16, 2013@n33dy1
It shouldn't be eating up memory like that, especially if there are no errors. The more recent versions are actually built to turn any unused powers off so they can't use more memory, which means only the powers assigned to players logged in at a given time can use memory. If someone logs off and they were the last person using a power, it gets turned off and all its variables and tasks are reset/set to null (which frees memory).
Make sure error-reporting is enabled in config, it's set up so it can email me most errors that occur. Otherwise it seems paradoxical that it should consume more memory at this point.
-
View User Profile
-
Send Message
Posted Jun 16, 2013@archmage97
Powers are pre-loaded in the plugin, you don't need any additional files.
@knightfallx66
Are you using Bukkit/CraftBukkit, or is it a modified version?
To determine the correct methods needed the plugin checks for Bukkit's build number, and the only way it can do that is to decipher the text build. All Bukkit builds have the build number in them and follow a certain pattern, but custom builds may not.
@kodama6
Actually I believe there's now a packet that simulates arrows in a player entity, so yeah.
@clawx207
You're running S86 Powers v4.1.5, which was built to run on Minecraft 1.4.7. You're running Minecraft 1.5.2, so yeah there's a compatibility issue. Try upgrading to S86 Powers v4.3.2 and see if it runs any better.
-
View User Profile
-
Send Message
Posted Jun 16, 2013Anyways from the MCPCPlus issue where its not loading any powers, this is the startup error it is giving
[INFO] [S86 Powers] Enabling S86 Powers v4.1.5 2013-06-16 19:07:56 [INFO] [S86 Powers] PowerPack not found, exporting embedded pack. 2013-06-16 19:07:57 [SEVERE] Error occurred while enabling S86 Powers v4.1.5 (Is it up to date?) java.lang.NoClassDefFoundError: net/minecraft/server/v1_4_R1/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:27) at me.sirrus86.s86powers.S86Powers.loadClasses(S86Powers.java:97) at me.sirrus86.s86powers.S86Powers.onEnable(S86Powers.java:75) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:396) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:383) at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugin(CraftServer.java:309) at org.bukkit.craftbukkit.v1_5_R3.CraftServer.enablePlugins(CraftServer.java:291) at net.minecraft.server.MinecraftServer.func_71243_i(MinecraftServer.java:470) at net.minecraft.server.MinecraftServer.func_71222_d(MinecraftServer.java:436) at net.minecraft.server.MinecraftServer.func_71247_a(MinecraftServer.java:387) at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:214) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:579) at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573) Caused by: java.lang.ClassNotFoundException: net.minecraft.server.v1_4_R1.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
I'd really like to see this mod have a chance to be on forge servers, It would be a great addition along with mods