Expanded options on several powers to make them more customizable:
Some powers now incorporate options consisting of lists.
Modifying lists uses the same commands as modifying options, but behaves differently: entering an option value not already in the list will add it, while entering an existing value will remove it (e.g. /p power Adaptability option damage-types.explosion FIRE will attempt to add "FIRE" to the option's list, however if it already has "FIRE" then it will be removed instead).
Some powers use lists of potion effects. The expected syntax is EFFECT,ticks,amplifier with no spaces.
Added config option users.save-files-by-name, defaults to false. When set to true, user config file names will use their player name rather than their UUID.
If the server is detected to be in offline mode, it will now save by player name regardless of this setting.
Known issues:
Polar Blade uses new options to control which enchants are applied to built blades. There currently is no way to modify this without editing the YAML file directly. This will be fixed in a future version.
Several existing power options from previous versions will end up ignored due to some of the above changes.
NOTE: Testing of this version has been very sparse, make backups and use at your own risk.
Players may now have personalized options applied to them for powers. This can be used to further make powers unique on a per-player basis:
Requires permission s86powers.manage.player.option to manage other players' options, or s86powers.manage.self.option to manage your own. Both are OP-only by default.
Commands to change options are /p player <name> option <power> [option] [value] to apply to other players, or /p option <power> [option] [value] to apply to yourself. Setting the value to the word null will remove the personalized option.
Not all power options support personalization at this time due to the nature of some powers, e.g. Polar Blade doesn't keep track of the player who created each blade. In these cases the power's normal set options are used instead.
Utility powers (Neutralizer Beacon, Neutralizer Grenade, and Power Collector) will explicitly ignore personalized options.
Neutralizer Beacon has been rebuilt to work differently:
Neutralizer beacons can be created by applying a redstone current to a Lapis Lazuli block. While active, all players who come within up to 50 meters of the beacon are unable to use powers.
You no longer need to build beacons a certain way, however there is no longer an option to make the builder immune by default.
The size of the neutralizing "aura" is relative to the strength of the redstone signal going into the lapis lazuli block; weaker signals will create a smaller aura, and vice versa.
Players can be made immune to a given beacon by placing a sign in an adjacent block containing the names of any players you wish to ignore, only one name per line.
While affected by a beacon, players will be able to see the lapis lazuli block highlighted. This can be turned off by setting the config option powers.show-neutralizing-beacon to false.
Localization for power descriptions can now use power option paths instead of the internal field in the power class. Updating existing localization files is optional however as it will still be able to read them.
Powers which utilize entity metadata should no longer cause errors/crashes, and should now use the proper metadata. This primarily affected Lycanthropy and Vampirism, though it could've also caused other powers to stop working.
Potions you pick up now stack up to 16. Potions you drink now extend the duration of other similar potion effects on you.
New power: Snow Miser
Thrown snowballs freeze water into ice and produce snow on other surfaces. Snowballs thrown at enemies are slowed for 3 seconds, increasing in effect with each application. Users of this power cannot be frozen by other users.
Added command to clear your own or another player's powers:
"/p clear [type]" will clear all of your own powers, or powers of the given type. Requires permission s86powers.self.clear, which is true by default
"/p player <name> clear [type]" will clear the given player's powers, or powers of the given type. Requires permission s86powers.player.clear, which is false by default
Added option users.replace-powers-of-same-type:
When set to true, if the player has reached the cap of a given power type and tries to assign an additional power, a random power of that type is removed to make room for the new one
Also works with Power Collector
true by default
Players can now only give themselves powers via Power Collector if they have permission to assign it (s86powers.assign.<powername>, true by default)
Fixed an issue preventing some powers from damaging other players.
Added options to Power Collector to prevent additional books of specified powers from dropping/spawning if too many players on the server are using that power
Added an option to remove powers from players when they die. This is turned off by default
Running S86Powers without ProtocolLib will now disable any features that depended on ProtocolLib. This includes certain powers, as well as certain parts of other powers.
Added new power: Bulwark
Blocking with a shield 1 second before being hit will parry melee attacks, or deflect arrows back at the shooter. Entities that are parried will also be afflicted with fatigue for 5 seconds. 3 second cooldown.
Strings related to time (e.g. cooldowns) can now be localized in the localization file
Power effects should now be properly reapplied when players respawn
Ghost and disguise effects should be removed if the player is neutralized
Fixed a NullPointerException when a player with Fire Aura has the power disabled
Several aspects of powers can now be further localized:
Full names, short names, and descriptions of all powers can be localized
Descriptions use placeholders for variables within the power itself, surrounded by brackets (for example, [value]). These placeholders should not be localized, but can be placed where appropriate
Messages shown within powers can also be localized
After booting up the server, each power's localization file will show up in the plugins\S86Powers\powers\localization folder
Name the localization file <power>-<locale>.yml, set <locale> as the localization value in the plugin config, and reload the server for changes to take effect
Several changes to Vampirism:
You now transform by double-jumping instead of using an item (like trying to fly in creative)
Transformed vampires no longer appear to hang all the time
While transformed, you can no longer interact with the world or attack
Adaptability no longer grants shadow resistance when taking void damage
Powers which are supposed to ignite blocks or entities will no longer trigger a NullPointerException, and should actually ignite entities now
Fixed potential NullPointerException when powers are configured to use any of a given item (for example, setting Holy Blade to use any sword)
Fixed NullPointerException when trying to supply a player who uses a power with no items assigned as supplies
Powers that fail to load will no longer show up in the console unless the show-config-status plugin option is set to true
Players identified as Operators or as admins of S86Powers will be notified on login if the server is using an outdated version of ProtocolLib
I received a number of similar bug reports that all turned out to be caused by outdated ProtocolLib. If you are running MC 1.14+, make sure you are using ProtocolLib 4.5.0.
Right-clicking while holding Clock allows you to go back in time up to 5 seconds, bringing you to your previous position. 1 minute cooldown.
New commands to assign random powers:
/powers add random
/powers player <player> add random
/powers group <group> add random
Will only assign powers the player/group doesn't already have
Requires the same permissions to normally assign powers
Fixed some powers:
Aquaphile
Removed ability to ride transformed players. Despite my best efforts I couldn't prevent players from being dismounted while underwater without sever performance issues.
To balance this, players now automatically turn into dolphins when "sprinting" underwater, no longer needing to use an item.
Diversion
Diversions can no longer be triggered by damaging oneself, and as a result will no longer attack the player they are supposed to be protecting.
Pickpocket
Added an option to make players look at the thief when caught. They will also receive a message regardless of this option.
Items stolen will now retain NBT data and will be properly removed from the victim.
Added option admin.bypass-cooldown:
When true, players who are admins (have the permission s86powers.admin) will incur no cooldowns when using powers
Set to false by default
Fixed an issue where config options may not update properly when changed
Requires option plugin.use-loot-tables to be true (default is false)
When active, power books will drop from fallen enemies and can be found in unopened chests throughout the world
Power books allow a player to gain the power the book offers
After first run, several options can be changed to determine likelihood of finding books, and which books are more common than others
Changes to this power's options require the power to be reloaded before they take effect
Is classified as a utility power, so all players will be affected
Made several changes to Trickshot:
Arrows no longer bounce indefinitely if they lose too much momentum when ricocheting
Added check to make sure it was an arrow that was fired, and not, say, a fully enchanted Trident that will now turn into another arrow
Added options to prevent arrows from hitting animals, monsters, players, and villagers when they ricochet (by default, monsters and players will still be targeted)
Pickpocket now has the option of adding the stolen item directly to the player's inventory
Fixed a NullPointerException when players used disguises with no metadata
The permission plugin.allow-permission-assignments now defaults to false
All barehanded attacks deal 400.0% normal damage. Barehanded attacks while crouching will slow the target for 3 seconds, while attacks within less than 1 second of rising will uppercut them into the air. Falling enemies above you can be juggled for additional damage.
The following powers have been reworked to be compatible with MC 1.13:
Auto Gun
Fire Aura
Laser
Pyro Bow
Trickshot
Lycanthropy and Vampirism both now have options to allow infecting players who possess neither power.
Option infect-other-players is false by default, and must be set to true to use the mechanic
Option infect-chance determines how likely a player will become infected by attacks from players who have the appropriate power
The "infection" essentially adds the power to the player as though it was assigned, and can be removed like any other power
Various changes to other powers:
Lycanthropy - Werewolves now appear as angry wolves
Mob Catcher - Mooshroom color is now preserved
Ore Detector - Now has a detection cooldown to hopefully alleviate lag
Trickshot - Ricochet now occurs for non-homing shots and is much more accurate
Added commands /powers stats <power> <stat> <#> and /powers player <player> stats <power> <stat> <#> to directly modify player stats with powers. These require permissions s86powers.manage.self.stats.set and s86powers.manage.player.stats.set respectively.
Setting to false will prevent players being assigned powers and groups via permissions. This is handy for servers using a permissions plugin that seeks out permission nodes and sets them true when using wildcard permissions (for example, giving someone the permission * would give them every power).
Is true by default
Fixed an issue where players who owned Neutralizer Beacons would not have powers enabled that came alphabetically after 'N' after a server reload/restart.
Regenerate hunger from fire and magma blocks, while regenerating health while in lava. Lose hunger in rain, and lose health in water.Vision while in lava is improved.
The check for ProtocolLib version 4.5+ is only performed when running on MC 1.14+; ProtocolLib 4.4.0 should work fine on MC 1.13 - 1.13.2.
Werewolves from Lycanthropy should now only cause increased damage while barehanded.
Powers which apply a constant potion effect should now reapply the effect when players log back in.
Many people are probably using ProtocolLib v4.4.0, which is the current public release. Unfortunately, this version was not made to work with Minecraft 1.14+.
S86Powers is built to use ProtocolLib v4.5.0, which is currently the latest dev build and is mostly compatible with MC 1.14+.
Added console warning on plugin startup if server is using an older version of ProtocolLib.
Fixed NullPointerException spam caused by players having Vampirism assigned but not being online.
Fixed groups not reloading properly if they had powers assigned.
Added some options to Laser to allow changing the laser's color. Pew pew.
Left-clicking the top of a block while holding End Crystal will place a Soul Siphon. Soul Siphons will drain health from nearby entities before returning the drained health to you. 30 seconds cooldown.
Added new power: Web Wall
Left-clicking a block while holding Cobweb will cause a wall made of spider webs to sprout from the surface. Walls last for 15 seconds. 30 seconds cooldown.
Packet errors caused by inability to match an entity by its ID should no longer stop other packets from working within the plugin
Note: Exceptions are still expected to show up in the console if they occur. If these become common on your server, you can set the config option plugin.show-packet-errors to false to ignore them (not recommended).
Fixed several issues that caused exceptions including:
NullPointerException caused by using a power that has a cooldown but no required item
ClassCastException that prevented changing a power or config option's value if it was related to time (e.g. changing cooldowns)
Added a catch clause for packet issues caused by ProtocolLib for MC 1.14+
Players and groups can no longer be assigned utility powers.
Several powers were either changed or optimized:
Aquaphile - Now has fewer configurable options but should have less impact on servers.
Blastwave - Added an option to prevent fall damage for a period of time after using the power.
Dark Regen - Now regenerates hunger like it should, and has been optimized to reduce impact on servers.
Dodge - Player is now notified of a successful dodge. Dodge chance increases on fail instead of success, and the player will actually move when successfully dodging.
Electrified - Now targets the source of damage rather than the cause (e.g. instead of targeting an arrow, it targets who shot the arrow).
Ender Soul - Should now properly refund ender pearls.
Locust Swarm - Silverfish are spawned from blocks closer to the player to prevent underground spawns.
Mob Catcher - Throwing Eye of Ender with nothing stored no longer increases the power's stat.
Ore Detector - Now fully rendered using packets, virtually no chance of leaving Shulkers behind.
Polar Blade - Fixed a NullPointerException when users of this power clicked anywhere in their inventory with nothing selected. Also overhauled how blades are handled, unfortunately old blades won't work anymore.
Summoner - Portals are now facing the right direction.
Trickshot - Fixed a NullPointerException when users of this power interacted with anything while empty-handed.
Internal code has been overhauled in preparation to allow developers to create their own powers.
Plugin configuration options can now have their descriptions localized via the localization file.
All instances where a mob is made to look like a player will now also copy their equipment.
Players who had stat progress for a power saved, but no longer had said power assigned, will no longer have the power re-assigned the next time the server reloads.
New power: Diversion
Upon taking damage from another entity, become invisible while summoning an exact copy of yourself as a diversion to attack the damager. Remain invisible until the diversion dies or despawns 10 seconds later. 1 minute cooldown.
Added Neutral Regions. Neutral Regions allow you to neutralize a specified area, preventing players from using powers in those areas.
Create a Neutral Region from within the world you want it with the command /powers region <name> create
Specify its dimensions with the command /powers region <name> resize <x1> <y1> <z1> <x2> <y2> <z2>
Finally, activate it with /powers region <name> toggle
Added new power: Locust Swarm
Left-clicking while holding Rotten Flesh will cause Silverfish to break from any nearby infested stone blocks, targeting nearby entities at random. After 15 seconds, spawned Silverfish reform into blocks. 30 second cooldown.
Fixed Neutralizer Beacons to actually work, and more effectively save their config info.
Also added an option to turn on auras showing the effective range of active beacons. These are off by default due to an expected impact on performance, but look pretty cool if your server can handle it.
Fixed stat progress being lost on server reload.
Added more cases where player config files are saved if the auto-save config option is active.
Also added a config option to enforce an auto-save cooldown. The default is 5 seconds.
Items used to trigger powers will now show the cooldown on the action bar. This can be turned off via a new config option if it causes any undesirable effects.
Possibly fixed a case where packets related to non-vanilla entities would cause an exception.
Overhauled and implemented localization. Open the enUS.yml file found in the plugin's folder, within the Localization folder, for more info on how to use it.
Added option to disable colors in the console. Note that this currently doesn't affect command outputs.