[FUN/RPG] S86 Powers v4.3.0 - Give players unique powers [1.5.2-R0.1]

Discussion in 'Plugin Releases' started by sirrus86, Jul 21, 2012.

     
  1. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    S86 Powers is a plugin that allows server operators and admins to give players unique powers. (More info coming soon

    Setup

    When S86 Powers is first loaded a config file will be created in your server's plugins/S86 Powers directory. This file will contain a database of players and beacons (more on that later). This file should never need to be directly edited; doing so may cause undesirable effects.

    Once the plugin is loaded for the first time, the player database will be empty. In order for players to have powers, they will first need powers assigned to them.

    The first thing you'll want to do is get a list of what powers are included. To do this, you can type the command /powers power.
    [IMG]
    This will populate a full list of all powers in the power database. The powers are all color-coded by their type. Powers in yellow are passive perks. These are generally powers which trigger automatically under certain conditions. Powers in red are offensive abilities. These are powers which usually require a trigger and are primarily meant to damage an opponent in some way. Finally, powers in blue are defensive abilities. These powers also usually require a trigger, but are primarily meant to increase the user's chances of survival rather than hurt or hinder an opponent.

    Of course, knowing the name and type for a power doesn't help much, you need to know what it does. To get more detailed information on a power, you can use the command /powers info power [name]. For example, to see info on the power Acrobat, you would type the command /powers power acrobat, which would display this:
    [IMG]
    This gives detailed information on the specified power. This information includes the full name of the power, the power's type, a description of what the power does, and a list of players currently using the power.

    Let's say for example a player on your server named sirrus86 has taken these steps already and has decided he really wants the Acrobat power. By default only server operators can actually set powers to players, so it's now up to you (assuming you're an operator) to assign the Acrobat power to sirrus86. Fortunately, this is done in a single command: /powers player sirrus86 acrobat.
    [IMG]
    As you can see, sirrus86 didn't previously exist in the players database, so he was added to it automatically. He now has Acrobat set as his passive power.

    Chances are, even when following the above steps, sirrus86 won't be able to use Acrobat just yet. To prevent abuse, powers will only enable under a certain set of circumstances:
    • The player must have the permission node s86powers.enable set to true.
    • The player must be in survival mode
    Once these conditions are met, they're good to go.

    Powers can be added at any time to any player, however they may only have one passive, one offensive, and one defensive power at a time. Setting a new power to a player who already has a power of the same type will overwrite it. For example, after giving sirrus86 Acrobat, he changes his mind and decides he wants Diversion. You give him Diversion using the same command, /powers player sirrus86 diversion, but because it's also a passive power, Acrobat will be removed and replaced with Diversion. On the other hand, if sirrus86 decides he wants Pulse, he can have it and still retain his passive power.

    More Info

    The latest version of S86 Powers, as well as more info, can be found on BukkitDev.

    Requests

    Got an idea for a power that isn't included? Send me a message, or leave a post below.

    This post has been edited 1 time. It was last edited by sirrus86 Aug 9, 2012.
  2.  
  3. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    You're not doing anything wrong. Actually, the blame is on me; the commands changed and I didn't change the info on this page to reflect that. To get a list of powers, the new command is '/powers power'. You can also just type '/powers' from the console or in-game to see all of the commands available.
  4. Offline

    EnisThenis

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Thanks for the quick reply sirrus. Will give it a go now.

    Yep working no problem, thanks again.

    This post has been edited 1 time. It was last edited by EnisThenis Aug 6, 2012.
  5. Offline

    Chalkie

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Player was blood bending today (Spaming it ofc) killed the server.

    Code:
    2012-08-07 05:25:26 [SEVERE] Could not pass event PlayerInteractEntityEvent to S86 Powers
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:460)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:979)
        at net.minecraft.server.Packet7UseEntity.handle(SourceFile:33)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
        at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Caused by: java.lang.OutOfMemoryError: PermGen space
        at sun.misc.Unsafe.defineClass(Native Method)
        at sun.reflect.ClassDefiner.defineClass(Unknown Source)
        at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)
        at sun.reflect.MethodAccessorGenerator$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.reflect.MethodAccessorGenerator.generate(Unknown Source)
        at sun.reflect.MethodAccessorGenerator.generateMethod(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302)
        ... 10 more
    Are you able to add a cooldown message like other skill so they at least don't spam it as much.
  6. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    A cooldown would increase the amount of time before this happens, but it could still happen eventually. Unfortunately I'm still new to coding Java (and in turn, plugins), and I believe this to be the side effect of that.

    I'll see about recoding part of this power to lower the memory demands. I can also add a cooldown to the power config that you can increase if needed.
  7. Offline

    mikehl

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    idea:
    jesusism: can walk on water and lava and when holding a water bottle and hitting a configurable block (probably gold) will make it some random potion

    ps: im not being christian to all you people who might think im promoting christianity, I myself am atheist, just thought it a good idea.
  8. Offline

    mikehl

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    you already did add a cooldown to bloodbend, i just configured it like 15 min ago. I wanted bloodbend to be used more often and have longer time instead of just once every 30 secs
  9. Offline

    Chalkie

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Even with the cooldown option provided it still is spamable, that is why I was asking for a more "hard coded" cool down.

    @Sirrus in 3.2 it seems to create 2 power configs, 1 in the plugin folder (Where the .jar is located) and one in the S86 Powers folder.

    Also the skills that need and Item to use and has the option to change the item will still show the default item in the info, maybe if the item to activate it is changed it will update in the info as well?

    Once again thanks for all the hard work :)
  10. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Heh it's a good power idea, I'm just concerned how touchy some players might be about a power like this. I'm also atheist, but I respect other peoples' beliefs. For fear of offending anyone I unfortunately won't be adding this power. But do not let this discourage you from coming up with other ideas!
    Sounds like what you're looking for is a cooldown between uses, not just a cooldown on a given victim. I can get this coded in.

    As for the duplicate configs, good catch; the one in the plugins folder was probably saved before the plugins/S86 Powers folder was created. I've added a conditional where the plugin's folder must be created first before it attempts to save the file, this should prevent duplicate files. In any case the plugin will only read from the one in the S86 Powers folder.

    The item usage (along with cooldown and other config options) don't change in the power's info because the power info is pulled from a yml file embedded in the jar file. Until recently I didn't know how to make it so the information pulled from the yml file could be customized, but I'll see about getting this implemented in the near future.
  11. Offline

    Chalkie

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Me again (yea I know lol), one of my classes I made with your skills is a rogue which uses Nether Clock for stealth but makes the class Very OP. The problem with the skill is you can not melee or shoot arrows at some one vanished and they can attack you so I propose.
    Attacking De-cloaks you and that there's a 8 seconds cool down between cloaking.

    This post has been edited 1 time. It was last edited by Chalkie Aug 8, 2012.
  12. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Yeah, that does sound overpowered... I'll see about getting that implemented.
  13. Offline

    Chalkie

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    3.2.1
    - Neutralizers work perfectly (as far as I can tell)
    - When using the new mob catcher class I get the following error when trying to release the monster when throwing it.
    Code:
    2012-08-09 06:03:27 [WARNING] Task of 'S86 Powers' generated an exception
    java.lang.NoSuchMethodError: org.bukkit.World.spawnEntity(Lorg/bukkit/Location;Lorg/bukkit/entity/EntityType;)Lorg/bukkit/entity/Entity;
        at me.sirrus86.S86_Powers.Powers.Defense.MobCatcher$1.run(MobCatcher.java:66)
        at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126)
        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:533)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    I believe it may be due to me running a 1.2.5 server? (Spawn mobs is set to true in the powers config)
  14. Offline

    EnisThenis

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Hi again,

    Majority of powers are working, but any of them involving explosions don't seem to do anything such as Blastwave and Volatility. I've looked through server config and explosions aren't denied. Is there any work around or am I missing something?

    EDIT: Nevermind, my fault. They don't work while in gamemode 1, switched to survival and working no problems.

    However I can't seem to get Soulshatter to work? The pearl gets destroyed but there's no change in light.

    This post has been edited 1 time. It was last edited by EnisThenis Aug 8, 2012.
  15. Offline

    reded88

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    thanks for such a wonderful mod, the power ideas are creative and impacts the way i play minecraft heavily, in a good way. keep up the good work.
  16. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Yeah, this error is because you're running it in 1.2.5. Versions 3.2.1 and beyond will be for 1.3.1 only, so you may lose the functionality of some powers.
    Bukkit doesn't have any method that I know of to reduce the light level of an area, so SoulShatter instead looks for light sources and temporarily changes them into non-lighting blocks. It's not very effective outside, and will only affect torches, glowstone and redstone lamps.
    I'm glad you're enjoying it! Thanks for the feedback!
  17. Offline

    peaceiscloser

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Oh my gosh, you added the permission thing I asked for. This is absolutely golden. Thank you Sirrus! This'll make things go so much more smoothly now!
  18. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    I know right, it's like I listen to you guys or something!
  19. Offline

    Chalkie

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Seems to be one minor problem with Neutralizers, if a person no powers and enters a region with it enabled it spams that their powers have returned. Also you are a class on my server :)
    [IMG]
  20. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Ah always something... players with no powers aren't supposed to be affected whatsoever by neutralizers. Probably an oversight, I'll see about getting it fixed.

    And I'm a class?! That's awesome! On the server I play on I'm infamous for being the server mole; in survival I dig to bedrock then expand into a giant underground base, complete with farms and mob towers (basically several layers of canal-style mob traps stacked on top of each other). I'd say the class you're attributing me to is VERY appropriate!
  21. Offline

    mikehl

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    what! you can make signs now! cool!
  22. Offline

    Chalkie

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    No that is a mash up of 3 plugins, you click the class sign and it gives you perm to add the 3-4 skills of that class and a custom suffix then it removes the perms. (all within a second) gives me the freedom of making the classes I want with what ever S86 powers I want, the only draw back is setting the codes/permissions for the signs.
  23. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Not yet, but I have received requests for sign and economy support. Temporary powers (another part of the same request) are already implemented for v3.2.2.
  24. Offline

    matthew21164

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Hi sirrus,

    Just saw your plugin on the first page of the plugin list, (probably because it's so new?) and it looks awesome. Just reading through these 4 pages makes me see how much you care about your users and incorporate their requests! I hope to start using your plugin in my sever right now, and I'm just glad that at least one plugin author uses something other than IRC :D .

    Just as a random question, what inspired you to make the squid-riding bit of aquafile which has caused so much trouble for you?

    This post has been edited 1 time. It was last edited by matthew21164 Aug 9, 2012.
  25. Offline

    matthew21164

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Just wondering, could you explain what code you used for the sign? I'm thinking of implementing that sort of class system into my sever too. Obviously not exactly the same, but can you give examples such as, "To give [Insert power here] you would use [Sign code here] etc. Thanks
  26. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Good question, and I apologize if the answer's a bit longer than you expected :p.

    Aquaphile's original concept was by a player named bobby16may. He's well-known on our server as a huge fan of hockey, and unsurprisingly requested ice and water related powers. Aquaphile originally was simply to be able to breathe underwater. However as other powers became more complex, Aquaphile remained a very simple, and soon underwhelming power. This changed slightly later, when the underwater speed effect was added.

    Soon I started getting repetitive power requests, and at the time S86 Powers did not support multiple users using the same power, so I created a list of what kinds of power effects had yet to be requested. There were no powers that made use of squids, so bobby requested to incorporate this into Aquaphile. He also mentioned that, while it was great to have unlimited air underwater, he couldn't bring his friends down there with him.

    I started making some connections and ideas. At the time I hadn't figured out monster pathfinding so squid would wind up useless in most capacities. Bobby wanted to allow those near him underwater to also have unlimited air, but this would force him to pass up on the increased speed. So the question was, how do I add squid into his power somehow, and still allow his friends to stay near him when he's racing around underwater?

    Suddenly it was obvious: turn him into a rideable squid.
  27. Offline

    Chalkie

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Sure,

    So you will need S86 powers
    SimpleCommandSigns
    HiddenCommandSigns

    First of Think of a class, the example I will be using is Vampire with the skill Vampirism and Darkregen.

    Now you place the sign and make its a SimpleCommandSign (By default I belive it is [SCS] on the first line (you can change this in the config (I changed mine to class)) then on the sign put something like "Become a Vampire".

    Now you need to add the hidden command on the sign so type in chat;
    /hcs create "/powers player %p -d" "/powers player %p vampirism -o" "/powers player %p darkregen -o"
    Press enter and click the sign.
    So you know have told the signs that first command you want it to run is "/powers player %p -d" this removes all previous powers from the player, then you tell it to add the new powers ("/powers player %p vampirism -o" "/powers player %p darkregen -o")

    Now you have to tell the sign what permissions to give the player whilst the commands activate so type;
    /hcs addperms "s86powers.*"
    Press enter and click the sign.
    Now you have told the sign what permissions to give the player before the commands are run but to remove them after the commands are finished. (About a second)

    Notes:
    Players will need to have the permissions
    scsigns.use
    s86powers.enable
    This is so they can use the signs and powers.

    You use the -0 on the end of a skill in case you create a class that has more then one type of skill (Example 2 defensive's)

    You can add as many skills as you want but you may need to manually add more in the HiddenCommands Config file since MC Chat only allow a certain amount of characters.
  28. Offline

    sirrus86

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    I'm impressed, you've figured out my plugin down to a science!

    I just wanted to note that "s86powers.*" is not a permission I've implemented, so depending on the permission plugin the wildcard may not work. If not, you can probably swap it for "s86powers.admin" to achieve a similar result.
  29. Offline

    Chalkie

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Correct, forgot to add not all Permissions use wildcard like PEX. (Derp)
  30. Offline

    matthew21164

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Thanks Chalkie, that's really going to help me set up classes :D

    Haha, yes I see how that came around. I guess you didn't realise all the trouble it would be in the end huh?
    Thanks for responding.
  31. Offline

    ThaCreep3r

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Nice Plugin Like ! ;)
    Keep Up the good work!
  32. Offline

    matthew21164

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Just installed the plugin on my sever:), works fine, and the only issue I had (Phasewalk spamming speed effect) was just due to lag on my side. I thought I saw an ability other than Aquafile that let's you breath underwater though(sorry I can't remember the name)... Is there really one or am I getting confused?:eek:

Share This Page